diff options
author | Xu Guangxin <guangxin.xu@intel.com> | 2020-05-12 21:42:49 +0800 |
---|---|---|
committer | Linjie Fu <linjie.fu@intel.com> | 2020-05-27 14:39:36 +0800 |
commit | 939a4db227be629b7ff5492c6cc7cd75f40bf0f8 (patch) | |
tree | ca4bc4d3fd7106ca024a3c9cdceb9757e247e802 | |
parent | d5f87f85675cd7893200590a7d123622878fd9fc (diff) | |
download | ffmpeg-939a4db227be629b7ff5492c6cc7cd75f40bf0f8.tar.gz |
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>
-rw-r--r-- | libavcodec/hevc_ps.h | 1 | ||||
-rw-r--r-- | libavcodec/hevcdec.c | 5 |
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; |