From: Ezequiel Garcia <ezequiel@collabora.com>
To: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: Tomasz Figa <tfiga@chromium.org>,
kernel@collabora.com, Jonas Karlman <jonas@kwiboo.se>,
Hans Verkuil <hverkuil@xs4all.nl>,
Alexandre Courbot <acourbot@chromium.org>,
Jeffrey Kardatzke <jkardatzke@chromium.org>,
Nicolas Dufresne <nicolas.dufresne@collabora.com>,
Philipp Zabel <p.zabel@pengutronix.de>,
Maxime Ripard <mripard@kernel.org>,
Paul Kocialkowski <paul.kocialkowski@bootlin.com>,
Jernej Skrabec <jernej.skrabec@siol.net>,
Ezequiel Garcia <ezequiel@collabora.com>
Subject: [PATCH v3 00/19] Clean H264 stateless uAPI
Date: Fri, 14 Aug 2020 10:36:15 -0300 [thread overview]
Message-ID: <20200814133634.95665-1-ezequiel@collabora.com> (raw)
One more round for the H.264 uAPI cleanup, which as discussed
aims at being stabilized and promoted as a first-class public uAPI soon.
The biggest change here is the rename (and implementation in drivers)
of the V4L2_H264_PPS_FLAG_SCALING_MATRIX_PRESENT flag. The semantics
of this flag are now properly specified and implemented as
discussed on the mailing list, https://lkml.org/lkml/2020/8/11/888.
Note that your favourite rabbit's video may omit a scaling matrix,
as well as any video with a profile lower than High. So, proper testing
of these patches requires a video that specifies some (non-flat) scaling matrix.
It should be noted that there is already GStreamer native
support for this interface, which will be part of 1.18,
once it's released.
I have pushed a branch porting GStreamer to
support these interface changes:
https://gitlab.freedesktop.org/ezequielgarcia/gst-plugins-bad/-/commits/for_h264_uapi_v4
Changelog:
v2->v3:
* Clarify SCALING_MATRIX present flag.
* Implement optional scaling matrix on hantro, rkvdec and cedrus.
* Make prediction weight table properly optional on cedrus.
* Rename field reference types.
v1->v2:
* Clean SLICE_PARAMS documentation, which we don't
expect to be part of an array anymore.
* Clarify how frame-based and slice-based modes
are expected to work.
* Add Cedrus patches to fix field references,
as requested by Jernej.
* Fix wrongly removed SPS in rkvdec.
* Fix rkvdec DPB reference implementation.
* Fix missing Cedrus and missing control member,
for prediction weight table control.
* Say "raster scan" instead of "matrix" in the docs.
* Drop duplicated macros and use v4l2_h264_dpb_reference
for the DPB reference signalling.
RFC->v1:
* Split prediction weight table to a separate control.
* Increase size of first_mb_in_slice field.
* Cleanup DPB entry interface, to support field coding.
* Increase of DPB entry pic_num field.
* Move slice invariant fields to the per-frame control.
Ezequiel Garcia (15):
media: uapi: h264: Further clarify scaling lists order
media: uapi: h264: Split prediction weight parameters
media: uapi: h264: Increase size of 'first_mb_in_slice' field
media: uapi: h264: Clean DPB entry interface
media: uapi: h264: Increase size of DPB entry pic_num
media: uapi: h264: Drop SLICE_PARAMS 'size' field
media: uapi: h264: Clarify SLICE_BASED mode
media: uapi: h264: Clean slice invariants syntax elements
media: uapi: h264: Rename and clarify PPS_FLAG_SCALING_MATRIX_PRESENT
media: hantro: Don't require unneeded H264_SLICE_PARAMS
media: rkvdec: Don't require unneeded H264_SLICE_PARAMS
media: rkvdec: Drop unneeded per_request driver-specific control flag
media: rkvdec: Use H264_SCALING_MATRIX only when required
media: hantro: Use H264_SCALING_MATRIX only when required
media: cedrus: Use H264_SCALING_MATRIX only when required
Jernej Skrabec (3):
media: uapi: h264: Update reference lists
media: cedrus: h264: Properly configure reference field
media: cedrus: h264: Fix frame list construction
Philipp Zabel (1):
media: uapi: h264: Clarify pic_order_cnt_bit_size field
.../media/v4l/ext-ctrls-codec.rst | 229 ++++++++++--------
drivers/media/v4l2-core/v4l2-ctrls.c | 28 +++
drivers/media/v4l2-core/v4l2-h264.c | 12 +-
drivers/staging/media/hantro/hantro_drv.c | 5 -
.../staging/media/hantro/hantro_g1_h264_dec.c | 26 +-
drivers/staging/media/hantro/hantro_h264.c | 12 +-
drivers/staging/media/hantro/hantro_hw.h | 2 -
drivers/staging/media/rkvdec/rkvdec-h264.c | 37 ++-
drivers/staging/media/rkvdec/rkvdec.c | 12 +-
drivers/staging/media/rkvdec/rkvdec.h | 1 -
drivers/staging/media/sunxi/cedrus/cedrus.c | 9 +-
drivers/staging/media/sunxi/cedrus/cedrus.h | 1 +
.../staging/media/sunxi/cedrus/cedrus_dec.c | 2 +
.../staging/media/sunxi/cedrus/cedrus_h264.c | 61 +++--
include/media/h264-ctrls.h | 89 ++++---
include/media/v4l2-ctrls.h | 2 +
include/media/v4l2-h264.h | 3 +-
17 files changed, 290 insertions(+), 241 deletions(-)
--
2.27.0
next reply other threads:[~2020-08-14 13:36 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-14 13:36 Ezequiel Garcia [this message]
2020-08-14 13:36 ` [PATCH v3 01/19] media: uapi: h264: Update reference lists Ezequiel Garcia
2020-08-20 9:11 ` Hans Verkuil
2020-08-14 13:36 ` [PATCH v3 02/19] media: uapi: h264: Further clarify scaling lists order Ezequiel Garcia
2020-08-14 13:36 ` [PATCH v3 03/19] media: uapi: h264: Split prediction weight parameters Ezequiel Garcia
2020-08-14 13:36 ` [PATCH v3 04/19] media: uapi: h264: Clarify pic_order_cnt_bit_size field Ezequiel Garcia
2020-08-14 13:36 ` [PATCH v3 05/19] media: uapi: h264: Increase size of 'first_mb_in_slice' field Ezequiel Garcia
2020-08-14 13:36 ` [PATCH v3 06/19] media: uapi: h264: Clean DPB entry interface Ezequiel Garcia
2020-08-20 9:12 ` Hans Verkuil
2020-08-14 13:36 ` [PATCH v3 07/19] media: uapi: h264: Increase size of DPB entry pic_num Ezequiel Garcia
2020-08-14 13:36 ` [PATCH v3 08/19] media: uapi: h264: Drop SLICE_PARAMS 'size' field Ezequiel Garcia
2020-08-14 13:36 ` [PATCH v3 09/19] media: uapi: h264: Clarify SLICE_BASED mode Ezequiel Garcia
2020-08-14 13:36 ` [PATCH v3 10/19] media: uapi: h264: Clean slice invariants syntax elements Ezequiel Garcia
2020-08-14 13:36 ` [PATCH v3 11/19] media: uapi: h264: Rename and clarify PPS_FLAG_SCALING_MATRIX_PRESENT Ezequiel Garcia
2020-08-14 13:36 ` [PATCH v3 12/19] media: hantro: Don't require unneeded H264_SLICE_PARAMS Ezequiel Garcia
2020-08-14 13:36 ` [PATCH v3 13/19] media: rkvdec: " Ezequiel Garcia
2020-08-14 13:36 ` [PATCH v3 14/19] media: cedrus: h264: Properly configure reference field Ezequiel Garcia
2020-08-14 13:36 ` [PATCH v3 15/19] media: cedrus: h264: Fix frame list construction Ezequiel Garcia
2020-08-14 13:36 ` [PATCH v3 16/19] media: rkvdec: Drop unneeded per_request driver-specific control flag Ezequiel Garcia
2020-08-18 20:17 ` Jonas Karlman
2020-08-18 21:38 ` Ezequiel Garcia
2020-08-18 22:25 ` Jonas Karlman
2020-08-19 14:37 ` [PATCH v4] " Ezequiel Garcia
2020-08-14 13:36 ` [PATCH v3 17/19] media: rkvdec: Use H264_SCALING_MATRIX only when required Ezequiel Garcia
2020-08-14 13:36 ` [PATCH v3 18/19] media: hantro: " Ezequiel Garcia
2020-08-14 13:36 ` [PATCH v3 19/19] media: cedrus: " Ezequiel Garcia
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=20200814133634.95665-1-ezequiel@collabora.com \
--to=ezequiel@collabora.com \
--cc=acourbot@chromium.org \
--cc=hverkuil@xs4all.nl \
--cc=jernej.skrabec@siol.net \
--cc=jkardatzke@chromium.org \
--cc=jonas@kwiboo.se \
--cc=kernel@collabora.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mripard@kernel.org \
--cc=nicolas.dufresne@collabora.com \
--cc=p.zabel@pengutronix.de \
--cc=paul.kocialkowski@bootlin.com \
--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
Powered by JetHome