Hello,
This is a first batch of adjustments to the stateless H264 decoder
uAPI. The first one is about adding support for per-frame decoding,
which is the only mode supported on some codecs (the hantro G1 block
supports per-slice decoding but not in an way that would allow
efficient multiplexing of several decoding contexts).
The second modification drops the P0/B0/B1 ref lists from the
decode_params control. These lists are no longer needed now that we know
we can build them kernel side based on the DPB.
There are few more changes in the pipe, but I'd like to sync with Paul,
Jonas, Jernej and Nicolas before modifying:
* Enforce order of the scaling list (looks like the rockchip and cedrus
have different expectations)
* Pass top/bottom field info as flags in the DPB entry: the field
attached to the capture buffer is not accurate as capture bufs might
contain both top/bottom (meaning they are actually interlaced), but a
coded frame might contain only one of these fields. Note
that there's also a problem with the output -> capture field flag
propagation we have in copy_metadata() because a coded slice might
contain only data for top or bottom, but the capture frame might
contain both. Doing capture->field = output->field means we're lying
about what's inside the capture buffer (not sure we have
implementation checking that)
* s/dpb/refs/: looks like we're abusing the term DPB which is supposed
to be implementation specific. What's provided by the bitstream is a
list of references that will be used to decode a frame
* ... (add your own)
Feel free to comment on these changes and/or propose alternatives.
Regards,
Boris
Changes in v3:
* s/per-{slice,frame}/{slice,frame}-based/ decoding
* Add Paul's R-b on patch 1 and 2
Changes in v2:
* Allow decoding multiple slices in per-slice decoding mode
* Minor doc improvements/fixes
Boris Brezillon (3):
media: uapi: h264: Clarify our expectations regarding NAL header
format
media: uapi: h264: Add the concept of decoding mode
media: uapi: h264: Get rid of the p0/b0/b1 ref-lists
.../media/uapi/v4l/ext-ctrls-codec.rst | 57 +++++++++++++++----
drivers/media/v4l2-core/v4l2-ctrls.c | 9 +++
include/media/h264-ctrls.h | 13 +++++
3 files changed, 69 insertions(+), 10 deletions(-)
--
2.21.0