summaryrefslogtreecommitdiff
path: root/src/libcamera/pipeline
diff options
context:
space:
mode:
authorKieran Bingham <kieran.bingham@ideasonboard.com>2021-03-24 14:22:58 +0000
committerKieran Bingham <kieran.bingham@ideasonboard.com>2021-03-24 22:20:05 +0000
commit597c67120e8b36a279d4eb9dccca0c16c6969fd7 (patch)
tree31157e585bc94cea14c866f02414f9b031fcf3b4 /src/libcamera/pipeline
parent4ce1a33e4b0f377e8b86cd80e965dc01a4907e17 (diff)
libcamera: pipeline: ipu3: Do not mark metadata complete early
When the imguOutputBufferReady() detects a cancelled frame, it is reporting that the metadata has been processed in order to be able to complete the cancelled request. This causes the FrameInfo to be completed and deleted early, but then an active buffer on the IMGU can complete and be unable to find the FrameInfo for it to complete correctly. Do not mark metadataProcessed early on the event that a single buffer is detected as cancelled. The stopping of the V4L2 devices will ensure that all queued buffers are returned to us and we can follow the normal and expected shutdown sequence. Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Diffstat (limited to 'src/libcamera/pipeline')
-rw-r--r--src/libcamera/pipeline/ipu3/ipu3.cpp3
1 files changed, 0 insertions, 3 deletions
diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
index 34ee6003..a8edf906 100644
--- a/src/libcamera/pipeline/ipu3/ipu3.cpp
+++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
@@ -1232,9 +1232,6 @@ void IPU3CameraData::imguOutputBufferReady(FrameBuffer *buffer)
cropRegion_ = request->controls().get(controls::ScalerCrop);
request->metadata().set(controls::ScalerCrop, cropRegion_);
- if (buffer->metadata().status == FrameMetadata::FrameCancelled)
- info->metadataProcessed = true;
-
if (frameInfos_.tryComplete(info))
pipe_->completeRequest(request);
}