summaryrefslogtreecommitdiffstats
path: root/Copyright
diff options
context:
space:
mode:
Diffstat (limited to 'Copyright')
-rw-r--r--Copyright366
1 files changed, 44 insertions, 322 deletions
diff --git a/Copyright b/Copyright
index c268e069cf..79f718bfc2 100644
--- a/Copyright
+++ b/Copyright
@@ -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).