Message ID | 20241023111124.124090-4-jacopo.mondi@ideasonboard.com |
---|---|
State | Superseded |
Headers | show |
Series |
|
Related | show |
Hi Laurent On Wed, Oct 23, 2024 at 01:11:22PM +0200, Jacopo Mondi wrote: > From: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > > Support the newly introduced V4L2 media bus formats for metadata. This > includes generic metadata formats, and two sensor-specific embedded data > formats. > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> > Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> > --- > src/libcamera/v4l2_subdevice.cpp | 63 ++++++++++++++++++++++++++++++++ > 1 file changed, 63 insertions(+) > > diff --git a/src/libcamera/v4l2_subdevice.cpp b/src/libcamera/v4l2_subdevice.cpp > index 9f2ec4798407..f65dd6593c99 100644 > --- a/src/libcamera/v4l2_subdevice.cpp > +++ b/src/libcamera/v4l2_subdevice.cpp > @@ -700,6 +700,69 @@ const std::map<uint32_t, MediaBusFormatInfo> mediaBusFormatInfo{ > .bitsPerPixel = 0, > .colourEncoding = PixelFormatInfo::ColourEncodingRAW, > } }, > + { MEDIA_BUS_FMT_META_8, { > + .name = "META_8", > + .code = MEDIA_BUS_FMT_META_8, > + .type = MediaBusFormatInfo::Type::Metadata, > + .bitsPerPixel = 8, > + .colourEncoding = PixelFormatInfo::ColourEncodingRAW, > + } }, > + { MEDIA_BUS_FMT_META_10, { > + .name = "META_10", > + .code = MEDIA_BUS_FMT_META_10, > + .type = MediaBusFormatInfo::Type::Metadata, > + .bitsPerPixel = 10, > + .colourEncoding = PixelFormatInfo::ColourEncodingRAW, > + } }, > + { MEDIA_BUS_FMT_META_12, { > + .name = "META_12", > + .code = MEDIA_BUS_FMT_META_12, > + .type = MediaBusFormatInfo::Type::Metadata, > + .bitsPerPixel = 12, > + .colourEncoding = PixelFormatInfo::ColourEncodingRAW, > + } }, > + { MEDIA_BUS_FMT_META_14, { > + .name = "META_14", > + .code = MEDIA_BUS_FMT_META_14, > + .type = MediaBusFormatInfo::Type::Metadata, > + .bitsPerPixel = 14, > + .colourEncoding = PixelFormatInfo::ColourEncodingRAW, > + } }, > + { MEDIA_BUS_FMT_META_16, { > + .name = "META_16", > + .code = MEDIA_BUS_FMT_META_16, > + .type = MediaBusFormatInfo::Type::Metadata, > + .bitsPerPixel = 16, > + .colourEncoding = PixelFormatInfo::ColourEncodingRAW, > + } }, > + { MEDIA_BUS_FMT_META_20, { > + .name = "META_20", > + .code = MEDIA_BUS_FMT_META_20, > + .type = MediaBusFormatInfo::Type::Metadata, > + .bitsPerPixel = 20, > + .colourEncoding = PixelFormatInfo::ColourEncodingRAW, > + } }, > + { MEDIA_BUS_FMT_META_24, { > + .name = "META_24", > + .code = MEDIA_BUS_FMT_META_24, > + .type = MediaBusFormatInfo::Type::Metadata, > + .bitsPerPixel = 24, > + .colourEncoding = PixelFormatInfo::ColourEncodingRAW, > + } }, > + { MEDIA_BUS_FMT_CCS_EMBEDDED, { > + .name = "CCS_EMBEDDED", > + .code = MEDIA_BUS_FMT_CCS_EMBEDDED, > + .type = MediaBusFormatInfo::Type::EmbeddedData, > + .bitsPerPixel = 0, > + .colourEncoding = PixelFormatInfo::ColourEncodingRAW, > + } }, > + { MEDIA_BUS_FMT_OV2740_EMBEDDED, { > + .name = "OV2740_EMBEDDED", > + .code = MEDIA_BUS_FMT_CCS_EMBEDDED, > + .type = MediaBusFormatInfo::Type::EmbeddedData, > + .bitsPerPixel = 0, I understand for these formats the actual bitdepth depends on the format configured on the sensor. But isn't bitsPerPixel=0 potentially dangerous ? > + .colourEncoding = PixelFormatInfo::ColourEncodingRAW, > + } }, > }; > > } /* namespace */ > -- > 2.47.0 >
diff --git a/src/libcamera/v4l2_subdevice.cpp b/src/libcamera/v4l2_subdevice.cpp index 9f2ec4798407..f65dd6593c99 100644 --- a/src/libcamera/v4l2_subdevice.cpp +++ b/src/libcamera/v4l2_subdevice.cpp @@ -700,6 +700,69 @@ const std::map<uint32_t, MediaBusFormatInfo> mediaBusFormatInfo{ .bitsPerPixel = 0, .colourEncoding = PixelFormatInfo::ColourEncodingRAW, } }, + { MEDIA_BUS_FMT_META_8, { + .name = "META_8", + .code = MEDIA_BUS_FMT_META_8, + .type = MediaBusFormatInfo::Type::Metadata, + .bitsPerPixel = 8, + .colourEncoding = PixelFormatInfo::ColourEncodingRAW, + } }, + { MEDIA_BUS_FMT_META_10, { + .name = "META_10", + .code = MEDIA_BUS_FMT_META_10, + .type = MediaBusFormatInfo::Type::Metadata, + .bitsPerPixel = 10, + .colourEncoding = PixelFormatInfo::ColourEncodingRAW, + } }, + { MEDIA_BUS_FMT_META_12, { + .name = "META_12", + .code = MEDIA_BUS_FMT_META_12, + .type = MediaBusFormatInfo::Type::Metadata, + .bitsPerPixel = 12, + .colourEncoding = PixelFormatInfo::ColourEncodingRAW, + } }, + { MEDIA_BUS_FMT_META_14, { + .name = "META_14", + .code = MEDIA_BUS_FMT_META_14, + .type = MediaBusFormatInfo::Type::Metadata, + .bitsPerPixel = 14, + .colourEncoding = PixelFormatInfo::ColourEncodingRAW, + } }, + { MEDIA_BUS_FMT_META_16, { + .name = "META_16", + .code = MEDIA_BUS_FMT_META_16, + .type = MediaBusFormatInfo::Type::Metadata, + .bitsPerPixel = 16, + .colourEncoding = PixelFormatInfo::ColourEncodingRAW, + } }, + { MEDIA_BUS_FMT_META_20, { + .name = "META_20", + .code = MEDIA_BUS_FMT_META_20, + .type = MediaBusFormatInfo::Type::Metadata, + .bitsPerPixel = 20, + .colourEncoding = PixelFormatInfo::ColourEncodingRAW, + } }, + { MEDIA_BUS_FMT_META_24, { + .name = "META_24", + .code = MEDIA_BUS_FMT_META_24, + .type = MediaBusFormatInfo::Type::Metadata, + .bitsPerPixel = 24, + .colourEncoding = PixelFormatInfo::ColourEncodingRAW, + } }, + { MEDIA_BUS_FMT_CCS_EMBEDDED, { + .name = "CCS_EMBEDDED", + .code = MEDIA_BUS_FMT_CCS_EMBEDDED, + .type = MediaBusFormatInfo::Type::EmbeddedData, + .bitsPerPixel = 0, + .colourEncoding = PixelFormatInfo::ColourEncodingRAW, + } }, + { MEDIA_BUS_FMT_OV2740_EMBEDDED, { + .name = "OV2740_EMBEDDED", + .code = MEDIA_BUS_FMT_CCS_EMBEDDED, + .type = MediaBusFormatInfo::Type::EmbeddedData, + .bitsPerPixel = 0, + .colourEncoding = PixelFormatInfo::ColourEncodingRAW, + } }, }; } /* namespace */