This series adds support for H.264 slicing to the cedrus driver. This is done by adding a new buffer flag V4L2_BUF_FLAG_M2M_HOLD_CAPTURE_BUF that stateless decoders have to set when queueing the output buffer to indicate that this output buffer contains a compressed slice and so the capture buffer the slice is decoded into should not be marked as DONE since more slices are expected. Also add a new decoder command V4L2_DEC_CMD_FLUSH to handle the corner case where there are no more slices to decode, but there is still a capture buffer pending. Add support for all this to the m2m framework and add support for slicing to the cedrus driver. Many thanks to Jernej for working on the cedrus slicing support and testing these patches! Since slicing was the final missing piece, it is now time to add the stateless decoder spec as well to the V4L2 Specification. Many thanks to Alexandre and Tomasz and the many others who contributed to this. Regards, Hans The following changes since commit 3ff3a712a9eabb3d7bf52c263dd1ece054345df4: media: ti-vpe: vpe: don't rely on colorspace member for conversion (2019-10-10 13:54:22 -0300) are available in the Git repository at: git://linuxtv.org/hverkuil/media_tree.git tags/br-v5.5j for you to fetch changes up to b6f4140fcee87196dca7edf512de352a1d50fa62: media: docs-rst: Document m2m stateless video decoder interface (2019-10-16 12:56:31 +0200) ---------------------------------------------------------------- Tag branch ---------------------------------------------------------------- Alexandre Courbot (1): media: docs-rst: Document m2m stateless video decoder interface Hans Verkuil (4): vb2: add V4L2_BUF_FLAG_M2M_HOLD_CAPTURE_BUF v4l2-mem2mem: support held capture buffers videodev2.h: add V4L2_DEC_CMD_FLUSH v4l2-mem2mem: add new_frame detection Jernej Skrabec (2): media: v4l2-mem2mem: add stateless_(try_)decoder_cmd ioctl helpers media: cedrus: h264: Support multiple slices per frame Documentation/media/uapi/v4l/buffer.rst | 13 ++ Documentation/media/uapi/v4l/dev-mem2mem.rst | 1 + Documentation/media/uapi/v4l/dev-stateless-decoder.rst | 424 +++++++++++++++++++++++++++++++++++++++++++++ Documentation/media/uapi/v4l/vidioc-decoder-cmd.rst | 10 +- Documentation/media/uapi/v4l/vidioc-reqbufs.rst | 6 + Documentation/media/videodev2.h.rst.exceptions | 1 + drivers/media/common/videobuf2/videobuf2-v4l2.c | 12 +- drivers/media/v4l2-core/v4l2-mem2mem.c | 190 ++++++++++++++++---- drivers/staging/media/sunxi/cedrus/cedrus_h264.c | 12 +- drivers/staging/media/sunxi/cedrus/cedrus_hw.c | 16 +- drivers/staging/media/sunxi/cedrus/cedrus_video.c | 14 ++ include/media/v4l2-mem2mem.h | 44 ++++- include/media/videobuf2-core.h | 3 + include/media/videobuf2-v4l2.h | 5 + include/uapi/linux/videodev2.h | 14 +- 15 files changed, 707 insertions(+), 58 deletions(-) create mode 100644 Documentation/media/uapi/v4l/dev-stateless-decoder.rst