mirror of https://github.com/mpv-player/mpv
129 lines
6.4 KiB
Plaintext
129 lines
6.4 KiB
Plaintext
mpv is a fork of mplayer2, which is a fork of MPlayer.
|
|
|
|
mpv as a whole is licensed as GPL version 2 or later (see LICENSE). Most source
|
|
files are GPLv2+, but some files are available under a more liberal license,
|
|
such as LGPLv2.1+, 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 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, or if the changes are done on
|
|
GPL code, must come with the implicit agreement that the project can relicense
|
|
the code to LGPLv2.1+ at a later point without asking the contributor. (This
|
|
is a safeguard for making potential relicensing of remaining code to LGPLv2.1+
|
|
easier.) Using a more liberal license compatible to LGPLv2.1+ is also ok.
|
|
|
|
For information about authors and contributors, consult the git log, which
|
|
contains the complete SVN and CVS history as well.
|
|
|
|
Note that mplayer2 as a whole is licensed under GPLv3+. This is because it uses
|
|
a copy of talloc (part of Samba), which is LGPLv3+, and the next compatible
|
|
license for this mix is GPLv3+.
|
|
|
|
MPlayer as a whole is licensed under GPLv2 (incompatible to GPLv3!), because
|
|
some files are licensed to GPLv2 (and _not_ any later version of the license).
|
|
In particular, this affects the file libmpdemux/demux_ty_osd.c. It is disabled
|
|
under mplayer2, and has been removed from mpv.
|
|
|
|
"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-preliminary-lgpl2 configure
|
|
option. This is a very new switch and it hasn't been confirmed yet whether
|
|
really all GPL code is excluded (thus preliminary). In addition, it disables
|
|
a number of useful 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.
|
|
|
|
Source files with specific licenses:
|
|
- etc/input.conf is LGPLv2.1+
|
|
- etc/builtin.conf is LGPLv2.1+
|
|
- etc/encoding-profiles.conf is LGPLv2.1+
|
|
- all mpv icons and derived files are LGPLv2.1+ (mpv-icon-8bit-16x16.png etc.)
|
|
- everything else under etc/ is unknown
|
|
- everything under DOCS/man/ is GPLv2+
|
|
- sub/osd_font.otf is LGPLv2.1+
|
|
- version.sh is LGPLv2+
|
|
- bootstrap.py is unknown (probably GPLv2+ or LGPLv2+)
|
|
- the build system (wscript, waftools/*) is LGPLv2+, some parts BSD
|
|
|
|
The following files are still GPL:
|
|
|
|
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, original 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
|
|
|
|
The following files contain some optional GPL code:
|
|
|
|
input/cmd_list.c potentially some commands
|
|
demux/demux_mkv.c some verbose message
|
|
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
|