Dne četrtek, 10. oktober 2019 ob 15:11:44 CEST je Hans Verkuil napisal(a): > This series adds support for decoding multi-slice H264 frames along with > support for V4L2_DEC_CMD_FLUSH and V4L2_BUF_FLAG_M2M_HOLD_CAPTURE_BUF. > > This has only been compile-tested. Jernej, can you test with ffmpeg? Sure, but not before Tuesday, unfortunatelly. Best regards, Jernej > > This series is based on > https://www.spinics.net/lists/linux-media/msg158081.html plus ideas from > https://www.spinics.net/lists/linux-media/msg158625.html. > > Changes since v2: > > - Move the code to detect if a capture buffer is done to > the v4l2-mem2mem core framework. > - Move the first-slice detection to the core as well. > - Add a new v4l2_m2m_buf_done_and_job_finish() function that > finishes a job taking held capture buffers into account. > Marking buffers as done and finishing the job has to be > done with job_spinlock held to avoid race conditions with > v4l2_m2m_ioctl_stateless_decoder_cmd(). > - v4l2_m2m_ioctl_stateless_decoder_cmd takes the job_spinlock > to prevent race conditions. > > Regards, > > Hans > > 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 (4): > media: v4l2-mem2mem: add stateless_(try_)decoder_cmd ioctl helpers > media: cedrus: Detect first slice of a frame > media: cedrus: h264: Support multiple slices per frame > media: cedrus: Add support for holding capture buffer > > Documentation/media/uapi/v4l/buffer.rst | 13 ++ > .../media/uapi/v4l/vidioc-decoder-cmd.rst | 10 +- > .../media/uapi/v4l/vidioc-reqbufs.rst | 6 + > .../media/videodev2.h.rst.exceptions | 1 + > .../media/common/videobuf2/videobuf2-v4l2.c | 12 +- > drivers/media/v4l2-core/v4l2-mem2mem.c | 188 +++++++++++++++--- > drivers/staging/media/sunxi/cedrus/cedrus.h | 1 + > .../staging/media/sunxi/cedrus/cedrus_dec.c | 1 + > .../staging/media/sunxi/cedrus/cedrus_h264.c | 12 +- > .../staging/media/sunxi/cedrus/cedrus_hw.c | 16 +- > .../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, 283 insertions(+), 57 deletions(-)