diff options
author | Nuo Mi <nuomi2021@gmail.com> | 2024-02-22 15:14:02 +0800 |
---|---|---|
committer | Nuo Mi <nuomi2021@gmail.com> | 2024-02-24 20:24:55 +0800 |
commit | c503c0b33e2c5a7c6e47995cf21e7d247d459ce1 (patch) | |
tree | 90e555cd3b8a97b0c8166ab45bbeadd00f2d0263 | |
parent | 3241aa26d1de052fc104dc0fe9981d06c6dd9425 (diff) | |
download | ffmpeg-c503c0b33e2c5a7c6e47995cf21e7d247d459ce1.tar.gz |
avcodec/vvcdec: ff_vvc_set_intra_mvf, refact to support dmvr tab
-rw-r--r-- | libavcodec/vvc/vvc_ctu.c | 2 | ||||
-rw-r--r-- | libavcodec/vvc/vvc_mvs.c | 4 | ||||
-rw-r--r-- | libavcodec/vvc/vvc_mvs.h | 2 |
3 files changed, 4 insertions, 4 deletions
diff --git a/libavcodec/vvc/vvc_ctu.c b/libavcodec/vvc/vvc_ctu.c index b78a1417c7..00476c81e4 100644 --- a/libavcodec/vvc/vvc_ctu.c +++ b/libavcodec/vvc/vvc_ctu.c @@ -1776,7 +1776,7 @@ static int hls_coding_unit(VVCLocalContext *lc, int x0, int y0, int cb_width, in } else { intra_luma_pred_modes(lc); } - ff_vvc_set_intra_mvf(lc); + ff_vvc_set_intra_mvf(lc, 0); } if ((tree_type == SINGLE_TREE || tree_type == DUAL_TREE_CHROMA) && sps->r->sps_chroma_format_idc) { if (pred_mode_plt_flag && tree_type == DUAL_TREE_CHROMA) { diff --git a/libavcodec/vvc/vvc_mvs.c b/libavcodec/vvc/vvc_mvs.c index 8af57e8ed3..8fdbb00a41 100644 --- a/libavcodec/vvc/vvc_mvs.c +++ b/libavcodec/vvc/vvc_mvs.c @@ -262,11 +262,11 @@ void ff_vvc_set_mvf(const VVCLocalContext *lc, const int x0, const int y0, const } } -void ff_vvc_set_intra_mvf(const VVCLocalContext *lc) +void ff_vvc_set_intra_mvf(const VVCLocalContext *lc, const int dmvr) { const VVCFrameContext *fc = lc->fc; const CodingUnit *cu = lc->cu; - MvField *tab_mvf = fc->tab.mvf; + MvField *tab_mvf = dmvr ? fc->ref->tab_dmvr_mvf : fc->tab.mvf; const int min_pu_width = fc->ps.pps->min_pu_width; const int min_pu_size = 1 << MIN_PU_LOG2; for (int dy = 0; dy < cu->cb_height; dy += min_pu_size) { diff --git a/libavcodec/vvc/vvc_mvs.h b/libavcodec/vvc/vvc_mvs.h index 6c46f9fdb2..358de5ec45 100644 --- a/libavcodec/vvc/vvc_mvs.h +++ b/libavcodec/vvc/vvc_mvs.h @@ -41,6 +41,6 @@ void ff_vvc_update_hmvp(VVCLocalContext *lc, const MotionInfo *mi); int ff_vvc_no_backward_pred_flag(const VVCLocalContext *lc); MvField* ff_vvc_get_mvf(const VVCFrameContext *fc, const int x0, const int y0); void ff_vvc_set_mvf(const VVCLocalContext *lc, const int x0, const int y0, const int w, const int h, const MvField *mvf); -void ff_vvc_set_intra_mvf(const VVCLocalContext *lc); +void ff_vvc_set_intra_mvf(const VVCLocalContext *lc, int dmvr); #endif //AVCODEC_VVC_VVC_MVS_H |