media: coda: set colorimetry on coded queue

Do not set context colorimetry on the raw (OUTPUT) queue for encoders.
Always set colorimetry on the coded queue (CAPTURE for encoders, OUTPUT
for decoders).
This also skips propagation of capture queue format and selection
rectangle on S_FMT(OUTPUT) to the CAPTURE queue for encoders.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
This commit is contained in:
Philipp Zabel 2018-04-27 12:19:17 -04:00 коммит произвёл Mauro Carvalho Chehab
Родитель 0f8529fd07
Коммит 2c756c72c4
1 изменённых файлов: 16 добавлений и 1 удалений

Просмотреть файл

@ -779,7 +779,19 @@ static int coda_s_fmt_vid_cap(struct file *file, void *priv,
r.width = q_data_src->width;
r.height = q_data_src->height;
return coda_s_fmt(ctx, f, &r);
ret = coda_s_fmt(ctx, f, &r);
if (ret)
return ret;
if (ctx->inst_type != CODA_INST_ENCODER)
return 0;
ctx->colorspace = f->fmt.pix.colorspace;
ctx->xfer_func = f->fmt.pix.xfer_func;
ctx->ycbcr_enc = f->fmt.pix.ycbcr_enc;
ctx->quantization = f->fmt.pix.quantization;
return 0;
}
static int coda_s_fmt_vid_out(struct file *file, void *priv,
@ -798,6 +810,9 @@ static int coda_s_fmt_vid_out(struct file *file, void *priv,
if (ret)
return ret;
if (ctx->inst_type != CODA_INST_DECODER)
return 0;
ctx->colorspace = f->fmt.pix.colorspace;
ctx->xfer_func = f->fmt.pix.xfer_func;
ctx->ycbcr_enc = f->fmt.pix.ycbcr_enc;