[PATCH v2] pipeline: rpi: always initialize the embedded buffer in tryRunPipeline

Elias Naur mail at eliasnaur.com
Mon Jan 22 14:33:10 CET 2024


Vc4CameraData::findMatchBuffers may return successfully with a null
embedded buffer, in which case the embedded buffer id would be left
uninitialized.

Without this change, libcamera v0.2.0 usually crashes for me with an
assertion error:

 ipa_base.cpp:397 assertion "it != buffers_.end()" failed in prepareIsp()

Signed-off-by: Elias Naur <mail at eliasnaur.com>
---
 src/libcamera/pipeline/rpi/vc4/vc4.cpp | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/libcamera/pipeline/rpi/vc4/vc4.cpp b/src/libcamera/pipeline/rpi/vc4/vc4.cpp
index 26102ea7..a52f0e7a 100644
--- a/src/libcamera/pipeline/rpi/vc4/vc4.cpp
+++ b/src/libcamera/pipeline/rpi/vc4/vc4.cpp
@@ -945,6 +945,7 @@ void Vc4CameraData::tryRunPipeline()
 	params.requestControls = request->controls();
 	params.ipaContext = request->sequence();
 	params.delayContext = bayerFrame.delayContext;
+	params.buffers.embedded = 0;
 
 	if (embeddedBuffer) {
 		unsigned int embeddedId = unicam_[Unicam::Embedded].getBufferId(embeddedBuffer);
-- 
2.43.0



More information about the libcamera-devel mailing list