From: Leandro Santiago <leandrosansilva@gmail.com> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Subject: Re: [FFmpeg-devel] [PATCH] avfilter: Proof of Concept: enable out-of-tree filters Date: Sat, 29 Mar 2025 15:52:52 +0100 Message-ID: <8ab047e5-97cb-4d5d-806c-f71ee1223ad9@gmail.com> (raw) In-Reply-To: <20250328213828.GI4991@pb2> 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".
next prev parent reply other threads:[~2025-03-29 14:53 UTC|newest] Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top 2025-03-13 12:18 [FFmpeg-devel] [PATCH] avfilter: POC: " Leandro Santiago 2025-03-13 12:20 ` Leandro Santiago 2025-03-14 15:04 ` Michael Niedermayer 2025-03-14 16:13 ` Leandro Santiago 2025-03-14 20:58 ` Michael Niedermayer 2025-03-14 16:57 ` Lynne 2025-03-14 18:21 ` Nicolas George 2025-03-14 19:43 ` Leandro Santiago 2025-03-14 22:45 ` Soft Works 2025-03-19 13:08 ` [FFmpeg-devel] [PATCH] avfilter: Proof of Concept: " Leandro Santiago 2025-03-24 15:56 ` Leandro Santiago 2025-03-24 16:20 ` Leandro Santiago 2025-03-25 18:05 ` Ronald S. Bultje 2025-03-26 2:59 ` [FFmpeg-devel] =?gb18030?b?u9i4tKO6ICBbUEFUQ0hdIGF2ZmlsdGVyOiBQ?= =?gb18030?q?roof_of_Concept=3A_enable_out-of-tree_filters?= yangyalei via ffmpeg-devel 2025-03-26 4:26 ` [FFmpeg-devel] [PATCH] avfilter: Proof of Concept: enable out-of-tree filters Zhao Zhili 2025-03-26 6:09 ` softworkz . 2025-03-26 13:51 ` Leandro Santiago 2025-03-26 9:37 ` Leandro Santiago 2025-03-28 21:38 ` Michael Niedermayer 2025-03-28 22:18 ` Nicolas George 2025-03-28 22:23 ` softworkz . 2025-03-29 1:16 ` Michael Niedermayer 2025-03-29 1:45 ` softworkz . 2025-03-29 23:30 ` Michael Niedermayer 2025-03-30 0:51 ` softworkz . 2025-03-30 21:27 ` Michael Niedermayer 2025-03-30 22:23 ` softworkz . 2025-03-29 14:52 ` Leandro Santiago [this message] 2025-03-30 0:04 ` Michael Niedermayer
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=8ab047e5-97cb-4d5d-806c-f71ee1223ad9@gmail.com \ --to=leandrosansilva@gmail.com \ --cc=ffmpeg-devel@ffmpeg.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel This inbox may be cloned and mirrored by anyone: git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \ ffmpegdev@gitmailbox.com public-inbox-index ffmpegdev Example config snippet for mirrors. AGPL code for this site: git clone https://public-inbox.org/public-inbox.git