summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKieran Bingham <kieran.bingham@ideasonboard.com>2021-10-14 09:54:05 +0100
committerKieran Bingham <kieran.bingham@ideasonboard.com>2021-10-25 09:52:23 +0100
commit1402152ad35017a817b1ead55e60ace9353efbdb (patch)
tree47cfeda92ffdfe73eb2a5f3ec77abf59b4fbd09e
parent43d098ce5f2733dbde249d33d3b418cbeadfaaa5 (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.cpp7
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;