summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2015-12-03 09:32:40 +0100
committerwm4 <wm4@nowhere>2015-12-03 09:32:40 +0100
commit17507b593506ad820cfabbe2fcec208ffe9d073f (patch)
treec32ad98d4ddbcbe6f62dfef397e72ed7081fe282
parent57e691b9011e9bdcc4fbc53a484f80057c65a891 (diff)
downloadmpv-17507b593506ad820cfabbe2fcec208ffe9d073f.tar.bz2
mpv-17507b593506ad820cfabbe2fcec208ffe9d073f.tar.xz
vo_opengl: require --enable-gpl3 for nnedi
There are claims that nnedi3.c doesn't constitute its own new implementation, but is derived from existing HLSL or OpenCL shaders distributed under the LGPLv3 license. Until these are resolved, do the "correct" thing and require --enable-gpl3 to build nnedi.
-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',