libavfilter conflict, technical resolution and maintainership

Michael Niedermayer via ffmpeg-devel <[email protected]> Tue, 28 Jul 2026 17:41:56 +0200
Newsgroups gmane.comp.video.ffmpeg.devel
Message-ID <amjNxHj34ba2c2Mw@neo>
--===============0774758064806304446==
Content-Type: multipart/signed; micalg=pgp-sha512;
	protocol="application/pgp-signature"; boundary="PO/3xW18zK1Cs/cZ"
Content-Disposition: inline


--PO/3xW18zK1Cs/cZ
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hi all,

Yesterday's conflict around libavfilter and premultiplied-alpha support has=
 reached a point where we risk losing valuable contributors. I would like e=
veryone to lower the temperature and focus on resolving both the technical =
issue and the underlying maintainership problem.

First, some relevant facts:

* Nicolas is currently listed in MAINTAINERS for the libavfilter framework =
and orphaned filters.
* Nicolas has substantially more historical experience with the common liba=
vfilter framework code.
* Niklas has contributed substantially more to that code in the last two ye=
ars.
* Nicolas raised objections to the premultiplied-alpha changes in July and =
August 2025:
  https://ffmpeg.org/pipermail/ffmpeg-devel/2025-July/347102.html
  https://ffmpeg.org/pipermail/ffmpeg-devel/2025-August/347335.html
* In December 2025, commit 978a0821eeb909d7b2cb777bed03a8fc380e9503 changed=
 the format-negotiation retry behavior. Nicolas objected.
* On April 25, Nicolas proposed reverting it and argued that scale should p=
erform the required conversion instead.
* On May 1, Nicolas offered Niklas time to implement a proper replacement a=
nd asked how much time he needed. No timeframe was agreed.
* On July 27, after approximately three months, Nicolas pushed the revert a=
s commit cd9d265344b1d39c7b65eb018acac0478c5d736a.
* The revert exposed or caused failures in FATE and the EXR paths. Nicolas =
restored a green FATE run by disabling the affected tests, while I submitte=
d PR #23928 to fix the EXR and alpha-conversion problems:
  https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/23928
* At the end of the day, the reverted change was reapplied.

This history matters. Nicolas's technical objections were not new and shoul=
d not have remained unresolved for months. At the same time, knowingly leav=
ing master with broken functionality or disabling substantial test coverage=
 is not a safe way to resolve the disagreement. Immediately reapplying the =
disputed change over the listed maintainer's objection also does not resolv=
e the underlying technical or organizational problem.

We need to stop the revert/re-revert cycle now.

My current technical assessment is that scale should remain the general con=
version filter for video-link properties, including alpha-mode conversion. =
If scale performs that conversion, the additional avfiltergraph retry intro=
duced by 978a0821e should not be necessary.

I updated PR #23928. The resulting approach leaves avfiltergraph.c in its o=
riginal form, uses scale as the conversion filter, passes FATE, and fixes t=
he reported EXR tests. This needs to be evaluated through normal technical =
review, including tests and analysis of the negotiation invariants.

For the immediate issue, I propose the following:

1. No further revert or reapplication of this disputed framework change sho=
uld be pushed while the replacement is under review.
2. I ask Nicolas and Niklas to review it.
3. Reviews should address concrete technical properties: termination and st=
ability of negotiation, filter insertion, alpha-mode correctness, compatibi=
lity with existing graphs, and FATE coverage.
4. Everyone should stop using insults, personal accusations, ultimatums or =
claims of exclusive control. They make technical resolution harder and incr=
ease the chance that contributors leave.

There is also a maintainership question that we can no longer avoid.

The MAINTAINERS file currently assigns the libavfilter framework to Nicolas=
=2E That means his objections to framework changes must receive serious tec=
hnical consideration and cannot simply be ignored. It does not mean that an=
y maintainer may knowingly leave master broken, prohibit all other develope=
rs from working on the code, or make decisions without review.

Conversely, substantial recent contributions do not by themselves override =
the listed maintainer or unresolved technical objections.

Therefore, I would like clear answers to these questions:

* Nicolas, are you willing to continue maintaining the libavfilter framewor=
k?
* Niklas, are you willing to continue working on libavfilter through review=
 and technical consensus with its maintainers?
* Should additional co-maintainers be added for the framework?
* If Nicolas is no longer willing to maintain it, who is specifically willi=
ng and qualified to take responsibility for it?

Any proposed maintainership change should be made explicitly through a MAIN=
TAINERS patch/PR and discussed on the mailing list. It should not happen in=
directly through competing pushes into our shared repository.

FFmpeg benefits greatly from both Nicolas's long-term knowledge of the fram=
ework and Niklas's recent work. The best outcome is that neither leaves and=
 that we establish a process in which both can work effectively without rep=
eating this conflict.

Please let us resolve the code first and the maintainership structure immed=
iately afterward.

Thanks,

--=20
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Does the universe only have a finite lifespan? No, its going to go on
forever, its just that you wont like living in it. -- Hiranya Peiri

--PO/3xW18zK1Cs/cZ
Content-Type: application/pgp-signature; name="signature.asc"

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

iF0EABEKAB0WIQSf8hKLFH72cwut8TNhHseHBAsPqwUCamjNwAAKCRBhHseHBAsP
q6cBAKCEfFAptH9BpO7fcI4EkCyljkV/OACfdYos4I54bEmNwgCUUbqJ8PE+emY=
=6Zxs
-----END PGP SIGNATURE-----

--PO/3xW18zK1Cs/cZ--

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

_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]

--===============0774758064806304446==--