libcamera/src
Laurent Pinchart cc035f611f libcamera: v4l2_videodevice: Coalesce planes when queuing buffer
When queueing a buffer to a V4L2VideoDevice, the number of planes in the
FrameBuffer may not match the number of V4L2 buffer planes if the
PixelFormat is multi-planar (has multiple colour planes) and the V4L2
format is single-planar (has a single buffer plane). In this case, we
need to coalesce all FrameBuffer planes into a single V4L2 buffer plane.
Do so, and add validity checks to reject frame buffers that can't be
described using a single V4L2 buffer plane.

This change prepares for proper multi-planar support, but isn't expected
to result in a change of behaviour with existing pipeline handlers, as
none of them queue an output buffer with multiple FrameBuffer planes or
use non-contiguous buffers for either capture or output.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Hirokazu Honda <hiroh@chromium.org>
2021-09-07 19:18:19 +03:00
..
android libcamera: formats: Add planeSize() helpers to PixelFormatInfo 2021-09-07 19:17:54 +03:00
cam cam: file_sink: Use offset in mapping FrameBuffer 2021-08-30 18:08:02 +03:00
gstreamer gstreamer: gstlibcameraallocator: Use offset in creating a buffer 2021-08-30 18:08:02 +03:00
ipa ipa: libipa: histogram: Fix typo 2021-08-31 22:44:10 +03:00
lc-compliance libcamera: Use simpler Signal::disconnect() function 2021-09-02 01:16:44 +03:00
libcamera libcamera: v4l2_videodevice: Coalesce planes when queuing buffer 2021-09-07 19:18:19 +03:00
qcam libcamera: Use simpler Signal::disconnect() function 2021-09-02 01:16:44 +03:00
v4l2 libcamera: Use V4L2PixelFormat::fromPixelFormat() 2021-09-07 19:17:49 +03:00
meson.build android: Split HAL to its own shared library 2021-06-25 16:09:46 +01:00