[PATCH v5 00/10] MPEG-2 stateless API cleanup and destaging

From: Ezequiel Garcia
Date: Sat Apr 03 2021 - 14:08:30 EST


Hi everyone,

Over the last few weeks Daniel Almeida and Nicolas Dufresne
have been working on GStreamer v4l2codecs support for stateless
MPEG-2 decoding.

This allowed us to re-review the MPEG-2 specification and re-discuss
the API with some additional insight. The API now looks quite cleaner,
and hopefully ready for destaging.

This series is mostly thanks to Daniel and Nicolas!

Patches 1 to 7 cleanup the API, and patches 8 to 10 move it
out of staging.

This is tested on i.MX8M and RK3399 platforms, using GStreamer
v4l2codecs, which will be upstream very soon.

v5:
* Rename "quantization" to "quantisation", so the terminology
matches the MPEG-2 specification.
This is the only change in v5, compared to v4.

v4:
* Rework and clarify quantization matrices control semantics.
* Move reference buffer fields to the picture parameter control.
* Remove slice parameters control. This can be added back in the
future if needed, but for now it's not used.
See patch 6/9 for details.
* Destage the API.

v3:
* No API changes, just minor boilerplate fixes for the new
controls to be properly exposed, initialized and validated.

v2:
* Fixed bad use of boolean negation in a flag, which
was fortunately reported by 0day bot.

Ezequiel Garcia (10):
media: uapi: mpeg2: Rename "quantization" to "quantisation"
media: uapi: mpeg2: rework quantisation matrices semantics
media: uapi: mpeg2: Cleanup flags
media: uapi: mpeg2: Split sequence and picture parameters
media: uapi: mpeg2: Move reference buffer fields
media: hantro/cedrus: Remove unneeded slice size and slice offset
media: uapi: mpeg2: Remove V4L2_CID_MPEG_VIDEO_MPEG2_SLICE_PARAMS
media: controls: Log MPEG-2 stateless control in .std_log
media: uapi: Move the MPEG-2 stateless control type out of staging
media: uapi: move MPEG-2 stateless controls out of staging

.../media/v4l/ext-ctrls-codec-stateless.rst | 218 +++++
.../media/v4l/ext-ctrls-codec.rst | 217 -----
.../media/v4l/pixfmt-compressed.rst | 11 +-
.../media/v4l/vidioc-g-ext-ctrls.rst | 12 +
.../media/v4l/vidioc-queryctrl.rst | 18 +-
.../media/videodev2.h.rst.exceptions | 5 +-
drivers/media/v4l2-core/v4l2-async-core.c | 880 ++++++++++++++++++
drivers/media/v4l2-core/v4l2-ctrls.c | 118 ++-
drivers/staging/media/hantro/hantro_drv.c | 9 +-
.../media/hantro/hantro_g1_mpeg2_dec.c | 110 +--
drivers/staging/media/hantro/hantro_hw.h | 2 +-
drivers/staging/media/hantro/hantro_mpeg2.c | 2 +-
.../media/hantro/rk3399_vpu_hw_mpeg2_dec.c | 106 +--
drivers/staging/media/sunxi/cedrus/cedrus.c | 10 +-
drivers/staging/media/sunxi/cedrus/cedrus.h | 5 +-
.../staging/media/sunxi/cedrus/cedrus_dec.c | 10 +-
.../staging/media/sunxi/cedrus/cedrus_mpeg2.c | 97 +-
include/media/mpeg2-ctrls.h | 82 --
include/media/v4l2-ctrls.h | 11 +-
include/uapi/linux/v4l2-controls.h | 114 +++
include/uapi/linux/videodev2.h | 7 +
21 files changed, 1492 insertions(+), 552 deletions(-)
create mode 100644 drivers/media/v4l2-core/v4l2-async-core.c
delete mode 100644 include/media/mpeg2-ctrls.h

--
2.30.0