From: Hans Verkuil <hverkuil-cisco@xs4all.nl>
To: linux-media@vger.kernel.org
Cc: Nicolas Dufresne <nicolas@ndufresne.ca>,
Tomasz Figa <tfiga@chromium.org>,
Michael Tretter <m.tretter@pengutronix.de>
Subject: [PATCHv3 0/5] Stateful Encoding: final bits
Date: Tue, 26 May 2020 12:09:27 +0200 [thread overview]
Message-ID: <20200526100932.2626420-1-hverkuil-cisco@xs4all.nl> (raw)
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'.
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@xs4all.nl/T/
[2] https://www.mail-archive.com/linux-media@vger.kernel.org/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
next reply other threads:[~2020-05-26 10:09 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-26 10:09 Hans Verkuil [this message]
2020-05-26 10:09 ` [PATCHv3 1/5] media: docs-rst: Document memory-to-memory video encoder interface Hans Verkuil
2020-05-29 9:57 ` Stanimir Varbanov
2020-05-29 10:17 ` Stanimir Varbanov
2020-05-29 12:21 ` Tomasz Figa
2020-06-05 7:19 ` Stanimir Varbanov
2020-06-05 21:24 ` Nicolas Dufresne
2020-06-06 7:58 ` Stanimir Varbanov
2020-06-07 0:27 ` Nicolas Dufresne
2020-06-10 12:28 ` Tomasz Figa
2020-06-10 13:08 ` Nicolas Dufresne
2020-06-10 13:55 ` Tomasz Figa
2020-06-10 13:58 ` Tomasz Figa
2020-06-23 10:36 ` Hans Verkuil
2020-06-23 11:47 ` Tomasz Figa
2020-06-23 10:47 ` Mauro Carvalho Chehab
2020-05-26 10:09 ` [PATCHv3 2/5] vidioc-g-parm.rst: update the VIDIOC_G/S_PARM documentation Hans Verkuil
2020-05-28 7:54 ` Michael Tretter
2020-05-26 10:09 ` [PATCHv3 3/5] dev-decoder.rst: small fixes Hans Verkuil
2020-05-26 10:09 ` [PATCHv3 4/5] videodev2.h: add V4L2_FMT_FLAG_ENC_CAP_FRAME_INTERVAL flag Hans Verkuil
2020-05-26 10:09 ` [PATCHv3 5/5] dev-encoder.rst: add reference to V4L2_FMT_FLAG_ENC_CAP_FRAME_INTERVAL Hans Verkuil
2020-05-28 7:58 ` [PATCHv3 0/5] Stateful Encoding: final bits Michael Tretter
2020-06-02 9:01 ` Tomasz Figa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200526100932.2626420-1-hverkuil-cisco@xs4all.nl \
--to=hverkuil-cisco@xs4all.nl \
--cc=linux-media@vger.kernel.org \
--cc=m.tretter@pengutronix.de \
--cc=nicolas@ndufresne.ca \
--cc=tfiga@chromium.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).