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

Git pushed a commit to branch master
in repository ffmpeg.

commit 143cb5650123d2aa8db22b7f5fc095bfef393e79
Author:     Niklas Haas <[email protected]>
AuthorDate: Sat Mar 7 01:40:27 2026 +0100
Commit:     Niklas Haas <[email protected]>
CommitDate: Mon Mar 9 12:01:51 2026 +0100

    swscale/vulkan/ops: use opaque run function
    
    Avoids some unnecessary round-trips through the execution harness, as well
    as removing one unnecessary layer of abstraction (SwsOpExec).
    
    It's a bit unfortunate that we have to cast away the const on the AVFrame,
    since the Vulkan functions take non-const everywhere, even though all 
they're
    doing is modifying frame internal metadata, but alas.
    
    Sponsored-by: Sovereign Tech Fund
    Signed-off-by: Niklas Haas <[email protected]>
---
 libswscale/vulkan/ops.c | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/libswscale/vulkan/ops.c b/libswscale/vulkan/ops.c
index 6f88e9ad39..6446a803ef 100644
--- a/libswscale/vulkan/ops.c
+++ b/libswscale/vulkan/ops.c
@@ -92,16 +92,16 @@ typedef struct VulkanPriv {
     enum FFVkShaderRepFormat dst_rep;
 } VulkanPriv;
 
-static void process(const SwsOpExec *exec, const void *priv,
-                    int x_start, int y_start, int x_end, int y_end)
+static void process(const SwsFrame *dst, const SwsFrame *src, int y, int h,
+                    const SwsPass *pass)
 {
-    VulkanPriv *p = (VulkanPriv *)priv;
+    VulkanPriv *p = (VulkanPriv *) pass->priv;
     FFVkExecContext *ec = ff_vk_exec_get(&p->s->vkctx, &p->s->e);
     FFVulkanFunctions *vk = &p->s->vkctx.vkfn;
     ff_vk_exec_start(&p->s->vkctx, ec);
 
-    AVFrame *src_f = (AVFrame *) exec->in_frame->avframe;
-    AVFrame *dst_f = (AVFrame *) exec->out_frame->avframe;
+    AVFrame *src_f = (AVFrame *) src->avframe;
+    AVFrame *dst_f = (AVFrame *) dst->avframe;
     ff_vk_exec_add_dep_frame(&p->s->vkctx, ec, src_f,
                              VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT,
                              VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT);
@@ -350,9 +350,8 @@ static int compile(SwsContext *sws, SwsOpList *ops, 
SwsCompiledOp *out)
         return err;
 
     *out = (SwsCompiledOp) {
-        .slice_align = 0,
-        .block_size  = 1,
-        .func        = process,
+        .opaque      = true,
+        .func_opaque = process,
         .priv        = av_memdup(&p, sizeof(p)),
         .free        = free_fn,
     };

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

Reply via email to