diff options
Diffstat (limited to 'Copyright')
-rw-r--r-- | Copyright | 366 |
1 files changed, 44 insertions, 322 deletions
@@ -1,352 +1,74 @@ 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). +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 -Dgpl=false configure switch. -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 the project to LGPLv2.1+ -easier.) Using a more liberal license compatible to LGPLv2.1+ is also ok. +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). -For information about authors and contributors, consult the git log, which -contains the complete SVN and CVS history as well. +All new contributions must be LGPLv2.1+ licensed. Using a more liberal license +compatible to LGPLv2.1+ is also ok. + +Changes done to GPL code must come with the implicit/explicit 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. -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+. +See DOCS/contribute.md for binding rules wrt. licensing for contributions. -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. +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+. -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+) -- wscript: GPLv2+ (due to 98fca3531841221b) +mpv can be built as LGPLv2.1+ with the -Dgpl=false 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: +- Linux X11 video output +- BSD audio output via OSS +- NVIDIA/Linux hardware decoding (vdpau, although nvdec usually works) +- Linux TV input +- minor features: jack, DVD, CDDA, SMB, CACA, legacy direct3d VO +Some of these will be fixed in the future. The intended use for LGPL mode is +with libmpv, and currently it's not recommended to build mpv CLI in LGPL mode +at all. -Some files are marked with "Almost LGPL." These files are GPL, but all authors -have agreed to relicense them to LGPL. the problem is that one of the authors is -Michael Niedermayer, who cited the following conditions for relicensing: +The following files are still GPL only (-Dgpl=false disables them): - http://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/2016-September/073535.html - -We assume the first 3 conditions are fulfilled. The last condition can be -interpreted as that his code can be changed to LGPL only as soon as the "core" -of mpv changes to LGPL. We interpret "core" as something minimal, that can -actually be built and run, with all GPL code disabled. - -Some files are LGPLv3+. This is due to the contributions of a single developer -going by the SVN username "iive". The chosen license of this project is -LGPLv2.1+. The affected files will be changed to LGPLv2.1+ at the earliest -opportunity, for example if his contributions disappear by being replaced -or removed. All new contributions to these files are implied to be LGPLv2.1+. - -LGPL relicensing status. Files which require some sort of action to get a basic -LGPL player core (relicensing, replacement, or partial/full rewrites) are marked -with an "x". - - audio/decode/ad.h LGPL - audio/decode/ad_lavc.c LGPL - audio/decode/ad_spdif.c LGPL - audio/decode/dec_audio.* LGPL -x audio/filter/af.* must be killed (main author disagreed) - (required for LGPL core: a new filter chain must be written) - audio/filter/af_channel.c must be killed (main author disagreed) - audio/filter/af_equalizer.c must be killed (main author disagreed) - audio/filter/af_pan.c must be killed (main author disagreed) - audio/filter/af_volume.c must be killed (main author disagreed) - audio/filter/equalizer.h must be killed (main author disagreed) - audio/filter/tools.c must be killed (main author disagreed) - audio/filter/af_format.c LGPL - audio/filter/af_lavc3enc.c LGPL - audio/filter/af_lavfi.c LGPL - audio/filter/af_scaletempo.c LGPL - audio/filter/af_rubberband.c LGPL - audio/out/ao.c LGPL - audio/out/ao.h LGPL - audio/out/ao_alsa.c extremely hard (original author did not decide) - audio/out/ao_audiounit.m LGPL - audio/out/ao_coreaudio.c LGPL - audio/out/ao_coreaudio_chmap.c LGPL - audio/out/ao_coreaudio_chmap.h LGPL - audio/out/ao_coreaudio_exclusiv LGPL - audio/out/ao_coreaudio_properti LGPL - audio/out/ao_coreaudio_properti LGPL - audio/out/ao_coreaudio_utils.c LGPL - audio/out/ao_coreaudio_utils.h LGPL audio/out/ao_jack.c will stay GPL - audio/out/ao_lavc.c LGPL - audio/out/ao_null.c LGPL - audio/out/ao_openal.c LGPL - audio/out/ao_opensles.c LGPL audio/out/ao_oss.c will stay GPL - audio/out/ao_pcm.c LGPL - audio/out/ao_pulse.c LGPL - audio/out/ao_rsound.c LGPL - audio/out/ao_sdl.c LGPL - audio/out/ao_sndio.c LGPL (BSD) - audio/out/ao_wasapi.c LGPL - audio/out/ao_wasapi_changenotif LGPL - audio/out/ao_wasapi.h LGPL - audio/out/ao_wasapi_utils.c LGPL - audio/out/internal.h LGPL - audio/out/pull.c LGPL - audio/out/push.c LGPL -x audio/audio.* very hard (mp_audio based of anders' af_audio) - (required for LGPL core: determine if the struct can be used anyway, or - devise a cheap AVFrame wrapper) - audio/audio_buffer.* LGPL - audio/chmap.* LGPL - audio/chmap_sel.* LGPL - audio/fmt-conversion.* LGPL - audio/format.* LGPL - common/av_common.* LGPL - common/av_log.c almost LGPL - common/av_log.h LGPL - common/codecs.* LGPL - common/common.* LGPL - common/encode.h LGPL - common/encode_lavc.* LGPL - common/global.h LGPL - common/msg.c almost LGPL - common/msg_control.h LGPL - common/msg.h LGPL - common/playlist.* LGPL - common/recorder.* LGPL - common/tags.* LGPL - common/version.c LGPL - demux/codec_tags.* LGPL - demux/cue.* LGPL - demux/demux.* LGPL - demux/demux_cue.c LGPL - demux/demux_disc.c LGPL - demux/demux_edl.c LGPL - demux/demux_lavf.c almost LGPL - demux/demux_libarchive.c LGPL - demux/demux_mf.c LGPLv3+ - demux/demux_mkv.c LGPL (mostly) - demux/demux_mkv_timeline.c LGPL - demux/demux_null.c LGPL - demux/demux_playlist.c LGPL - demux/demux_rar.c LGPL - demux/demux_raw.c almost LGPL - demux/demux_timeline.c LGPL - demux/demux_tv.c will stay GPL - demux/ebml.* LGPL - demux/matroska.h LGPL - demux/packet.* LGPL - demux/stheader.h LGPL - demux/timeline.* LGPL - input/cmd_* LGPL - input/event.* LGPL - input/input.* LGPL - input/ipc.c LGPL - input/ipc-unix.c LGPL - input/ipc-win.c LGPL - input/keycodes.* LGPL - input/pipe-win32.c LGPL - libmpv/*.* LGPL - misc/*.* LGPL - options/m_config.* LGPL - options/m_option.c almost LGPL - options/m_option.h LGPL - options/m_property.* LGPL - options/options.* LGPL - options/parse_commandline.* LGPL - options/parse_configfile.* LGPL - options/path.* LGPL - osdep/android/* LGPL (BSD) - osdep/ar/* LGPL (BSD) - osdep/atomic.h LGPL - osdep/compiler.h LGPL - osdep/endian.h LGPL - osdep/glob-win.c LGPL - osdep/io.* LGPL - osdep/macosx_application.h LGPL - osdep/macosx_application.m LGPL - osdep/macosx_application_objc.h LGPL - osdep/macosx_compat.h LGPL - osdep/macosx_events.* LGPL - osdep/macosx_events_objc.h LGPL - osdep/macosx_touchbar.* LGPL - osdep/macosx_versions.h LGPL - osdep/main-fn-cocoa.c LGPL - osdep/main-fn.h LGPL - osdep/main-fn-unix.c LGPL - osdep/main-fn-win.c LGPL - osdep/mpv.exe.manifest LGPL - osdep/mpv.rc LGPL - osdep/path.h LGPL - osdep/path-macosx.m LGPL - osdep/path-unix.c LGPL - osdep/path-win.c LGPL - osdep/semaphore.h LGPL - osdep/semaphore_osx.c LGPL - osdep/strnlen.h LGPL - osdep/subprocess.* LGPL - osdep/subprocess-posix.c LGPL - osdep/subprocess-win.c LGPL - osdep/terminal.h LGPL - osdep/terminal-unix.c LGPL - osdep/terminal-win.c LGPL - osdep/threads.* LGPL - osdep/timer.c LGPL - osdep/timer.h LGPL - osdep/timer-darwin.c LGPL (MIT) - osdep/timer-linux.c LGPL - osdep/timer-win2.c LGPL - osdep/w32_keyboard.c LGPL - osdep/w32_keyboard.h LGPL - osdep/win32-console-wrapper.c LGPL (BSD) - osdep/win32/* LGPL (ISC) - osdep/windows_utils.* LGPL -x player/audio.c LGPL (dysfunctional due to libaf) - player/client.* LGPL (ISC) - player/command.c LGPL - player/command.h LGPL - player/configfiles.c LGPL - player/core.h LGPL - player/external_files.* LGPL - player/lavfi.* LGPL - player/loadfile.c LGPL - player/lua/*.* LGPL - player/lua.c LGPL - player/misc.c LGPL - player/osd.c LGPL - player/playloop.c LGPL - player/screenshot.* LGPL - player/scripting.* LGPL - player/sub.c LGPL - player/video.c LGPL - stream/ai_* will stay GPL (TV code) - stream/audio_in.* will stay GPL (TV code) - stream/cache.c LGPLv3+ - stream/cache_file.c LGPL - stream/cookies.* LGPL stream/dvb* must stay GPL - stream/frequencies.* must stay GPL - stream/rar.* LGPL - stream/stream_avdevice.c LGPL - stream/stream_bluray.c LGPL - stream/stream.* LGPL - stream/stream_cb.c LGPL 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_edl.c LGPL - stream/stream_file.c LGPL - stream/stream_lavf.c LGPL - stream/stream_libarchive.* LGPL - stream/stream_memory.c LGPL - stream/stream_mf.c LGPL - stream/stream_null.c LGPL - stream/stream_rar.c LGPL - stream/stream_smb.c will stay GPLv3 - stream/stream_tv.c will stay GPL - stream/tv* will stay GPL - sub/* LGPL - ta/* LGPL (ISC) - video/decode/d3d.* LGPL - video/decode/dec_video.* almost LGPL - video/decode/hw_cuda.c LGPL - video/decode/hw_d3d11va.c LGPL - video/decode/hw_dxva2.c LGPL - video/decode/hw_videotoolbox.c LGPL - video/decode/lavc.h almost LGPLv3+ - video/decode/vd.h LGPL - video/decode/vd_lavc.c almost LGPLv3+ - video/filter/refqueue.* LGPL - video/filter/vf.c LGPL - video/filter/vf.h LGPL (mostly) - video/filter/vf_buffer.c LGPL - video/filter/vf_crop.c will be deleted - video/filter/vf_d3d11vpp.c LGPL - video/filter/vf_dsize.c will be deleted - video/filter/vf_eq.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_lavfi.* LGPL - 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_vapoursynth.c LGPL - video/filter/vf_vavpp.c LGPL - video/filter/vf_vdpaupp.c LGPL - video/filter/vf_yadif.c will be deleted - video/csputils.* LGPL - video/fmt-conversion.* LGPL - video/gpu_memcpy.* will be deleted - video/hwdec.* LGPL - video/image_writer.* LGPL - video/img_format.* LGPL - video/mp_image.* almost LGPL - video/mp_image_pool.* LGPL - video/out/aspect.* LGPL - video/out/bitmap_packer.* LGPL - video/out/cocoa* LGPL - video/out/d3d_shader_420p.h LGPL - video/out/d3d_shader_nv12.h LGPL - video/out/d3d_shader_yuv.hlsl LGPL - video/out/dither.* LGPL - video/out/drm_common.* LGPL - video/out/filter_kernels.* LGPL (BSD) - video/out/opengl/hwdec_vaglx.c GPL - video/out/opengl/* LGPL - video/out/vo.c LGPL - video/out/vo.h LGPL video/out/vo_caca.c unknown video/out/vo_direct3d.c unknown - video/out/vo_drm.c LGPL - video/out/vo_image.c LGPL - video/out/vo_lavc.c LGPL - video/out/vo_null.c LGPL - video/out/vo_opengl.c LGPL - video/out/vo_opengl_cb.c LGPL - video/out/vo_rpi.c LGPL - video/out/vo_sdl.c LGPL - video/out/vo_tct.c LGPL video/out/vo_vaapi.c probably impossible (some company's code) video/out/vo_vdpau.c probably impossible (nVidia's code) - video/out/vo_wayland.c LGPL video/out/vo_x11.c probably impossible video/out/vo_xv.c probably impossible - video/out/w32_common.* LGPL - video/out/wayland* LGPL - video/out/win32/* LGPL - video/out/win_state.* LGPL video/out/x11_common.* probably impossible - video/out/x11_icon.bin LGPL - video/sws_utils.* LGPL - video/vaapi.* hard (GPL-only parts must be ifdefed) video/vdpau.c hard (GPL-only parts must be ifdefed) - video/vdpau_functions.inc LGPL video/vdpau.h unknown video/vdpau_mixer.* actual code must be rewritten - video/vt.* LGPL + 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 unknown license, probably GPLv2+ + +None of the cases 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). |