summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/dxva2_hevc.c2
-rw-r--r--libavcodec/hevc.h1
-rw-r--r--libavcodec/hevc_ps.c1
3 files changed, 3 insertions, 1 deletions
diff --git a/libavcodec/dxva2_hevc.c b/libavcodec/dxva2_hevc.c
index 7e39677ad3..79d2d2824e 100644
--- a/libavcodec/dxva2_hevc.c
+++ b/libavcodec/dxva2_hevc.c
@@ -92,7 +92,7 @@ static void fill_picture_parameters(const AVCodecContext *avctx, AVDXVAContext *
pp->init_qp_minus26 = pps->pic_init_qp_minus26;
if (h->sh.short_term_ref_pic_set_sps_flag == 0 && h->sh.short_term_rps) {
- pp->ucNumDeltaPocsOfRefRpsIdx = h->sh.short_term_rps->num_delta_pocs;
+ pp->ucNumDeltaPocsOfRefRpsIdx = h->sh.short_term_rps->rps_idx_num_delta_pocs;
pp->wNumBitsForShortTermRPSInSlice = h->sh.short_term_ref_pic_set_size;
}
diff --git a/libavcodec/hevc.h b/libavcodec/hevc.h
index 2c1aff77b3..32d6da9968 100644
--- a/libavcodec/hevc.h
+++ b/libavcodec/hevc.h
@@ -276,6 +276,7 @@ enum ScanType {
typedef struct ShortTermRPS {
unsigned int num_negative_pics;
int num_delta_pocs;
+ int rps_idx_num_delta_pocs;
int32_t delta_poc[32];
uint8_t used[32];
} ShortTermRPS;
diff --git a/libavcodec/hevc_ps.c b/libavcodec/hevc_ps.c
index d507c9ba8d..427cf098aa 100644
--- a/libavcodec/hevc_ps.c
+++ b/libavcodec/hevc_ps.c
@@ -136,6 +136,7 @@ int ff_hevc_decode_short_term_rps(GetBitContext *gb, AVCodecContext *avctx,
return AVERROR_INVALIDDATA;
}
rps_ridx = &sps->st_rps[sps->nb_st_rps - delta_idx];
+ rps->rps_idx_num_delta_pocs = rps_ridx->num_delta_pocs;
} else
rps_ridx = &sps->st_rps[rps - sps->st_rps - 1];