This is an automated email from the git hooks/post-receive script.

Git pushed a commit to branch master
in repository ffmpeg.

commit a8606aba8e42e031fc704c0c2f7f75c816e27ca4
Author:     Niklas Haas <[email protected]>
AuthorDate: Thu Mar 12 21:47:58 2026 +0100
Commit:     Niklas Haas <[email protected]>
CommitDate: Wed Mar 18 09:09:44 2026 +0000

    swscale/x86/ops: move over_read/write determination to setup func
    
    Signed-off-by: Niklas Haas <[email protected]>
---
 libswscale/x86/ops.c | 23 ++++++++++++++++-------
 1 file changed, 16 insertions(+), 7 deletions(-)

diff --git a/libswscale/x86/ops.c b/libswscale/x86/ops.c
index 88db0d3e76..92db9cb3af 100644
--- a/libswscale/x86/ops.c
+++ b/libswscale/x86/ops.c
@@ -58,10 +58,26 @@
     REF_PATTERN(NAME, 1, 1, 1, 0),                                             
 \
     REF_PATTERN(NAME, 1, 1, 1, 1)
 
+static int setup_rw(const SwsImplParams *params, SwsImplResult *out)
+{
+    const SwsOp *op = params->op;
+
+    /* 3-component reads/writes process one extra garbage word */
+    if (op->rw.packed && op->rw.elems == 3) {
+        switch (op->op) {
+        case SWS_OP_READ:  out->over_read  = sizeof(uint32_t); break;
+        case SWS_OP_WRITE: out->over_write = sizeof(uint32_t); break;
+        }
+    }
+
+    return 0;
+}
+
 #define DECL_RW(EXT, TYPE, NAME, OP, ELEMS, PACKED, FRAC)                      
 \
     DECL_ASM(TYPE, NAME##ELEMS##EXT,                                           
 \
         .op = SWS_OP_##OP,                                                     
 \
         .rw = { .elems = ELEMS, .packed = PACKED, .frac = FRAC },              
 \
+        .setup = setup_rw,                                                     
 \
     );
 
 #define DECL_PACKED_RW(EXT, DEPTH)                                             
 \
@@ -708,13 +724,6 @@ static int compile(SwsContext *ctx, SwsOpList *ops, 
SwsCompiledOp *out)
         .block_size = 2 * FFMIN(mmsize, 32) / ff_sws_op_list_max_size(ops),
     };
 
-    /* 3-component reads/writes process one extra garbage word */
-    if (read && read->rw.packed && read->rw.elems == 3)
-        chain->over_read = sizeof(uint32_t);
-    if (write->rw.packed && write->rw.elems == 3)
-        chain->over_write = sizeof(uint32_t);
-
-
     /* Make on-stack copy of `ops` to iterate over */
     SwsOpList rest = *ops;
     do {

_______________________________________________
ffmpeg-cvslog mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to