media: uapi: h264: Update reference lists

When dealing with interlaced frames, reference lists must tell if
each particular reference is meant for top or bottom field. This info
is currently not provided at all in the H264 related controls.

Change reference lists to hold a structure, which specifies
an index into the DPB array and the field/frame specification
for the picture.

Currently the only user of these lists is Cedrus which is just compile
fixed here. Actual usage of will come in a following commit.

Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
Tested-by: Jonas Karlman <jonas@kwiboo.se>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This commit is contained in:
Jernej Skrabec
2020-08-25 05:52:27 +02:00
committed by Mauro Carvalho Chehab
parent ab3d4b41b4
commit e000e1fa4b
3 changed files with 60 additions and 11 deletions

View File

@@ -1843,10 +1843,10 @@ enum v4l2_mpeg_video_h264_hierarchical_coding_type -
* - __u32
- ``slice_group_change_cycle``
-
* - __u8
* - struct :c:type:`v4l2_h264_reference`
- ``ref_pic_list0[32]``
- Reference picture list after applying the per-slice modifications
* - __u8
* - struct :c:type:`v4l2_h264_reference`
- ``ref_pic_list1[32]``
- Reference picture list after applying the per-slice modifications
* - __u32
@@ -1926,6 +1926,46 @@ enum v4l2_mpeg_video_h264_hierarchical_coding_type -
- ``chroma_offset[32][2]``
-
``Picture Reference``
.. c:type:: v4l2_h264_reference
.. cssclass:: longtable
.. flat-table:: struct v4l2_h264_reference
:header-rows: 0
:stub-columns: 0
:widths: 1 1 2
* - __u8
- ``fields``
- Specifies how the picture is referenced. See :ref:`Reference Fields <h264_ref_fields>`
* - __u8
- ``index``
- Index into the :c:type:`v4l2_ctrl_h264_decode_params`.dpb array.
.. _h264_ref_fields:
``Reference Fields``
.. cssclass:: longtable
.. flat-table::
:header-rows: 0
:stub-columns: 0
:widths: 1 1 2
* - ``V4L2_H264_TOP_FIELD_REF``
- 0x1
- The top field in field pair is used for short-term reference.
* - ``V4L2_H264_BOTTOM_FIELD_REF``
- 0x2
- The bottom field in field pair is used for short-term reference.
* - ``V4L2_H264_FRAME_REF``
- 0x3
- The frame (or the top/bottom fields, if it's a field pair)
is used for short-term reference.
``V4L2_CID_MPEG_VIDEO_H264_DECODE_PARAMS (struct)``
Specifies the decode parameters (as extracted from the bitstream)
for the associated H264 slice data. This includes the necessary