media: venus: vdec: flag OUTPUT formats with V4L2_FMT_FLAG_DYN_RESOLUTION

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>
This commit is contained in:
Maxime Jourdan 2019-08-15 11:44:47 -03:00 committed by Mauro Carvalho Chehab
parent 60a039eb27
commit 5aecb7d030
2 changed files with 12 additions and 0 deletions

View File

@ -46,6 +46,7 @@ struct venus_format {
u32 pixfmt; u32 pixfmt;
unsigned int num_planes; unsigned int num_planes;
u32 type; u32 type;
u32 flags;
}; };
#define MAX_PLANES 4 #define MAX_PLANES 4

View File

@ -37,42 +37,52 @@ static const struct venus_format vdec_formats[] = {
.pixfmt = V4L2_PIX_FMT_MPEG4, .pixfmt = V4L2_PIX_FMT_MPEG4,
.num_planes = 1, .num_planes = 1,
.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE, .type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE,
.flags = V4L2_FMT_FLAG_DYN_RESOLUTION,
}, { }, {
.pixfmt = V4L2_PIX_FMT_MPEG2, .pixfmt = V4L2_PIX_FMT_MPEG2,
.num_planes = 1, .num_planes = 1,
.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE, .type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE,
.flags = V4L2_FMT_FLAG_DYN_RESOLUTION,
}, { }, {
.pixfmt = V4L2_PIX_FMT_H263, .pixfmt = V4L2_PIX_FMT_H263,
.num_planes = 1, .num_planes = 1,
.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE, .type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE,
.flags = V4L2_FMT_FLAG_DYN_RESOLUTION,
}, { }, {
.pixfmt = V4L2_PIX_FMT_VC1_ANNEX_G, .pixfmt = V4L2_PIX_FMT_VC1_ANNEX_G,
.num_planes = 1, .num_planes = 1,
.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE, .type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE,
.flags = V4L2_FMT_FLAG_DYN_RESOLUTION,
}, { }, {
.pixfmt = V4L2_PIX_FMT_VC1_ANNEX_L, .pixfmt = V4L2_PIX_FMT_VC1_ANNEX_L,
.num_planes = 1, .num_planes = 1,
.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE, .type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE,
.flags = V4L2_FMT_FLAG_DYN_RESOLUTION,
}, { }, {
.pixfmt = V4L2_PIX_FMT_H264, .pixfmt = V4L2_PIX_FMT_H264,
.num_planes = 1, .num_planes = 1,
.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE, .type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE,
.flags = V4L2_FMT_FLAG_DYN_RESOLUTION,
}, { }, {
.pixfmt = V4L2_PIX_FMT_VP8, .pixfmt = V4L2_PIX_FMT_VP8,
.num_planes = 1, .num_planes = 1,
.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE, .type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE,
.flags = V4L2_FMT_FLAG_DYN_RESOLUTION,
}, { }, {
.pixfmt = V4L2_PIX_FMT_VP9, .pixfmt = V4L2_PIX_FMT_VP9,
.num_planes = 1, .num_planes = 1,
.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE, .type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE,
.flags = V4L2_FMT_FLAG_DYN_RESOLUTION,
}, { }, {
.pixfmt = V4L2_PIX_FMT_XVID, .pixfmt = V4L2_PIX_FMT_XVID,
.num_planes = 1, .num_planes = 1,
.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE, .type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE,
.flags = V4L2_FMT_FLAG_DYN_RESOLUTION,
}, { }, {
.pixfmt = V4L2_PIX_FMT_HEVC, .pixfmt = V4L2_PIX_FMT_HEVC,
.num_planes = 1, .num_planes = 1,
.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE, .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; return -EINVAL;
f->pixelformat = fmt->pixfmt; f->pixelformat = fmt->pixfmt;
f->flags = fmt->flags;
return 0; return 0;
} }