linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 00/19] Clean H264 stateless uAPI
@ 2020-08-14 13:36 Ezequiel Garcia
  2020-08-14 13:36 ` [PATCH v3 01/19] media: uapi: h264: Update reference lists Ezequiel Garcia
                   ` (18 more replies)
  0 siblings, 19 replies; 26+ messages in thread
From: Ezequiel Garcia @ 2020-08-14 13:36 UTC (permalink / raw)
  To: linux-media, linux-kernel
  Cc: Tomasz Figa, kernel, Jonas Karlman, Hans Verkuil,
	Alexandre Courbot, Jeffrey Kardatzke, Nicolas Dufresne,
	Philipp Zabel, Maxime Ripard, Paul Kocialkowski, Jernej Skrabec,
	Ezequiel Garcia

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


^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2020-08-20  9:12 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-14 13:36 [PATCH v3 00/19] Clean H264 stateless uAPI Ezequiel Garcia
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

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).