Re: [PATCHv3 0/5] Stateful Encoding: final bits

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

 



On Tue, May 26, 2020 at 12:09:27PM +0200, Hans Verkuil wrote:
> 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]).

Thanks for all the work.

Apart from two really small formatting issues the entire series is

Reviewed-by: Michael Tretter <m.tretter@xxxxxxxxxxxxxx>

Michael

> 
> 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'.
> 
> Added in v3:
> 
> - Fix some minor typos.
> 
> - Make it more explicit that setting S_PARM(OUTPUT) also sets the
>   CAPTURE frame interval.
> 
> - Added a new V4L2_FMT_FLAG_ENC_CAP_FRAME_INTERVAL flag to indicate
>   that S_PARM(CAPTURE) can be set separately.
> 
> 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 (4):
>   vidioc-g-parm.rst: update the VIDIOC_G/S_PARM documentation
>   dev-decoder.rst: small fixes
>   videodev2.h: add V4L2_FMT_FLAG_ENC_CAP_FRAME_INTERVAL flag
>   dev-encoder.rst: add reference to V4L2_FMT_FLAG_ENC_CAP_FRAME_INTERVAL
> 
> Tomasz Figa (1):
>   media: docs-rst: Document memory-to-memory video encoder interface
> 
>  .../userspace-api/media/v4l/dev-decoder.rst   |   6 +-
>  .../userspace-api/media/v4l/dev-encoder.rst   | 729 ++++++++++++++++++
>  .../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 +-
>  .../media/v4l/vidioc-enum-fmt.rst             |  30 +-
>  .../userspace-api/media/v4l/vidioc-g-parm.rst |  51 +-
>  .../media/videodev2.h.rst.exceptions          |   1 +
>  include/uapi/linux/videodev2.h                |   1 +
>  10 files changed, 830 insertions(+), 47 deletions(-)
>  create mode 100644 Documentation/userspace-api/media/v4l/dev-encoder.rst
> 
> -- 
> 2.25.1
> 
> 

-- 
Pengutronix e.K.                           | Michael Tretter             |
Steuerwalder Str. 21                       | https://www.pengutronix.de/ |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



[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