LICENSE: Thorough editing

The changes in "Incompatible libraries" section are strictly based on
what our configure script says.
This commit is contained in:
Timothy Gu 2016-01-24 09:17:36 -08:00
parent 222e6da605
commit bbf7500df9

View File

@ -1,4 +1,4 @@
#FFmpeg: # License
Most files in FFmpeg are under the GNU Lesser General Public License version 2.1 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 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: Specifically, the GPL parts of FFmpeg are:
- libpostproc - libpostproc
- optional x86 optimizations in the files - optional x86 optimization in the files
- `libavcodec/x86/flac_dsp_gpl.asm` - `libavcodec/x86/flac_dsp_gpl.asm`
- `libavcodec/x86/idct_mmx.c` - `libavcodec/x86/idct_mmx.c`
- `libavfilter/x86/vf_removegrain.asm` - `libavfilter/x86/vf_removegrain.asm`
- libutvideo encoding/decoding wrappers in - libutvideo encoding/decoding wrappers in `libavcodec/libutvideo*.cpp`
`libavcodec/libutvideo*.cpp`
- the X11 grabber in `libavdevice/x11grab.c` - the X11 grabber in `libavdevice/x11grab.c`
- the swresample test app in - the following building and testing tools
`libswresample/swresample-test.c` - `compat/solaris/make_sunver.pl`
- the `texi2pod.pl` tool - `doc/t2h.pm`
- `doc/texi2pod.pl`
- `libswresample/swresample-test.c`
- `tests/checkasm/*`
- `tests/tiny_ssim.c`
- the following filters in libavfilter: - the following filters in libavfilter:
- `f_ebur128.c` - `f_ebur128.c`
- `vf_blackframe.c` - `vf_blackframe.c`
@ -47,9 +50,9 @@ Specifically, the GPL parts of FFmpeg are:
- `vf_pp.c` - `vf_pp.c`
- `vf_pp7.c` - `vf_pp7.c`
- `vf_pullup.c` - `vf_pullup.c`
- `vf_repeatfields.c`
- `vf_sab.c` - `vf_sab.c`
- `vf_smartblur.c` - `vf_smartblur.c`
- `vf_repeatfields.c`
- `vf_spp.c` - `vf_spp.c`
- `vf_stereo3d.c` - `vf_stereo3d.c`
- `vf_super2xsai.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. * `tests/reference.pnm` is under the expat license.
external libraries ## External libraries
==================
FFmpeg can be combined with a number of external libraries, which sometimes FFmpeg can be combined with a number of external libraries, which sometimes
affect the licensing of binaries resulting from the combination. affect the licensing of binaries resulting from the combination.
compatible libraries ### Compatible libraries
--------------------
The following libraries are under GPL: The following libraries are under GPL:
- frei0r - 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 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. 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 There are certain libraries you can combine with FFmpeg whose licenses are not
are incompatible with the GPLv2 and v3. We do not know for certain if their compatible with the GPL and/or the LGPL. If you wish to enable these
licenses are compatible with the LGPL. libraries, even in circumstances that their license may be incompatible, pass
If you wish to enable these libraries, pass `--enable-nonfree` to configure. `--enable-nonfree` to configure. But note that if you enable any of these
But note that if you enable any of these libraries the resulting binary will libraries the resulting binary will be under a complex license mix that is
be under a complex license mix that is more restrictive than the LGPL and that more restrictive than the LGPL and that may result in additional obligations.
may result in additional obligations. It is possible that these It is possible that these restrictions cause the resulting binary to be
restrictions cause the resulting binary to be unredistributeable. 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.