diff options
author | Nuo Mi <nuomi2021@gmail.com> | 2024-05-19 21:27:38 +0800 |
---|---|---|
committer | Nuo Mi <nuomi2021@gmail.com> | 2024-05-21 20:20:25 +0800 |
commit | 66c6bee061d360bcd3a089e361ec0d0fcbbd2e26 (patch) | |
tree | c32cf7b72d616a28a2ffc1795ed5e3c4365cbef3 /libavcodec/vvc/refs.c | |
parent | 44bbafb69fa64d8cc2f655da00edf2eb1ecae2ea (diff) | |
download | ffmpeg-66c6bee061d360bcd3a089e361ec0d0fcbbd2e26.tar.gz |
avcodec/vvcdec: refact out VVCRefPic from RefPicList
Diffstat (limited to 'libavcodec/vvc/refs.c')
-rw-r--r-- | libavcodec/vvc/refs.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/libavcodec/vvc/refs.c b/libavcodec/vvc/refs.c index 6694bc4c51..74c105b619 100644 --- a/libavcodec/vvc/refs.c +++ b/libavcodec/vvc/refs.c @@ -352,7 +352,8 @@ static VVCFrame *generate_missing_ref(VVCContext *s, VVCFrameContext *fc, int po static int add_candidate_ref(VVCContext *s, VVCFrameContext *fc, RefPicList *list, int poc, int ref_flag, uint8_t use_msb) { - VVCFrame *ref = find_ref_idx(s, fc, poc, use_msb); + VVCFrame *ref = find_ref_idx(s, fc, poc, use_msb); + VVCRefPic *refp = &list->refs[list->nb_refs]; if (ref == fc->ref || list->nb_refs >= VVC_MAX_REF_ENTRIES) return AVERROR_INVALIDDATA; @@ -363,9 +364,9 @@ static int add_candidate_ref(VVCContext *s, VVCFrameContext *fc, RefPicList *lis return AVERROR(ENOMEM); } - list->list[list->nb_refs] = poc; - list->ref[list->nb_refs] = ref; - list->isLongTerm[list->nb_refs] = ref_flag & VVC_FRAME_FLAG_LONG_REF; + refp->poc = poc; + refp->ref = ref; + refp->is_lt = ref_flag & VVC_FRAME_FLAG_LONG_REF; list->nb_refs++; mark_ref(ref, ref_flag); @@ -463,7 +464,7 @@ int ff_vvc_slice_rpl(VVCContext *s, VVCFrameContext *fc, SliceContext *sc) } if ((!rsh->sh_collocated_from_l0_flag) == lx && rsh->sh_collocated_ref_idx < rpl->nb_refs) - fc->ref->collocated_ref = rpl->ref[rsh->sh_collocated_ref_idx]; + fc->ref->collocated_ref = rpl->refs[rsh->sh_collocated_ref_idx].ref; } return 0; } |