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

Git pushed a commit to branch master
in repository ffmpeg.

commit 9c51aa182488ea7670405f94acf9d65ce416c590
Author:     Lynne <[email protected]>
AuthorDate: Mon Feb 23 21:12:34 2026 +0100
Commit:     Lynne <[email protected]>
CommitDate: Thu Feb 26 14:10:21 2026 +0100

    swscale: add SwsCompiledOp.slice_align
    
    Certain backends may not support (or need) slices, since they
    would handle slicing themselves.
    
    Sponsored-by: Sovereign Tech Fund
---
 libswscale/ops.c          | 2 +-
 libswscale/ops_backend.c  | 1 +
 libswscale/ops_internal.h | 1 +
 libswscale/ops_memcpy.c   | 1 +
 libswscale/x86/ops.c      | 2 ++
 5 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/libswscale/ops.c b/libswscale/ops.c
index b709ffef79..b56f75863c 100644
--- a/libswscale/ops.c
+++ b/libswscale/ops.c
@@ -1195,7 +1195,7 @@ int ff_sws_compile_pass(SwsGraph *graph, SwsOpList *ops, 
int flags, SwsFormat ds
     }
 
     pass = ff_sws_graph_add_pass(graph, dst.format, dst.width, dst.height, 
input,
-                                 1, p, op_pass_run);
+                                 p->comp.slice_align, p, op_pass_run);
     if (!pass) {
         ret = AVERROR(ENOMEM);
         goto fail;
diff --git a/libswscale/ops_backend.c b/libswscale/ops_backend.c
index 449ba8c975..3725f07644 100644
--- a/libswscale/ops_backend.c
+++ b/libswscale/ops_backend.c
@@ -76,6 +76,7 @@ static int compile(SwsContext *ctx, SwsOpList *ops, 
SwsCompiledOp *out)
     }
 
     *out = (SwsCompiledOp) {
+        .slice_align = 1,
         .block_size = SWS_BLOCK_SIZE,
         .cpu_flags  = chain->cpu_flags,
         .priv       = chain,
diff --git a/libswscale/ops_internal.h b/libswscale/ops_internal.h
index e8d059a6d0..8f36a83415 100644
--- a/libswscale/ops_internal.h
+++ b/libswscale/ops_internal.h
@@ -94,6 +94,7 @@ typedef void (*SwsOpFunc)(const SwsOpExec *exec, const void 
*priv,
 typedef struct SwsCompiledOp {
     SwsOpFunc func;
 
+    int slice_align; /* slice height alignment */
     int block_size; /* number of pixels processed per iteration */
     int over_read;  /* implementation over-reads input by this many bytes */
     int over_write; /* implementation over-writes output by this many bytes */
diff --git a/libswscale/ops_memcpy.c b/libswscale/ops_memcpy.c
index 15002ae5ff..692bb9a797 100644
--- a/libswscale/ops_memcpy.c
+++ b/libswscale/ops_memcpy.c
@@ -118,6 +118,7 @@ static int compile(SwsContext *ctx, SwsOpList *ops, 
SwsCompiledOp *out)
     }
 
     *out = (SwsCompiledOp) {
+        .slice_align = 1,
         .block_size = 1,
         .func = process,
         .priv = av_memdup(&p, sizeof(p)),
diff --git a/libswscale/x86/ops.c b/libswscale/x86/ops.c
index 44bdf159c4..6b58785cbc 100644
--- a/libswscale/x86/ops.c
+++ b/libswscale/x86/ops.c
@@ -598,6 +598,7 @@ static int solve_shuffle(const SwsOpList *ops, int mmsize, 
SwsCompiledOp *out)
     *out = (SwsCompiledOp) {
         .priv       = av_memdup(shuffle, sizeof(shuffle)),
         .free       = av_free,
+        .slice_align = 1,
         .block_size = pixels * num_lanes,
         .over_read  = read_size - in_total,
         .over_write = mmsize - out_total,
@@ -684,6 +685,7 @@ static int compile(SwsContext *ctx, SwsOpList *ops, 
SwsCompiledOp *out)
 
     *out = (SwsCompiledOp) {
         .priv = chain,
+        .slice_align = 1,
         .free = ff_sws_op_chain_free_cb,
 
         /* Use at most two full YMM regs during the widest precision section */

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

Reply via email to