This series adds the encoder spec and updates the VIDIOC_G/S_PARM documentation. This is a follow-up of the original "Stateful Encoding: final bits" series (1). The patches in that series that add support for V4L2_CID_MPEG_VIDEO_ENC_FRAME_RATE and V4L2_BUF_FLAG_TOO_SMALL have been dropped (the first is not necessary and the second can be skipped for now, see the irc discussion with Nicolas [3]). The encoder spec has been updated since [2] with the following changes: - Document the optional VIDIOC_ENUM_FRAMEINTERVALS ioctl. - Document how to use VIDIOC_S_PARM: 1) calling S_PARM for the OUTPUT queue sets both the raw frame interval (this is a hint only) and the coded frame interval. 2) calling S_PARM for the CAPTURE queue sets the coded frame interval only. This is optional and can be used for off-line encoding. In that case the OUTPUT frame interval can be used by the driver to schedule multiple encoders. Ideally S_PARM for the OUTPUT queue would just provide a hint, but existing encoder drivers all use S_PARM for the OUTPUT queue to define the coded frame interval, and that can't be changed. - Added a note that if a capture buffer is too small it will be returned with V4L2_BUF_FLAG_ERROR and that more work has to be done to properly support this corner case. - Clarify in the 'Encoding' section that there are more reasons why 'a buffer queued to OUTPUT may result in more than one buffer produced on CAPTURE'. I think that with these changes this stateful encoder spec is ready to be merged. Regards, Hans [1] https://lore.kernel.org/linux-media/20191119113457.57833-6-hverkuil-cisco@xxxxxxxxx/T/ [2] https://www.mail-archive.com/linux-media@xxxxxxxxxxxxxxx/msg149211.html [3] https://linuxtv.org/irc/irclogger_log/v4l?date=2020-05-19,Tue Hans Verkuil (1): vidioc-g-parm.rst: update the VIDIOC_G/S_PARM documentation Tomasz Figa (1): media: docs-rst: Document memory-to-memory video encoder interface .../userspace-api/media/v4l/dev-encoder.rst | 727 ++++++++++++++++++ .../userspace-api/media/v4l/dev-mem2mem.rst | 1 + .../userspace-api/media/v4l/pixfmt-v4l2.rst | 5 + .../userspace-api/media/v4l/v4l2.rst | 2 + .../media/v4l/vidioc-encoder-cmd.rst | 51 +- .../userspace-api/media/v4l/vidioc-g-parm.rst | 51 +- 6 files changed, 798 insertions(+), 39 deletions(-) create mode 100644 Documentation/userspace-api/media/v4l/dev-encoder.rst -- 2.25.1