diff --git a/Copyright b/Copyright index 51a1a16f90..0ab48a06d8 100644 --- a/Copyright +++ b/Copyright @@ -12,6 +12,9 @@ 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. +Some GPLv3 or LGPLv3 code in mpv can be enabled by building with --enable-gpl3, +and in this case, the resulting binaries must be distributed under GPLv3. + For information about authors and contributors, consult the git log, which contains the complete SVN and CVS history as well. diff --git a/TOOLS/old-configure b/TOOLS/old-configure index 5f7a75b77d..a4776eddae 100755 --- a/TOOLS/old-configure +++ b/TOOLS/old-configure @@ -976,6 +976,7 @@ cat > $TMPC << EOF #define HAVE_SSE4_INTRINSICS 1 #define HAVE_C11_TLS 1 #define HAVE_EGL_ANGLE 0 +#define HAVE_GPL3 1 #ifdef __OpenBSD__ #define DEFAULT_CDROM_DEVICE "/dev/rcd0c" diff --git a/video/out/opengl/nnedi3.c b/video/out/opengl/nnedi3.c index 681aad5813..bb200b0f7a 100644 --- a/video/out/opengl/nnedi3.c +++ b/video/out/opengl/nnedi3.c @@ -18,10 +18,15 @@ * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. + * + * The shader portions may have been derived from existing LGPLv3 shaders + * (see below), possibly making this file effectively LGPLv3. */ #include "nnedi3.h" +#if HAVE_NNEDI + #include #include #include @@ -233,3 +238,21 @@ void pass_nnedi3(GL *gl, struct gl_shader_cache *sc, int planes, int tex_num, i, tex_num, tex_num, tex_num, i, tex_mul); } } + +#else + +const struct m_sub_options nnedi3_conf = {0}; + + +const float* get_nnedi3_weights(const struct nnedi3_opts *conf, int *size) +{ + return NULL; +} + +void pass_nnedi3(GL *gl, struct gl_shader_cache *sc, int planes, int tex_num, + int step, float tex_mul, const struct nnedi3_opts *conf, + struct gl_transform *transform) +{ +} + +#endif diff --git a/video/out/opengl/nnedi3.h b/video/out/opengl/nnedi3.h index be69f34c78..837383c6f6 100644 --- a/video/out/opengl/nnedi3.h +++ b/video/out/opengl/nnedi3.h @@ -23,9 +23,12 @@ #ifndef MP_GL_NNEDI3_H #define MP_GL_NNEDI3_H +#include "config.h" #include "common.h" #include "utils.h" +#define HAVE_NNEDI HAVE_GPL3 + #define NNEDI3_UPLOAD_UBO 0 #define NNEDI3_UPLOAD_SHADER 1 diff --git a/video/out/opengl/video.c b/video/out/opengl/video.c index f07fbb104b..6f3aba249c 100644 --- a/video/out/opengl/video.c +++ b/video/out/opengl/video.c @@ -459,8 +459,11 @@ const struct m_sub_options gl_video_conf = { OPT_FLOAT("sharpen", unsharp, 0), OPT_CHOICE("prescale", prescale, 0, ({"none", 0}, - {"superxbr", 1}, - {"nnedi3", 2})), + {"superxbr", 1} +#if HAVE_NNEDI + , {"nnedi3", 2} +#endif + )), OPT_INTRANGE("prescale-passes", prescale_passes, 0, 1, MAX_PRESCALE_PASSES), OPT_FLOATRANGE("prescale-downscaling-threshold", diff --git a/wscript b/wscript index 0f113002ba..1873881b1a 100644 --- a/wscript +++ b/wscript @@ -10,6 +10,11 @@ from waftools.checks.custom import * build_options = [ { + 'name': '--gpl3', + 'desc': 'GPL3 license', + 'default': 'disable', + 'func': check_true + }, { 'name': '--cplayer', 'desc': 'mpv CLI player', 'default': 'enable',