summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
authorXu Guangxin <guangxin.xu@intel.com>2020-05-12 21:42:49 +0800
committerLinjie Fu <linjie.fu@intel.com>2020-05-27 14:39:36 +0800
commit939a4db227be629b7ff5492c6cc7cd75f40bf0f8 (patch)
treeca4bc4d3fd7106ca024a3c9cdceb9757e247e802 /libavcodec
parentd5f87f85675cd7893200590a7d123622878fd9fc (diff)
lavc/hevc: Add poc_msb_present filed in LongTermRPS
delta_poc_msb_present_flag is needed in find_ref_idx() to indicate whether MSB of POC should be taken into account. Details in 8.3.2. Signed-off-by: Xu Guangxin <guangxin.xu@intel.com> Signed-off-by: Linjie Fu <linjie.fu@intel.com>
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/hevc_ps.h1
-rw-r--r--libavcodec/hevcdec.c5
2 files changed, 3 insertions, 3 deletions
diff --git a/libavcodec/hevc_ps.h b/libavcodec/hevc_ps.h
index 8e1bccdaaf..238edd3ddc 100644
--- a/libavcodec/hevc_ps.h
+++ b/libavcodec/hevc_ps.h
@@ -41,6 +41,7 @@ typedef struct ShortTermRPS {
typedef struct LongTermRPS {
int poc[32];
+ uint8_t poc_msb_present[32];
uint8_t used[32];
uint8_t nb_refs;
} LongTermRPS;
diff --git a/libavcodec/hevcdec.c b/libavcodec/hevcdec.c
index 78299f4b32..0772608a30 100644
--- a/libavcodec/hevcdec.c
+++ b/libavcodec/hevcdec.c
@@ -280,7 +280,6 @@ static int decode_lt_rps(HEVCContext *s, LongTermRPS *rps, GetBitContext *gb)
rps->nb_refs = nb_sh + nb_sps;
for (i = 0; i < rps->nb_refs; i++) {
- uint8_t delta_poc_msb_present;
if (i < nb_sps) {
uint8_t lt_idx_sps = 0;
@@ -295,8 +294,8 @@ static int decode_lt_rps(HEVCContext *s, LongTermRPS *rps, GetBitContext *gb)
rps->used[i] = get_bits1(gb);
}
- delta_poc_msb_present = get_bits1(gb);
- if (delta_poc_msb_present) {
+ rps->poc_msb_present[i] = get_bits1(gb);
+ if (rps->poc_msb_present[i]) {
int64_t delta = get_ue_golomb_long(gb);
int64_t poc;