media: cedrus: h264: Support profile controls
authorEzequiel Garcia <ezequiel@collabora.com>
Thu, 26 Nov 2020 09:36:08 +0000 (10:36 +0100)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Thu, 3 Dec 2020 11:27:32 +0000 (12:27 +0100)
Cedrus supports H.264 profiles from Baseline to High,
except for the Extended profile

Expose the V4L2_CID_MPEG_VIDEO_H264_PROFILE so that
userspace can query the driver for the supported
profiles and levels.

Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
Reviewed-by: Jernej Skrabec <jernej.skrabec@siol.net>
Tested-by: Jernej Skrabec <jernej.skrabec@siol.net>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/staging/media/sunxi/cedrus/cedrus.c

index dce7cbc..6854842 100644 (file)
@@ -103,6 +103,25 @@ static const struct cedrus_control cedrus_controls[] = {
                .codec          = CEDRUS_CODEC_H264,
                .required       = false,
        },
+       /*
+        * We only expose supported profiles information,
+        * and not levels as it's not clear what is supported
+        * for each hardware/core version.
+        * In any case, TRY/S_FMT will clamp the format resolution
+        * to the maximum supported.
+        */
+       {
+               .cfg = {
+                       .id     = V4L2_CID_MPEG_VIDEO_H264_PROFILE,
+                       .min    = V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE,
+                       .def    = V4L2_MPEG_VIDEO_H264_PROFILE_MAIN,
+                       .max    = V4L2_MPEG_VIDEO_H264_PROFILE_HIGH,
+                       .menu_skip_mask =
+                               BIT(V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED),
+               },
+               .codec          = CEDRUS_CODEC_H264,
+               .required       = false,
+       },
        {
                .cfg = {
                        .id     = V4L2_CID_MPEG_VIDEO_HEVC_SPS,