aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNuo Mi <nuomi2021@gmail.com>2024-02-22 15:13:57 +0800
committerNuo Mi <nuomi2021@gmail.com>2024-02-24 20:24:55 +0800
commit37ebebd055d8129cb590caf446c1ede4235875a1 (patch)
tree8ebf4391fa974dff9b290d32d54bd3ad29170deb
parentab2c9dfb26215419c33d76cac4d46c917d9959be (diff)
downloadffmpeg-37ebebd055d8129cb590caf446c1ede4235875a1.tar.gz
avcodec/vvcdec: set CuPredMode table for chroma
follow the spec
-rw-r--r--libavcodec/vvc/vvc_ctu.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/libavcodec/vvc/vvc_ctu.c b/libavcodec/vvc/vvc_ctu.c
index 36f98f5f2b..2e48f7bed8 100644
--- a/libavcodec/vvc/vvc_ctu.c
+++ b/libavcodec/vvc/vvc_ctu.c
@@ -1227,9 +1227,12 @@ static void set_cu_tabs(const VVCLocalContext *lc, const CodingUnit *cu)
const VVCFrameContext *fc = lc->fc;
const TransformUnit *tu = cu->tus.head;
- set_cb_tab(lc, fc->tab.cpm[cu->ch_type], cu->pred_mode);
- if (cu->tree_type != DUAL_TREE_CHROMA)
+ if (cu->tree_type != DUAL_TREE_CHROMA) {
+ set_cb_tab(lc, fc->tab.cpm[LUMA], cu->pred_mode);
set_cb_tab(lc, fc->tab.skip, cu->skip_flag);
+ }
+ if (fc->ps.sps->r->sps_chroma_format_idc && cu->tree_type != DUAL_TREE_LUMA)
+ set_cb_tab(lc, fc->tab.cpm[CHROMA], cu->pred_mode);
while (tu) {
for (int j = 0; j < tu->nb_tbs; j++) {