summaryrefslogtreecommitdiffstats
path: root/Copyright
diff options
context:
space:
mode:
Diffstat (limited to 'Copyright')
-rw-r--r--Copyright309
1 files changed, 51 insertions, 258 deletions
diff --git a/Copyright b/Copyright
index cf025070d7..fc51b0e1f0 100644
--- a/Copyright
+++ b/Copyright
@@ -11,7 +11,7 @@ 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 the project to LGPLv2.1+
+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
@@ -31,6 +31,28 @@ under mplayer2, and has been removed from mpv.
Some libraries are GPLv2+ or GPLv3+ only. Building mpv with Samba support makes
it GPLv3+.
+mpv can be built as LGPLv3+ with the --enable-preliminary-lgpl3 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
+- Linux hardware decoding (vaapi, vdpau)
+- 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+
@@ -43,251 +65,43 @@ Source files with specific licenses:
- bootstrap.py is unknown (probably GPLv2+ or LGPLv2+)
- the build system (wscript, waftools/*) is LGPLv2+, some parts BSD
-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:
-
- 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".
+The following files are still GPL:
- 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/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_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
+ audio/audio.* needed by af code only
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_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
@@ -295,57 +109,36 @@ x player/audio.c LGPL (dysfunctional due to libaf)
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.* almost 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
+
+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, possible sub-add command
+ player/main.c configuration output
+
+The following files are partially LGPLv3+ (otherwise LGPL):
+
+ demux/demux_mf.c minor autodetection thing
+ stream/cache.c minor cache option changes
+ video/decode/lavc.h split from vd_lavc.c
+ video/decode/vd_lavc.c XvMC influences in get_format()