Messages in this thread | | | Subject | Re: [PATCH] media: coda: Keep metas sync with hardware fifo | From | Benjamin Gaignard <> | Date | Fri, 12 Nov 2021 09:36:47 +0100 |
| |
Le 11/11/2021 à 18:03, Philipp Zabel a écrit : > Hi Benjamin, > > On Mon, 2021-11-08 at 15:24 +0100, Benjamin Gaignard wrote: >> After updating the output fifo position be sure that metas are also >> synchronised with this position. >> >> Signed-off-by: Benjamin Gaignard <benjamin.gaignard@collabora.com> >> --- >> drivers/media/platform/coda/coda-bit.c | 6 ++++++ >> 1 file changed, 6 insertions(+) >> >> diff --git a/drivers/media/platform/coda/coda-bit.c b/drivers/media/platform/coda/coda-bit.c >> index c484c008ab02..28c56286b0de 100644 >> --- a/drivers/media/platform/coda/coda-bit.c >> +++ b/drivers/media/platform/coda/coda-bit.c >> @@ -2315,6 +2315,12 @@ static void coda_finish_decode(struct coda_ctx *ctx) >> /* Update kfifo out pointer from coda bitstream read pointer */ >> coda_kfifo_sync_from_device(ctx); >> >> + /* >> + * After updating the read pointer, we need to check if >> + * any metas are consumed and should be released. >> + */ >> + coda_decoder_drop_used_metas(ctx); >> + > This doesn't look right. If you drop all metas seen by the decoder right > away, they can't be copied into the decoded picture's meta slot later in > this function. I'd expect you run into the "empty timestamp list!" > errors if you do this.
Hi Philipp,
I don't run into the "empty timestamp list!" errors. The only case I have seen metas been dropped here it is when an invalid/incomplete frame has been send into the decoder. When that happens I don't see any interrupt or error message but the erroneous frame stay in the list. If that occur 4 times (I'm using CODA 960) then the decoder hang. Dropping the metas at this moment solve this problem.
Maybe you can guide me to a better solution ?
Regards, Benjamin
> > regards > Philipp
| |