media: cedrus: Specify H264 startcode and decoding mode
authorEzequiel Garcia <ezequiel@collabora.com>
Fri, 16 Aug 2019 16:01:28 +0000 (13:01 -0300)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Mon, 19 Aug 2019 16:26:56 +0000 (13:26 -0300)
The cedrus VPU is slice-based and 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.

These two controls are specified as mandatory for applications,
but we mark them as non-required on the driver side for
backwards compatibility.

Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/staging/media/sunxi/cedrus/cedrus.c

index 7bdc413bf727358b432825e2b5ba6947d865eb9e..2d3ea8b74dfdc99a5518f1fd7471e77e75d9b44c 100644 (file)
@@ -77,6 +77,24 @@ static const struct cedrus_control cedrus_controls[] = {
                .codec          = CEDRUS_CODEC_H264,
                .required       = true,
        },
+       {
+               .cfg = {
+                       .id     = V4L2_CID_MPEG_VIDEO_H264_DECODE_MODE,
+                       .max    = V4L2_MPEG_VIDEO_H264_DECODE_MODE_SLICE_BASED,
+                       .def    = V4L2_MPEG_VIDEO_H264_DECODE_MODE_SLICE_BASED,
+               },
+               .codec          = CEDRUS_CODEC_H264,
+               .required       = false,
+       },
+       {
+               .cfg = {
+                       .id     = V4L2_CID_MPEG_VIDEO_H264_START_CODE,
+                       .max    = V4L2_MPEG_VIDEO_H264_START_CODE_NONE,
+                       .def    = V4L2_MPEG_VIDEO_H264_START_CODE_NONE,
+               },
+               .codec          = CEDRUS_CODEC_H264,
+               .required       = false,
+       },
 };
 
 #define CEDRUS_CONTROLS_COUNT  ARRAY_SIZE(cedrus_controls)