[libcamera-devel] [PATCH v4 0/6] libcamera: Map multiple V4L2 formats to a single libcamera::format
Jacopo Mondi
jacopo at jmondi.org
Tue Aug 2 18:01:30 CEST 2022
This series addresses the requirement of mapping multiple V4L2 pixel formats
to a single libcamera format. Specifically, it allows to map V4L2_PIX_FMT_JPEG
and V4L2_PIX_FMT_MJPEG to libcamera::formats::MJPEG.
When testing on Pinephone I was able to capture JPEG (but not to inspect images)
and YUYV. This time the sensor didn't fail me, and I was able to run a preview
stream on the pinephone using the SDL backend.
v3->v4:
- Move 2/6 at the beginning and simplify it
- Biggest change is in V4L2VideoDevice where formats are now collected in an
unordered_set<> requiring V4L2PixelFormat to be instrumented with an Hash
function object to allow it to be stored in an unordered STL container
- Minor changes in comments/wording and Laurent's tags
v2->v3:
- Resorted patches as suggested by Laurent
- Remove 'multiplanar' argument in the call chain
- Cache the V4L2VideoDevice formats at open() time
v1->v2:
- Add a missing conversion using the video device in Simple converter
- Map formats::MJPEG to V4L2_PIX_FMT_JPEG in v4l2 formats enumeration
Jacopo Mondi (6):
libcamera: formats: Reimplement V4L2 PixelFormatInfo::info()
libcamera: formats: Merge V4L2 single and multi formats
libcamera: v4l2_videodevice: Reintroduce toV4L2PixelFormat()
libcamera: v4l2_pixelformat: Return the list of V4L2 formats
libcamera: v4l2_videodevice: Match formats supported by the device
libcamera: formats: Map V4L2_PIX_FMT_JPEG to formats::MJPEG
Documentation/guides/pipeline-handler.rst | 9 +-
include/libcamera/internal/formats.h | 5 +-
include/libcamera/internal/v4l2_pixelformat.h | 20 +-
include/libcamera/internal/v4l2_videodevice.h | 6 +
src/libcamera/formats.cpp | 318 ++++--------------
src/libcamera/pipeline/ipu3/cio2.cpp | 2 +-
src/libcamera/pipeline/ipu3/imgu.cpp | 2 +-
.../pipeline/raspberrypi/raspberrypi.cpp | 34 +-
src/libcamera/pipeline/rkisp1/rkisp1_path.cpp | 6 +-
src/libcamera/pipeline/simple/converter.cpp | 10 +-
src/libcamera/pipeline/simple/simple.cpp | 4 +-
src/libcamera/pipeline/uvcvideo/uvcvideo.cpp | 6 +-
src/libcamera/pipeline/vimc/vimc.cpp | 8 +-
src/libcamera/v4l2_pixelformat.cpp | 53 ++-
src/libcamera/v4l2_videodevice.cpp | 62 +++-
src/v4l2/v4l2_camera_proxy.cpp | 6 +-
test/libtest/buffer_source.cpp | 2 +-
17 files changed, 241 insertions(+), 312 deletions(-)
--
2.37.1
More information about the libcamera-devel
mailing list