]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
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)
committerStefan Bader <stefan.bader@canonical.com>
Wed, 10 Aug 2022 07:25:21 +0000 (09:25 +0200)
BugLink: https://bugs.launchpad.net/bugs/1981864
commit eb2fd187abc878a2dfad46902becb74963473c7d upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
drivers/media/platform/coda/coda-common.c

index a7621687c161990090cf65e0c55994c6570027b0..b4b85a19f7d647c4de856bd37251e28d29dd6cd9 100644 (file)
@@ -2361,12 +2361,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,