From: Nicolas Dufresne <nicolas.dufresne@collabora.com>
To: Paul Kocialkowski <paulk@sys-base.io>,
devicetree@vger.kernel.org, imx@lists.linux.dev,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, linux-media@vger.kernel.org
Cc: Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Shawn Guo <shawnguo@kernel.org>,
Sascha Hauer <s.hauer@pengutronix.de>,
Pengutronix Kernel Team <kernel@pengutronix.de>,
Benjamin Gaignard <benjamin.gaignard@collabora.com>,
Philipp Zabel <p.zabel@pengutronix.de>,
Mauro Carvalho Chehab <mchehab@kernel.org>,
Hans Verkuil <hverkuil@kernel.org>,
Marco Felsch <m.felsch@pengutronix.de>,
Michael Tretter <m.tretter@pengutronix.de>
Subject: Re: [PATCH 00/14] media: Add V4L2 H.264 stateless encode and VC8000E support
Date: Fri, 22 May 2026 10:47:49 -0400 [thread overview]
Message-ID: <ad9788bba0851dcb86c22f40c2562f2a57ac8e6c.camel@collabora.com> (raw)
In-Reply-To: <20260522101653.2565125-1-paulk@sys-base.io>
[-- Attachment #1: Type: text/plain, Size: 5306 bytes --]
Hi Paul,
Le vendredi 22 mai 2026 à 12:16 +0200, Paul Kocialkowski a écrit :
> This series introduces support for the V4L2 H.264 stateless encode uAPI,
> core and support in the hantro driver for the Verisilicon VC8000E.
>
> While this is a first version that will likely need some level of rework,
> it is already usable for most common use-cases and supports constant
> bitrate rate-control.
>
> A GStreamer tree can be used to test the series at:
> https://github.com/paulkocialkowski/gstreamer/tree/v4l2codecs/h264enc
> And an example pipeline would look like:
> gst-launch-1.0 videotestsrc pattern=smpte num-buffers=25 ! video/x-raw,width=640,height=480 ! v4l2slh264enc rate-control=cbr bitrate=8000000 qp-min=8 qp-max=42 ! h264parse ! matroskamux ! filesink location=encode.mkv
>
> Note that documentation for the new uAPI is intentionally left out of
> this series since it has not yet received approval.
The unfortunate part is that the spec is important for the actual review and
interops analyses. That omission qualify this submission as RFC from my point of
view. Any chances you can reply to this cover filling the blank for the few
important bit (something similar but non spec style of:
https://www.kernel.org/doc/html/latest/userspace-api/media/v4l/dev-stateless-decoder.html#initialization
- Querying capabilities
- Initialization
- Encoding
- Dynamic Resolution Changes**
The other sections are just going to be the same imho. The ** for the DRC is
because H.264 is not that complicated, its intra only, so you can reset the
encoder (use the drain flow). So that's probably something for future us
(VP9/AV1). Adding your view on these topics (or just matching what you have
implemented) will make review more constructive.
cheers,
Nicolas
>
> Marco Felsch (2):
> media: hantro: use hantro_decoded_buffer only for dst_vq
> arm64: dts: imx8mp: add VC8000E encoder node
>
> Paul Kocialkowski (12):
> media: h264: Add a more generic reflist builder init
> media: uapi: Add H.264 stateless encode support
> media: h264: Add SPS video definitions
> media: h264: Add stateless encode core
> media: h264: Add stateless encode rbsp
> media: h264: Add stateless encode reference management
> media: h264: Add stateless encode rate control
> media: verisilicon: Report default pixel coding for non-JPEG and fix JPEG case
> media: verisilicon: Cancel job with runtime pm put/clk disable on failure
> media: verisilicon: Add common encoder parm and frameintervals ioctls
> media: verisilicon: Add support for the VC8000E H.264 encoder
> media: verilisicon: imx8m: Add support for the VC8000E on i.MX8MP
>
> arch/arm64/boot/dts/freescale/imx8mp.dtsi | 11 +
> drivers/media/platform/verisilicon/Kconfig | 1 +
> drivers/media/platform/verisilicon/Makefile | 2 +
> drivers/media/platform/verisilicon/hantro.h | 17 +
> .../media/platform/verisilicon/hantro_drv.c | 180 +-
> .../media/platform/verisilicon/hantro_h264.c | 6 +-
> .../media/platform/verisilicon/hantro_hw.h | 28 +
> .../media/platform/verisilicon/hantro_v4l2.c | 123 +-
> .../platform/verisilicon/hantro_vc8000e.c | 68 +
> .../verisilicon/hantro_vc8000e_h264_enc.c | 883 +++++++
> .../verisilicon/hantro_vc8000e_regs.h | 2129 +++++++++++++++++
> .../media/platform/verisilicon/imx8m_vpu_hw.c | 113 +
> drivers/media/v4l2-core/Kconfig | 4 +
> drivers/media/v4l2-core/Makefile | 2 +
> drivers/media/v4l2-core/v4l2-ctrls-core.c | 62 +
> drivers/media/v4l2-core/v4l2-ctrls-defs.c | 4 +
> drivers/media/v4l2-core/v4l2-h264-enc-rbsp.c | 1173 +++++++++
> drivers/media/v4l2-core/v4l2-h264-enc-rc.c | 558 +++++
> drivers/media/v4l2-core/v4l2-h264-enc.c | 1322 ++++++++++
> drivers/media/v4l2-core/v4l2-h264.c | 69 +
> include/media/v4l2-ctrls.h | 2 +
> include/media/v4l2-h264-enc-rbsp.h | 72 +
> include/media/v4l2-h264-enc-rc.h | 108 +
> include/media/v4l2-h264-enc.h | 135 ++
> include/media/v4l2-h264.h | 146 ++
> include/uapi/linux/v4l2-controls.h | 33 +
> include/uapi/linux/videodev2.h | 1 +
> 27 files changed, 7231 insertions(+), 21 deletions(-)
> create mode 100644 drivers/media/platform/verisilicon/hantro_vc8000e.c
> create mode 100644 drivers/media/platform/verisilicon/hantro_vc8000e_h264_enc.c
> create mode 100644 drivers/media/platform/verisilicon/hantro_vc8000e_regs.h
> create mode 100644 drivers/media/v4l2-core/v4l2-h264-enc-rbsp.c
> create mode 100644 drivers/media/v4l2-core/v4l2-h264-enc-rc.c
> create mode 100644 drivers/media/v4l2-core/v4l2-h264-enc.c
> create mode 100644 include/media/v4l2-h264-enc-rbsp.h
> create mode 100644 include/media/v4l2-h264-enc-rc.h
> create mode 100644 include/media/v4l2-h264-enc.h
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
next prev parent reply other threads:[~2026-05-22 14:47 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-22 10:16 Paul Kocialkowski
2026-05-22 10:16 ` [PATCH 01/14] media: h264: Add a more generic reflist builder init Paul Kocialkowski
2026-05-22 10:16 ` [PATCH 02/14] media: uapi: Add H.264 stateless encode support Paul Kocialkowski
2026-05-22 10:16 ` [PATCH 03/14] media: h264: Add SPS video definitions Paul Kocialkowski
2026-05-22 10:16 ` [PATCH 04/14] media: h264: Add stateless encode core Paul Kocialkowski
2026-05-22 10:16 ` [PATCH 05/14] media: h264: Add stateless encode rbsp Paul Kocialkowski
2026-05-22 10:16 ` [PATCH 06/14] media: h264: Add stateless encode reference management Paul Kocialkowski
2026-05-22 10:16 ` [PATCH 07/14] media: h264: Add stateless encode rate control Paul Kocialkowski
2026-05-22 10:16 ` [PATCH 08/14] media: verisilicon: Report default pixel coding for non-JPEG and fix JPEG case Paul Kocialkowski
2026-05-22 10:16 ` [PATCH 09/14] media: verisilicon: Cancel job with runtime pm put/clk disable on failure Paul Kocialkowski
2026-05-22 10:16 ` [PATCH 10/14] media: hantro: use hantro_decoded_buffer only for dst_vq Paul Kocialkowski
2026-05-22 10:16 ` [PATCH 11/14] media: verisilicon: Add common encoder parm and frameintervals ioctls Paul Kocialkowski
2026-05-22 10:16 ` [PATCH 12/14] media: verisilicon: Add support for the VC8000E H.264 encoder Paul Kocialkowski
2026-05-22 10:16 ` [PATCH 13/14] media: verilisicon: imx8m: Add support for the VC8000E on i.MX8MP Paul Kocialkowski
2026-05-22 10:16 ` [PATCH 14/14] arm64: dts: imx8mp: add VC8000E encoder node Paul Kocialkowski
2026-05-22 11:28 ` Fabio Estevam
2026-05-22 14:47 ` Nicolas Dufresne [this message]
2026-09-23 12:10 ` [PATCH 00/14] media: Add V4L2 H.264 stateless encode and VC8000E support Michael Nazzareno Trimarchi
2026-09-23 20:05 ` Paul Kocialkowski
2026-09-24 5:30 ` Michael Nazzareno Trimarchi
2026-09-24 18:09 ` Paul Kocialkowski
2026-09-24 19:38 ` Michael Nazzareno Trimarchi
2026-09-24 19:44 ` Nicolas Dufresne
2026-09-24 20:30 ` Paul Kocialkowski
2026-09-24 20:46 ` Nicolas Dufresne
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=ad9788bba0851dcb86c22f40c2562f2a57ac8e6c.camel@collabora.com \
--to=nicolas.dufresne@collabora.com \
--cc=benjamin.gaignard@collabora.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=hverkuil@kernel.org \
--cc=imx@lists.linux.dev \
--cc=kernel@pengutronix.de \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=m.felsch@pengutronix.de \
--cc=m.tretter@pengutronix.de \
--cc=mchehab@kernel.org \
--cc=p.zabel@pengutronix.de \
--cc=paulk@sys-base.io \
--cc=robh@kernel.org \
--cc=s.hauer@pengutronix.de \
--cc=shawnguo@kernel.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
all inboxes | Powered by JetHome®