From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <ffmpeg-devel-bounces@ffmpeg.org> Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id DCD244888D for <ffmpegdev@gitmailbox.com>; Sat, 29 Mar 2025 14:53:07 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 71B5F687C2E; Sat, 29 Mar 2025 16:53:02 +0200 (EET) Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4F198687A76 for <ffmpeg-devel@ffmpeg.org>; Sat, 29 Mar 2025 16:52:55 +0200 (EET) Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-43cfa7e7f54so19508715e9.1 for <ffmpeg-devel@ffmpeg.org>; Sat, 29 Mar 2025 07:52:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743259974; x=1743864774; darn=ffmpeg.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id:from :to:cc:subject:date:message-id:reply-to; bh=t678VqizFQXPLKTVOd6fVhaRUeUTeu1MKqkYNHrX3LQ=; b=eVL/pK89ykPaMIJHISExFnQoLlVEGn8sRQVn3abkqRRStqkNssTZB1wOWZUU3i6NCH j7jzk0ozN5NeyMbseu6XQ45tDgpe/GKi7+KSC90Lji1NWHdmFRO2LquAyBT2+G3r/nHv aYYyG7tOCZl9mcrLAgYBFDF92RBuaeCbjVHS7UemYHGgd8z8TAegqGSy4dhxLaFkBEiA 8TddXQxwODFN79j35mFL8Sl34vQ6Ngyak37+2EqOUAcKsojvoJqS1hbnxFXc9aqNRddo NjFMC23sjRaDqyQpEH2Sp1QLweTMoDH9UcBsur+heBcEFa/WUMe6EAY1kQQGLpDMy0hK fefQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743259974; x=1743864774; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=t678VqizFQXPLKTVOd6fVhaRUeUTeu1MKqkYNHrX3LQ=; b=Omyr7SsfGy6xP6zAdB0z6FE9qjRHCid/6zEmphWbENc8mvSeODFK6Qjn+83bVHCLKf kCbRgNKi0GfMDF8R9HnaSQFovisHtDLjiPjUZ+UjZxn7AU/uF6ddFbmhKAHi9Qj/fumj xtsar6nPB3WMeaXeERaa/rmJc98d3DNxEGqeQxpqgmB2hKc0L232SZtU0eW9yajVL2Nm lrRvO7gwAC7OsYynIMijxkkC/OJsKTGB6BcivSi639RjpEbkw2XkKTeKv2quYDmbCQ6d 2EV18vdTUQFBxDieLUzaotmmzM2QCsrkdOUwUHzVTPbK55a/H4vYSJbojDr3EFl0tl5K 7iKw== X-Gm-Message-State: AOJu0Yw84lS4jcNT5J7/Qd/EpS7boHbPyp9+0j+aW5ZoUsBFE7AbsuUq Sr3XHyVh22OtyJzAVvljgh9s1AQGVHJ6saZoC9njZEsERpGcWoWN99R8Hw== X-Gm-Gg: ASbGncuCfntfoMv4qFyKOAp4IbFb3gps5x7JJfMtdUE+k5Imi9QazvBi2cV60F4jwmQ rmLwPLqR8K1b0JBTr1qEhuPc1prA+BmodKqe8dK4BJpDOtWXk1ekvmT5wuaWm26uAdKjT7zUU61 KkqiMsWnemO62cOe/11Zdr/UIphwKNsMfAbcZ0Qvo77yW+uXUXj9E3vfHxupGfc5wP19+20iqOM meW4aPuHc6af/rg8XSEtbZt0ofEdBGIhlUDBokbFERkpBNHXA398CVsSiWG7aDcukNAcxZtOE9i a8k1fTE9LZISshjoIwuB48UzdX1a1geDkFFkohVulgEo67Rqve9LXhmmh/HpHKC8hYJRh6u82sa 3sBLQfnMgely16p4J+Vei+QM= X-Google-Smtp-Source: AGHT+IFcuOKS8dhxc8R7YKfwcYVhXNSi76JQgD16OwnbaB9l0jl5K2ZJzEbn/7T1CWFBAvkt9M3c/w== X-Received: by 2002:a05:600c:1c1c:b0:43b:ca8c:fca3 with SMTP id 5b1f17b1804b1-43db62b6af6mr19127485e9.11.1743259974199; Sat, 29 Mar 2025 07:52:54 -0700 (PDT) Received: from ?IPV6:2001:9e8:1dbd:cb00:665d:2955:e517:5cbe? ([2001:9e8:1dbd:cb00:665d:2955:e517:5cbe]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43d8fbc1716sm62296225e9.15.2025.03.29.07.52.53 for <ffmpeg-devel@ffmpeg.org> (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 29 Mar 2025 07:52:53 -0700 (PDT) Message-ID: <8ab047e5-97cb-4d5d-806c-f71ee1223ad9@gmail.com> Date: Sat, 29 Mar 2025 15:52:52 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> References: <6bef7ee3-6e0b-496a-9018-ce02d5e8cd63@gmail.com> <2477728b-6217-446a-9a15-830f028baea0@gmail.com> <8bdfe841-080b-49f6-913b-7577d03a1214@gmail.com> <20250328213828.GI4991@pb2> Content-Language: en-US From: Leandro Santiago <leandrosansilva@gmail.com> In-Reply-To: <20250328213828.GI4991@pb2> Subject: Re: [FFmpeg-devel] [PATCH] avfilter: Proof of Concept: enable out-of-tree filters X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches <ffmpeg-devel.ffmpeg.org> List-Unsubscribe: <https://ffmpeg.org/mailman/options/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=unsubscribe> List-Archive: <https://ffmpeg.org/pipermail/ffmpeg-devel> List-Post: <mailto:ffmpeg-devel@ffmpeg.org> List-Help: <mailto:ffmpeg-devel-request@ffmpeg.org?subject=help> List-Subscribe: <https://ffmpeg.org/mailman/listinfo/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=subscribe> Reply-To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" <ffmpeg-devel-bounces@ffmpeg.org> Archived-At: <https://master.gitmailbox.com/ffmpegdev/8ab047e5-97cb-4d5d-806c-f71ee1223ad9@gmail.com/> List-Archive: <https://master.gitmailbox.com/ffmpegdev/> List-Post: <mailto:ffmpegdev@gitmailbox.com> On 3/28/25 22:38, Michael Niedermayer wrote: > Hi Leandro > > On Mon, Mar 24, 2025 at 05:20:02PM +0100, Leandro Santiago wrote: >> In this iteration I've made the following changes, based on the received feedback: >> >> - No external tools are needed by the build system. >> >> - The external filters should be put in ext/libavfilter. Anything there will be included. >> >> - The build system will execute a file called `configure.sh` in the directory of the external filter. This script has access to the functions and variables defined on `./configure`, as it's included via `.` on sh. >> >> - I will document the "API" for the external filters as soon the approach is approved, but an example of filter can be found at https://gitlab.com/leandrosansilva/ffmpeg-extra-filter-example . If you are unhappy with the example code hosted on gitlab.com, I can move it elsewhere where it gets easier for you to have access to the code. >> >> - Essentially, an external filter is composed by at least a `configure.sh` and a `Makefile`. >> >> I really hope this can be the last iteration, as I ran out of ideas on how to simplify the process, so please let me know your thoughts :-) > How does this compare to simply using > git merge The main difference is being 100% resistant to merge/rebase/cherry-pick conflicts :-) There is of course the possibility that the filter won't compile at all (or compile and be buggy) due to the changes in libavfilter or build system. The good side of it is that it's up to the developer of the external filter to worry about keeping track with changes in the ffmpeg core, not the other way round. > > That is each filter developer simply maintaining a fork of ffmpeg and their > filter, in that fork. Adding lines to configure, Makefile, ... > > If we take the last filter as a random example, what it chanegd looks like this: > > avfilter/interlace_vulkan: add interlace_vulkan filter > > This is a Vulkan-accelerated version of the existing interlace filter. > > configure | 1 + > doc/filters.texi | 2 +- > libavfilter/Makefile | 1 + > libavfilter/allfilters.c | 1 + > libavfilter/vf_interlace_vulkan.c | 313 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > 5 files changed, 317 insertions(+), 1 deletion(-) Interesting, the case of documentation integration is still an open issue on my proposal. I'll have a look at it. > > The advantage of "git merge" wether by hand or by a automated tool > is that its not limited to what it can do. Its much more powerfull How would that work when the user is building ffmpeg+external-filters via release tarballs? > > and the changes outside adding the filter itself are very basic. > Conflicts are something that we can workaround in many ways if they > become a problem > > Also it much easier alows transitioning between actually including a filter > in git master, if the community desires that for a filter later. For those cases, git has good support for merging unrelated repositories with unrelated histories those days. I have experienced using it on less complex codebases and it worked really well. Do you think it would be problematic? [1] [1] https://git-scm.com/docs/git-merge#Documentation/git-merge.txt---allow-unrelated-histories > > > thx > > [...] > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".