From d0313ea2c2d0b7855c4a8c0e245bae845a978b93 Mon Sep 17 00:00:00 2001 From: Ramiro Polla Date: Tue, 16 Jun 2026 13:49:03 +0200 Subject: [PATCH] swscale/aarch64/ops: convert single-component packed read/write to planar b488ee55 relaxed the check and stopped taking the number of components into account. This led to the generation of duplicate read/write functions for single component packed/planar. ops_entries.c wasn't regenerated to take this into account; instead some conversions were no longer being supported for the neon backend. --- libswscale/aarch64/ops_impl_conv.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libswscale/aarch64/ops_impl_conv.c b/libswscale/aarch64/ops_impl_conv.c index 98cb89edbc..479afbb3ab 100644 --- a/libswscale/aarch64/ops_impl_conv.c +++ b/libswscale/aarch64/ops_impl_conv.c @@ -88,9 +88,9 @@ static int convert_to_aarch64_impl(SwsContext *ctx, const SwsOpList *ops, int n, out->op = AARCH64_SWS_OP_READ_NIBBLE; else if (op->rw.frac == 3) out->op = AARCH64_SWS_OP_READ_BIT; - else if (op->rw.mode == SWS_RW_PACKED) + else if (op->rw.mode == SWS_RW_PACKED && op->rw.elems > 1) out->op = AARCH64_SWS_OP_READ_PACKED; - else if (op->rw.mode == SWS_RW_PLANAR) + else if (op->rw.mode == SWS_RW_PACKED || op->rw.mode == SWS_RW_PLANAR) out->op = AARCH64_SWS_OP_READ_PLANAR; else return AVERROR(ENOTSUP); @@ -106,9 +106,9 @@ static int convert_to_aarch64_impl(SwsContext *ctx, const SwsOpList *ops, int n, out->op = AARCH64_SWS_OP_WRITE_NIBBLE; else if (op->rw.frac == 3) out->op = AARCH64_SWS_OP_WRITE_BIT; - else if (op->rw.mode == SWS_RW_PACKED) + else if (op->rw.mode == SWS_RW_PACKED && op->rw.elems > 1) out->op = AARCH64_SWS_OP_WRITE_PACKED; - else if (op->rw.mode == SWS_RW_PLANAR) + else if (op->rw.mode == SWS_RW_PACKED || op->rw.mode == SWS_RW_PLANAR) out->op = AARCH64_SWS_OP_WRITE_PLANAR; else return AVERROR(ENOTSUP);