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

Git pushed a commit to branch master
in repository ffmpeg.

commit e941e84957c9b10a9474cae3b1bc7a295b86e4fd
Author:     Niklas Haas <[email protected]>
AuthorDate: Wed Oct 28 19:37:29 2026 +0100
Commit:     Niklas Haas <[email protected]>
CommitDate: Sun Nov 8 00:36:29 2026 +0000

    swscale/ops_dispatch: always split off unresolved filters
    
    Instead of only doing so after compilation of the whole op list failed with
    AVERROR(ENOTSUP). No backend currently implements standalone filter ops, so
    this does not change the result; but it avoids splitting op lists that are
    unsupported for other reasons, e.g. by some CPUs only. This can be revisited
    once a backend actually implements standalone filters.
    
    Co-Authored-By: Claude Opus 5.5 <[email protected]>
    Signed-off-by: Niklas Haas <[email protected]>
---
 libswscale/ops_dispatch.c | 16 ++++++----------
 1 file changed, 6 insertions(+), 10 deletions(-)

diff --git a/libswscale/ops_dispatch.c b/libswscale/ops_dispatch.c
index 21e5535f14..bfc776c43a 100644
--- a/libswscale/ops_dispatch.c
+++ b/libswscale/ops_dispatch.c
@@ -743,11 +743,7 @@ static int compile_subpass(const CompileArgs *args, 
SwsOpList **pops,
         }
     }
 
-    ret = compile_single(args, ops, link, input, output);
-    if (ret != AVERROR(ENOTSUP))
-        goto fail; /* either success or a hard error */
-
-    /* Find any unresolved filter */
+    /* Split off any unresolved filters, since no backend implements these */
     for (int idx = 1; idx < ops->num_ops - 1; idx++) {
         const SwsOp *op = &ops->ops[idx];
         if (op->op == SWS_OP_FILTER_H || op->op == SWS_OP_FILTER_V) {
@@ -766,11 +762,11 @@ static int compile_subpass(const CompileArgs *args, 
SwsOpList **pops,
         }
     }
 
-    /* If we didn't find any more operations to eliminate, then this ops list
-     * is simply unsupported by any of the available backends */
-    av_log(ctx, AV_LOG_WARNING, "No backend found for operations:\n");
-    ff_sws_op_list_print(ctx, AV_LOG_WARNING, AV_LOG_TRACE, ops);
-    ret = AVERROR(ENOTSUP);
+    ret = compile_single(args, ops, link, input, output);
+    if (ret == AVERROR(ENOTSUP)) {
+        av_log(ctx, AV_LOG_WARNING, "No backend found for operations:\n");
+        ff_sws_op_list_print(ctx, AV_LOG_WARNING, AV_LOG_TRACE, ops);
+    }
 
 fail:
     ff_sws_op_list_free(&ops);

-- 
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]

Reply via email to