[h265d_parser2_syntax]: Optimize syntax fill

Change-Id: Ia60e1b3df5e7b72d5c6c2f67a359669e3903b08c
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
This commit is contained in:
sayon.chen
2021-05-08 16:00:13 +08:00
committed by Herman Chen
parent a73905adae
commit b75f833e74
2 changed files with 24 additions and 17 deletions

View File

@@ -164,26 +164,28 @@ static void fill_picture_parameters(const HEVCContext *h,
pp->CurrPicOrderCntVal = h->poc;
pp->ps_update_flag = h->ps_need_upate;
for (i = 0; i < 32; i++) {
pp->sps_lt_rps[i].lt_ref_pic_poc_lsb = sps->lt_ref_pic_poc_lsb_sps[i];
pp->sps_lt_rps[i].used_by_curr_pic_lt_flag = sps->used_by_curr_pic_lt_sps_flag[i];
}
if (pp->ps_update_flag) {
for (i = 0; i < 32; i++) {
pp->sps_lt_rps[i].lt_ref_pic_poc_lsb = sps->lt_ref_pic_poc_lsb_sps[i];
pp->sps_lt_rps[i].used_by_curr_pic_lt_flag = sps->used_by_curr_pic_lt_sps_flag[i];
}
for (i = 0; i < 64; i++) {
if (i < sps->nb_st_rps) {
for (i = 0; i < 64; i++) {
if (i < sps->nb_st_rps) {
RK_U32 n_pics = src_rps[i].num_negative_pics;
dst_rps[i].num_negative_pics = n_pics;
dst_rps[i].num_positive_pics = src_rps[i].num_delta_pocs - n_pics;
for (j = 0; j < dst_rps[i].num_negative_pics; j++) {
dst_rps[i].delta_poc_s0[j] = src_rps[i].delta_poc[j];
dst_rps[i].s0_used_flag[j] = src_rps[i].used[j];
}
RK_U32 n_pics = src_rps[i].num_negative_pics;
dst_rps[i].num_negative_pics = n_pics;
dst_rps[i].num_positive_pics = src_rps[i].num_delta_pocs - n_pics;
for (j = 0; j < dst_rps[i].num_negative_pics; j++) {
dst_rps[i].delta_poc_s0[j] = src_rps[i].delta_poc[j];
dst_rps[i].s0_used_flag[j] = src_rps[i].used[j];
}
for ( j = 0; j < dst_rps[i].num_positive_pics; j++) {
dst_rps[i].delta_poc_s1[j] = src_rps[i].delta_poc[j + n_pics];
dst_rps[i].s1_used_flag[j] = src_rps[i].used[j + n_pics];
for ( j = 0; j < dst_rps[i].num_positive_pics; j++) {
dst_rps[i].delta_poc_s1[j] = src_rps[i].delta_poc[j + n_pics];
dst_rps[i].s1_used_flag[j] = src_rps[i].used[j + n_pics];
}
}
}
}
@@ -260,7 +262,9 @@ static void fill_scaling_lists(const HEVCContext *h, DXVA_Qmatrix_HEVC *qm)
const HEVCSPS *sps = (HEVCSPS *)h->sps_list[pps->sps_id];
const ScalingList *sl = pps->scaling_list_data_present_flag ?
&pps->scaling_list : &sps->scaling_list;
if (!sps->scaling_list_enable_flag) {
return;
}
memset(qm, 0, sizeof(DXVA_Qmatrix_HEVC));
for (i = 0; i < 6; i++) {
for (j = 0; j < 16; j++) {

View File

@@ -695,6 +695,9 @@ void hal_h265d_output_scalinglist_packet(void *hal, void *ptr, void *dxva)
RK_U32 i, j, pos;
h265d_dxva2_picture_context_t *dxva_cxt = (h265d_dxva2_picture_context_t*)dxva;
HalH265dCtx *reg_cxt = ( HalH265dCtx *)hal;
if (!dxva_cxt->pp.scaling_list_enabled_flag) {
return;
}
if (memcmp((void*)&dxva_cxt->qm, reg_cxt->scaling_qm, sizeof(DXVA_Qmatrix_HEVC))) {
memset(&sl, 0, sizeof(scalingList_t));
for (i = 0; i < 6; i++) {