From 95e4f7cac5742fc13bf0b33a6f0bee231071b52c Mon Sep 17 00:00:00 2001 From: Niklas Haas Date: Wed, 15 Apr 2026 20:31:34 +0200 Subject: [PATCH] swscale/ops_dispatch: fix rounding direction of plane_size This is an upper bound, so it should be rounded up. Signed-off-by: Niklas Haas --- libswscale/ops_dispatch.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libswscale/ops_dispatch.c b/libswscale/ops_dispatch.c index d98333555a..6aace66135 100644 --- a/libswscale/ops_dispatch.c +++ b/libswscale/ops_dispatch.c @@ -162,7 +162,7 @@ static int op_pass_setup(const SwsFrame *out, const SwsFrame *in, int sub_y = chroma ? indesc->log2_chroma_h : 0; size_t plane_w = AV_CEIL_RSHIFT(aligned_w, sub_x); size_t plane_pad = AV_CEIL_RSHIFT(comp->over_read, sub_x); - size_t plane_size = plane_w * p->pixel_bits_in >> 3; + size_t plane_size = (plane_w * p->pixel_bits_in + 7) >> 3; size_t total_size = plane_size + plane_pad; size_t loop_size = num_blocks * exec->block_size_in; if (in->linesize[idx] >= 0) { @@ -184,7 +184,7 @@ static int op_pass_setup(const SwsFrame *out, const SwsFrame *in, int sub_y = chroma ? outdesc->log2_chroma_h : 0; size_t plane_w = AV_CEIL_RSHIFT(aligned_w, sub_x); size_t plane_pad = AV_CEIL_RSHIFT(comp->over_write, sub_x); - size_t plane_size = plane_w * p->pixel_bits_out >> 3; + size_t plane_size = (plane_w * p->pixel_bits_out + 7) >> 3; size_t loop_size = num_blocks * exec->block_size_out; p->memcpy_out |= plane_size + plane_pad > FFABS(out->linesize[idx]); exec->out[i] = out->data[idx];