Commit eb2fd187 authored by Nicolas Dufresne's avatar Nicolas Dufresne Committed by Mauro Carvalho Chehab
Browse files

media: coda: Add more H264 levels for CODA960



Add H264 level 1.0, 4.1, 4.2 to the list of supported formats.
While the hardware does not fully support these levels, it does support
most of them. The constraints on frame size and pixel formats already
cover the limitation.

This fixes negotiation of level on GStreamer 1.17.1.

Cc: stable@vger.kernel.org
Fixes: 42a68012 ("media: coda: add read-only h.264 decoder profile/level controls")
Suggested-by: default avatarPhilipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: default avatarNicolas Dufresne <nicolas.dufresne@collabora.com>
Signed-off-by: default avatarEzequiel Garcia <ezequiel@collabora.com>
Signed-off-by: default avatarFabio Estevam <festevam@denx.de>
Reviewed-by: default avatarPhilipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@kernel.org>
parent 7110c08e
Loading
Loading
Loading
Loading
+6 −3
Original line number Original line Diff line number Diff line
@@ -2347,12 +2347,15 @@ static void coda_encode_ctrls(struct coda_ctx *ctx)
	if (ctx->dev->devtype->product == CODA_960) {
	if (ctx->dev->devtype->product == CODA_960) {
		v4l2_ctrl_new_std_menu(&ctx->ctrls, &coda_ctrl_ops,
		v4l2_ctrl_new_std_menu(&ctx->ctrls, &coda_ctrl_ops,
			V4L2_CID_MPEG_VIDEO_H264_LEVEL,
			V4L2_CID_MPEG_VIDEO_H264_LEVEL,
			V4L2_MPEG_VIDEO_H264_LEVEL_4_0,
			V4L2_MPEG_VIDEO_H264_LEVEL_4_2,
			~((1 << V4L2_MPEG_VIDEO_H264_LEVEL_2_0) |
			~((1 << V4L2_MPEG_VIDEO_H264_LEVEL_1_0) |
			  (1 << V4L2_MPEG_VIDEO_H264_LEVEL_2_0) |
			  (1 << V4L2_MPEG_VIDEO_H264_LEVEL_3_0) |
			  (1 << V4L2_MPEG_VIDEO_H264_LEVEL_3_0) |
			  (1 << V4L2_MPEG_VIDEO_H264_LEVEL_3_1) |
			  (1 << V4L2_MPEG_VIDEO_H264_LEVEL_3_1) |
			  (1 << V4L2_MPEG_VIDEO_H264_LEVEL_3_2) |
			  (1 << V4L2_MPEG_VIDEO_H264_LEVEL_3_2) |
			  (1 << V4L2_MPEG_VIDEO_H264_LEVEL_4_0)),
			  (1 << V4L2_MPEG_VIDEO_H264_LEVEL_4_0) |
			  (1 << V4L2_MPEG_VIDEO_H264_LEVEL_4_1) |
			  (1 << V4L2_MPEG_VIDEO_H264_LEVEL_4_2)),
			V4L2_MPEG_VIDEO_H264_LEVEL_4_0);
			V4L2_MPEG_VIDEO_H264_LEVEL_4_0);
	}
	}
	v4l2_ctrl_new_std(&ctx->ctrls, &coda_ctrl_ops,
	v4l2_ctrl_new_std(&ctx->ctrls, &coda_ctrl_ops,