[h265d_syntax]: Fix hw rps err

Signed-off-by: yandong.lin <yandong.lin@rock-chips.com>
Change-Id: I3ae9d743c91c892aecb2e5243d0d2305e15091d8
This commit is contained in:
yandong.lin
2020-10-14 14:53:17 +08:00
committed by Herman Chen
parent 1603bb3f16
commit 38d5d62c33

View File

@@ -167,18 +167,22 @@ static void fill_picture_parameters(const HEVCContext *h,
}
for (i = 0; i < 64; i++) {
if (i < sps->nb_st_rps) {
pp->sps_st_rps[i].num_negative_pics = sps->st_rps[i].num_negative_pics;
pp->sps_st_rps[i].num_positive_pics = sps->st_rps[i].num_delta_pocs - sps->st_rps[i].num_negative_pics;
const ShortTermRPS *src_rps = sps->st_rps;
Short_SPS_RPS_HEVC *dst_rps = pp->sps_st_rps;
RK_U32 n_pics = src_rps->num_negative_pics;
for (j = 0; j < pp->sps_st_rps[i].num_negative_pics; j++) {
pp->sps_st_rps[i].delta_poc_s0[j] = sps->st_rps[i].delta_poc[j];
pp->sps_st_rps[i].s0_used_flag[j] = sps->st_rps[i].used[j];
if (i < sps->nb_st_rps) {
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 < (RK_U32)sps->st_rps[i].num_delta_pocs; j++) {
pp->sps_st_rps[i].delta_poc_s1[j] = sps->st_rps[i].delta_poc[j];
pp->sps_st_rps[i].s1_used_flag[j] = sps->st_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];
}
}
}