[FFmpeg-devel] [PATCH] LICENSE: Thorough editing
timothygu99 at gmail.com
Sun Feb 14 02:41:10 CET 2016
The changes in "Incompatible libraries" section are strictly based on
what our configure script says.
LICENSE.md | 64 +++++++++++++++++++++++++++++++++++++-------------------------
1 file changed, 38 insertions(+), 26 deletions(-)
diff --git a/LICENSE.md b/LICENSE.md
index 0c53d0f..a70f486 100644
@@ -1,4 +1,4 @@
Most files in FFmpeg are under the GNU Lesser General Public License version 2.1
or later (LGPL v2.1+). Read the file `COPYING.LGPLv2.1` for details. Some other
@@ -13,16 +13,19 @@ configure to activate them. In this case, FFmpeg's license changes to GPL v2+.
Specifically, the GPL parts of FFmpeg are:
-- optional x86 optimizations in the files
- - `libavcodec/x86/flac_dsp_gpl.asm`
- - `libavcodec/x86/idct_mmx.c`
- - `libavfilter/x86/vf_removegrain.asm`
-- libutvideo encoding/decoding wrappers in
+- optional x86 optimization in the files
+ - `libavcodec/x86/flac_dsp_gpl.asm`
+ - `libavcodec/x86/idct_mmx.c`
+ - `libavfilter/x86/vf_removegrain.asm`
+- libutvideo encoding/decoding wrappers in `libavcodec/libutvideo*.cpp`
- the X11 grabber in `libavdevice/x11grab.c`
-- the swresample test app in
-- the `texi2pod.pl` tool
+- the following building and testing tools
+ - `compat/solaris/make_sunver.pl`
+ - `doc/t2h.pm`
+ - `doc/texi2pod.pl`
+ - `libswresample/swresample-test.c`
+ - `tests/checkasm/*`
+ - `tests/tiny_ssim.c`
- the following filters in libavfilter:
@@ -47,9 +50,9 @@ Specifically, the GPL parts of FFmpeg are:
+ - `vf_repeatfields.c`
- - `vf_repeatfields.c`
@@ -73,14 +76,12 @@ There are a handful of files under other licensing terms, namely:
* `tests/reference.pnm` is under the expat license.
+## External libraries
FFmpeg can be combined with a number of external libraries, which sometimes
affect the licensing of binaries resulting from the combination.
+### Compatible libraries
The following libraries are under GPL:
@@ -101,14 +102,25 @@ license is incompatible with the LGPL v2.1 and the GPL v2, but not with
version 3 of those licenses. So to combine these libraries with FFmpeg, the
license version needs to be upgraded by passing `--enable-version3` to configure.
-The Fraunhofer AAC library and FAAC are under licenses which
-are incompatible with the GPLv2 and v3. We do not know for certain if their
-licenses are compatible with the LGPL.
-If you wish to enable these libraries, pass `--enable-nonfree` to configure.
-But note that if you enable any of these libraries the resulting binary will
-be under a complex license mix that is more restrictive than the LGPL and that
-may result in additional obligations. It is possible that these
-restrictions cause the resulting binary to be unredistributeable.
+### Incompatible libraries
+There are certain libraries you can combine with FFmpeg whose licenses are not
+compatible with the GPL and/or the LGPL. If you wish to enable these
+libraries, even in circumstances that their license may be incompatible, pass
+`--enable-nonfree` to configure. But note that if you enable any of these
+libraries the resulting binary will be under a complex license mix that is
+more restrictive than the LGPL and that may result in additional obligations.
+It is possible that these restrictions cause the resulting binary to be
+The Fraunhofer FDK AAC and OpenSSL libraries are under licenses which are
+incompatible with the GPLv2 and v3. To the best of our knowledge, they are
+compatible with the LGPL.
+The FAAC library is incompatible with all versions of GPL and LGPL.
+The NVENC library, while its header file is licensed under the compatible MIT
+license, requires a proprietary binary blob at run time, and is deemed to be
+incompatible with the GPL. We are not certain if it is compatible with the
+LGPL, but we require `--enable-nonfree` even with LGPL configurations in case
+it is not.
More information about the ffmpeg-devel