summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Copyright3
-rwxr-xr-xTOOLS/old-configure1
-rw-r--r--video/out/opengl/nnedi3.c23
-rw-r--r--video/out/opengl/nnedi3.h3
-rw-r--r--video/out/opengl/video.c7
-rw-r--r--wscript5
6 files changed, 40 insertions, 2 deletions
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 <assert.h>
#include <stdint.h>
#include <float.h>
@@ -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',