Re: [PATCH 07/14] media: v4l: Set line based metadata flag in V4L2 core

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Sakari,

Thank you for the patch.

On Wed, Apr 24, 2024 at 03:22:30PM +0300, Sakari Ailus wrote:
> Set (and unset) the V4L2_FMT_FLAG_META_LINE_BASED flag in struct
> v4l2_fmtdesc based on the format after returning the driver callback for
> enumerating formats. This way the drivers don't need to care about the
> flag.
> 
> Signed-off-by: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx>

Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>

> ---
>  drivers/media/v4l2-core/v4l2-ioctl.c | 16 ++++++++++++++++
>  include/uapi/linux/videodev2.h       |  4 ++++
>  2 files changed, 20 insertions(+)
> 
> diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c
> index 2cfc9106857a..5e928e2a2beb 100644
> --- a/drivers/media/v4l2-core/v4l2-ioctl.c
> +++ b/drivers/media/v4l2-core/v4l2-ioctl.c
> @@ -1538,6 +1538,22 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt)
>  		}
>  	}
>  
> +	if (fmt->type == V4L2_BUF_TYPE_META_CAPTURE) {
> +		switch (fmt->pixelformat) {
> +		case V4L2_META_FMT_GENERIC_8:
> +		case V4L2_META_FMT_GENERIC_CSI2_10:
> +		case V4L2_META_FMT_GENERIC_CSI2_12:
> +		case V4L2_META_FMT_GENERIC_CSI2_14:
> +		case V4L2_META_FMT_GENERIC_CSI2_16:
> +		case V4L2_META_FMT_GENERIC_CSI2_20:
> +		case V4L2_META_FMT_GENERIC_CSI2_24:
> +			fmt->flags |= V4L2_FMT_FLAG_META_LINE_BASED;
> +			break;
> +		default:
> +			fmt->flags &= ~V4L2_FMT_FLAG_META_LINE_BASED;
> +		}
> +	}
> +
>  	if (descr)
>  		WARN_ON(strscpy(fmt->description, descr, sz) < 0);
>  	fmt->flags |= flags;
> diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h
> index 647ce3419bd8..d944db7ae1ed 100644
> --- a/include/uapi/linux/videodev2.h
> +++ b/include/uapi/linux/videodev2.h
> @@ -839,6 +839,10 @@ struct v4l2_pix_format {
>  #define V4L2_META_FMT_RK_ISP1_PARAMS	v4l2_fourcc('R', 'K', '1', 'P') /* Rockchip ISP1 3A Parameters */
>  #define V4L2_META_FMT_RK_ISP1_STAT_3A	v4l2_fourcc('R', 'K', '1', 'S') /* Rockchip ISP1 3A Statistics */
>  
> +/*
> + * Line-based metadata formats. Remember to update v4l_fill_fmtdesc() when
> + * adding new ones!
> + */
>  #define V4L2_META_FMT_GENERIC_8		v4l2_fourcc('M', 'E', 'T', '8') /* Generic 8-bit metadata */
>  #define V4L2_META_FMT_GENERIC_CSI2_10	v4l2_fourcc('M', 'C', '1', 'A') /* 10-bit CSI-2 packed 8-bit metadata */
>  #define V4L2_META_FMT_GENERIC_CSI2_12	v4l2_fourcc('M', 'C', '1', 'C') /* 12-bit CSI-2 packed 8-bit metadata */

-- 
Regards,

Laurent Pinchart




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux