diff mbox series

[FFmpeg-devel] configure: unmark FDKAAC as nonfree

Message ID 20200219004619.27860-1-rcombs@rcombs.me
State New
Headers show
Series [FFmpeg-devel] configure: unmark FDKAAC as nonfree
Related show

Checks

Context Check Description
andriy/ffmpeg-patchwork pending
andriy/ffmpeg-patchwork success Applied patch
andriy/ffmpeg-patchwork success Configure finished
andriy/ffmpeg-patchwork success Make finished
andriy/ffmpeg-patchwork success Make fate finished

Commit Message

rcombs Feb. 19, 2020, 12:46 a.m. UTC
Red Hat legal believes the FDK license to be free when using their stripped
version (https://github.com/UnitedRPMs/fdk-aac-free/releases), as the patent
clause is a no-op now that the relevant patents on that version are expired:
https://bugzilla.redhat.com/show_bug.cgi?id=1501522

Plex legal believes that the license is GPL-compatible in general:
> I see no issue under GPL here. The reference to patent licenses is advisory
> and not a limitation on use. In essence, it says, "you can get a license here
> if you want one [implicitly, if you don't, you are at your peril], but you
> may not need one because most Android hardware makers already have one that
> covers you."

There remains some disagreement over which (if any) versions of the FDK SDK
are GPL-compatible, but I see no reason for ffmpeg to assert the position that
builds linking to it and to GPL code are nonredistributable. The source is
available under a license widely understood to fulfill some definition of
"free", and the contention around it largely comes down to a technicality.
If a user or packager wants to redistribute builds with it at their own risk,
I don't believe doing so would cause harm to ffmpeg's developers or community
(in contrast with closed-source libraries like NDI and Decklink).
---
 configure | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Carl Eugen Hoyos Feb. 19, 2020, 2 a.m. UTC | #1
> Am 19.02.2020 um 01:46 schrieb rcombs <rcombs@rcombs.me>:
> 
> Plex legal believes that the license is GPL-compatible in general

Instead please get a comment from the fsf.

I object to this patch for the time being.

Carl Eugen

PS: This could be unrelated but please note that plex was or is a violator of the copyrights of the FFmpeg developers.
Carl Eugen Hoyos Feb. 19, 2020, 2:19 a.m. UTC | #2
> Am 19.02.2020 um 03:00 schrieb Carl Eugen Hoyos <ceffmpeg@gmail.com>:
> 
> PS: This could be unrelated but please note that plex was or is a violator of the copyrights of the FFmpeg developers.

As reported by you...
Jean-Baptiste Kempf Feb. 19, 2020, 4:24 a.m. UTC | #3
On Wed, Feb 19, 2020, at 01:46, rcombs wrote:
> Red Hat legal believes the FDK license to be free when using their stripped
> version (https://github.com/UnitedRPMs/fdk-aac-free/releases), as the patent
> clause is a no-op now that the relevant patents on that version are expired:
> https://bugzilla.redhat.com/show_bug.cgi?id=1501522

Their version removes a large part of the encoder and soo much of the decoder:
https://cgit.freedesktop.org/~wtay/fdk-aac/commit/?h=fedora&id=8dcaebbdb5112d5930b6202a8880f89aeabb3722
to the point that this library is almost unusable:
- a worse decoder than the normal AAC one inside libavcodec. It notably does not even decode SBR! See [1]
- a stripped down encoder that removes sooo much, that noone has any idea of the quality, because never benched.

So, what's the point?

Also, I _really_ doubt that their decoder removed all the patents related to AAC that have not expired, and notably they have no proof for it.
The AAC list of patents is not public https://www.via-corp.com/licensing/aac/ and there are many other patents outside of the main pool. Notably I really doubt the DRC and PS part are un-patented.

So, they have done their own analysis, that they keep private and we should just hope they are right?
Because the argument from the linked page that is "I removed SBR decoder" and that is absolutely not complete. There are wayyy many more patents on AAC, including ones on PS and DRC (IIRC, PS is from 2004 for example, that means patented until 2024).

So, they removed some code and say  "we removed all patents" and we should believe them, without proof and analysis?
(Since when was a MPEG codec without patents???) 

> Plex legal believes that the license is GPL-compatible in general:

Plex is not a trusted legal member of the community for numerous reasons.

> builds linking to it and to GPL code are nonredistributable. The source is
> available under a license widely understood to fulfill some definition of
> "free", and the contention around it largely comes down to a technicality.
> If a user or packager wants to redistribute builds with it at their own risk,

Why even do that?

We have a decoder inside libavcodec that is good and supports a lot of AAC cases, we have an encoder that is not ridiculous, while not the best, but because some RedHat people did a version stripping everything to a point that it does decodes less streams than the normal decoder and an encoder whose quality was never tested, we should drop everything and supports that instead?

(not even discussing the fact you cannot detect which version is "free" and which is "non-free", nor the fact that the legal analysis from Redhat is not public)

So unless there is, an answer from FSF (who never answered to RedHat), a list of all patents from the licensors and the detail explanation from RedHat of what they did exactly to work-around the patents, I would say total no.


Let me suggest something else: remove fdk-aac from the codebase.
Supporting fdk-aac in the codebase just gives incentives from not improving the rare cases where the decoder does not work, or improving the encoder quality, and just is a bait for licensing violations.

Best,

[1] https://bugzilla.redhat.com/show_bug.cgi?id=1501522#c22
diff mbox series

Patch

diff --git a/configure b/configure
index ab761c7183..f590f30093 100755
--- a/configure
+++ b/configure
@@ -1727,7 +1727,6 @@  EXTERNAL_LIBRARY_GPL_LIST="
 
 EXTERNAL_LIBRARY_NONFREE_LIST="
     decklink
-    libfdk_aac
     openssl
     libtls
 "
@@ -1768,6 +1767,7 @@  EXTERNAL_LIBRARY_LIST="
     libdav1d
     libdc1394
     libdrm
+    libfdk_aac
     libflite
     libfontconfig
     libfreetype