diff options
author | Kieran Bingham <kieran.bingham@ideasonboard.com> | 2021-10-14 09:54:05 +0100 |
---|---|---|
committer | Kieran Bingham <kieran.bingham@ideasonboard.com> | 2021-10-25 09:52:23 +0100 |
commit | 1402152ad35017a817b1ead55e60ace9353efbdb (patch) | |
tree | 47cfeda92ffdfe73eb2a5f3ec77abf59b4fbd09e | |
parent | 43d098ce5f2733dbde249d33d3b418cbeadfaaa5 (diff) |
libcamera: v4l2_videodevice: Explain multiplanar bytesused reasoning
The ternary operation used to get the total bytesused of a V4L2 single
planar format which is stored in a multiplanar buffer can easily be
mis-read to think it's a bug, and appears to be reading the value of the
first of N planes as the total.
Directly explain the reasoning for why it looks like the condition is
inverted, as it is correct that the total bytes used is stored in only
the first plane of the multiplanar buffer.
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-rw-r--r-- | src/libcamera/v4l2_videodevice.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/libcamera/v4l2_videodevice.cpp b/src/libcamera/v4l2_videodevice.cpp index 2745e579..0cc622f9 100644 --- a/src/libcamera/v4l2_videodevice.cpp +++ b/src/libcamera/v4l2_videodevice.cpp @@ -1711,6 +1711,13 @@ FrameBuffer *V4L2VideoDevice::dequeueBuffer() return buffer; } + /* + * With a V4L2 single-planar format, all the data is stored in + * a single memory plane. The number of bytes used is conveyed + * through that plane when using the V4L2 multi-planar API, or + * set directly in the buffer when using the V4L2 single-planar + * API. + */ unsigned int bytesused = multiPlanar ? planes[0].bytesused : buf.bytesused; unsigned int remaining = bytesused; |