media: coda: Add more H264 levels for CODA960
authorNicolas Dufresne <nicolas.dufresne@collabora.com>
Wed, 6 Apr 2022 20:23:43 +0000 (21:23 +0100)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Sun, 24 Apr 2022 07:49:09 +0000 (08:49 +0100)
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: 42a68012e67c2 ("media: coda: add read-only h.264 decoder profile/level controls")
Suggested-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
Signed-off-by: Fabio Estevam <festevam@denx.de>
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/media/platform/chips-media/coda-common.c

index 36ec5a50a4918e664189059d689fc83432634cc6..d246afcb3f492aaaaec2771b6c26bd96ecda57ed 100644 (file)
@@ -2347,12 +2347,15 @@ static void coda_encode_ctrls(struct coda_ctx *ctx)
        if (ctx->dev->devtype->product == CODA_960) {
                v4l2_ctrl_new_std_menu(&ctx->ctrls, &coda_ctrl_ops,
                        V4L2_CID_MPEG_VIDEO_H264_LEVEL,
-                       V4L2_MPEG_VIDEO_H264_LEVEL_4_0,
-                       ~((1 << V4L2_MPEG_VIDEO_H264_LEVEL_2_0) |
+                       V4L2_MPEG_VIDEO_H264_LEVEL_4_2,
+                       ~((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_1) |
                          (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_ctrl_new_std(&ctx->ctrls, &coda_ctrl_ops,