lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Wed, 19 Apr 2023 16:10:38 -0400
From:   Nicolas Dufresne <nicolas.dufresne@...labora.com>
To:     Benjamin Gaignard <benjamin.gaignard@...labora.com>,
        mchehab@...nel.org, hverkuil-cisco@...all.nl
Cc:     linux-media@...r.kernel.org, linux-kernel@...r.kernel.org,
        kernel@...labora.com
Subject: Re: [PATCH] media: uapi: HEVC: Add num_delta_pocs_of_ref_rps_idx
 field

Le mardi 18 avril 2023 à 18:07 +0200, Benjamin Gaignard a écrit :
> Some drivers firmwares parse by themselves slice header and need
> num_delta_pocs_of_ref_rps_idx value to parse slice header
> short_term_ref_pic_set().
> Use one of the 4 reserved bytes to store this value without
> changing the v4l2_ctrl_hevc_decode_params structure size and padding.
> 
> This value also exist in DXVA API.
> 
> Signed-off-by: Benjamin Gaignard <benjamin.gaignard@...labora.com>
> 

Reviewed-by: Nicolas Dufresne <nicolas.dufresne@...labora.com>

For the info, this is in preparation for MTK VCODEC HEVC driver. It makes our
API (hopefully) on par with DXVA, which has always been the goal, we simply
missed it during review.

regards,
Nicolas

> ---
>  .../userspace-api/media/v4l/ext-ctrls-codec-stateless.rst  | 7 +++++++
>  include/uapi/linux/v4l2-controls.h                         | 6 +++++-
>  2 files changed, 12 insertions(+), 1 deletion(-)
> 
> diff --git a/Documentation/userspace-api/media/v4l/ext-ctrls-codec-stateless.rst b/Documentation/userspace-api/media/v4l/ext-ctrls-codec-stateless.rst
> index 3d8411acd5b8..92ce3e126929 100644
> --- a/Documentation/userspace-api/media/v4l/ext-ctrls-codec-stateless.rst
> +++ b/Documentation/userspace-api/media/v4l/ext-ctrls-codec-stateless.rst
> @@ -2923,6 +2923,13 @@ This structure contains all loop filter related parameters. See sections
>        - ``poc_lt_curr[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]``
>        - PocLtCurr as described in section 8.3.2 "Decoding process for reference
>          picture set": provides the index of the long term references in DPB array.
> +    * - __u8
> +      - ``num_delta_pocs_of_ref_rps_idx``
> +      - When the short_term_ref_pic_set_sps_flag in the slice header is equal to 0,
> +        it is the same than derived value NumDeltaPocs[RefRpsIdx]. It can be used to parse
> +        the RPS data in slice headers instead of skipping it with @short_term_ref_pic_set_size.
> +        When the value of short_term_ref_pic_set_sps_flag in the slice header is
> +        equal to 1, num_delta_pocs_of_ref_rps_idx shall be set to 0.
>      * - struct :c:type:`v4l2_hevc_dpb_entry`
>        - ``dpb[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]``
>        - The decoded picture buffer, for meta-data about reference frames.
> diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h
> index 5e80daa4ffe0..7bf59a87a1bf 100644
> --- a/include/uapi/linux/v4l2-controls.h
> +++ b/include/uapi/linux/v4l2-controls.h
> @@ -2385,6 +2385,9 @@ struct v4l2_ctrl_hevc_slice_params {
>   * @poc_st_curr_after: provides the index of the short term after references
>   *		       in DPB array
>   * @poc_lt_curr: provides the index of the long term references in DPB array
> + * @num_delta_pocs_of_ref_rps_idx: same as the derived value NumDeltaPocs[RefRpsIdx],
> + *				   can be used to parse the RPS data in slice headers
> + *				   instead of skipping it with @short_term_ref_pic_set_size.
>   * @reserved: padding field. Should be zeroed by applications.
>   * @dpb: the decoded picture buffer, for meta-data about reference frames
>   * @flags: see V4L2_HEVC_DECODE_PARAM_FLAG_{}
> @@ -2400,7 +2403,8 @@ struct v4l2_ctrl_hevc_decode_params {
>  	__u8	poc_st_curr_before[V4L2_HEVC_DPB_ENTRIES_NUM_MAX];
>  	__u8	poc_st_curr_after[V4L2_HEVC_DPB_ENTRIES_NUM_MAX];
>  	__u8	poc_lt_curr[V4L2_HEVC_DPB_ENTRIES_NUM_MAX];
> -	__u8	reserved[4];
> +	__u8	num_delta_pocs_of_ref_rps_idx;
> +	__u8	reserved[3];
>  	struct	v4l2_hevc_dpb_entry dpb[V4L2_HEVC_DPB_ENTRIES_NUM_MAX];
>  	__u64	flags;
>  };

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ