mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-04 18:19:28 +09:00
media: coda: fix mpeg2 sequence number handling
[ Upstream commit 56d159a4ec ]
Sequence number handling assumed that the BIT processor frame number
starts counting at 1, but this is not true for the MPEG-2 decoder,
which starts at 0. Fix the sequence counter offset detection to handle
this.
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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
91bce7cb29
commit
7559e57308
@@ -1679,6 +1679,7 @@ static int __coda_start_decoding(struct coda_ctx *ctx)
|
||||
v4l2_err(&dev->v4l2_dev, "CODA_COMMAND_SEQ_INIT timeout\n");
|
||||
return ret;
|
||||
}
|
||||
ctx->sequence_offset = ~0U;
|
||||
ctx->initialized = 1;
|
||||
|
||||
/* Update kfifo out pointer from coda bitstream read pointer */
|
||||
@@ -2095,7 +2096,9 @@ static void coda_finish_decode(struct coda_ctx *ctx)
|
||||
v4l2_err(&dev->v4l2_dev,
|
||||
"decoded frame index out of range: %d\n", decoded_idx);
|
||||
} else {
|
||||
val = coda_read(dev, CODA_RET_DEC_PIC_FRAME_NUM) - 1;
|
||||
val = coda_read(dev, CODA_RET_DEC_PIC_FRAME_NUM);
|
||||
if (ctx->sequence_offset == -1)
|
||||
ctx->sequence_offset = val;
|
||||
val -= ctx->sequence_offset;
|
||||
spin_lock_irqsave(&ctx->buffer_meta_lock, flags);
|
||||
if (!list_empty(&ctx->buffer_meta_list)) {
|
||||
|
||||
Reference in New Issue
Block a user