media: uapi: HEVC: Add SEI pic struct flags

The possible values for the field_pic field in the v4l2_hevc_dpb_entry
structure are defined in the table D.2 in HEVC specification section D.3.3.
Add flags and documentation for each of them.

Signed-off-by: Benjamin Gaignard <benjamin.gaignard@collabora.com>
Reviewed-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
Acked-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Tested-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
This commit is contained in:
Benjamin Gaignard 2022-07-08 17:21:46 +01:00 committed by Mauro Carvalho Chehab
parent c4a179c716
commit 24aab5985f
2 changed files with 68 additions and 0 deletions

View File

@ -3218,6 +3218,7 @@ enum v4l2_mpeg_video_hevc_size_of_length_field -
* - __u8
- ``field_pic``
- Whether the reference is a field picture or a frame.
See :ref:`HEVC dpb field pic Flags <hevc_dpb_field_pic_flags>`
* - __u16
- ``pic_order_cnt[2]``
- The picture order count of the reference. Only the first element of the
@ -3231,6 +3232,59 @@ enum v4l2_mpeg_video_hevc_size_of_length_field -
\normalsize
.. _hevc_dpb_field_pic_flags:
``HEVC dpb field pic Flags``
.. raw:: latex
\scriptsize
.. flat-table::
:header-rows: 0
:stub-columns: 0
:widths: 1 1 2
* - ``V4L2_HEVC_SEI_PIC_STRUCT_FRAME``
- 0
- (progressive) Frame
* - ``V4L2_HEVC_SEI_PIC_STRUCT_TOP_FIELD``
- 1
- Top field
* - ``V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_FIELD``
- 2
- Bottom field
* - ``V4L2_HEVC_SEI_PIC_STRUCT_TOP_BOTTOM``
- 3
- Top field, bottom field, in that order
* - ``V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_TOP``
- 4
- Bottom field, top field, in that order
* - ``V4L2_HEVC_SEI_PIC_STRUCT_TOP_BOTTOM_TOP``
- 5
- Top field, bottom field, top field repeated, in that order
* - ``V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_TOP_BOTTOM``
- 6
- Bottom field, top field, bottom field repeated, in that order
* - ``V4L2_HEVC_SEI_PIC_STRUCT_FRAME_DOUBLING``
- 7
- Frame doubling
* - ``V4L2_HEVC_SEI_PIC_STRUCT_FRAME_TRIPLING``
- 8
- Frame tripling
* - ``V4L2_HEVC_SEI_PIC_STRUCT_TOP_PAIRED_PREVIOUS_BOTTOM``
- 9
- Top field paired with previous bottom field in output order
* - ``V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_PAIRED_PREVIOUS_TOP``
- 10
- Bottom field paired with previous top field in output order
* - ``V4L2_HEVC_SEI_PIC_STRUCT_TOP_PAIRED_NEXT_BOTTOM``
- 11
- Top field paired with next bottom field in output order
* - ``V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_PAIRED_NEXT_TOP``
- 12
- Bottom field paired with next top field in output order
.. c:type:: v4l2_hevc_pred_weight_table
.. raw:: latex

View File

@ -132,6 +132,20 @@ struct v4l2_ctrl_hevc_pps {
#define V4L2_HEVC_DPB_ENTRY_LONG_TERM_REFERENCE 0x01
#define V4L2_HEVC_SEI_PIC_STRUCT_FRAME 0
#define V4L2_HEVC_SEI_PIC_STRUCT_TOP_FIELD 1
#define V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_FIELD 2
#define V4L2_HEVC_SEI_PIC_STRUCT_TOP_BOTTOM 3
#define V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_TOP 4
#define V4L2_HEVC_SEI_PIC_STRUCT_TOP_BOTTOM_TOP 5
#define V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_TOP_BOTTOM 6
#define V4L2_HEVC_SEI_PIC_STRUCT_FRAME_DOUBLING 7
#define V4L2_HEVC_SEI_PIC_STRUCT_FRAME_TRIPLING 8
#define V4L2_HEVC_SEI_PIC_STRUCT_TOP_PAIRED_PREVIOUS_BOTTOM 9
#define V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_PAIRED_PREVIOUS_TOP 10
#define V4L2_HEVC_SEI_PIC_STRUCT_TOP_PAIRED_NEXT_BOTTOM 11
#define V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_PAIRED_NEXT_TOP 12
#define V4L2_HEVC_DPB_ENTRIES_NUM_MAX 16
struct v4l2_hevc_dpb_entry {