[PATCH] V4L2VideoDevice: Call FrameBuffer::Private::cancel() in streamOff()
Kieran Bingham
kieran.bingham at ideasonboard.com
Mon Dec 9 16:01:50 CET 2024
Quoting Harvey Yang (2024-12-03 09:52:13)
> At the moment `V4L2VideoDevice::streamOff()` sets
> `FrameBuffer::Private`'s metadata directly, while that's equivalent to
> calling `FrameBuffer::Private::cancel()`. To ease code tracing, this
> patch replace the manual modification with the function call.
>
> Signed-off-by: Harvey Yang <chenghaoyang at chromium.org>
> ---
> src/libcamera/v4l2_videodevice.cpp | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/src/libcamera/v4l2_videodevice.cpp b/src/libcamera/v4l2_videodevice.cpp
> index a5cf67845..0558434cb 100644
> --- a/src/libcamera/v4l2_videodevice.cpp
> +++ b/src/libcamera/v4l2_videodevice.cpp
> @@ -2007,10 +2007,9 @@ int V4L2VideoDevice::streamOff()
> /* Send back all queued buffers. */
> for (auto it : queuedBuffers_) {
> FrameBuffer *buffer = it.second;
> - FrameMetadata &metadata = buffer->_d()->metadata();
> + buffer->_d()->cancel();
buffer->_d()->cancel() indeed implements:
void cancel() { metadata_.status = FrameMetadata::FrameCancelled; }
so this looks good to me.
Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
>
> cache_->put(it.first);
> - metadata.status = FrameMetadata::FrameCancelled;
But you have changed "/where/" this is being done. Now the
metadata.status is being set /before/ cache_->put(it.first); which isn't
mentioned in the commit message. Is it an intentional change?
I believe it's fine though, but would have been note worthy to make sure
it was clear you had considered this and it's ok.
--
Kieran
> bufferReady.emit(buffer);
> }
>
> --
> 2.47.0.338.g60cca15819-goog
>
More information about the libcamera-devel
mailing list