[libcamera-devel] [PATCH v3 00/22] Clean up formats in v4l2-compat and pipeline handlers
Paul Elder
paul.elder at ideasonboard.com
Sat Jul 4 15:31:18 CEST 2020
This patch series:
- improves format-related calculations (stride, frameSize)
- cleans up the v4l2 compatibility layer related to formats
- fixes v4l2 compatibility interception for the raspberry pi pipeline
handler
- fixes unsupported formats in uvcvideo and raspberrypi pipeline
handlers (the others were fine already)
- moves filling in stride and frameSize from camera configuration time
to configuration validation time for all pipeline handlers
I know it's kind of big but they're all related... some of these patches
came from stray short series that never got reviewed, so those can now
be disregarded.
Patches 1~7 add functions and fields that are necessary in the rest of
the patches. Patches 8~10 move formats out of V4L2CameraProxy, and clean
up some of its code. Patches 13 forces pipeline handlers to use
acquireMediaDevice so that media devices can automatically be mapped to
devnums for the v4l2 compatibility layer to intercept, and patch 12
makes the raspberrypi pipeline handler conform to this. Patches 14~15
filter out unsupported formats at configuration generation time, to
prevent them from being selected, in the pipeline handlers that hadn't
already done so. Patches 16~21 move filling in the stide and frameSize
parameters from camera configuration time to configuration validation
time.
Paul Elder (22):
libcamera: formats: Add NV24 and NV42, and reorder NV formats
libcamera: formats: Add fields to info to ease calculating stride
libcamera: StreamConfiguration: Add frameSize field
libcamera: V4L2VideoDevice: Add tryFormat
libcamera: formats: PixelFormatInfo: Add v4l2 lookup function
libcamera: PixelFormatInfo: Add functions stride and frameSize
v4l2: v4l2_camera: Add validateConfiguration
v4l2: v4l2_camera_proxy: Use libcamera formats
v4l2: v4l2_camera_proxy: Get stride and frameSize from stream config
v4l2: v4l2_camera_proxy: Use stream config in tryFormat
libcamera: pipeline: raspberrypi: Simplify format fetching
libcamera: pipeline: raspberrypi: Acquire media devices with
acquireMediaDevice
libcamera: pipeline_handler: Fatal if registering camera without media
devices
libcamera: pipeline: raspberrypi: Filter out unsupported formats
libcamera: pipeline: uvcvideo: Filter out unsupported formats
libcamera: ipu3: Fill stride and frameSize at config validation
libcamera: raspberrypi: Fill stride and frameSize at config validation
libcamera: rkisp1: Fill stride and frameSize at config validation
libcamera: simple: Fill stride and frameSize at config validation
libcamera: uvcvideo: Fill stride and frameSize at config validation
libcamera: vimc: Fill stride and frameSize at config validation
libcamera: StreamConfiguration: Update stride documentation
include/libcamera/internal/formats.h | 15 +-
include/libcamera/internal/v4l2_videodevice.h | 4 +
include/libcamera/stream.h | 1 +
src/libcamera/formats.cpp | 229 ++++++++++++++++--
src/libcamera/pipeline/ipu3/ipu3.cpp | 12 +-
.../pipeline/raspberrypi/raspberrypi.cpp | 43 ++--
src/libcamera/pipeline/rkisp1/rkisp1.cpp | 5 +-
src/libcamera/pipeline/simple/converter.cpp | 14 ++
src/libcamera/pipeline/simple/converter.h | 5 +
src/libcamera/pipeline/simple/simple.cpp | 28 ++-
src/libcamera/pipeline/uvcvideo/uvcvideo.cpp | 44 +++-
src/libcamera/pipeline/vimc/vimc.cpp | 5 +-
src/libcamera/pipeline_handler.cpp | 4 +
src/libcamera/stream.cpp | 22 +-
src/libcamera/v4l2_videodevice.cpp | 121 +++++++++
src/v4l2/v4l2_camera.cpp | 29 +++
src/v4l2/v4l2_camera.h | 3 +
src/v4l2/v4l2_camera_proxy.cpp | 206 +++-------------
src/v4l2/v4l2_camera_proxy.h | 8 -
19 files changed, 544 insertions(+), 254 deletions(-)
--
2.27.0
More information about the libcamera-devel
mailing list