aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/vvc/refs.c
diff options
context:
space:
mode:
authorNuo Mi <nuomi2021@gmail.com>2024-05-19 21:27:38 +0800
committerNuo Mi <nuomi2021@gmail.com>2024-05-21 20:20:25 +0800
commit66c6bee061d360bcd3a089e361ec0d0fcbbd2e26 (patch)
treec32cf7b72d616a28a2ffc1795ed5e3c4365cbef3 /libavcodec/vvc/refs.c
parent44bbafb69fa64d8cc2f655da00edf2eb1ecae2ea (diff)
downloadffmpeg-66c6bee061d360bcd3a089e361ec0d0fcbbd2e26.tar.gz
avcodec/vvcdec: refact out VVCRefPic from RefPicList
Diffstat (limited to 'libavcodec/vvc/refs.c')
-rw-r--r--libavcodec/vvc/refs.c11
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;
}