mirror of
https://github.com/mpv-player/mpv
synced 2024-11-14 22:48:35 +01:00
fc013ea8ac
Unfortunately I'm also adding the full text of the LGPL license text, because the GPL one was already present in this repository, and I don't want to imply that the GPL somehow has priority.
124 lines
6.3 KiB
Plaintext
124 lines
6.3 KiB
Plaintext
mpv is a fork of mplayer2, which is a fork of MPlayer.
|
|
|
|
mpv as a whole is licensed under the GNU General Public License GPL version 2
|
|
or later (called GPLv2+ in this document, see LICENSE.GPL for full license
|
|
text) by default, or the GNU Lesser General Public License LGPL version 2 or
|
|
later (LGPLv2.1+ in this document, see LICENSE.LGPL for full license text) if
|
|
built with the --enable-lgpl configure switch.
|
|
|
|
Most source files are LGPLv2.1+ or GPLv2+, but some files are available under
|
|
more liberal licenses, such as BSD, MIT, ISC, and possibly others. Look at the
|
|
copyright header of each source file, and grep the sources for "Copyright" if
|
|
you need to know details. C source files without Copyright notice are usually
|
|
licensed as LGPLv2.1+. Also see the list of files with specific licenses below
|
|
(not all files can have a standard license header).
|
|
|
|
All new contributions must be LGPLv2.1+ licensed. Using a more liberal license
|
|
compatible to LGPLv2.1+ is also ok.
|
|
|
|
If changes are done on GPL code, must come with the implicit agreement that the
|
|
project can relicense the changes to LGPLv2.1+ at a later point without asking
|
|
the contributor. This is a safeguard for making potential relicensing of
|
|
remaining GPL code to LGPLv2.1+ easier.
|
|
|
|
For information about authors and contributors, consult the git log, which
|
|
contains the complete SVN and CVS history as well.
|
|
|
|
"v2.1+" in this context means "version 2.1 or later".
|
|
|
|
Some libraries are GPLv2+ or GPLv3+ only. Building mpv with Samba support makes
|
|
it GPLv3+.
|
|
|
|
mpv can be built as LGPLv2.1+ with the --enable-lgpl configure option. To add
|
|
a LGPL mode to mpv, MPlayer code had to be relicensed from GPLv2+ to LGPLv2.1+
|
|
by asking the MPlayer authors for permission. Since permission could not be
|
|
obtained from everyone, LGPL mode disables the following features, some of
|
|
them quite central:
|
|
- no audio filtering, which breaks: --volume, --af, replaygain, pitch
|
|
correction, fine control about downmix/upmix/resampling behavior
|
|
- Linux X11 video output
|
|
- Linux audio output via ALSA (PulseAudio works)
|
|
- BSD audio output via OSS
|
|
- NVIDIA/Linux hardware decoding (vdpau, although CUDA usually works)
|
|
- many builtin video filters (use libavfilter instead)
|
|
- automatic rotation and stereoscopic video handling
|
|
- Linux TV input
|
|
- the --frames option
|
|
- the add/cycle and sub-add/audio-add/sub-remove/audio-remove commands
|
|
- video format conversion (if not supported by the VO)
|
|
- minor features: jack, DVD, CDDA, SMB, CACA, legacy direct3d VO
|
|
Some of these will be fixed in the future. The lack of the add/cycle commands
|
|
makes this particularly useless for CLI mode, and most of the appeal of LGPL
|
|
is for libmpv anyway. Thus it's not recommended to build mpv CLI in LGPL mode
|
|
at all.
|
|
|
|
The following files are still GPL only (--enable-lgpl disables them):
|
|
|
|
audio/filter/* will be replaced with new filter chain
|
|
audio/filter/af_format.c mostly LGPL (except af glue code)
|
|
audio/filter/af_lavc3enc.c as above
|
|
audio/filter/af_lavfi.c as above
|
|
audio/filter/af_scaletempo.c as above
|
|
audio/filter/af_rubberband.c as above
|
|
audio/out/ao_alsa.c chaotic history, one later author did not decide
|
|
audio/out/ao_jack.c will stay GPL
|
|
audio/out/ao_oss.c will stay GPL
|
|
audio/audio.* needed by af code only
|
|
demux/demux_tv.c will stay GPL
|
|
stream/ai_* will stay GPL (TV code)
|
|
stream/audio_in.* will stay GPL (TV code)
|
|
stream/dvb* must stay GPL
|
|
stream/frequencies.* must stay GPL
|
|
stream/stream_cdda.c unknown
|
|
stream/stream_dvb.* must stay GPL
|
|
stream/stream_dvd.c unknown
|
|
stream/stream_dvd_common.* unknown
|
|
stream/stream_dvdnav.c unknown
|
|
stream/stream_smb.c will stay GPLv3
|
|
stream/stream_tv.c will stay GPL
|
|
stream/tv* will stay GPL
|
|
video/filter/vf_crop.c will be deleted
|
|
video/filter/vf_dsize.c will be deleted
|
|
video/filter/vf_expand.c will be deleted
|
|
video/filter/vf_flip.c will be deleted
|
|
video/filter/vf_format.c will be deleted
|
|
video/filter/vf_gradfun.c will be deleted
|
|
video/filter/vf_mirror.c will be deleted
|
|
video/filter/vf_noformat.c will be deleted
|
|
video/filter/vf_pullup.c will be deleted
|
|
video/filter/vf_rotate.c will be deleted
|
|
video/filter/vf_scale.c will be deleted
|
|
video/filter/vf_stereo3d.c will be deleted
|
|
video/filter/vf_sub.c will be deleted
|
|
video/filter/vf_yadif.c will be deleted
|
|
video/out/opengl/hwdec_vaglx.c GPL
|
|
video/out/vo_caca.c unknown
|
|
video/out/vo_direct3d.c unknown
|
|
video/out/vo_vaapi.c probably impossible (some company's code)
|
|
video/out/vo_vdpau.c probably impossible (nVidia's code)
|
|
video/out/vo_x11.c probably impossible
|
|
video/out/vo_xv.c probably impossible
|
|
video/out/x11_common.* probably impossible
|
|
video/vdpau.c hard (GPL-only parts must be ifdefed)
|
|
video/vdpau.h unknown
|
|
video/vdpau_mixer.* actual code must be rewritten
|
|
DOCS/man/ GPLv2+
|
|
bootstrap.py unknown license, probably GPLv2+ or LGPLv2+
|
|
etc/mplayer-input.conf unknown license, probably GPLv2+
|
|
mpv.desktop unknown license, probably GPLv2+
|
|
etc/restore-old-bindings.conf unkniwn license, probably GPLv2+
|
|
|
|
The following files contain some optional GPL code (--enable-lgpl disables it):
|
|
|
|
input/cmd_list.c potentially some commands
|
|
options/options.c --frames option
|
|
options/parse_commandline.c dvd:// expansion
|
|
player/audio.c libaf glue code
|
|
player/loadfile.c --frames option (minor but probably fatal)
|
|
player/osd.c OSD level 3
|
|
player/command.c add/cycle command, possibly sub-add command
|
|
|
|
None of the exceptions listed above affect the final binary if it's built as
|
|
LGPL. Linked libraries still can affect the final license (for example if
|
|
FFmpeg was built as GPL).
|