mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 22:21:40 +00:00
media: uapi: HEVC: Add num_delta_pocs_of_ref_rps_idx field
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@collabora.com> Signed-off-by: Yunfei Dong <yunfei.dong@mediatek.com> Reviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> [hverkuil: fix typo in num_delta_pocs_of_ref_rps_idx doc]
This commit is contained in:
parent
aaeb31c00e
commit
ae440c5da3
@ -2923,6 +2923,13 @@ This structure contains all loop filter related parameters. See sections
|
|||||||
- ``poc_lt_curr[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]``
|
- ``poc_lt_curr[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]``
|
||||||
- PocLtCurr as described in section 8.3.2 "Decoding process for reference
|
- 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.
|
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 as the 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`
|
* - struct :c:type:`v4l2_hevc_dpb_entry`
|
||||||
- ``dpb[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]``
|
- ``dpb[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]``
|
||||||
- The decoded picture buffer, for meta-data about reference frames.
|
- The decoded picture buffer, for meta-data about reference frames.
|
||||||
|
@ -2385,6 +2385,9 @@ struct v4l2_ctrl_hevc_slice_params {
|
|||||||
* @poc_st_curr_after: provides the index of the short term after references
|
* @poc_st_curr_after: provides the index of the short term after references
|
||||||
* in DPB array
|
* in DPB array
|
||||||
* @poc_lt_curr: provides the index of the long term 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.
|
* @reserved: padding field. Should be zeroed by applications.
|
||||||
* @dpb: the decoded picture buffer, for meta-data about reference frames
|
* @dpb: the decoded picture buffer, for meta-data about reference frames
|
||||||
* @flags: see V4L2_HEVC_DECODE_PARAM_FLAG_{}
|
* @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_before[V4L2_HEVC_DPB_ENTRIES_NUM_MAX];
|
||||||
__u8 poc_st_curr_after[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 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];
|
struct v4l2_hevc_dpb_entry dpb[V4L2_HEVC_DPB_ENTRIES_NUM_MAX];
|
||||||
__u64 flags;
|
__u64 flags;
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user