[PATCH 0/7] media: cedrus: h265: Implement tiles support

From: Jernej Skrabec
Date: Mon Jun 20 2022 - 13:55:41 EST


Now that we have full and stable HEVC uAPI, let's implement last big
missing piece of HEVC in Cedrus - tiles support. This is done in
last patch. Before that, there are bug fixes (patch 1 & 2, previously
submitted separately in [1]), error handling improvements (patch 3, 4)
and added helper for dealing with dynamic arrays (patch 5).

These patches are based on top of [2].

Final fluster score with this series is 125/147. 11 bitstreams are
MAIN10, which is not yet properly supported. 5 bitstreams need better
memory management with auxiliary buffers (wip patches exists). 4 are
too big and 2 probably fails due to ffmpeg implementation.

Used ffmpeg source is in [3].

Note - Cedrus driver currently supports only one slice per request since
HW takes data for 1 slice only. This can be improved by loading data for
next slice automatically after HW signalled end of decoding. Something
for later.

Please take a look.

Best regards,
Jernej

[1] https://patchwork.linuxtv.org/project/linux-media/list/?series=8187
[2] https://patchwork.linuxtv.org/project/linux-media/list/?series=8208
[3] https://github.com/jernejsk/FFmpeg/commits/hevc-mainline

Jernej Skrabec (7):
media: cedrus: h265: Fix flag name
media: cedrus: h265: Fix logic for not low delay flag
media: cedrus: Improve error messages for controls
media: cedrus: Add error handling for failed setup
media: cedrus: h265: Add a couple of error checks
media: cedrus: Add helper for determining number of elements
media: cedrus: h265: Implement support for tiles

drivers/staging/media/sunxi/cedrus/cedrus.c | 28 +++-
drivers/staging/media/sunxi/cedrus/cedrus.h | 7 +-
.../staging/media/sunxi/cedrus/cedrus_dec.c | 25 ++-
.../staging/media/sunxi/cedrus/cedrus_h264.c | 5 +-
.../staging/media/sunxi/cedrus/cedrus_h265.c | 153 ++++++++++++++++--
.../staging/media/sunxi/cedrus/cedrus_mpeg2.c | 4 +-
.../staging/media/sunxi/cedrus/cedrus_regs.h | 3 +-
.../staging/media/sunxi/cedrus/cedrus_vp8.c | 5 +-
8 files changed, 204 insertions(+), 26 deletions(-)

--
2.36.1