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 C37154BA70 for <ffmpegdev@gitmailbox.com>; Fri, 28 Mar 2025 21:38:40 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id EEF48687C3A; Fri, 28 Mar 2025 23:38:35 +0200 (EET) Received: from relay6-d.mail.gandi.net (relay6-d.mail.gandi.net [217.70.183.198]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 373C1687A42 for <ffmpeg-devel@ffmpeg.org>; Fri, 28 Mar 2025 23:38:30 +0200 (EET) Received: by mail.gandi.net (Postfix) with ESMTPSA id 511E644256 for <ffmpeg-devel@ffmpeg.org>; Fri, 28 Mar 2025 21:38:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=niedermayer.cc; s=gm1; t=1743197909; 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=ZFhS6dL1BU9d27WqAHePpHedfDA5+Sne9gCJSn/+Sw8=; b=APotHFIARhYsXCmIEyzLZZiqkQhq/+mGdZa6T4ZLybrnlNIpbwxom9GYO2hghATwRLeheb UIN2rw3XOH04IBGH+Y5Pqa6cLtSBNAZ0Mos/ZPapqaoECbJWwtMJ3lcRQ+5D0vZk1Iomuy UlVfnz4gWDHw+XRc4VBh+YGkAgtJF25trjLCZDaJdY4BLF8PRrKT2nGZYshJ8bsLe8LGNn svc/IzZjoIqeaSthTenJS0oRZwsJg3YkkvoEw4BimaZjjiNph77LPgycsZCkmzbnRqdagk wi9eRtJRLkhJp8VyF6QT7UCtX1AMvwj1UOkdu0BcnwpOeut/dxJmBdAdQVS9yQ== Date: Fri, 28 Mar 2025 22:38:28 +0100 From: Michael Niedermayer <michael@niedermayer.cc> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Message-ID: <20250328213828.GI4991@pb2> References: <6bef7ee3-6e0b-496a-9018-ce02d5e8cd63@gmail.com> <2477728b-6217-446a-9a15-830f028baea0@gmail.com> <8bdfe841-080b-49f6-913b-7577d03a1214@gmail.com> MIME-Version: 1.0 In-Reply-To: <8bdfe841-080b-49f6-913b-7577d03a1214@gmail.com> X-GND-State: clean X-GND-Score: -85 X-GND-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddujedvfeelucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuifetpfffkfdpucggtfgfnhhsuhgsshgtrhhisggvnecuuegrihhlohhuthemuceftddunecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenfghrlhcuvffnffculdduhedmnecujfgurhepfffhvffukfhfgggtuggjsehgtderredttddvnecuhfhrohhmpefoihgthhgrvghlucfpihgvuggvrhhmrgihvghruceomhhitghhrggvlhesnhhivgguvghrmhgrhigvrhdrtggtqeenucggtffrrghtthgvrhhnpeejudehtdelteeileelkeeuueehkefgieehieekueehgfetheehiedtjedtveegudenucffohhmrghinhepghhithhlrggsrdgtohhmnecukfhppeeguddrieeirdeijedruddufeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeeguddrieeirdeijedruddufedphhgvlhhopehlohgtrghlhhhoshhtpdhmrghilhhfrhhomhepmhhitghhrggvlhesnhhivgguvghrmhgrhigvrhdrtggtpdhnsggprhgtphhtthhopedupdhrtghpthhtohepfhhfmhhpvghgqdguvghvvghlsehffhhmphgvghdrohhrgh 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="===============0399268487332996236==" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" <ffmpeg-devel-bounces@ffmpeg.org> Archived-At: <https://master.gitmailbox.com/ffmpegdev/20250328213828.GI4991@pb2/> List-Archive: <https://master.gitmailbox.com/ffmpegdev/> List-Post: <mailto:ffmpegdev@gitmailbox.com> --===============0399268487332996236== Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="CXTLit6xjCMXFd2M" Content-Disposition: inline --CXTLit6xjCMXFd2M Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable 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: >=20 > - No external tools are needed by the build system. >=20 > - The external filters should be put in ext/libavfilter. Anything there w= ill be included. >=20 > - The build system will execute a file called `configure.sh` in the direc= tory of the external filter. This script has access to the functions and va= riables defined on `./configure`, as it's included via `.` on sh. >=20 > - 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/l= eandrosansilva/ffmpeg-extra-filter-example . If you are unhappy with the ex= ample code hosted on gitlab.com, I can move it elsewhere where it gets easi= er for you to have access to the code. >=20 > - Essentially, an external filter is composed by at least a `configure.sh= ` and a `Makefile`. >=20 > I really hope this can be the last iteration, as I ran out of ideas on ho= w to simplify the process, so please let me know your thoughts :-) How does this compare to simply using git merge 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(-) 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 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. thx [...] --=20 Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB When the tyrant has disposed of foreign enemies by conquest or treaty, and there is nothing more to fear from them, then he is always stirring up some war or other, in order that the people may require a leader. -- Plato --CXTLit6xjCMXFd2M Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iF0EABEKAB0WIQSf8hKLFH72cwut8TNhHseHBAsPqwUCZ+cW0QAKCRBhHseHBAsP q3FeAJ4hWAaj5BMk+OzJDB/d7bhfoTQ5AwCffzS6E05PiZD8Eu7cbJ3gwPw3jEM= =w0h9 -----END PGP SIGNATURE----- --CXTLit6xjCMXFd2M-- --===============0399268487332996236== 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". --===============0399268487332996236==--