Commit 21828609 authored by Sakari Ailus's avatar Sakari Ailus Committed by Hans Verkuil
Browse files

media: v4l: Set line based metadata flag in V4L2 core



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: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
parent 89345c2a
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -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;
+4 −0
Original line number Diff line number Diff line
@@ -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 */