mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-24 13:56:33 +02:00
lavc/hevc_refs: exclude current frame from long term refs
suppose a. You have 3 frames, 0, 1, 4096. b. The ltMask is 0xfff and use_msb is 0. c. The 0, 1 are lt refs for 4096. d. you are decoding frame 4096, and get the 0 frame. Since 4096 & ltMask is 0 too, even you want get 0, find_ref_idx may give you 4096. add_candidate_ref will report an error for this Tested-by: Fei Wang <fei.w.wang@intel.com> Signed-off-by: Xu Guangxin <guangxin.xu@intel.com>
This commit is contained in:
parent
99501b5015
commit
2191f9a6af
@ -387,7 +387,7 @@ static HEVCFrame *find_ref_idx(HEVCContext *s, int poc, uint8_t use_msb)
|
||||
for (i = 0; i < FF_ARRAY_ELEMS(s->DPB); i++) {
|
||||
HEVCFrame *ref = &s->DPB[i];
|
||||
if (ref->frame->buf[0] && ref->sequence == s->seq_decode) {
|
||||
if ((ref->poc & mask) == poc)
|
||||
if ((ref->poc & mask) == poc && (use_msb || ref->poc != s->poc))
|
||||
return ref;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user