[PATCH 0/3] media: uapi: cedrus: Fix decoding interlaced H264 content

From: Jernej Skrabec
Date: Thu Jun 04 2020 - 14:55:25 EST

Currently H264 interlaced content it's not properly decoded on Cedrus.
There are two reasons for this:
1. slice parameters control doesn't provide enough information
2. bug in frame list construction in Cedrus driver

As described in commit message in patch 1, references stored in
reference lists should tell if reference targets top or bottom field.
However, this information is currently not provided. Patch 1 adds
it in form of flags which are set for each reference. Patch 2 then
uses those flags in Cedrus driver.

Frame list construction is fixed in patch 3.

This solution was extensively tested using Kodi on LibreELEC with A64,
H3, H5 and H6 SoCs in slightly different form (flags were transmitted
in MSB bits in index).

Note: I'm not 100% sure if flags for both, top and bottom fields are
needed. Any input here would be welcome.

Please take a look.

Best regards,

Jernej Skrabec (3):
media: uapi: h264: update reference lists
media: cedrus: h264: Properly configure reference field
media: cedrus: h264: Fix frame list construction

.../media/v4l/ext-ctrls-codec.rst | 40 ++++++++++++++++++-
.../staging/media/sunxi/cedrus/cedrus_h264.c | 27 +++++++------
include/media/h264-ctrls.h | 12 +++++-
3 files changed, 62 insertions(+), 17 deletions(-)