[PATCH v2 2/9] media: cedrus: h264: Support profile and level controls

Ezequiel Garcia
2020-11-13T21:51:52Z

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 <ezequiel@collabora.com>
---
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