[PATCH 3/4] libcamera: v4l2_subdevice: Add new metadata formats

Jacopo Mondi jacopo.mondi at ideasonboard.com
Wed Oct 23 13:14:29 CEST 2024


Hi Laurent

On Wed, Oct 23, 2024 at 01:11:22PM +0200, Jacopo Mondi wrote:
> From: Laurent Pinchart <laurent.pinchart at 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 at ideasonboard.com>
> Reviewed-by: Jacopo Mondi <jacopo.mondi at ideasonboard.com>
> Signed-off-by: Jacopo Mondi <jacopo.mondi at 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
>


More information about the libcamera-devel mailing list