media: venus: vdec: flag OUTPUT formats with V4L2_FMT_FLAG_DYN_RESOLUTION
authorMaxime Jourdan <mjourdan@baylibre.com>
Thu, 15 Aug 2019 14:44:47 +0000 (11:44 -0300)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Mon, 19 Aug 2019 17:57:09 +0000 (14:57 -0300)
Tag all the coded formats where the venus vdec supports dynamic
resolution switching.

Signed-off-by: Maxime Jourdan <mjourdan@baylibre.com>
Acked-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
Reviewed-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/platform/qcom/venus/core.h
drivers/media/platform/qcom/venus/vdec.c

index 959eaa550f4e45beee4ab2bd821f30485048d9f8..922cb7e64bfa709da64b30f015238e6f940537f4 100644 (file)
@@ -46,6 +46,7 @@ struct venus_format {
        u32 pixfmt;
        unsigned int num_planes;
        u32 type;
+       u32 flags;
 };
 
 #define MAX_PLANES             4
index 0b7d65db5cdc3da9d4e891680540232e01f18f65..7f4660555ddbdfb724d5bf8fe336e9fa8eded2fd 100644 (file)
@@ -37,42 +37,52 @@ static const struct venus_format vdec_formats[] = {
                .pixfmt = V4L2_PIX_FMT_MPEG4,
                .num_planes = 1,
                .type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE,
+               .flags = V4L2_FMT_FLAG_DYN_RESOLUTION,
        }, {
                .pixfmt = V4L2_PIX_FMT_MPEG2,
                .num_planes = 1,
                .type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE,
+               .flags = V4L2_FMT_FLAG_DYN_RESOLUTION,
        }, {
                .pixfmt = V4L2_PIX_FMT_H263,
                .num_planes = 1,
                .type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE,
+               .flags = V4L2_FMT_FLAG_DYN_RESOLUTION,
        }, {
                .pixfmt = V4L2_PIX_FMT_VC1_ANNEX_G,
                .num_planes = 1,
                .type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE,
+               .flags = V4L2_FMT_FLAG_DYN_RESOLUTION,
        }, {
                .pixfmt = V4L2_PIX_FMT_VC1_ANNEX_L,
                .num_planes = 1,
                .type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE,
+               .flags = V4L2_FMT_FLAG_DYN_RESOLUTION,
        }, {
                .pixfmt = V4L2_PIX_FMT_H264,
                .num_planes = 1,
                .type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE,
+               .flags = V4L2_FMT_FLAG_DYN_RESOLUTION,
        }, {
                .pixfmt = V4L2_PIX_FMT_VP8,
                .num_planes = 1,
                .type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE,
+               .flags = V4L2_FMT_FLAG_DYN_RESOLUTION,
        }, {
                .pixfmt = V4L2_PIX_FMT_VP9,
                .num_planes = 1,
                .type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE,
+               .flags = V4L2_FMT_FLAG_DYN_RESOLUTION,
        }, {
                .pixfmt = V4L2_PIX_FMT_XVID,
                .num_planes = 1,
                .type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE,
+               .flags = V4L2_FMT_FLAG_DYN_RESOLUTION,
        }, {
                .pixfmt = V4L2_PIX_FMT_HEVC,
                .num_planes = 1,
                .type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE,
+               .flags = V4L2_FMT_FLAG_DYN_RESOLUTION,
        },
 };
 
@@ -379,6 +389,7 @@ static int vdec_enum_fmt(struct file *file, void *fh, struct v4l2_fmtdesc *f)
                return -EINVAL;
 
        f->pixelformat = fmt->pixfmt;
+       f->flags = fmt->flags;
 
        return 0;
 }