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 17C164BB52
	for <ffmpegdev@gitmailbox.com>; Sat, 29 Mar 2025 01:16:43 +0000 (UTC)
Received: from [127.0.1.1] (localhost [127.0.0.1])
	by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 866A8687C6B;
	Sat, 29 Mar 2025 03:16:39 +0200 (EET)
Received: from relay9-d.mail.gandi.net (relay9-d.mail.gandi.net
 [217.70.183.199])
 by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 201C8687A03
 for <ffmpeg-devel@ffmpeg.org>; Sat, 29 Mar 2025 03:16:33 +0200 (EET)
Received: by mail.gandi.net (Postfix) with ESMTPSA id 6C0B644287
 for <ffmpeg-devel@ffmpeg.org>; Sat, 29 Mar 2025 01:16:32 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=niedermayer.cc;
 s=gm1; t=1743210992;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:mime-version:mime-version:content-type:content-type:
 in-reply-to:in-reply-to:references:references;
 bh=TLOe+TRzAtA2paUElYjEmbiQnrS4+Qnehs5URyCnIk8=;
 b=RF9j9wP0llJ+9vHJhIphsCiX3GBllKgjP1Zuy/+9IEieGYnCPjhMmz7YhNhbOlQv5LuMmM
 sUOPTctEcS0hEu7oX4WY0wtG6QHT1/sIFpLSLMpvcLT5mMQPT/n7T0NXbdKD1TONYAKpTF
 bZmUgDgYS1Gfv6tCVFCDqM/btzQCC7MrsdDQg7DWu9I+VPx2fPZe3UKmyJxsiRHNTyH1kY
 AgFHme1lR1+rfErJ2cOBQ8YrymafZHsoAoQ0wkff5fr1O+8R7k5zG+TCp1ws7bIugDCint
 bc5zs2gCyZwy1n9blA+C5N0lfuboIHAvbz9Jnhys1Npggfuw6+WfJUyuqtf+tQ==
Date: Sat, 29 Mar 2025 02:16:31 +0100
From: Michael Niedermayer <michael@niedermayer.cc>
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Message-ID: <20250329011631.GP4991@pb2>
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>
 <DM8P223MB03659FC57B4DB3C93E6BACF7BAA02@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM>
MIME-Version: 1.0
In-Reply-To: <DM8P223MB03659FC57B4DB3C93E6BACF7BAA02@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM>
X-GND-State: clean
X-GND-Score: -85
X-GND-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddujedvkedvucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuifetpfffkfdpucggtfgfnhhsuhgsshgtrhhisggvnecuuegrihhlohhuthemuceftddunecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenfghrlhcuvffnffculdduhedmnecujfgurhepfffhvffukfhfgggtuggjsehgtderredttddvnecuhfhrohhmpefoihgthhgrvghlucfpihgvuggvrhhmrgihvghruceomhhitghhrggvlhesnhhivgguvghrmhgrhigvrhdrtggtqeenucggtffrrghtthgvrhhnpeetgfegvdffieeuffevhfeitdfgfeejudekfeegteegveegjeegkedvveejleevkeenucffohhmrghinhepghhithhhuhgsrdgtohhmnecukfhppeeguddrieeirdeijedruddufeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeeguddrieeirdeijedruddufedphhgvlhhopehlohgtrghlhhhoshhtpdhmrghilhhfrhhomhepmhhitghhrggvlhesnhhivgguvghrmhgrhigvrhdrtggtpdhnsggprhgtphhtthhopedupdhrtghpthhtohepfhhfmhhpvghgqdguvghvvghlsehffhhmphgvghdrohhrgh
X-GND-Sasl: michael@niedermayer.cc
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: multipart/mixed; boundary="===============7101470974338528818=="
Errors-To: ffmpeg-devel-bounces@ffmpeg.org
Sender: "ffmpeg-devel" <ffmpeg-devel-bounces@ffmpeg.org>
Archived-At: <https://master.gitmailbox.com/ffmpegdev/20250329011631.GP4991@pb2/>
List-Archive: <https://master.gitmailbox.com/ffmpegdev/>
List-Post: <mailto:ffmpegdev@gitmailbox.com>


--===============7101470974338528818==
Content-Type: multipart/signed; micalg=pgp-sha512;
	protocol="application/pgp-signature"; boundary="BAxbVSqW2TvKRsV0"
Content-Disposition: inline


--BAxbVSqW2TvKRsV0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

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
>=20
> Git merge only works when there's a common baseline and the only differen=
ce is the filter commit on top that you want to merge. It cannot be used wh=
en 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 t=
he bigger the differences of the baseline, the bigger the problems when che=
rry-picking.=20
>=20
>=20
> > 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
>=20
> The changes are basic in fact, but the trouble it is causing each time is=
 beyond basic.
>=20
> To give you an idea of what I'm talking about I've recorded a short scree=
ncast to illustrate what I mean:
>=20
> https://gist.github.com/softworkz/750da15adb259fa13c6b32277647d54e=20

Conflicts can only occur in areas belonging to more than one module
ATM, when adding a filter thats allfilters.c, Makefile, doc/filters.text an=
d 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
=66rom 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
--=20
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.

--BAxbVSqW2TvKRsV0
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iF0EABEKAB0WIQSf8hKLFH72cwut8TNhHseHBAsPqwUCZ+dJ6AAKCRBhHseHBAsP
q9/xAJ0ZqKmFPC5GlQnR/qaBq/6+jlSSPACfanCRPSJ5Gev0fFTK6Nr4fb5RTxw=
=NUlK
-----END PGP SIGNATURE-----

--BAxbVSqW2TvKRsV0--

--===============7101470974338528818==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
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".

--===============7101470974338528818==--