[PATCH v3 0/2] CODA timeout and macroblock error control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

I'm sending here the patches that are pending in previous series [2].

The main motivation for this fix is to address a PIC_RUN
timeout, which we managed to link with a hardware bitstream
buffer underrun condition.

Upon further investigation we discovered that the underrun
was produced by a subtle issue in the way buffer_meta's were
being tracked.

The issue is fixed by patch "1/2 coda: coda_buffer_meta housekeeping fix".

Also, while testing with corrupted bitstreams we realized
the driver was logging too verbosely, so patch 2 addresses
this by introducing a private control to read an macroblock-error
counter.

These patches have been tested against media's upstream
and v5.4-based, on i.MX6 (Wandboard) with H.264 and MPEG-2
streams.

As reported by Benjamin Bara this fix is not sufficient
to fix all timeouts. However, the fix does help to fix
some of the cases.

For instance, videos containing small black frames,
are now fixed. See:

gst-launch-1.0 videotestsrc pattern=black num-buffers=300 ! \
video/x-raw,format=I420,width=176,height=120 ! avenc_mpeg2video ! \
mpegvideoparse ! mpegtsmux ! filesink location=black-qcif-10s.ts

Reviews and feedback are appreciated, as always.

[1] https://lkml.org/lkml/2020/8/21/495
[2] https://patchwork.linuxtv.org/project/linux-media/list/?series=3592

Changelog
---------

v3:
* Address Hans' feedback on patch 2.
  In particular, the control is not marked as volatile,
  since that was incorrect.
  Also, move the control CID definition inside the driver header.

v2:
* Keep the error MB message, but move it to coda_dbg(1, ctx).
* Add per-device rate limitting for the error MB message.
* Rename V4L2_CID_CODA_ERR_MB description.
* s/__coda_decoder_drop_used_metas/coda_decoder_drop_used_metas

Ezequiel Garcia (2):
  coda: coda_buffer_meta housekeeping fix
  coda: Add a V4L2 user for control error macroblocks count

 drivers/media/platform/coda/coda-bit.c    | 52 ++++++++++++++++++++---
 drivers/media/platform/coda/coda-common.c | 18 ++++++++
 drivers/media/platform/coda/coda.h        | 11 +++++
 include/uapi/linux/v4l2-controls.h        |  4 ++
 4 files changed, 78 insertions(+), 7 deletions(-)

-- 
2.27.0




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux