From: Michael Niedermayer <michael@niedermayer.cc>
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 02:16:31 +0100
Message-ID: <20250329011631.GP4991@pb2> (raw)
In-Reply-To: <DM8P223MB03659FC57B4DB3C93E6BACF7BAA02@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM>
[-- Attachment #1.1: Type: text/plain, Size: 3156 bytes --]
Hi
On Fri, Mar 28, 2025 at 10:23:50PM +0000, softworkz . wrote:
[...]
> >
> > 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
>
> Git merge only works when there's a common baseline and the only difference is the filter commit on top that you want to merge. It cannot be used when there are different baselines, e.g. the filter is on top of a the latest master branch and you want to merge it into an older (release) branch, as that would add all the differences, not just the filter.
> What you can do is cherry-picking the commit which adds the filter, but the bigger the differences of the baseline, the bigger the problems when cherry-picking.
>
>
> > 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
>
> The changes are basic in fact, but the trouble it is causing each time is beyond basic.
>
> To give you an idea of what I'm talking about I've recorded a short screencast to illustrate what I mean:
>
> https://gist.github.com/softworkz/750da15adb259fa13c6b32277647d54e
Conflicts can only occur in areas belonging to more than one module
ATM, when adding a filter thats allfilters.c, Makefile, doc/filters.text and configure
(and very similar files for other things than filters)
As nicolas suggested, if each filter is in its own directory no conflict
is possible.
configure just needs to include the Makefile, doc/*.texi, allwhatever.c
from each of these directories
About merges and revission differences.
A filter for ffmpeg 2.0 will possibly not work with 1.0 (in the currect
designs of using the internal API/ABI)
So if you have a filter based on 1.0, one on 1.0.3 and one on 1.0.8
and you merge these with the ffmpeg release 1.0.12
you get exactly the right thing full automatically
You can cherry pick too and the effect is about the same but if filters
share a common component merging will likely be less conflicting
What iam suggesting, i guess is,
* allow new modules to live in seperate directories
(even without any external modules this gives us fewer conflicts)
* maintain a simple list of such externally maintained modules on
ffmpeg.org (users need a place to find these modules, especially
in a world where mallicious code is becoming more widespread)
* really the user can use git merge directly but we could give him
a tool that gives a clearer success/fail and leaves no failed merges
secret-plan: every halloween we release ffmpeg-monster that merges EVERY
actively maintained module which dosnt conflict. (this would also
encourage module maintainers, to maintain their code)
thx
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
If you drop bombs on a foreign country and kill a hundred thousand
innocent people, expect your government to call the consequence
"unprovoked inhuman terrorist attacks" and use it to justify dropping
more bombs and killing more people. The technology changed, the idea is old.
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
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 1:16 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 [this message]
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
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=20250329011631.GP4991@pb2 \
--to=michael@niedermayer.cc \
--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