The cedrus VPU expects V4L2_PIX_FMT_H264_SLICE buffers to contain
H264 slices with no start code. Expose this to userspace with
the newly added menu control.

Signed-off-by: Ezequiel Garcia <[email protected]>
---
Changes in v4:
* New patch.
---
 drivers/staging/media/sunxi/cedrus/cedrus.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/drivers/staging/media/sunxi/cedrus/cedrus.c 
b/drivers/staging/media/sunxi/cedrus/cedrus.c
index 7bdc413bf727..10be2bd9507e 100644
--- a/drivers/staging/media/sunxi/cedrus/cedrus.c
+++ b/drivers/staging/media/sunxi/cedrus/cedrus.c
@@ -77,6 +77,26 @@ static const struct cedrus_control cedrus_controls[] = {
                .codec          = CEDRUS_CODEC_H264,
                .required       = true,
        },
+       {
+               .cfg = {
+                       .id     = V4L2_CID_MPEG_VIDEO_H264_DECODING_MODE,
+                       .max    = V4L2_MPEG_VIDEO_H264_SLICE_BASED_DECODING,
+                       .def    = V4L2_MPEG_VIDEO_H264_SLICE_BASED_DECODING,
+                       .menu_skip_mask = 
BIT(V4L2_MPEG_VIDEO_H264_FRAME_BASED_DECODING),
+               },
+               .codec          = CEDRUS_CODEC_H264,
+               .required       = false,
+       },
+       {
+               .cfg = {
+                       .id     = V4L2_CID_MPEG_VIDEO_H264_STARTCODE,
+                       .max    = V4L2_MPEG_VIDEO_H264_NO_STARTCODE,
+                       .def    = V4L2_MPEG_VIDEO_H264_NO_STARTCODE,
+                       .menu_skip_mask = 
BIT(V4L2_MPEG_VIDEO_H264_ANNEX_B_STARTCODE),
+               },
+               .codec          = CEDRUS_CODEC_H264,
+               .required       = false,
+       },
 };
 
 #define CEDRUS_CONTROLS_COUNT  ARRAY_SIZE(cedrus_controls)
-- 
2.22.0

Reply via email to