mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-28 22:57:37 +00:00
community/mpv to 0.28.2-1
This commit is contained in:
parent
752f18616c
commit
17e9232528
4 changed files with 2 additions and 425 deletions
|
@ -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)
|
|
|
@ -1,91 +0,0 @@
|
||||||
From 2ecf240b1cd20875991a5b18efafbe799864ff7f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Mark Thompson <sw@jkqxz.net>
|
|
||||||
Date: Mon, 9 Oct 2017 20:10:26 +0100
|
|
||||||
Subject: vaapi: Use libva2 message callbacks
|
|
||||||
|
|
||||||
They are no longer global, so they work vaguely sensibly.
|
|
||||||
---
|
|
||||||
video/vaapi.c | 32 +++++++++++++++++++++++++++++---
|
|
||||||
1 file changed, 29 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/video/vaapi.c b/video/vaapi.c
|
|
||||||
index 6bedbbaa18..3b1cb9cc41 100644
|
|
||||||
--- a/video/vaapi.c
|
|
||||||
+++ b/video/vaapi.c
|
|
||||||
@@ -40,9 +40,27 @@ int va_get_colorspace_flag(enum mp_csp csp)
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
-// VA message callbacks are global and do not have a context parameter, so it's
|
|
||||||
-// impossible to know from which VADisplay they originate. Try to route them
|
|
||||||
-// to existing mpv/libmpv instances within this process.
|
|
||||||
+#if VA_CHECK_VERSION(1, 0, 0)
|
|
||||||
+static void va_message_callback(void *context, const char *msg, int mp_level)
|
|
||||||
+{
|
|
||||||
+ struct mp_vaapi_ctx *res = context;
|
|
||||||
+ mp_msg(res->log, mp_level, "libva: %s", msg);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void va_error_callback(void *context, const char *msg)
|
|
||||||
+{
|
|
||||||
+ va_message_callback(context, msg, MSGL_ERR);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void va_info_callback(void *context, const char *msg)
|
|
||||||
+{
|
|
||||||
+ va_message_callback(context, msg, MSGL_V);
|
|
||||||
+}
|
|
||||||
+#else
|
|
||||||
+// Pre-libva2 VA message callbacks are global and do not have a context
|
|
||||||
+// parameter, so it's impossible to know from which VADisplay they
|
|
||||||
+// originate. Try to route them to existing mpv/libmpv instances within
|
|
||||||
+// this process.
|
|
||||||
static pthread_mutex_t va_log_mutex = PTHREAD_MUTEX_INITIALIZER;
|
|
||||||
static struct mp_vaapi_ctx **va_mpv_clients;
|
|
||||||
static int num_va_mpv_clients;
|
|
||||||
@@ -77,6 +95,7 @@ static void va_info_callback(const char *msg)
|
|
||||||
{
|
|
||||||
va_message_callback(msg, MSGL_V);
|
|
||||||
}
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
static void open_lavu_vaapi_device(struct mp_vaapi_ctx *ctx)
|
|
||||||
{
|
|
||||||
@@ -108,6 +127,10 @@ struct mp_vaapi_ctx *va_initialize(VADisplay *display, struct mp_log *plog,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
+#if VA_CHECK_VERSION(1, 0, 0)
|
|
||||||
+ vaSetErrorCallback(display, va_error_callback, res);
|
|
||||||
+ vaSetInfoCallback(display, va_info_callback, res);
|
|
||||||
+#else
|
|
||||||
pthread_mutex_lock(&va_log_mutex);
|
|
||||||
MP_TARRAY_APPEND(NULL, va_mpv_clients, num_va_mpv_clients, res);
|
|
||||||
pthread_mutex_unlock(&va_log_mutex);
|
|
||||||
@@ -117,6 +140,7 @@ struct mp_vaapi_ctx *va_initialize(VADisplay *display, struct mp_log *plog,
|
|
||||||
#ifdef VA_FOURCC_I010
|
|
||||||
vaSetErrorCallback(va_error_callback);
|
|
||||||
vaSetInfoCallback(va_info_callback);
|
|
||||||
+#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int major, minor;
|
|
||||||
@@ -154,6 +178,7 @@ void va_destroy(struct mp_vaapi_ctx *ctx)
|
|
||||||
if (ctx->destroy_native_ctx)
|
|
||||||
ctx->destroy_native_ctx(ctx->native_ctx);
|
|
||||||
|
|
||||||
+#if !VA_CHECK_VERSION(1, 0, 0)
|
|
||||||
pthread_mutex_lock(&va_log_mutex);
|
|
||||||
for (int n = 0; n < num_va_mpv_clients; n++) {
|
|
||||||
if (va_mpv_clients[n] == ctx) {
|
|
||||||
@@ -164,6 +189,7 @@ void va_destroy(struct mp_vaapi_ctx *ctx)
|
|
||||||
if (num_va_mpv_clients == 0)
|
|
||||||
TA_FREEP(&va_mpv_clients); // avoid triggering leak detectors
|
|
||||||
pthread_mutex_unlock(&va_log_mutex);
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
talloc_free(ctx);
|
|
||||||
}
|
|
||||||
--
|
|
||||||
cgit v1.1-22-g1649
|
|
||||||
|
|
|
@ -1,26 +0,0 @@
|
||||||
From e9dc4ac86f9dbd59147963d08ec8447bba3ed0bb Mon Sep 17 00:00:00 2001
|
|
||||||
From: Daniel Kucera <daniel.kucera@gmail.com>
|
|
||||||
Date: Mon, 23 Oct 2017 15:29:17 +0200
|
|
||||||
Subject: [PATCH] demux_lavf: return AVERROR_EOF on file end
|
|
||||||
|
|
||||||
Signed-off-by: Daniel Kucera <daniel.kucera@gmail.com>
|
|
||||||
Signed-off-by: wm4 <wm4@nowhere>
|
|
||||||
|
|
||||||
Uses different style and different logic from original PR.
|
|
||||||
---
|
|
||||||
demux/demux_lavf.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/demux/demux_lavf.c b/demux/demux_lavf.c
|
|
||||||
index c11f7739e1..11fa1c59b6 100644
|
|
||||||
--- a/demux/demux_lavf.c
|
|
||||||
+++ b/demux/demux_lavf.c
|
|
||||||
@@ -242,7 +242,7 @@ static int mp_read(void *opaque, uint8_t *buf, int size)
|
|
||||||
|
|
||||||
MP_TRACE(demuxer, "%d=mp_read(%p, %p, %d), pos: %"PRId64", eof:%d\n",
|
|
||||||
ret, stream, buf, size, stream_tell(stream), stream->eof);
|
|
||||||
- return ret;
|
|
||||||
+ return ret ? ret : AVERROR_EOF;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int64_t mp_seek(void *opaque, int64_t pos, int whence)
|
|
|
@ -9,7 +9,7 @@
|
||||||
|
|
||||||
pkgname=mpv
|
pkgname=mpv
|
||||||
epoch=1
|
epoch=1
|
||||||
pkgver=0.27.2
|
pkgver=0.28.2
|
||||||
pkgrel=1
|
pkgrel=1
|
||||||
_waf_version=1.9.8
|
_waf_version=1.9.8
|
||||||
pkgdesc='a free, open source, and cross-platform media player'
|
pkgdesc='a free, open source, and cross-platform media player'
|
||||||
|
@ -28,28 +28,13 @@ makedepends=('mesa' 'python-docutils' 'ladspa')
|
||||||
optdepends=('youtube-dl: for video-sharing websites playback')
|
optdepends=('youtube-dl: for video-sharing websites playback')
|
||||||
options=('!emptydirs')
|
options=('!emptydirs')
|
||||||
source=("$pkgname-$pkgver.tar.gz::https://github.com/mpv-player/$pkgname/archive/v$pkgver.tar.gz"
|
source=("$pkgname-$pkgver.tar.gz::https://github.com/mpv-player/$pkgname/archive/v$pkgver.tar.gz"
|
||||||
'0001-opengl-backend-support-multiple-backends.patch'
|
|
||||||
'0002-vaapi-Use-libva2-message-callbacks.patch'
|
|
||||||
'0003-demux_lavf-return-AVERROR_EOF-on-file-end.patch'
|
|
||||||
"https://waf.io/waf-${_waf_version}")
|
"https://waf.io/waf-${_waf_version}")
|
||||||
sha256sums=('2ad104d83fd3b2b9457716615acad57e479fd1537b8fc5e37bfe9065359b50be'
|
sha256sums=('aada14e025317b5b3e8e58ffaf7902e8b6e4ec347a93d25a7c10d3579426d795'
|
||||||
'609e0530f1b0cdb910dcffb5f62bf55936540e24105ce1b2daf1bd6291a7d58a'
|
|
||||||
'3c3517f4f4c71e39e1e04ea440688fc8d7b3dc55e6bc0a9398d11a9b75bde07d'
|
|
||||||
'5de6c616428c87cf9b39d8ba24446d65d175050c083e1054194d93cf03d5816a'
|
|
||||||
'167dc42bab6d5bd823b798af195420319cb5c9b571e00db7d83df2a0fe1f4dbf')
|
'167dc42bab6d5bd823b798af195420319cb5c9b571e00db7d83df2a0fe1f4dbf')
|
||||||
|
|
||||||
prepare() {
|
prepare() {
|
||||||
cd ${pkgname}-${pkgver}
|
cd ${pkgname}-${pkgver}
|
||||||
|
|
||||||
# --opengl-backend: support multiple backends (#4384) (FS#53962)
|
|
||||||
patch -Np1 < "${srcdir}"/0001-opengl-backend-support-multiple-backends.patch
|
|
||||||
|
|
||||||
# vaapi: Use libva2 message callbacks
|
|
||||||
patch -Np1 < "${srcdir}"/0002-vaapi-Use-libva2-message-callbacks.patch
|
|
||||||
|
|
||||||
# demux_lavf: return AVERROR_EOF on file end
|
|
||||||
patch -Np1 < "${srcdir}"/0003-demux_lavf-return-AVERROR_EOF-on-file-end.patch
|
|
||||||
|
|
||||||
install -m755 "${srcdir}"/waf-${_waf_version} waf
|
install -m755 "${srcdir}"/waf-${_waf_version} waf
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue