mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-15 12:56:41 +07:00
media: coda: implement CMD_START to restart decoding
The CMD_START shall be used to start the processing after a drain that was initiated with CMD_STOP. Up until now, a drain on coda could only be finished with a STREAMOFF-STREAMON, which resulted in a reset of the device. Signed-off-by: Michael Tretter <m.tretter@pengutronix.de> Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
This commit is contained in:
parent
932952e525
commit
60c74167fe
@ -1059,16 +1059,29 @@ static int coda_decoder_cmd(struct file *file, void *fh,
|
||||
struct v4l2_decoder_cmd *dc)
|
||||
{
|
||||
struct coda_ctx *ctx = fh_to_ctx(fh);
|
||||
struct vb2_queue *dst_vq;
|
||||
int ret;
|
||||
|
||||
ret = coda_try_decoder_cmd(file, fh, dc);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
/* Set the stream-end flag on this context */
|
||||
coda_bit_stream_end_flag(ctx);
|
||||
ctx->hold = false;
|
||||
v4l2_m2m_try_schedule(ctx->fh.m2m_ctx);
|
||||
switch (dc->cmd) {
|
||||
case V4L2_DEC_CMD_START:
|
||||
dst_vq = v4l2_m2m_get_vq(ctx->fh.m2m_ctx,
|
||||
V4L2_BUF_TYPE_VIDEO_CAPTURE);
|
||||
vb2_clear_last_buffer_dequeued(dst_vq);
|
||||
ctx->bit_stream_param &= ~CODA_BIT_STREAM_END_FLAG;
|
||||
break;
|
||||
case V4L2_DEC_CMD_STOP:
|
||||
/* Set the stream-end flag on this context */
|
||||
coda_bit_stream_end_flag(ctx);
|
||||
ctx->hold = false;
|
||||
v4l2_m2m_try_schedule(ctx->fh.m2m_ctx);
|
||||
break;
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user