Cedrus supports H.264 profiles from Baseline to High,
up to Level 5.1, except for the Extended profile

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

Signed-off-by: Ezequiel Garcia <[email protected]>
---
 drivers/staging/media/sunxi/cedrus/cedrus.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/drivers/staging/media/sunxi/cedrus/cedrus.c 
b/drivers/staging/media/sunxi/cedrus/cedrus.c
index 9a102b7c1bb9..8b0e97752d27 100644
--- a/drivers/staging/media/sunxi/cedrus/cedrus.c
+++ b/drivers/staging/media/sunxi/cedrus/cedrus.c
@@ -103,6 +103,27 @@ static const struct cedrus_control cedrus_controls[] = {
                .codec          = CEDRUS_CODEC_H264,
                .required       = false,
        },
+       {
+               .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_H264_LEVEL,
+                       .min = V4L2_MPEG_VIDEO_H264_LEVEL_1_0,
+                       .max = V4L2_MPEG_VIDEO_H264_LEVEL_5_1,
+               },
+               .codec          = CEDRUS_CODEC_H264,
+               .required       = false,
+       },
        {
                .cfg = {
                        .id     = V4L2_CID_MPEG_VIDEO_HEVC_SPS,
-- 
2.27.0

Reply via email to