From bbf7500df99c52e5cecfbe32fbd0b682b6b28fac Mon Sep 17 00:00:00 2001 From: Timothy Gu Date: Sun, 24 Jan 2016 09:17:36 -0800 Subject: [PATCH] LICENSE: Thorough editing The changes in "Incompatible libraries" section are strictly based on what our configure script says. --- LICENSE.md | 62 ++++++++++++++++++++++++++++++++---------------------- 1 file changed, 37 insertions(+), 25 deletions(-) diff --git a/LICENSE.md b/LICENSE.md index 0c53d0f5a9..a70f48625c 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,4 +1,4 @@ -#FFmpeg: +# License 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: - libpostproc -- 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 - `libavcodec/libutvideo*.cpp` +- 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 - `libswresample/swresample-test.c` -- 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: - `f_ebur128.c` - `vf_blackframe.c` @@ -47,9 +50,9 @@ Specifically, the GPL parts of FFmpeg are: - `vf_pp.c` - `vf_pp7.c` - `vf_pullup.c` + - `vf_repeatfields.c` - `vf_sab.c` - `vf_smartblur.c` - - `vf_repeatfields.c` - `vf_spp.c` - `vf_stereo3d.c` - `vf_super2xsai.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 -================== +## 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 --------------------- +### Compatible libraries The following libraries are under GPL: - frei0r @@ -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. -incompatible libraries ----------------------- +### Incompatible libraries -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. +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 +unredistributable. + +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.