Re: [PATCH v7 04/13] media: hevc: Add fields and flags for hevc PPS
From: Ezequiel Garcia
Date: Mon Mar 29 2021 - 15:28:28 EST
On Mon, 2021-03-29 at 08:57 +0200, Benjamin Gaignard wrote:
> Add fields and flags as they are defined in
> 7.4.3.3.1 "General picture parameter set RBSP semantics of the
> H.265 ITU specification.
>
> Signed-off-by: Benjamin Gaignard <benjamin.gaignard@xxxxxxxxxxxxx>
Reviewed-by: Ezequiel Garcia <ezequiel@xxxxxxxxxxxxx>
> ---
> .../userspace-api/media/v4l/ext-ctrls-codec.rst | 14 ++++++++++++++
> include/media/hevc-ctrls.h | 4 ++++
> 2 files changed, 18 insertions(+)
>
> diff --git a/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst b/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst
> index 188aef8e40d0..92314aec655a 100644
> --- a/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst
> +++ b/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst
> @@ -2967,6 +2967,12 @@ enum v4l2_mpeg_video_hevc_size_of_length_field -
> * - __u8
> - ``num_extra_slice_header_bits``
> -
> + * - __u8
> + - ``num_ref_idx_l0_default_active_minus1``
> + - Specifies the inferred value of num_ref_idx_l0_active_minus1
> + * - __u8
> + - ``num_ref_idx_l1_default_active_minus1``
> + - Specifies the inferred value of num_ref_idx_l1_active_minus1
> * - __s8
> - ``init_qp_minus26``
> -
> @@ -3077,6 +3083,14 @@ enum v4l2_mpeg_video_hevc_size_of_length_field -
> * - ``V4L2_HEVC_PPS_FLAG_SLICE_SEGMENT_HEADER_EXTENSION_PRESENT``
> - 0x00040000
> -
> + * - ``V4L2_HEVC_PPS_FLAG_DEBLOCKING_FILTER_CONTROL_PRESENT``
> + - 0x00080000
> + - Specifies the presence of deblocking filter control syntax elements in
> + the PPS
> + * - ``V4L2_HEVC_PPS_FLAG_UNIFORM_SPACING``
> + - 0x00100000
> + - Specifies that tile column boundaries and likewise tile row boundaries
> + are distributed uniformly across the picture
>
> .. raw:: latex
>
> diff --git a/include/media/hevc-ctrls.h b/include/media/hevc-ctrls.h
> index b4cb2ef02f17..003f819ecb26 100644
> --- a/include/media/hevc-ctrls.h
> +++ b/include/media/hevc-ctrls.h
> @@ -100,10 +100,14 @@ struct v4l2_ctrl_hevc_sps {
> #define V4L2_HEVC_PPS_FLAG_PPS_DISABLE_DEBLOCKING_FILTER (1ULL << 16)
> #define V4L2_HEVC_PPS_FLAG_LISTS_MODIFICATION_PRESENT (1ULL << 17)
> #define V4L2_HEVC_PPS_FLAG_SLICE_SEGMENT_HEADER_EXTENSION_PRESENT (1ULL << 18)
> +#define V4L2_HEVC_PPS_FLAG_DEBLOCKING_FILTER_CONTROL_PRESENT (1ULL << 19)
> +#define V4L2_HEVC_PPS_FLAG_UNIFORM_SPACING (1ULL << 20)
>
> struct v4l2_ctrl_hevc_pps {
> /* ISO/IEC 23008-2, ITU-T Rec. H.265: Picture parameter set */
> __u8 num_extra_slice_header_bits;
> + __u8 num_ref_idx_l0_default_active_minus1;
> + __u8 num_ref_idx_l1_default_active_minus1;
> __s8 init_qp_minus26;
> __u8 diff_cu_qp_delta_depth;
> __s8 pps_cb_qp_offset;