mirror of
https://github.com/torvalds/linux.git
synced 2026-05-30 10:04:04 +02:00
media: test-drivers: Use V4L2_FMTDESC_FLAG_ENUM_ALL flag
Since the V4L2_FMTDESC_FLAG_ENUM_ALL flag mostly targets stateless decoder pixel-format enumeration, update visl test driver to use it. When V4L2_FMTDESC_FLAG_ENUM_ALL flag is set let the driver returns one more pixel format. Signed-off-by: Benjamin Gaignard <benjamin.gaignard@collabora.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
This commit is contained in:
parent
06f5531958
commit
1faaae7760
|
|
@ -136,6 +136,12 @@ static const u32 visl_decoded_fmts[] = {
|
|||
V4L2_PIX_FMT_YUV420,
|
||||
};
|
||||
|
||||
static const u32 visl_extended_decoded_fmts[] = {
|
||||
V4L2_PIX_FMT_NV12,
|
||||
V4L2_PIX_FMT_YUV420,
|
||||
V4L2_PIX_FMT_P010,
|
||||
};
|
||||
|
||||
const struct visl_coded_format_desc visl_coded_fmts[] = {
|
||||
{
|
||||
.pixelformat = V4L2_PIX_FMT_FWHT_STATELESS,
|
||||
|
|
@ -341,11 +347,21 @@ static int visl_enum_fmt_vid_cap(struct file *file, void *priv,
|
|||
struct v4l2_fmtdesc *f)
|
||||
{
|
||||
struct visl_ctx *ctx = visl_file_to_ctx(file);
|
||||
u32 index = f->index & ~V4L2_FMTDESC_FLAG_ENUM_ALL;
|
||||
int max_fmts = ctx->coded_format_desc->num_decoded_fmts;
|
||||
const u32 *decoded_fmts = ctx->coded_format_desc->decoded_fmts;
|
||||
|
||||
if (f->index >= ctx->coded_format_desc->num_decoded_fmts)
|
||||
if (f->index & V4L2_FMTDESC_FLAG_ENUM_ALL) {
|
||||
max_fmts = ARRAY_SIZE(visl_extended_decoded_fmts);
|
||||
decoded_fmts = visl_extended_decoded_fmts;
|
||||
}
|
||||
|
||||
f->index = index;
|
||||
|
||||
if (index >= max_fmts)
|
||||
return -EINVAL;
|
||||
|
||||
f->pixelformat = ctx->coded_format_desc->decoded_fmts[f->index];
|
||||
f->pixelformat = decoded_fmts[index];
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user