diff options
author | Nuo Mi <nuomi2021@gmail.com> | 2024-07-28 11:18:05 +0800 |
---|---|---|
committer | Nuo Mi <nuomi2021@gmail.com> | 2024-08-15 20:33:57 +0800 |
commit | ca2caeb21d18c75dd43cfb5111629dc2d8de4c87 (patch) | |
tree | 5ee0453dfeedddee1208a72409751d5f76b45ed3 | |
parent | 0c7106f618f75461386e485db814c3e8c761b0c4 (diff) | |
download | ffmpeg-ca2caeb21d18c75dd43cfb5111629dc2d8de4c87.tar.gz |
avcodec/vvcdec: do not zero frame msf mmi table
-rw-r--r-- | libavcodec/vvc/ctu.c | 8 | ||||
-rw-r--r-- | libavcodec/vvc/dec.c | 4 | ||||
-rw-r--r-- | libavcodec/vvc/mvs.c | 1 |
3 files changed, 7 insertions, 6 deletions
diff --git a/libavcodec/vvc/ctu.c b/libavcodec/vvc/ctu.c index 579337759f..06b57215a4 100644 --- a/libavcodec/vvc/ctu.c +++ b/libavcodec/vvc/ctu.c @@ -1234,9 +1234,12 @@ static CodingUnit* add_cu(VVCLocalContext *lc, const int x0, const int y0, static void set_cu_tabs(const VVCLocalContext *lc, const CodingUnit *cu) { - const VVCFrameContext *fc = lc->fc; - const TransformUnit *tu = cu->tus.head; + const VVCFrameContext *fc = lc->fc; + const PredictionUnit *pu = &cu->pu; + const TransformUnit *tu = cu->tus.head; + set_cb_tab(lc, fc->tab.mmi, pu->mi.motion_model_idc); + set_cb_tab(lc, fc->tab.msf, pu->merge_subblock_flag); if (cu->tree_type != DUAL_TREE_CHROMA) set_cb_tab(lc, fc->tab.skip, cu->skip_flag); @@ -1325,7 +1328,6 @@ static void merge_data_subblock(VVCLocalContext *lc) PredictionUnit *pu = &cu->pu; int merge_subblock_idx = 0; - set_cb_tab(lc, fc->tab.msf, pu->merge_subblock_flag); if (ph->max_num_subblock_merge_cand > 1) { merge_subblock_idx = ff_vvc_merge_subblock_idx(lc, ph->max_num_subblock_merge_cand); } diff --git a/libavcodec/vvc/dec.c b/libavcodec/vvc/dec.c index e078f9387b..c688f7d70d 100644 --- a/libavcodec/vvc/dec.c +++ b/libavcodec/vvc/dec.c @@ -155,9 +155,7 @@ static void min_pu_tl_init(TabList *l, VVCFrameContext *fc) tl_init(l, 1, changed); - TL_ADD(msf, pic_size_in_min_pu); TL_ADD(iaf, pic_size_in_min_pu); - TL_ADD(mmi, pic_size_in_min_pu); } static void min_pu_nz_tl_init(TabList *l, VVCFrameContext *fc) @@ -168,6 +166,8 @@ static void min_pu_nz_tl_init(TabList *l, VVCFrameContext *fc) tl_init(l, 0, changed); + TL_ADD(msf, pic_size_in_min_pu); + TL_ADD(mmi, pic_size_in_min_pu); TL_ADD(mvf, pic_size_in_min_pu); } diff --git a/libavcodec/vvc/mvs.c b/libavcodec/vvc/mvs.c index e3f18f1861..86ad310035 100644 --- a/libavcodec/vvc/mvs.c +++ b/libavcodec/vvc/mvs.c @@ -399,7 +399,6 @@ static void store_cp_mv(const VVCLocalContext *lc, const MotionInfo *mi, const i const int offset = (y_cb * min_cb_width + x_cb) * MAX_CONTROL_POINTS; memcpy(&fc->tab.cp_mv[lx][offset], mi->mv[lx], sizeof(Mv) * num_cp_mv); - SAMPLE_CTB(fc->tab.mmi, x_cb, y_cb) = mi->motion_model_idc; } } } |