linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/28] media: coda: fixes and improvements
@ 2019-06-18 16:45 Philipp Zabel
  2019-06-18 16:45 ` [PATCH 01/28] media: coda: implement CMD_START to restart decoding Philipp Zabel
                   ` (27 more replies)
  0 siblings, 28 replies; 29+ messages in thread
From: Philipp Zabel @ 2019-06-18 16:45 UTC (permalink / raw)
  To: linux-media; +Cc: Mauro Carvalho Chehab, Hans Verkuil, kernel

Hi,

this series contains a few fixes for MPEG-2 sequence number counting,
decoder/encoder stop command race conditions and some more work to
further move towards V4L2 stateful decoder API compliance:

Sequence initialization, which lets the firmware parse the bitstream
headers, is reworked to run before the capture queue is streaming,
with some padding acrobatics to work around issues when only headers
or very small buffers are queued initially. A SOURCE_CHANGE event
is issued after sequence initialization completes.

The sequence counting mechanism used to determine the last processed
buffer is replaced with a last buffer flag that is set on the last
queued output buffer and carried over to the corresponding bitstream
metadata, to the decoded internal tiled frame, and finally to the
returned linear capture buffer.

Dynamic parameter change support is added for encoder rate control
or quantization parameters, slice mode, and cyclic intra refresh
interval.

Inbetween there are a few code cleanup patches that introduce, change,
or make use of helper functions, and improve driver structures.

regards
Philipp

Marco Felsch (2):
  media: coda: fix last buffer handling in V4L2_ENC_CMD_STOP
  media: coda: fix V4L2_DEC_CMD_STOP when all buffers are already
    consumed

Michael Tretter (1):
  media: coda: implement CMD_START to restart decoding

Philipp Zabel (25):
  media: coda: use mem2mem try_en/decoder_cmd helpers
  media: coda: fix mpeg2 sequence number handling
  media: coda: add coda_wake_up_capture_queue
  media: coda: split decoder sequence initialization out of start
    decoding
  media: coda: add sequence initialization work
  media: coda: implement decoder source change event
  media: coda: integrate internal frame metadata into a structure
  media: coda: make coda_bitstream_queue more versatile
  media: coda: pad first buffer with repeated MPEG headers to fix
    sequence init
  media: coda: do not enforce 512-byte initial bitstream payload on
    CODA960
  media: coda: flush bitstream ring buffer on decoder restart
  media: coda: increment sequence offset for the last returned frame
  media: coda: allow flagging last output buffer internally
  media: coda: mark the last output buffer on decoder stop command
  media: coda: only set the stream end flags if there are no more
    pending output buffers
  media: coda: mark the last output buffer on encoder stop command
  media: coda: retire coda_buf_is_end_of_stream
  media: coda: only wake up capture queue if no pending buffers to
    encode
  media: coda: flag the last encoded buffer
  media: coda: lock capture queue wakeup against encoder stop command
  media: coda: mark last pending buffer or last meta on decoder stop
    command
  media: coda: mark last returned frame
  media: coda: store device pointer in driver structure instead of pdev
  media: coda: add coda_slice_mode() function
  media: coda: encoder parameter change support

 drivers/media/platform/coda/coda-bit.c    | 403 +++++++++++++++++-----
 drivers/media/platform/coda/coda-common.c | 244 ++++++++++---
 drivers/media/platform/coda/coda-mpeg2.c  |  43 +++
 drivers/media/platform/coda/coda-mpeg4.c  |  38 ++
 drivers/media/platform/coda/coda.h        |  33 +-
 drivers/media/platform/coda/coda_regs.h   |  18 +
 6 files changed, 637 insertions(+), 142 deletions(-)

-- 
2.20.1


^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2019-06-18 16:46 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-18 16:45 [PATCH 00/28] media: coda: fixes and improvements Philipp Zabel
2019-06-18 16:45 ` [PATCH 01/28] media: coda: implement CMD_START to restart decoding Philipp Zabel
2019-06-18 16:45 ` [PATCH 02/28] media: coda: use mem2mem try_en/decoder_cmd helpers Philipp Zabel
2019-06-18 16:45 ` [PATCH 03/28] media: coda: fix mpeg2 sequence number handling Philipp Zabel
2019-06-18 16:45 ` [PATCH 04/28] media: coda: fix last buffer handling in V4L2_ENC_CMD_STOP Philipp Zabel
2019-06-18 16:45 ` [PATCH 05/28] media: coda: add coda_wake_up_capture_queue Philipp Zabel
2019-06-18 16:45 ` [PATCH 06/28] media: coda: fix V4L2_DEC_CMD_STOP when all buffers are already consumed Philipp Zabel
2019-06-18 16:45 ` [PATCH 07/28] media: coda: split decoder sequence initialization out of start decoding Philipp Zabel
2019-06-18 16:45 ` [PATCH 08/28] media: coda: add sequence initialization work Philipp Zabel
2019-06-18 16:45 ` [PATCH 09/28] media: coda: implement decoder source change event Philipp Zabel
2019-06-18 16:45 ` [PATCH 10/28] media: coda: integrate internal frame metadata into a structure Philipp Zabel
2019-06-18 16:45 ` [PATCH 11/28] media: coda: make coda_bitstream_queue more versatile Philipp Zabel
2019-06-18 16:45 ` [PATCH 12/28] media: coda: pad first buffer with repeated MPEG headers to fix sequence init Philipp Zabel
2019-06-18 16:45 ` [PATCH 13/28] media: coda: do not enforce 512-byte initial bitstream payload on CODA960 Philipp Zabel
2019-06-18 16:45 ` [PATCH 14/28] media: coda: flush bitstream ring buffer on decoder restart Philipp Zabel
2019-06-18 16:45 ` [PATCH 15/28] media: coda: increment sequence offset for the last returned frame Philipp Zabel
2019-06-18 16:45 ` [PATCH 16/28] media: coda: allow flagging last output buffer internally Philipp Zabel
2019-06-18 16:45 ` [PATCH 17/28] media: coda: mark the last output buffer on decoder stop command Philipp Zabel
2019-06-18 16:45 ` [PATCH 18/28] media: coda: only set the stream end flags if there are no more pending output buffers Philipp Zabel
2019-06-18 16:45 ` [PATCH 19/28] media: coda: mark the last output buffer on encoder stop command Philipp Zabel
2019-06-18 16:45 ` [PATCH 20/28] media: coda: retire coda_buf_is_end_of_stream Philipp Zabel
2019-06-18 16:45 ` [PATCH 21/28] media: coda: only wake up capture queue if no pending buffers to encode Philipp Zabel
2019-06-18 16:45 ` [PATCH 22/28] media: coda: flag the last encoded buffer Philipp Zabel
2019-06-18 16:45 ` [PATCH 23/28] media: coda: lock capture queue wakeup against encoder stop command Philipp Zabel
2019-06-18 16:45 ` [PATCH 24/28] media: coda: mark last pending buffer or last meta on decoder " Philipp Zabel
2019-06-18 16:45 ` [PATCH 25/28] media: coda: mark last returned frame Philipp Zabel
2019-06-18 16:45 ` [PATCH 26/28] media: coda: store device pointer in driver structure instead of pdev Philipp Zabel
2019-06-18 16:45 ` [PATCH 27/28] media: coda: add coda_slice_mode() function Philipp Zabel
2019-06-18 16:45 ` [PATCH 28/28] media: coda: encoder parameter change support Philipp Zabel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).