diff options
author | Daniel Bermond | 2017-09-22 12:22:26 -0300 |
---|---|---|
committer | Daniel Bermond | 2017-09-22 12:22:26 -0300 |
commit | 68cf414141e79ae55335d3f77fd9e13603e5d78f (patch) | |
tree | f6b5f93f36c34272db2fbe03374a48c1ca086667 | |
parent | 9edb9182b9019fc542e676742f560855282b3d65 (diff) | |
download | aur-68cf414141e79ae55335d3f77fd9e13603e5d78f.tar.gz |
Removed support for multiple opengl backends due to compile error
The git master branch introduced code that broke the patch. And it
is not supported by upstream anyway (pull request is still open).
Removing it for now.
References
----------
https://github.com/mpv-player/mpv/pull/4384
-rw-r--r-- | .SRCINFO | 6 | ||||
-rw-r--r-- | 0001-opengl-backend-support-multiple-backends.patch | 291 | ||||
-rw-r--r-- | PKGBUILD | 13 |
3 files changed, 5 insertions, 305 deletions
@@ -1,8 +1,8 @@ # Generated by mksrcinfo v8 -# Wed Sep 13 20:24:45 UTC 2017 +# Fri Sep 22 15:21:35 UTC 2017 pkgbase = mpv-full-git pkgdesc = A free, open source, and cross-platform media player (git version with all possible libs) - pkgver = 0.27.0.r3.g2f41b834b3 + pkgver = 0.27.0.r41.gfab0448c5e pkgrel = 1 url = http://mpv.io/ arch = i686 @@ -39,9 +39,7 @@ pkgbase = mpv-full-git conflicts = mpv-git options = !emptydirs source = mpv-full-git::git+https://github.com/mpv-player/mpv.git - source = 0001-opengl-backend-support-multiple-backends.patch sha256sums = SKIP - sha256sums = 609e0530f1b0cdb910dcffb5f62bf55936540e24105ce1b2daf1bd6291a7d58a depends_i686 = libcdio-paranoia depends_i686 = libcaca depends_i686 = smbclient diff --git a/0001-opengl-backend-support-multiple-backends.patch b/0001-opengl-backend-support-multiple-backends.patch deleted file mode 100644 index e96c608d5029..000000000000 --- a/0001-opengl-backend-support-multiple-backends.patch +++ /dev/null @@ -1,291 +0,0 @@ -From 9c397af0dabfff7177bcb76409af5b8f9ae608cf Mon Sep 17 00:00:00 2001 -From: Drew DeVault <sir@cmpwn.com> -Date: Thu, 27 Apr 2017 17:19:58 -0400 -Subject: [PATCH 1/4] --opengl-backend: support multiple backends - -Will attempt each backend specified in order. The x11 backend is still -preferred, even on Wayland, but the user can now use ---opengl-backend=wayland,x11 to prefer wayland and fall back to x11 if -wayland is unavailable. ---- - video/out/opengl/context.c | 66 +++++++++++++++++++++++++++++++++++++++++----- - video/out/opengl/context.h | 8 ++---- - video/out/vo_opengl.c | 7 +++-- - 3 files changed, 64 insertions(+), 17 deletions(-) - -diff --git a/video/out/opengl/context.c b/video/out/opengl/context.c -index 72311e11fa..568bb662b8 100644 ---- a/video/out/opengl/context.c -+++ b/video/out/opengl/context.c -@@ -89,6 +89,30 @@ static const struct mpgl_driver *const backends[] = { - #endif - }; - -+static bool get_desc(struct m_obj_desc *dst, int index) -+{ -+ if (index >= MP_ARRAY_SIZE(backends) - 1) -+ return false; -+ const struct mpgl_driver *driver = backends[index]; -+ *dst = (struct m_obj_desc) { -+ .name = driver->name, -+ .description = driver->name, -+ .priv_size = sizeof(struct mpgl_driver), -+ .p = driver, -+ }; -+ return true; -+} -+ -+// for backend option -+const struct m_obj_list mpgl_backend_list = { -+ .get_desc = get_desc, -+ .description = "OpenGL windowing backends", -+ .allow_unknown_entries = true, -+ .allow_disable_entries = true, -+ .allow_trailer = true, -+ .disallow_positional_parameters = true, -+}; -+ - // 0-terminated list of desktop GL versions a backend should try to - // initialize. The first entry is the most preferred version. - const int mpgl_preferred_gl_versions[] = { -@@ -100,7 +124,7 @@ const int mpgl_preferred_gl_versions[] = { - 0 - }; - --int mpgl_find_backend(const char *name) -+static int mpgl_find_backend(const char *name) - { - if (name == NULL || strcmp(name, "auto") == 0) - return -1; -@@ -126,7 +150,7 @@ int mpgl_validate_backend_opt(struct mp_log *log, const struct m_option *opt, - return mpgl_find_backend(s) >= -1 ? 1 : M_OPT_INVALID; - } - --static void *get_native_display(void *pctx, const char *name) -+static void *get_native_display(const char *name) - { - MPGLContext *ctx = pctx; - if (!ctx->native_display_type || !name) -@@ -186,11 +210,41 @@ cleanup: - - // Create a VO window and create a GL context on it. - // vo_flags: passed to the backend's create window function --MPGLContext *mpgl_init(struct vo *vo, const char *backend_name, int vo_flags) -+MPGLContext *mpgl_init(struct vo *vo, struct m_obj_settings *backend_list, int vo_flags) - { - MPGLContext *ctx = NULL; -- int index = mpgl_find_backend(backend_name); -- if (index == -1) { -+ if (backend_list && backend_list[0].name) { -+ int n; -+ for (n = 0; backend_list[n].name; n++) { -+ // Something like "--opengl-backend=name," allows fallback to autoprobing. -+ int index = mpgl_find_backend(backend_list[n].name); -+ if (index == -1 || strlen(backend_list[n].name) == 0) -+ goto autoprobe; -+ if (index == -2) { -+ MP_FATAL(vo, "Unknown opengl backend '%s'\n", backend_list[n].name); -+ exit(-2); -+ return NULL; -+ } -+ ctx = init_backend(vo, backends[index], true, vo_flags); -+ if (ctx) -+ break; -+ } -+ if (!ctx && !vo->probing) { -+ // Now try with probing off -+ for (n = 0; backend_list[n].name; n++) { -+ int index = mpgl_find_backend(backend_list[n].name); -+ ctx = init_backend(vo, backends[index], false, vo_flags); -+ if (ctx) -+ break; -+ } -+ if (!ctx) { -+ // Backend explicitly requested, but unable to fulfill -+ return NULL; -+ } -+ } -+ } -+ if (!ctx) { -+autoprobe: - for (int n = 0; n < MP_ARRAY_SIZE(backends); n++) { - ctx = init_backend(vo, backends[n], true, vo_flags); - if (ctx) -@@ -204,8 +258,6 @@ MPGLContext *mpgl_init(struct vo *vo, const char *backend_name, int vo_flags) - break; - } - } -- } else if (index >= 0) { -- ctx = init_backend(vo, backends[index], false, vo_flags); - } - return ctx; - } -diff --git a/video/out/opengl/context.h b/video/out/opengl/context.h -index 229c5ef54f..7cf439c1a0 100644 ---- a/video/out/opengl/context.h -+++ b/video/out/opengl/context.h -@@ -100,17 +100,13 @@ typedef struct MPGLContext { - void *priv; - } MPGLContext; - --MPGLContext *mpgl_init(struct vo *vo, const char *backend_name, int vo_flags); -+MPGLContext *mpgl_init(struct vo *vo, struct m_obj_settings *backend_list, int vo_flags); - void mpgl_uninit(MPGLContext *ctx); - int mpgl_reconfig_window(struct MPGLContext *ctx); - int mpgl_control(struct MPGLContext *ctx, int *events, int request, void *arg); - void mpgl_start_frame(struct MPGLContext *ctx); - void mpgl_swap_buffers(struct MPGLContext *ctx); - --int mpgl_find_backend(const char *name); -- --struct m_option; --int mpgl_validate_backend_opt(struct mp_log *log, const struct m_option *opt, -- struct bstr name, struct bstr param); -+extern const struct m_obj_list mpgl_backend_list; - - #endif -diff --git a/video/out/vo_opengl.c b/video/out/vo_opengl.c -index 9b3f944e21..91e55b3b2f 100644 ---- a/video/out/vo_opengl.c -+++ b/video/out/vo_opengl.c -@@ -55,7 +55,7 @@ struct vo_opengl_opts { - int allow_sw; - int swap_interval; - int vsync_fences; -- char *backend; -+ struct m_obj_settings *backend_list; - int es; - int pattern[2]; - }; -@@ -383,7 +383,7 @@ static int preinit(struct vo *vo) - if (p->opts.allow_sw) - vo_flags |= VOFLAG_SW; - -- p->glctx = mpgl_init(vo, p->opts.backend, vo_flags); -+ p->glctx = mpgl_init(vo, p->opts.backend_list, vo_flags); - if (!p->glctx) - goto err_out; - p->gl = p->glctx->gl; -@@ -438,8 +438,7 @@ const struct vo_driver video_out_opengl = { - OPT_FLAG("opengl-waitvsync", opts.waitvsync, 0), - OPT_INT("opengl-swapinterval", opts.swap_interval, 0), - OPT_FLAG("opengl-debug", opts.use_gl_debug, 0), -- OPT_STRING_VALIDATE("opengl-backend", opts.backend, 0, -- mpgl_validate_backend_opt), -+ OPT_SETTINGSLIST("opengl-backend", opts.backend_list, 0, &mpgl_backend_list ), - OPT_FLAG("opengl-sw", opts.allow_sw, 0), - OPT_CHOICE("opengl-es", opts.es, 0, ({"no", -1}, {"auto", 0}, - {"yes", 1}, {"force2", 2})), -From 4e89fae50f70d065ff8ffee40aa8dffe8131210e Mon Sep 17 00:00:00 2001 -From: Drew DeVault <sir@cmpwn.com> -Date: Thu, 27 Apr 2017 17:51:39 -0400 -Subject: [PATCH 2/4] Update mpv.1 ---- - DOCS/man/options.rst | 7 ++++--- - 1 file changed, 4 insertions(+), 3 deletions(-) - -diff --git a/DOCS/man/options.rst b/DOCS/man/options.rst -index 925c501881..5d57720e3d 100644 ---- a/DOCS/man/options.rst -+++ b/DOCS/man/options.rst -@@ -4480,9 +4480,10 @@ The following video options are currently all specific to ``--vo=opengl`` and - Continue even if a software renderer is detected. - - ``--opengl-backend=<sys>`` -- The value ``auto`` (the default) selects the windowing backend. You can -- also pass ``help`` to get a complete list of compiled in backends (sorted -- by autoprobe order). -+ Specify a priority list of windowing backends to use with OpenGL. The value -+ ``auto`` (the default) automatically probes for the most suitable backend. -+ You can also pass ``help`` to get a complete list of compiled in backends -+ (sorted by autoprobe order). - - auto - auto-select (default) -From 3fb437fa09ebf20635c02f41ce0e3d13423d1454 Mon Sep 17 00:00:00 2001 -From: Drew DeVault <sir@cmpwn.com> -Date: Thu, 27 Apr 2017 20:12:51 -0400 -Subject: [PATCH 3/4] Let options handle invalid backends ---- - video/out/opengl/context.c | 17 +++++++++-------- - 1 file changed, 9 insertions(+), 8 deletions(-) - -diff --git a/video/out/opengl/context.c b/video/out/opengl/context.c -index 568bb662b8..8aa44b67cc 100644 ---- a/video/out/opengl/context.c -+++ b/video/out/opengl/context.c -@@ -91,6 +91,14 @@ static const struct mpgl_driver *const backends[] = { - - static bool get_desc(struct m_obj_desc *dst, int index) - { -+ if (index == 0) { -+ *dst = (struct m_obj_desc) { -+ .name = "auto", -+ .description = "automatically select most suitable backend" -+ }; -+ return true; -+ } -+ index--; - if (index >= MP_ARRAY_SIZE(backends) - 1) - return false; - const struct mpgl_driver *driver = backends[index]; -@@ -107,8 +115,6 @@ static bool get_desc(struct m_obj_desc *dst, int index) - const struct m_obj_list mpgl_backend_list = { - .get_desc = get_desc, - .description = "OpenGL windowing backends", -- .allow_unknown_entries = true, -- .allow_disable_entries = true, - .allow_trailer = true, - .disallow_positional_parameters = true, - }; -@@ -218,13 +224,8 @@ MPGLContext *mpgl_init(struct vo *vo, struct m_obj_settings *backend_list, int v - for (n = 0; backend_list[n].name; n++) { - // Something like "--opengl-backend=name," allows fallback to autoprobing. - int index = mpgl_find_backend(backend_list[n].name); -- if (index == -1 || strlen(backend_list[n].name) == 0) -+ if (index < 0 || strlen(backend_list[n].name) == 0) - goto autoprobe; -- if (index == -2) { -- MP_FATAL(vo, "Unknown opengl backend '%s'\n", backend_list[n].name); -- exit(-2); -- return NULL; -- } - ctx = init_backend(vo, backends[index], true, vo_flags); - if (ctx) - break; -From 605785c4846ecaa969309f7fb63cfba59751ba61 Mon Sep 17 00:00:00 2001 -From: Drew DeVault <sir@cmpwn.com> -Date: Fri, 26 May 2017 15:31:24 -0400 -Subject: [PATCH 4/4] Updates following HEAD ---- - video/out/opengl/context.c | 17 +---------------- - 1 file changed, 1 insertion(+), 16 deletions(-) - -diff --git a/video/out/opengl/context.c b/video/out/opengl/context.c -index 8aa44b67cc..4cc0829c90 100644 ---- a/video/out/opengl/context.c -+++ b/video/out/opengl/context.c -@@ -141,22 +141,7 @@ static int mpgl_find_backend(const char *name) - return -2; - } - --int mpgl_validate_backend_opt(struct mp_log *log, const struct m_option *opt, -- struct bstr name, struct bstr param) --{ -- if (bstr_equals0(param, "help")) { -- mp_info(log, "OpenGL windowing backends:\n"); -- mp_info(log, " auto (autodetect)\n"); -- for (int n = 0; n < MP_ARRAY_SIZE(backends); n++) -- mp_info(log, " %s\n", backends[n]->name); -- return M_OPT_EXIT; -- } -- char s[20]; -- snprintf(s, sizeof(s), "%.*s", BSTR_P(param)); -- return mpgl_find_backend(s) >= -1 ? 1 : M_OPT_INVALID; --} -- --static void *get_native_display(const char *name) -+static void *get_native_display(void *pctx, const char *name) - { - MPGLContext *ctx = pctx; - if (!ctx->native_display_type || !name) @@ -6,7 +6,7 @@ # CUDA is x86_64 only and so it will not be available in i686 builds. pkgname=mpv-full-git -pkgver=0.27.0.r3.g2f41b834b3 +pkgver=0.27.0.r41.gfab0448c5e pkgrel=1 pkgdesc='A free, open source, and cross-platform media player (git version with all possible libs)' arch=('i686' 'x86_64') @@ -33,15 +33,8 @@ makedepends=('git' 'mesa' 'python-docutils' 'ladspa') provides=('mpv') conflicts=('mpv' 'mpv-git') options=('!emptydirs') -source=("$pkgname"::'git+https://github.com/mpv-player/mpv.git' - '0001-opengl-backend-support-multiple-backends.patch') -sha256sums=('SKIP' - '609e0530f1b0cdb910dcffb5f62bf55936540e24105ce1b2daf1bd6291a7d58a') - -prepare() { - cd "$pkgname" - patch -Np1 -i "${srcdir}/0001-opengl-backend-support-multiple-backends.patch" -} +source=("$pkgname"::'git+https://github.com/mpv-player/mpv.git') +sha256sums=('SKIP') pkgver() { cd "$pkgname" |