diff options
author | Philipp Zabel <p.zabel@pengutronix.de> | 2019-06-18 12:45:22 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab+samsung@kernel.org> | 2019-06-24 14:32:11 -0400 |
commit | b3b7d96817cdb8b6fc353867705275dce8f41ccc (patch) | |
tree | 7cd441872468e1fa2a22e8f1e9fcb1030977cf70 /drivers/media | |
parent | e7fd95849b3c25ae1604ba2788e63fe6570ba0ff (diff) | |
download | linux-b3b7d96817cdb8b6fc353867705275dce8f41ccc.tar.bz2 |
media: coda: increment sequence offset for the last returned frame
If no more frames are decoded in bitstream end mode, and a previously
decoded frame has been returned, the firmware still increments the frame
number. To avoid a sequence number mismatch after decoder restart,
increment the sequence_offset correction parameter.
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>
Diffstat (limited to 'drivers/media')
-rw-r--r-- | drivers/media/platform/coda/coda-bit.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/media/platform/coda/coda-bit.c b/drivers/media/platform/coda/coda-bit.c index 843f92312f47..bfe6019e68a8 100644 --- a/drivers/media/platform/coda/coda-bit.c +++ b/drivers/media/platform/coda/coda-bit.c @@ -2280,6 +2280,9 @@ static void coda_finish_decode(struct coda_ctx *ctx) else if (ctx->display_idx < 0) ctx->hold = true; } else if (decoded_idx == -2) { + if (ctx->display_idx >= 0 && + ctx->display_idx < ctx->num_internal_frames) + ctx->sequence_offset++; /* no frame was decoded, we still return remaining buffers */ } else if (decoded_idx < 0 || decoded_idx >= ctx->num_internal_frames) { v4l2_err(&dev->v4l2_dev, |