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]
