frontends/va: Add HEVC decode args: IntraPicFlag, no_pic_reordering_flag, no_bipred_flag

Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18328>
This commit is contained in:
Sil Vilerino
2022-09-06 10:31:51 -04:00
parent a6e32bf15b
commit c7acd6788e
2 changed files with 17 additions and 0 deletions
+5
View File
@@ -37,6 +37,10 @@ void vlVaHandlePictureParameterBufferHEVC(vlVaDriver *drv, vlVaContext *context,
context->desc.h265.pps->sps->chroma_format_idc = hevc->pic_fields.bits.chroma_format_idc;
context->desc.h265.pps->sps->separate_colour_plane_flag =
hevc->pic_fields.bits.separate_colour_plane_flag;
context->desc.h265.pps->sps->no_pic_reordering_flag =
hevc->pic_fields.bits.NoPicReorderingFlag;
context->desc.h265.pps->sps->no_bi_pred_flag =
hevc->pic_fields.bits.NoBiPredFlag;
context->desc.h265.pps->sps->pic_width_in_luma_samples = hevc->pic_width_in_luma_samples;
context->desc.h265.pps->sps->pic_height_in_luma_samples = hevc->pic_height_in_luma_samples;
context->desc.h265.pps->sps->bit_depth_luma_minus8 = hevc->bit_depth_luma_minus8;
@@ -143,6 +147,7 @@ void vlVaHandlePictureParameterBufferHEVC(vlVaDriver *drv, vlVaContext *context,
context->desc.h265.IDRPicFlag = hevc->slice_parsing_fields.bits.IdrPicFlag;
context->desc.h265.RAPPicFlag = hevc->slice_parsing_fields.bits.RapPicFlag;
context->desc.h265.IntraPicFlag = hevc->slice_parsing_fields.bits.IntraPicFlag;
context->desc.h265.CurrPicOrderCntVal = hevc->CurrPic.pic_order_cnt;
+12
View File
@@ -600,6 +600,8 @@ struct pipe_h265_sps
uint8_t num_long_term_ref_pics_sps;
uint8_t sps_temporal_mvp_enabled_flag;
uint8_t strong_intra_smoothing_enabled_flag;
uint8_t no_pic_reordering_flag;
uint8_t no_bi_pred_flag;
};
struct pipe_h265_pps
@@ -652,6 +654,16 @@ struct pipe_h265_picture_desc
uint8_t IDRPicFlag;
uint8_t RAPPicFlag;
/*
When the current picture is an IRAP picture, IntraPicFlag shall be equal to 1.
When the current picture is not an IRAP picture, the host software decoder is
not required to determine whether all slices of the current picture are I slices
i.e. it may simply set IntraPicFlag to 0 in this case....
Some frontends have IntraPicFlag defined (ie. VAPictureParameterBufferHEVC)
and some others like VDPAU/OMX can derive it from RAPPicFlag
*/
uint8_t IntraPicFlag;
uint8_t CurrRpsIdx;
uint32_t NumPocTotalCurr;
uint32_t NumDeltaPocsOfRefRpsIdx;