[libcamera-devel] [PATCH 00/11] Support OV7251 in IPU3 pipeline and qcam
Jacopo Mondi
jacopo.mondi at ideasonboard.com
Mon Mar 20 08:56:00 CET 2023
Hi Dan
On Sat, Mar 18, 2023 at 11:40:03PM +0000, Daniel Scally via libcamera-devel wrote:
> Hello all
>
> This series is an attempt at adding support for the OV7251 camera on Microsoft
> Surface platforms to libcamera. The sensor outputs data in MEDIA_BUS_FMT_Y10_1X10
> format, which is packed by the CIO2 CSI-2 reciever into V4L2_PIX_FMT_IPU3_Y10. As
> far as I know, these data are not intended to run through the Imgu at all. Certainly
Aren't they ? How can an application generically display Y10 if it
receives data packed in a platform-specific format ?
> the kernel's ipu3-imgu driver does not support that format, but given the simplicity
Maybe it is still just missing from the driver ? Should we ask the
maintainers of the driver if it is just missing or it is not supported
at all ? From a quick glance I have't find a trivial way to add Y10
support to imgu_css_formats[]
> of the format we can simply use the CIO2 device's capture-capable devnode as the
> source of the image data.
>
> To facilitate that, I'm identifying sensors which don't have a format that needs
> the Imgu and simply skipping the Imgu/IPA processing in the IPU3 pipeline for
> them.
>
> What I don't particularly like about the way that I've done things here is that
> the stream only works for the Raw role, which feels wrong. The advantage is that
> it's contained within the existing IPU3 pipeline without too much disruption,
> but I do wonder whether a separate CIO2-only pipeline might not be better. In
> that case PipelineHandlerIPU3::match() would need amending to check whether the
> sensor for each "ipu3-csi-2 n" instance needed hooking into the Imgu and not adding
> those to the device match if it found that they didn't need it, so that a new
> CIO2-only pipeline could claim the media devices. I'd love to hear other people's
> thoughts about the best way to handle this.
>
> Thanks
> Dan
>
> Daniel Scally (11):
> pipeline: ipu3: Check if sensor supports test pattern control
> include: drm_fourcc: Add Y10 format
> libcamera/formats: Add IPU3_Y10 format
> pipeline: ipu3: Identify sensors that do not need the Imgu
> pipeline: ipu3: Add needsImgu flag to IPU3Frames
> pipeline: ipu3: Support sensors using only CIO2
> pipeline: ipu3: Allow raw-only streams in IPU3 pipeline
> pipeline: ipu3: Support IPU3_Y10 format
> apps: qcam: Add support for IPU3_Y10
> apps: qcam: Remove restriction on raw-only streams
> pipeline: ipu3: Increase maximum connected cameras
>
> include/linux/drm_fourcc.h | 3 +
> src/apps/qcam/format_converter.cpp | 50 +++++
> src/apps/qcam/format_converter.h | 2 +
> src/apps/qcam/main_window.cpp | 6 -
> src/libcamera/formats.cpp | 10 +
> src/libcamera/formats.yaml | 3 +
> src/libcamera/pipeline/ipu3/cio2.cpp | 21 +++
> src/libcamera/pipeline/ipu3/cio2.h | 4 +
> src/libcamera/pipeline/ipu3/frames.cpp | 45 +++--
> src/libcamera/pipeline/ipu3/frames.h | 3 +-
> src/libcamera/pipeline/ipu3/ipu3.cpp | 242 ++++++++++++++-----------
> 11 files changed, 255 insertions(+), 134 deletions(-)
>
> --
> 2.34.1
>
More information about the libcamera-devel
mailing list