This is an automated email from the git hooks/post-receive script. Git pushed a commit to branch master in repository ffmpeg.
commit bf7c698bb21c6f36fad0274bc8cf1be0ec5caf4c Author: Niklas Haas <[email protected]> AuthorDate: Tue Nov 3 20:50:08 2026 +0100 Commit: Niklas Haas <[email protected]> CommitDate: Sun Nov 8 01:48:12 2026 +0000 swscale/aarch64/ops: pack kernel private data The clear/min/max kernels always load a full 128-bit vector, so pad the packed constants to 16 bytes. Co-Authored-By: Claude Opus 5.5 <[email protected]> Signed-off-by: Niklas Haas <[email protected]> --- libswscale/aarch64/ops.c | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/libswscale/aarch64/ops.c b/libswscale/aarch64/ops.c index 4ee93329a7..599b39d1a5 100644 --- a/libswscale/aarch64/ops.c +++ b/libswscale/aarch64/ops.c @@ -99,14 +99,14 @@ static int aarch64_setup_linear(const SwsAArch64OpImplParams *p, } } - res->ref = res->priv.ptr = coeffs; + ff_sws_op_priv_pack_refptr(res, coeffs); return 0; } /*********************************************************************/ static int aarch64_setup_dither(const SwsUOp *uop, SwsImplResult *res) { - res->ref = res->priv.ptr = av_refstruct_ref(uop->data.ptr); + ff_sws_op_priv_pack_refptr(res, av_refstruct_ref(uop->data.ptr)); return 0; } @@ -115,28 +115,35 @@ static int aarch64_setup(const SwsUOp *uop, const SwsAArch64OpImplParams *p, SwsImplResult *out) { switch (uop->uop) { - case SWS_UOP_READ_BIT: + case SWS_UOP_READ_BIT: { /* Negative shift values to perform right shift using ushl. */ - out->priv = (SwsOpPriv) { - .u8 = { - -7, -6, -5, -4, -3, -2, -1, 0, - -7, -6, -5, -4, -3, -2, -1, 0, - } + static const int8_t shift[16] = { + -7, -6, -5, -4, -3, -2, -1, 0, + -7, -6, -5, -4, -3, -2, -1, 0, }; + SWS_OP_PRIV_PACK(out, shift); break; - case SWS_UOP_WRITE_BIT: + } + case SWS_UOP_WRITE_BIT: { /* Shift values for ushl. */ - out->priv = (SwsOpPriv) { - .u8 = { - 7, 6, 5, 4, 3, 2, 1, 0, - 7, 6, 5, 4, 3, 2, 1, 0, - } + static const uint8_t shift[16] = { + 7, 6, 5, 4, 3, 2, 1, 0, + 7, 6, 5, 4, 3, 2, 1, 0, }; + SWS_OP_PRIV_PACK(out, shift); break; + } case SWS_UOP_CLEAR: case SWS_UOP_MIN: - case SWS_UOP_MAX: - return ff_sws_setup_vec4(&(const SwsImplParams) { .uop = uop }, out); + case SWS_UOP_MAX: { + int ret = ff_sws_setup_vec4(&(const SwsImplParams) { .uop = uop }, out); + if (ret < 0) + return ret; + /* Pad to the full vector register loaded by the kernel */ + static const uint8_t zero[16]; + ff_sws_op_priv_pack(out, zero, sizeof(zero) - out->priv_size); + return 0; + } case SWS_UOP_SCALE: return ff_sws_setup_scalar(&(const SwsImplParams) { .uop = uop }, out); case SWS_UOP_LINEAR: -- To stop receiving notification emails like this one, please contact [email protected]. _______________________________________________ ffmpeg-cvslog mailing list -- [email protected] To unsubscribe send an email to [email protected]
