--- libavcodec/vvc/mvs.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-)
diff --git a/libavcodec/vvc/mvs.c b/libavcodec/vvc/mvs.c index 1788a7150b..905edf1cd0 100644 --- a/libavcodec/vvc/mvs.c +++ b/libavcodec/vvc/mvs.c @@ -545,6 +545,16 @@ typedef struct NeighbourContext { const VVCLocalContext *lc; } NeighbourContext; +static int is_available(const VVCFrameContext *fc, const int x0, const int y0) +{ + const VVCSPS *sps = fc->ps.sps; + const int x = x0 >> sps->min_cb_log2_size_y; + const int y = y0 >> sps->min_cb_log2_size_y; + const int min_cb_width = fc->ps.pps->min_cb_width; + + return SAMPLE_CTB(fc->tab.cb_width[0], x, y) != 0; +} + static int is_a0_available(const VVCLocalContext *lc, const CodingUnit *cu) { const VVCFrameContext *fc = lc->fc; @@ -555,15 +565,11 @@ static int is_a0_available(const VVCLocalContext *lc, const CodingUnit *cu) if (!x0b && !lc->ctb_left_flag) { cand_bottom_left = 0; } else { - const int log2_min_cb_size = sps->min_cb_log2_size_y; - const int min_cb_width = fc->ps.pps->min_cb_width; - const int x = (cu->x0 - 1) >> log2_min_cb_size; - const int y = (cu->y0 + cu->cb_height) >> log2_min_cb_size; - const int max_y = FFMIN(fc->ps.pps->height, ((cu->y0 >> sps->ctb_log2_size_y) + 1) << sps->ctb_log2_size_y); + const int max_y = FFMIN(fc->ps.pps->height, ((cu->y0 >> sps->ctb_log2_size_y) + 1) << sps->ctb_log2_size_y); if (cu->y0 + cu->cb_height >= max_y) cand_bottom_left = 0; else - cand_bottom_left = SAMPLE_CTB(fc->tab.cb_width[0], x, y) != 0; + cand_bottom_left = is_available(fc, cu->x0 - 1, cu->y0 + cu->cb_height); } return cand_bottom_left; } -- 2.34.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".