videoplayer new

This commit is contained in:
Rmys
2021-02-13 17:25:59 +03:00
parent 7c3a5646f7
commit 798430e11a
99 changed files with 262777 additions and 290548 deletions
@@ -0,0 +1,33 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt
from pisi.actionsapi import get
from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
from pisi.actionsapi import shelltools
from pisi.actionsapi import pythonmodules
shelltools.export("JOBS", get.makeJOBS().replace("-j", ""))
shelltools.export("LDFLAGS", "%s -Wl,--as-needed" % get.LDFLAGS())
def setup():
shelltools.system("./bootstrap.py")
shelltools.system("python3 waf configure --prefix=/usr \
--confdir=/etc/mpv \
--enable-dvb \
--enable-cdda \
--enable-dvdnav \
--enable-libarchive \
--enable-libmpv-shared")
def build():
shelltools.system("python3 waf build -v")
def install():
shelltools.system("DESTDIR=%s python3 waf install" % get.installDIR())
pisitools.insinto("/usr/share/mpv/scripts", "TOOLS/lua/*")
pisitools.dodoc("Copyright", "RELEASE_NOTES", "README.md")
@@ -0,0 +1,291 @@
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)
@@ -0,0 +1,91 @@
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
@@ -0,0 +1,26 @@
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)
@@ -0,0 +1,18 @@
Description: System-wide config directory is /etc/mpv
Origin: vendor
Bug-Debian: https://bugs.debian.org/732214
Forwarded: not-needed
Author: Alessandro Ghedini <ghedo@debian.org>
Last-Update: 2015-05-03
--- a/DOCS/man/mpv.rst
+++ b/DOCS/man/mpv.rst
@@ -956,7 +956,7 @@ FILES
For Windows-specifics, see `FILES ON WINDOWS`_ section.
-``/usr/local/etc/mpv/mpv.conf``
+``/etc/mpv/mpv.conf``
mpv system-wide settings (depends on ``--prefix`` passed to configure - mpv
in default configuration will use ``/usr/local/etc/mpv/`` as config
directory, while most Linux distributions will set it to ``/etc/mpv/``).
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,21 @@
Description: Fix waf support for PIE
Origin: vendor
Debian-Bug: https://bugs.debian.org/799738
Forwarded: not-needed
Author: Simon Ruderich <simon@ruderich.org>
Reviewed-by: Alessandro Ghedini <ghedo@debian.org>
Last-Update: 2015-09-24
--- a/waflib/Context.py
+++ b/waflib/Context.py
@@ -140,6 +140,10 @@
def exec_command(self,cmd,**kw):
subprocess=Utils.subprocess
kw['shell']=isinstance(cmd,str)
+ # FIXME: hacky solution to fix PIC-PIE-conflict
+ if '-shared' in cmd:
+ Logs.debug('runner: old %r'%(cmd,))
+ cmd = [x for x in cmd if x != '-fPIE' and x != '-pie']
Logs.debug('runner: %r'%(cmd,))
Logs.debug('runner_env: kw=%s'%kw)
if self.logger:
@@ -0,0 +1,8 @@
diff -Nuar a/etc/mpv.desktop b/etc/mpv.desktop
--- a/etc/mpv.desktop 2020-11-22 20:46:28.000000000 +0300
+++ b/etc/mpv.desktop 2021-01-17 18:49:04.133086291 +0300
@@ -34,3 +34,4 @@
Categories=AudioVideo;Audio;Video;Player;TV;
MimeType=application/ogg;application/x-ogg;application/mxf;application/sdp;application/smil;application/x-smil;application/streamingmedia;application/x-streamingmedia;application/vnd.rn-realmedia;application/vnd.rn-realmedia-vbr;audio/aac;audio/x-aac;audio/vnd.dolby.heaac.1;audio/vnd.dolby.heaac.2;audio/aiff;audio/x-aiff;audio/m4a;audio/x-m4a;application/x-extension-m4a;audio/mp1;audio/x-mp1;audio/mp2;audio/x-mp2;audio/mp3;audio/x-mp3;audio/mpeg;audio/mpeg2;audio/mpeg3;audio/mpegurl;audio/x-mpegurl;audio/mpg;audio/x-mpg;audio/rn-mpeg;audio/musepack;audio/x-musepack;audio/ogg;audio/scpls;audio/x-scpls;audio/vnd.rn-realaudio;audio/wav;audio/x-pn-wav;audio/x-pn-windows-pcm;audio/x-realaudio;audio/x-pn-realaudio;audio/x-ms-wma;audio/x-pls;audio/x-wav;video/mpeg;video/x-mpeg2;video/x-mpeg3;video/mp4v-es;video/x-m4v;video/mp4;application/x-extension-mp4;video/divx;video/vnd.divx;video/msvideo;video/x-msvideo;video/ogg;video/quicktime;video/vnd.rn-realvideo;video/x-ms-afs;video/x-ms-asf;audio/x-ms-asf;application/vnd.ms-asf;video/x-ms-wmv;video/x-ms-wmx;video/x-ms-wvxvideo;video/x-avi;video/avi;video/x-flic;video/fli;video/x-flc;video/flv;video/x-flv;video/x-theora;video/x-theora+ogg;video/x-matroska;video/mkv;audio/x-matroska;application/x-matroska;video/webm;audio/webm;audio/vorbis;audio/x-vorbis;audio/x-vorbis+ogg;video/x-ogm;video/x-ogm+ogg;application/x-ogm;application/x-ogm-audio;application/x-ogm-video;application/x-shorten;audio/x-shorten;audio/x-ape;audio/x-wavpack;audio/x-tta;audio/AMR;audio/ac3;audio/eac3;audio/amr-wb;video/mp2t;audio/flac;audio/mp4;application/x-mpegurl;video/vnd.mpegurl;application/vnd.apple.mpegurl;audio/x-pn-au;video/3gp;video/3gpp;video/3gpp2;audio/3gpp;audio/3gpp2;video/dv;audio/dv;audio/opus;audio/vnd.dts;audio/vnd.dts.hd;audio/x-adpcm;application/x-cue;audio/m3u;
X-KDE-Protocols=ftp,http,https,mms,rtmp,rtsp,sftp,smb,srt
+Keywords=mpv;media;player;video;audio;tv;
@@ -0,0 +1,29 @@
Description: Surpress ffmpeg version mismatch error
Requiring an exact ffmpeg version isn't helpful in a distribution where all ABI
issues should already be handled by package dependencies. Rebuilding every time
ffmpeg is updated is also completely unmaintainable.
Author: James Cowgill <jcowgill@debian.org>
Bug-Debian: https://bugs.debian.org/831537
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
--- a/player/main.c
+++ b/player/main.c
@@ -429,18 +429,6 @@ int mp_initialize(struct MPContext *mpct
handle_deprecated_options(mpctx);
- if (!print_libav_versions(mp_null_log, 0)) {
- // Using mismatched libraries can be legitimate, but even then it's
- // a bad idea. We don't acknowledge its usefulness and stability.
- print_libav_versions(mpctx->log, MSGL_FATAL);
- MP_FATAL(mpctx, "\nmpv was compiled against a different version of "
- "FFmpeg/Libav than the shared\nlibrary it is linked against. "
- "This is most likely a broken build and could\nresult in "
- "misbehavior and crashes.\n\nmpv does not support this "
- "configuration and will not run - rebuild mpv instead.\n");
- return -1;
- }
-
if (!mpctx->playlist->first && !opts->player_idle_mode)
return -3;
@@ -0,0 +1,39 @@
diff --git a/video/out/opengl/hwdec_vaegl.c b/video/out/opengl/hwdec_vaegl.c
index b4587c5..d852fdf 100644
--- a/video/out/opengl/hwdec_vaegl.c
+++ b/video/out/opengl/hwdec_vaegl.c
@@ -52,6 +52,35 @@ typedef void *EGLImageKHR;
#define EGL_DMA_BUF_PLANE0_PITCH_EXT 0x3274
#endif
+#ifndef EGL_EXT_image_dma_buf_import_modifiers
+#define EGL_EXT_image_dma_buf_import_modifiers 1
+#define EGL_DMA_BUF_PLANE3_FD_EXT 0x3440
+#define EGL_DMA_BUF_PLANE3_OFFSET_EXT 0x3441
+#define EGL_DMA_BUF_PLANE3_PITCH_EXT 0x3442
+#define EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT 0x3443
+#define EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT 0x3444
+#define EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT 0x3445
+#define EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT 0x3446
+#define EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT 0x3447
+#define EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT 0x3448
+#define EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT 0x3449
+#define EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT 0x344A
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDMABUFFORMATSEXTPROC) (EGLDisplay dpy, EGLint max_formats, EGLint *formats, EGLint *num_formats);
+typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDMABUFMODIFIERSEXTPROC) (EGLDisplay dpy, EGLint format, EGLint max_modifiers, EGLuint64KHR *modifiers, EGLBoolean *external_only, EGLint *num_modifiers);
+#ifdef EGL_EGLEXT_PROTOTYPES
+EGLAPI EGLBoolean EGLAPIENTRY eglQueryDmaBufFormatsEXT (EGLDisplay dpy, EGLint max_formats, EGLint *formats, EGLint *num_formats);
+EGLAPI EGLBoolean EGLAPIENTRY eglQueryDmaBufModifiersEXT (EGLDisplay dpy, EGLint format, EGLint max_modifiers, EGLuint64KHR *modifiers, EGLBoolean *external_only, EGLint *num_modifiers);
+#endif
+#endif /* EGL_EXT_image_dma_buf_import_modifiers */
+
+#ifndef EGL_EXT_image_implicit_sync_control
+#define EGL_EXT_image_implicit_sync_control 1
+#define EGL_IMPORT_SYNC_TYPE_EXT 0x3470
+#define EGL_IMPORT_IMPLICIT_SYNC_EXT 0x3471
+#define EGL_IMPORT_EXPLICIT_SYNC_EXT 0x3472
+#endif /* EGL_EXT_image_implicit_sync_control */
+
+
#if HAVE_VAAPI_X11
#include <va/va_x11.h>
+276
View File
@@ -0,0 +1,276 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>mpv-player</Name>
<Homepage>https://mpv.io/</Homepage>
<Packager>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Packager>
<License>GPLv2+</License>
<IsA>app:gui</IsA>
<Summary>mpv is based on mplayer2</Summary>
<Description>mpv has Wayland support, Improved OpenGL output, Support for libavfilter (for video->video and audio->audio). This allows using most of FFmpeg's filters, which improve greatly on the old MPlayer filters in features, performance, and correctness.is a movie player that can run on many platforms. Improved OpenGL output. More correct color reproduction (color matrix generation), including support for BT.2020 (Ultra HD) and linear XYZ (Digital Cinema) inputs.</Description>
<Archive sha1sum="62ba4778773624546aeb039bb39c33b7a21579f9" type="targz">https://github.com/mpv-player/mpv/archive/v0.33.0.tar.gz</Archive>
<BuildDependencies>
<Dependency>python3-devel</Dependency>
<Dependency>libzimg-devel</Dependency>
<Dependency>mesa-devel</Dependency>
<Dependency>ffmpeg-devel</Dependency>
<Dependency>wayland-devel</Dependency>
<Dependency>libarchive-devel</Dependency>
<Dependency>gnutls-devel</Dependency>
<Dependency>libglvnd-devel</Dependency>
<Dependency>pkgconfig</Dependency>
<Dependency>perl</Dependency>
<Dependency>samba-devel</Dependency>
<Dependency>libX11-devel</Dependency>
<Dependency>zlib-devel</Dependency>
<Dependency>libass-devel</Dependency>
<Dependency>lua52-devel</Dependency>
<Dependency>libsdl2-devel</Dependency>
<Dependency>yasm</Dependency>
<Dependency>libjpeg-turbo-devel</Dependency>
<Dependency>rubberband-devel</Dependency>
<Dependency>libvdpau-devel</Dependency>
<Dependency>mesa-glu-devel</Dependency>
<Dependency>libbluray-devel</Dependency>
<Dependency>libdvdread-devel</Dependency>
<Dependency>libdvdnav-devel</Dependency>
<Dependency>enca-devel</Dependency>
<Dependency>libcdio-devel</Dependency>
<Dependency>lcms2-devel</Dependency>
<Dependency>libXinerama-devel</Dependency>
<Dependency>libxkbcommon-devel</Dependency>
<Dependency>libXScrnSaver-devel</Dependency>
<Dependency>libXv-devel</Dependency>
<Dependency>libffado-devel</Dependency>
<Dependency>libva-devel</Dependency>
<Dependency>libdrm-devel</Dependency>
<Dependency>libv4l-devel</Dependency>
<Dependency>libXext-devel</Dependency>
<Dependency>libcaca-devel</Dependency>
<Dependency>alsa-lib-devel</Dependency>
<Dependency>libvdpau-devel</Dependency>
<Dependency>libXrandr-devel</Dependency>
<Dependency>wayland-devel</Dependency>
<Dependency>wayland-cursor</Dependency>
<Dependency>wayland-protocols-devel</Dependency>
<Dependency>pulseaudio-libs-devel</Dependency>
<Dependency>libcdio-paranoia-devel</Dependency>
<Dependency>jack-audio-connection-kit-devel</Dependency>
<Dependency>libvdpau-devel</Dependency>
<Dependency>libavc1394-devel</Dependency>
<Dependency>libarchive-devel</Dependency>
<Dependency>python3-youtube_dl</Dependency>
</BuildDependencies>
<Patches>
<Patch level="1">02_fix-config-path.patch</Patch>
<Patch level="1">05_add-keywords.patch</Patch>
</Patches>
</Source>
<Package>
<Name>mpv-player</Name>
<RuntimeDependencies>
<Dependency>libzimg</Dependency>
<Dependency>mesa</Dependency>
<Dependency>wayland</Dependency>
<Dependency>libarchive</Dependency>
<Dependency>lua52</Dependency>
<Dependency>enca</Dependency>
<Dependency>libglvnd</Dependency>
<Dependency>zlib</Dependency>
<Dependency>lcms2</Dependency>
<Dependency>libXv</Dependency>
<Dependency>libva</Dependency>
<Dependency>samba</Dependency>
<Dependency>ffmpeg</Dependency>
<Dependency>libX11</Dependency>
<Dependency>libass</Dependency>
<Dependency>libdrm</Dependency>
<Dependency>libv4l</Dependency>
<Dependency>libXext</Dependency>
<Dependency>libcaca</Dependency>
<Dependency>libcdio</Dependency>
<Dependency>alsa-lib</Dependency>
<Dependency>libvdpau</Dependency>
<Dependency>libXrandr</Dependency>
<Dependency>rubberband</Dependency>
<Dependency>libbluray</Dependency>
<Dependency>libdvdnav</Dependency>
<Dependency>libdvdread</Dependency>
<Dependency>libXinerama</Dependency>
<Dependency>libxkbcommon</Dependency>
<Dependency>libXScrnSaver</Dependency>
<Dependency>libjpeg-turbo</Dependency>
<Dependency>wayland-client</Dependency>
<Dependency>wayland-cursor</Dependency>
<Dependency>pulseaudio-libs</Dependency>
<Dependency>libcdio-paranoia</Dependency>
<Dependency>python3-setuptools</Dependency>
<Dependency>python3-youtube_dl</Dependency>
<Dependency>jack-audio-connection-kit</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="config">/etc</Path>
<Path fileType="executable">/usr/bin</Path>
<Path fileType="library">/usr/lib</Path>
<Path fileType="doc">/usr/share/doc</Path>
<Path fileType="man">/usr/share/man</Path>
<Path fileType="application">/usr/share/applications</Path>
<Path fileType="icons">/usr/share/icons</Path>
<Path fileType="data">/usr/share</Path>
<Path fileType="data">/usr/share/zsh</Path>
<Path fileType="data">/usr/share/mpv</Path>
</Files>
</Package>
<Package>
<Name>mpv-player-devel</Name>
<Files>
<Path fileType="library">/usr/lib/pkgconfig</Path>
<Path fileType="header">/usr/include</Path>
</Files>
<RuntimeDependencies>
<Dependency release="current">mpv-player</Dependency>
</RuntimeDependencies>
</Package>
<History>
<Update release="19">
<Date>2021-01-29</Date>
<Version>0.33.0</Version>
<Comment>Version bump.</Comment>
<Name>Mustafa Cinasal</Name>
<Email>muscnsl@gmail.com</Email>
</Update>
<Update release="18">
<Date>2020-10-05</Date>
<Version>0.32.0</Version>
<Comment>rebuild.</Comment>
<Name>Mustafa Cinasal</Name>
<Email>muscnsl@gmail.com</Email>
</Update>
<Update release="17">
<Date>2020-04-15</Date>
<Version>0.32.0</Version>
<Comment>Version bump.</Comment>
<Name>Mustafa Cinasal</Name>
<Email>muscnsl@gmail.com</Email>
</Update>
<Update release="16">
<Date>2020-01-22</Date>
<Version>0.31.0</Version>
<Comment>Version bump.</Comment>
<Name>İdris Kalp</Name>
<Email>idriskalp@gmail.com</Email>
</Update>
<Update release="15">
<Date>2019-10-28</Date>
<Version>0.30.0</Version>
<Comment>Version bump.</Comment>
<Name>Mustafa Cinasal</Name>
<Email>muscnsl@gmail.com</Email>
</Update>
<Update release="14">
<Date>2019-10-14</Date>
<Version>0.29.1</Version>
<Comment>Rebuild.</Comment>
<Name>Mustafa Cinasal</Name>
<Email>muscnsl@gmail.com</Email>
</Update>
<Update release="13">
<Date>2019-04-12</Date>
<Version>0.29.1</Version>
<Comment>Rebuild.</Comment>
<Name>Mustafa Cinasal</Name>
<Email>muscnsl@gmail.com</Email>
</Update>
<Update release="12">
<Date>2018-12-28</Date>
<Version>0.29.1</Version>
<Comment>Rebuild.</Comment>
<Name>Mustafa Cinasal</Name>
<Email>muscnsl@gmail.com</Email>
</Update>
<Update release="11">
<Date>2018-10-03</Date>
<Version>0.29.1</Version>
<Comment>Version bump.</Comment>
<Name>Mustafa Cinasal</Name>
<Email>muscnsl@gmail.com</Email>
</Update>
<Update release="10">
<Date>2018-08-06</Date>
<Version>0.29.0</Version>
<Comment>Version bump.</Comment>
<Name>Mustafa Cinasal</Name>
<Email>muscnsl@gmail.com</Email>
</Update>
<Update release="9">
<Date>2018-05-05</Date>
<Version>0.28.2</Version>
<Comment>Version bump.</Comment>
<Name>Mustafa Cinasal</Name>
<Email>muscnsl@gmail.com</Email>
</Update>
<Update release="8">
<Date>2018-04-27</Date>
<Version>0.27.2</Version>
<Comment>Version bump</Comment>
<Name>Mustafa Cinasal</Name>
<Email>muscnsl@gmail.com</Email>
</Update>
<Update release="7">
<Date>2018-01-13</Date>
<Version>0.27.0</Version>
<Comment>Version bump.</Comment>
<Name>Mustafa Cinasal</Name>
<Email>muscnsl@gmail.com</Email>
</Update>
<Update release="6">
<Date>2017-02-16</Date>
<Version>0.24.0</Version>
<Comment>Release bump.</Comment>
<Name>Stefan Gronewold</Name>
<Email>groni@pisilinux.org</Email>
</Update>
<Update release="5">
<Date>2017-01-11</Date>
<Version>0.23.0</Version>
<Comment>Version bump.</Comment>
<Name>Stefan Gronewold(groni)</Name>
<Email>groni@pisilinux.org</Email>
</Update>
<Update release="4">
<Date>2016-06-15</Date>
<Version>0.17.0</Version>
<Comment>Version Bump</Comment>
<Name>Pisi Linux Community</Name>
<Email>admin@pisilinux.org</Email>
</Update>
<Update release="3">
<Date>2016-06-09</Date>
<Version>0.16.0</Version>
<Comment>Release Bump</Comment>
<Name>Pisi Linux Community</Name>
<Email>admin@pisilinux.org</Email>
</Update>
<Update release="2">
<Date>2016-03-28</Date>
<Version>0.16.0</Version>
<Comment>Version bump.</Comment>
<Name>Stefan Gronewold(groni)</Name>
<Email>groni@pisilinux.org</Email>
</Update>
<Update release="1">
<Date>2016-03-27</Date>
<Version>0.14</Version>
<Comment>First release</Comment>
<Name>Stefan Gronewold</Name>
<Email>groni@pisilinux.org</Email>
</Update>
</History>
</PISI>