logo

oasis

Own branch of Oasis Linux (upstream: <https://git.sr.ht/~mcf/oasis/>) git clone https://anongit.hacktivis.me/git/oasis.git
commit: a129a63f93b5f7d756e8a2082dc9db47d07c57cb
parent 8eba2dc601580585ef34be71774202fd96a3d235
Author: Michael Forney <mforney@mforney.org>
Date:   Fri, 17 Mar 2023 13:04:43 -0700

mpv: Update to 0.35.1

Diffstat:

Mpkg/mpv/config.h14++++++++++++--
Mpkg/mpv/gen.lua4++++
Mpkg/mpv/gensources.awk2++
Mpkg/mpv/patch/0001-Add-generated-ebml-sources.patch24++++++++++++------------
Mpkg/mpv/patch/0002-Use-memset-to-initialize-large-structures.patch10+++++-----
Mpkg/mpv/patch/0003-video-out-gpu-Prevent-empty-array-when-no-compilers-.patch52++++++++++++++++++++++++++--------------------------
Dpkg/mpv/patch/0004-ao_sndio-add-this-audio-output-again.patch413-------------------------------------------------------------------------------
Rpkg/mpv/patch/0006-wayland-include-math.h-for-ceil.patch -> pkg/mpv/patch/0004-wayland-include-math.h-for-ceil.patch0
Dpkg/mpv/patch/0005-ao_sndio-bugfix-and-small-refactoring-for-8314.patch199-------------------------------------------------------------------------------
Dpkg/mpv/patch/0007-wayland-actually-handle-0x0-resizes-correctly.patch39---------------------------------------
Dpkg/mpv/patch/0008-audio-replace-deprecated-av_mallocz_array.patch25-------------------------
Dpkg/mpv/patch/0009-f_lavfi-replace-deprecated-avfilter_pad_count.patch46----------------------------------------------
Mpkg/mpv/sources.txt25++++++++++++++++++++-----
Mpkg/mpv/ver2+-
14 files changed, 82 insertions(+), 773 deletions(-)

diff --git a/pkg/mpv/config.h b/pkg/mpv/config.h @@ -28,6 +28,7 @@ #define HAVE_MINGW 0 #define HAVE_POSIX 1 #define HAVE_ANDROID 0 +#define HAVE_ANDROID_MEDIA_NDK 0 #define HAVE_TVOS 0 #define HAVE_EGL_ANDROID 0 #define HAVE_POSIX_OR_MINGW 1 @@ -69,11 +70,14 @@ #define HAVE_DVBIN 0 #define HAVE_SDL2 0 #define HAVE_SDL2_GAMEPAD 0 +#define HAVE_JPEGXL 0 +#define HAVE_RUBBERBAND_3 0 #define HAVE_FFMPEG 1 +#define HAVE_AVCHANNEL_LAYOUT 1 #define HAVE_LIBAVDEVICE 1 -#define HAVE_FFMPEG_AVIOCONTEXT_BYTES_READ 1 #define HAVE_SDL2_AUDIO 0 #define HAVE_OSS_AUDIO 0 +#define HAVE_PIPEWIRE 0 #define HAVE_SNDIO 0 #define HAVE_PULSE 0 #define HAVE_JACK 0 @@ -89,6 +93,7 @@ #define HAVE_GBM 0 #define HAVE_WAYLAND_SCANNER 1 #define HAVE_WAYLAND_PROTOCOLS 1 +#define HAVE_WAYLAND_PROTOCOLS_1_24 1 #define HAVE_WAYLAND 1 #define HAVE_MEMFD_CREATE 1 #define HAVE_X11 0 @@ -110,6 +115,7 @@ #define HAVE_VAAPI 0 #define HAVE_VAAPI_X11 0 #define HAVE_VAAPI_WAYLAND 0 +#define HAVE_DMABUF_WAYLAND 0 #define HAVE_VAAPI_DRM 0 #define HAVE_VAAPI_X_EGL 0 #define HAVE_VAAPI_EGL 0 @@ -127,10 +133,14 @@ #define HAVE_PLAIN_GL 0 #define HAVE_GL 0 #define HAVE_LIBPLACEBO 0 +#define HAVE_LIBPLACEBO_NEXT 0 #define HAVE_VULKAN 0 -#define HAVE_VAAPI_VULKAN 0 +#define HAVE_VAAPI_LIBPLACEBO 0 #define HAVE_EGL_HELPERS 0 #define HAVE_SIXEL 0 +#define HAVE_DMABUF_INTEROP_GL 0 +#define HAVE_DMABUF_INTEROP_PL 0 +#define HAVE_DRM_IS_KMS 1 #define HAVE_VIDEOTOOLBOX_HWACCEL 0 #define HAVE_VIDEOTOOLBOX_GL 0 #define HAVE_D3D_HWACCEL 0 diff --git a/pkg/mpv/gen.lua b/pkg/mpv/gen.lua @@ -38,7 +38,9 @@ pkg.deps = { } build('copy', '$outdir/generated/wayland/idle-inhibit-unstable-v1.h', '$builddir/pkg/wayland-protocols/include/idle-inhibit-unstable-v1-client-protocol.h') +build('copy', '$outdir/generated/wayland/linux-dmabuf-unstable-v1.h', '$builddir/pkg/wayland-protocols/include/linux-dmabuf-unstable-v1-client-protocol.h') build('copy', '$outdir/generated/wayland/presentation-time.h', '$builddir/pkg/wayland-protocols/include/presentation-time-client-protocol.h') +build('copy', '$outdir/generated/wayland/viewporter.h', '$builddir/pkg/wayland-protocols/include/viewporter-client-protocol.h') build('copy', '$outdir/generated/wayland/xdg-decoration-unstable-v1.h', '$builddir/pkg/wayland-protocols/include/xdg-decoration-unstable-v1-client-protocol.h') build('copy', '$outdir/generated/wayland/xdg-shell.h', '$builddir/pkg/wayland-protocols/include/xdg-shell-client-protocol.h') @@ -167,7 +169,9 @@ if options.HAVE_WAYLAND then }) table.insert(pkg.deps, { '$outdir/generated/wayland/idle-inhibit-unstable-v1.h', + '$outdir/generated/wayland/linux-dmabuf-unstable-v1.h', '$outdir/generated/wayland/presentation-time.h', + '$outdir/generated/wayland/viewporter.h', '$outdir/generated/wayland/xdg-decoration-unstable-v1.h', '$outdir/generated/wayland/xdg-shell.h', 'pkg/libxkbcommon/headers', diff --git a/pkg/mpv/gensources.awk b/pkg/mpv/gensources.awk @@ -3,7 +3,9 @@ BEGIN { FS = "\"" external["generated/wayland/idle-inhibit-unstable-v1.c"] = "$builddir/pkg/wayland-protocols/idle-inhibit-unstable-v1-protocol.c.o" + external["generated/wayland/linux-dmabuf-unstable-v1.c"] = "$builddir/pkg/wayland-protocols/linux-dmabuf-unstable-v1-protocol.c.o" external["generated/wayland/presentation-time.c"] = "$builddir/pkg/wayland-protocols/presentation-time-protocol.c.o" + external["generated/wayland/viewporter.c"] = "$builddir/pkg/wayland-protocols/viewporter-protocol.c.o" external["generated/wayland/xdg-decoration-unstable-v1.c"] = "$builddir/pkg/wayland-protocols/xdg-decoration-unstable-v1-protocol.c.o" external["generated/wayland/xdg-shell.c"] = "$builddir/pkg/wayland-protocols/xdg-shell-protocol.c.o" } diff --git a/pkg/mpv/patch/0001-Add-generated-ebml-sources.patch b/pkg/mpv/patch/0001-Add-generated-ebml-sources.patch @@ -1,24 +1,24 @@ -From d1e11f91a28e4095ae11af36e9ed6d4bdadf6c3f Mon Sep 17 00:00:00 2001 +From d17ae31bdd9b5fb7f3a12cca8561e6b6d3947d5d Mon Sep 17 00:00:00 2001 From: Michael Forney <mforney@mforney.org> Date: Sat, 2 Jul 2016 17:32:27 -0700 Subject: [PATCH] Add generated ebml sources These require python to generate. -$ python TOOLS/matroska.py --generate-header > demux/generated/ebml_types.h -$ python TOOLS/matroska.py --generate-definitions > demux/generated/ebml_defs.c +$ python TOOLS/matroska.py --generate-header > generated/ebml_types.h +$ python TOOLS/matroska.py --generate-definitions > generated/ebml_defs.inc --- - demux/generated/ebml_defs.c | 574 +++++++++++++++++++++++++++++++ - demux/generated/ebml_types.h | 637 +++++++++++++++++++++++++++++++++++ + generated/ebml_defs.inc | 574 ++++++++++++++++++++++++++++++++++++ + generated/ebml_types.h | 637 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1211 insertions(+) - create mode 100644 demux/generated/ebml_defs.c - create mode 100644 demux/generated/ebml_types.h + create mode 100644 generated/ebml_defs.inc + create mode 100644 generated/ebml_types.h -diff --git a/demux/generated/ebml_defs.c b/demux/generated/ebml_defs.c +diff --git a/generated/ebml_defs.inc b/generated/ebml_defs.inc new file mode 100644 index 0000000000..db4eb9c2a7 --- /dev/null -+++ b/demux/generated/ebml_defs.c ++++ b/generated/ebml_defs.inc @@ -0,0 +1,574 @@ +// Generated by TOOLS/matroska.py, do not edit manually + @@ -594,11 +594,11 @@ index 0000000000..db4eb9c2a7 +F(EBML_ID_DOCTYPEREADVERSION, doc_type_read_version, 0) +}}; +#undef N -diff --git a/demux/generated/ebml_types.h b/demux/generated/ebml_types.h +diff --git a/generated/ebml_types.h b/generated/ebml_types.h new file mode 100644 index 0000000000..d32af2d6c1 --- /dev/null -+++ b/demux/generated/ebml_types.h ++++ b/generated/ebml_types.h @@ -0,0 +1,637 @@ +// Generated by TOOLS/matroska.py, do not edit manually + @@ -1238,5 +1238,5 @@ index 0000000000..d32af2d6c1 + +#define MAX_EBML_SUBELEMENTS 23 -- -2.35.1 +2.37.3 diff --git a/pkg/mpv/patch/0002-Use-memset-to-initialize-large-structures.patch b/pkg/mpv/patch/0002-Use-memset-to-initialize-large-structures.patch @@ -1,4 +1,4 @@ -From 5c6190de25762e04b4ee2b265760fd5b8afd115e Mon Sep 17 00:00:00 2001 +From 9be8fd92d4deed49d3c90a6d94c67c14980528fc Mon Sep 17 00:00:00 2001 From: Michael Forney <mforney@mforney.org> Date: Tue, 2 Jul 2019 17:41:43 -0700 Subject: [PATCH] Use memset to initialize large structures @@ -9,10 +9,10 @@ These are over 256 KiB in size. 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/video/out/gpu/video.c b/video/out/gpu/video.c -index e4c4ee9290..0e15837d5e 100644 +index 3b9e07963e..4ccbae16cb 100644 --- a/video/out/gpu/video.c +++ b/video/out/gpu/video.c -@@ -3514,7 +3514,7 @@ static void frame_perf_data(struct pass_info pass[], struct mp_frame_perf *out) +@@ -3576,7 +3576,7 @@ static void frame_perf_data(struct pass_info pass[], struct mp_frame_perf *out) void gl_video_perfdata(struct gl_video *p, struct voctrl_performance_data *out) { @@ -21,7 +21,7 @@ index e4c4ee9290..0e15837d5e 100644 frame_perf_data(p->pass_fresh, &out->fresh); frame_perf_data(p->pass_redraw, &out->redraw); } -@@ -3955,14 +3955,13 @@ struct gl_video *gl_video_init(struct ra *ra, struct mp_log *log, +@@ -4011,14 +4011,13 @@ struct gl_video *gl_video_init(struct ra *ra, struct mp_log *log, struct mpv_global *g) { struct gl_video *p = talloc_ptrtype(NULL, p); @@ -44,5 +44,5 @@ index e4c4ee9290..0e15837d5e 100644 p->pass = p->pass_fresh; struct gl_video_opts *opts = p->opts_cache->opts; -- -2.35.1 +2.37.3 diff --git a/pkg/mpv/patch/0003-video-out-gpu-Prevent-empty-array-when-no-compilers-.patch b/pkg/mpv/patch/0003-video-out-gpu-Prevent-empty-array-when-no-compilers-.patch @@ -1,4 +1,4 @@ -From 25a7c939446a456b258e889013a1f3136199f09b Mon Sep 17 00:00:00 2001 +From 153cf9738ea8b6e108ead1707a7a9193f57f3685 Mon Sep 17 00:00:00 2001 From: Michael Forney <mforney@mforney.org> Date: Wed, 3 Jul 2019 02:21:16 -0700 Subject: [PATCH] video/out/gpu: Prevent empty array when no compilers or @@ -10,62 +10,62 @@ Subject: [PATCH] video/out/gpu: Prevent empty array when no compilers or 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/video/out/gpu/context.c b/video/out/gpu/context.c -index 6e58cce485..0e68c45b91 100644 +index 2203b5cad9..2836d72513 100644 --- a/video/out/gpu/context.c +++ b/video/out/gpu/context.c -@@ -110,6 +110,7 @@ static const struct ra_ctx_fns *contexts[] = { - &ra_ctx_vulkan_display, - +@@ -117,6 +117,7 @@ static const struct ra_ctx_fns *contexts[] = { + #if HAVE_DMABUF_WAYLAND + &ra_ctx_wldmabuf, #endif + NULL }; - int ra_ctx_api_help(struct mp_log *log, const struct m_option *opt, -@@ -117,7 +118,7 @@ int ra_ctx_api_help(struct mp_log *log, const struct m_option *opt, + static int ra_ctx_api_help(struct mp_log *log, const struct m_option *opt, +@@ -124,7 +125,7 @@ static int ra_ctx_api_help(struct mp_log *log, const struct m_option *opt, { mp_info(log, "GPU APIs (contexts):\n"); mp_info(log, " auto (autodetect)\n"); -- for (int n = 0; n < MP_ARRAY_SIZE(contexts); n++) -+ for (int n = 0; n < MP_ARRAY_SIZE(contexts) - 1; n++) - mp_info(log, " %s (%s)\n", contexts[n]->type, contexts[n]->name); - return M_OPT_EXIT; - } -@@ -128,7 +129,7 @@ int ra_ctx_validate_api(struct mp_log *log, const struct m_option *opt, +- for (int n = 0; n < MP_ARRAY_SIZE(contexts); n++) { ++ for (int n = 0; n < MP_ARRAY_SIZE(contexts) - 1; n++) { + if (!contexts[n]->hidden) + mp_info(log, " %s (%s)\n", contexts[n]->type, contexts[n]->name); + } +@@ -137,7 +138,7 @@ static int ra_ctx_validate_api(struct mp_log *log, const struct m_option *opt, struct bstr param = bstr0(*value); if (bstr_equals0(param, "auto")) return 1; - for (int i = 0; i < MP_ARRAY_SIZE(contexts); i++) { + for (int i = 0; i < MP_ARRAY_SIZE(contexts) - 1; i++) { - if (bstr_equals0(param, contexts[i]->type)) + if (bstr_equals0(param, contexts[i]->type) && !contexts[i]->hidden) return 1; } -@@ -140,7 +141,7 @@ int ra_ctx_context_help(struct mp_log *log, const struct m_option *opt, +@@ -149,7 +150,7 @@ static int ra_ctx_context_help(struct mp_log *log, const struct m_option *opt, { mp_info(log, "GPU contexts (APIs):\n"); mp_info(log, " auto (autodetect)\n"); -- for (int n = 0; n < MP_ARRAY_SIZE(contexts); n++) -+ for (int n = 0; n < MP_ARRAY_SIZE(contexts) - 1; n++) - mp_info(log, " %s (%s)\n", contexts[n]->name, contexts[n]->type); - return M_OPT_EXIT; - } -@@ -151,7 +152,7 @@ int ra_ctx_validate_context(struct mp_log *log, const struct m_option *opt, +- for (int n = 0; n < MP_ARRAY_SIZE(contexts); n++) { ++ for (int n = 0; n < MP_ARRAY_SIZE(contexts) - 1; n++) { + if (!contexts[n]->hidden) + mp_info(log, " %s (%s)\n", contexts[n]->name, contexts[n]->type); + } +@@ -162,7 +163,7 @@ static int ra_ctx_validate_context(struct mp_log *log, const struct m_option *op struct bstr param = bstr0(*value); if (bstr_equals0(param, "auto")) return 1; - for (int i = 0; i < MP_ARRAY_SIZE(contexts); i++) { + for (int i = 0; i < MP_ARRAY_SIZE(contexts) - 1; i++) { - if (bstr_equals0(param, contexts[i]->name)) + if (bstr_equals0(param, contexts[i]->name) && !contexts[i]->hidden) return 1; } -@@ -176,7 +177,7 @@ struct ra_ctx *ra_ctx_create(struct vo *vo, const char *context_type, +@@ -186,7 +187,7 @@ struct ra_ctx *ra_ctx_create(struct vo *vo, struct ra_ctx_opts opts) bool old_probing = vo->probing; vo->probing = opts.probing; - for (int i = 0; i < MP_ARRAY_SIZE(contexts); i++) { + for (int i = 0; i < MP_ARRAY_SIZE(contexts) - 1; i++) { - if (!opts.probing && strcmp(contexts[i]->name, context_name) != 0) + if (contexts[i]->hidden) continue; - if (!api_auto && strcmp(contexts[i]->type, context_type) != 0) + if (!opts.probing && strcmp(contexts[i]->name, opts.context_name) != 0) diff --git a/video/out/gpu/spirv.c b/video/out/gpu/spirv.c index 67088bc7df..69100497eb 100644 --- a/video/out/gpu/spirv.c @@ -79,5 +79,5 @@ index 67088bc7df..69100497eb 100644 static const struct m_opt_choice_alternatives compiler_choices[] = { -- -2.35.1 +2.37.3 diff --git a/pkg/mpv/patch/0004-ao_sndio-add-this-audio-output-again.patch b/pkg/mpv/patch/0004-ao_sndio-add-this-audio-output-again.patch @@ -1,413 +0,0 @@ -From eb7c5d6fc8de657776c736458f426beb274b5523 Mon Sep 17 00:00:00 2001 -From: rim <rozhuk.im@gmail.com> -Date: Wed, 25 Nov 2020 06:10:19 +0300 -Subject: [PATCH] ao_sndio: add this audio output again - -Changes: -- rewrite to use new internal MPV API; -- code refactoring; -- fix buffers size calculations; -- buffer set to auto; -- reset() - clean/reinit device only after errors; ---- - DOCS/man/ao.rst | 6 + - audio/out/ao.c | 4 + - audio/out/ao_sndio.c | 317 +++++++++++++++++++++++++++++++++++++++++++ - wscript | 6 + - wscript_build.py | 1 + - 5 files changed, 334 insertions(+) - create mode 100644 audio/out/ao_sndio.c - -diff --git a/DOCS/man/ao.rst b/DOCS/man/ao.rst -index 1c0b9e146b..97c213a5dd 100644 ---- a/DOCS/man/ao.rst -+++ b/DOCS/man/ao.rst -@@ -219,5 +219,11 @@ Available audio output drivers are: - ``no-waveheader`` option - with ``waveheader`` it's broken, because - it will write a WAVE header every time the file is opened. - -+``sndio`` -+ Audio output to the OpenBSD sndio sound system -+ -+ (Note: only supports mono, stereo, 4.0, 5.1 and 7.1 channel -+ layouts.) -+ - ``wasapi`` - Audio output to the Windows Audio Session API. -diff --git a/audio/out/ao.c b/audio/out/ao.c -index 7c347cb138..950f935c81 100644 ---- a/audio/out/ao.c -+++ b/audio/out/ao.c -@@ -41,6 +41,7 @@ extern const struct ao_driver audio_out_audiounit; - extern const struct ao_driver audio_out_coreaudio; - extern const struct ao_driver audio_out_coreaudio_exclusive; - extern const struct ao_driver audio_out_rsound; -+extern const struct ao_driver audio_out_sndio; - extern const struct ao_driver audio_out_pulse; - extern const struct ao_driver audio_out_jack; - extern const struct ao_driver audio_out_openal; -@@ -87,6 +88,9 @@ static const struct ao_driver * const audio_out_drivers[] = { - #endif - #if HAVE_SDL2_AUDIO - &audio_out_sdl, -+#endif -+#if HAVE_SNDIO -+ &audio_out_sndio, - #endif - &audio_out_null, - #if HAVE_COREAUDIO -diff --git a/audio/out/ao_sndio.c b/audio/out/ao_sndio.c -new file mode 100644 -index 0000000000..4a6f49ee58 ---- /dev/null -+++ b/audio/out/ao_sndio.c -@@ -0,0 +1,317 @@ -+/* -+ * Copyright (c) 2008 Alexandre Ratchov <alex@caoua.org> -+ * Copyright (c) 2013 Christian Neukirchen <chneukirchen@gmail.com> -+ * Copyright (c) 2020 Rozhuk Ivan <rozhuk.im@gmail.com> -+ * -+ * Permission to use, copy, modify, and distribute this software for any -+ * purpose with or without fee is hereby granted, provided that the above -+ * copyright notice and this permission notice appear in all copies. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -+ */ -+ -+#include "config.h" -+ -+#include <sys/types.h> -+#include <poll.h> -+#include <errno.h> -+#include <sndio.h> -+ -+#include "options/m_option.h" -+#include "common/msg.h" -+ -+#include "audio/format.h" -+#include "ao.h" -+#include "internal.h" -+ -+struct priv { -+ struct sio_hdl *hdl; -+ struct sio_par par; -+ int delay; -+ bool playing; -+ int vol; -+ int havevol; -+ struct pollfd *pfd; -+}; -+ -+ -+static const struct mp_chmap sndio_layouts[MP_NUM_CHANNELS + 1] = { -+ {0}, /* empty */ -+ {1, {MP_SPEAKER_ID_FL}}, /* mono */ -+ MP_CHMAP2(FL, FR), /* stereo */ -+ {0}, /* 2.1 */ -+ MP_CHMAP4(FL, FR, BL, BR), /* 4.0 */ -+ {0}, /* 5.0 */ -+ MP_CHMAP6(FL, FR, BL, BR, FC, LFE), /* 5.1 */ -+ {0}, /* 6.1 */ -+ MP_CHMAP8(FL, FR, BL, BR, FC, LFE, SL, SR), /* 7.1 */ -+ /* Above is the fixed channel assignment for sndio, since we need to -+ * fill all channels and cannot insert silence, not all layouts are -+ * supported. -+ * NOTE: MP_SPEAKER_ID_NA could be used to add padding channels. */ -+}; -+ -+static void uninit(struct ao *ao); -+ -+ -+/* Make libsndio call movecb(). */ -+static void process_events(struct ao *ao) -+{ -+ struct priv *p = ao->priv; -+ -+ if (!p->playing) -+ return; -+ int n = sio_pollfd(p->hdl, p->pfd, POLLOUT); -+ while (poll(p->pfd, n, 0) < 0 && errno == EINTR) {} -+ -+ sio_revents(p->hdl, p->pfd); -+} -+ -+/* Call-back invoked to notify of the hardware position. */ -+static void movecb(void *addr, int delta) -+{ -+ struct ao *ao = addr; -+ struct priv *p = ao->priv; -+ -+ p->delay -= delta; -+} -+ -+/* Call-back invoked to notify about volume changes. */ -+static void volcb(void *addr, unsigned newvol) -+{ -+ struct ao *ao = addr; -+ struct priv *p = ao->priv; -+ -+ p->vol = newvol; -+} -+ -+static int init(struct ao *ao) -+{ -+ struct priv *p = ao->priv; -+ struct mp_chmap_sel sel = {0}; -+ size_t i; -+ struct af_to_par { -+ int format, bits, sig; -+ }; -+ static const struct af_to_par af_to_par[] = { -+ {AF_FORMAT_U8, 8, 0}, -+ {AF_FORMAT_S16, 16, 1}, -+ {AF_FORMAT_S32, 32, 1}, -+ }; -+ const struct af_to_par *ap; -+ const char *device = ((ao->device) ? ao->device : SIO_DEVANY); -+ -+ /* Opening device. */ -+ MP_VERBOSE(ao, "Using '%s' audio device.\n", device); -+ p->hdl = sio_open(device, SIO_PLAY, 0); -+ if (p->hdl == NULL) { -+ MP_ERR(ao, "Can't open audio device %s.\n", device); -+ goto err_out; -+ } -+ -+ sio_initpar(&p->par); -+ -+ /* Selecting sound format. */ -+ ao->format = af_fmt_from_planar(ao->format); -+ for (i = 0, ap = af_to_par;; i++, ap++) { -+ if (i == MP_ARRAY_SIZE(af_to_par)) { -+ MP_VERBOSE(ao, "unsupported format\n"); -+ p->par.bits = 16; -+ p->par.sig = 1; -+ p->par.le = SIO_LE_NATIVE; -+ break; -+ } -+ if (ap->format == ao->format) { -+ p->par.bits = ap->bits; -+ p->par.sig = ap->sig; -+ if (ap->bits > 8) -+ p->par.le = SIO_LE_NATIVE; -+ if (ap->bits != SIO_BPS(ap->bits)) -+ p->par.bps = ap->bits / 8; -+ break; -+ } -+ } -+ -+ p->par.rate = ao->samplerate; -+ -+ /* Channels count. */ -+ for (i = 0; i < MP_ARRAY_SIZE(sndio_layouts); i++) { -+ mp_chmap_sel_add_map(&sel, &sndio_layouts[i]); -+ } -+ if (!ao_chmap_sel_adjust(ao, &sel, &ao->channels)) -+ goto err_out; -+ -+ p->par.pchan = ao->channels.num; -+#ifdef __FreeBSD__ -+ /* OSS wrapper have bad defaults, overwrite it. */ -+ p->par.appbufsz = ((p->par.rate * 25) / 1000); /* 25 ms. */ -+#endif -+ if (!sio_setpar(p->hdl, &p->par)) { -+ MP_ERR(ao, "couldn't set params\n"); -+ goto err_out; -+ } -+ -+ /* Get current sound params. */ -+ if (!sio_getpar(p->hdl, &p->par)) { -+ MP_ERR(ao, "couldn't get params\n"); -+ goto err_out; -+ } -+ if (p->par.bps > 1 && p->par.le != SIO_LE_NATIVE) { -+ MP_ERR(ao, "swapped endian output not supported\n"); -+ goto err_out; -+ } -+ -+ /* Update sound params. */ -+ if (p->par.bits == 8 && p->par.bps == 1 && !p->par.sig) { -+ ao->format = AF_FORMAT_U8; -+ } else if (p->par.bits == 16 && p->par.bps == 2 && p->par.sig) { -+ ao->format = AF_FORMAT_S16; -+ } else if ((p->par.bits == 32 || p->par.msb) && p->par.bps == 4 && p->par.sig) { -+ ao->format = AF_FORMAT_S32; -+ } else { -+ MP_ERR(ao, "couldn't set format\n"); -+ goto err_out; -+ } -+ -+ p->havevol = sio_onvol(p->hdl, volcb, ao); -+ sio_onmove(p->hdl, movecb, ao); -+ -+ p->pfd = calloc(sio_nfds(p->hdl), sizeof(struct pollfd)); -+ if (!p->pfd) -+ goto err_out; -+ -+ ao->device_buffer = p->par.bufsz; -+ MP_VERBOSE(ao, "bufsz = %i, appbufsz = %i, round = %i\n", -+ p->par.bufsz, p->par.appbufsz, p->par.round); -+ -+ p->delay = 0; -+ p->playing = false; -+ if (!sio_start(p->hdl)) { -+ MP_ERR(ao, "start: sio_start() fail.\n"); -+ goto err_out; -+ } -+ -+ return 0; -+ -+err_out: -+ uninit(ao); -+ return -1; -+} -+ -+static void uninit(struct ao *ao) -+{ -+ struct priv *p = ao->priv; -+ -+ if (p->hdl) { -+ sio_close(p->hdl); -+ p->hdl = NULL; -+ } -+ free(p->pfd); -+ p->pfd = NULL; -+ p->playing = false; -+} -+ -+static int control(struct ao *ao, enum aocontrol cmd, void *arg) -+{ -+ struct priv *p = ao->priv; -+ ao_control_vol_t *vol = arg; -+ -+ switch (cmd) { -+ case AOCONTROL_GET_VOLUME: -+ if (!p->havevol) -+ return CONTROL_FALSE; -+ vol->left = vol->right = p->vol * 100 / SIO_MAXVOL; -+ break; -+ case AOCONTROL_SET_VOLUME: -+ if (!p->havevol) -+ return CONTROL_FALSE; -+ sio_setvol(p->hdl, vol->left * SIO_MAXVOL / 100); -+ break; -+ default: -+ return CONTROL_UNKNOWN; -+ } -+ return CONTROL_OK; -+} -+ -+static void reset(struct ao *ao) -+{ -+ struct priv *p = ao->priv; -+ -+ process_events(ao); -+ p->delay = 0; -+ p->playing = false; -+ -+ /* XXX: some times may block here then sndiod used. */ -+ if (!sio_stop(p->hdl)) { -+ MP_ERR(ao, "reset: couldn't sio_stop()\n"); -+reinit: -+ /* Without this device will never work again. */ -+ MP_WARN(ao, "Force reinitialize audio device.\n"); -+ uninit(ao); -+ init(ao); -+ return; -+ } -+ if (!sio_start(p->hdl)) { -+ MP_ERR(ao, "reset: sio_start() fail.\n"); -+ goto reinit; -+ } -+} -+ -+static void start(struct ao *ao) -+{ -+ struct priv *p = ao->priv; -+ -+ p->playing = true; -+ process_events(ao); -+} -+ -+static bool audio_write(struct ao *ao, void **data, int samples) -+{ -+ struct priv *p = ao->priv; -+ const size_t size = (samples * ao->sstride); -+ size_t rc; -+ -+ rc = sio_write(p->hdl, data[0], size); -+ if (rc != size) { -+ MP_WARN(ao, "audio_write: unexpected partial write: required: %zu, written: %zu.\n", -+ size, rc); -+ reset(ao); -+ p->playing = false; -+ return false; -+ } -+ p->delay += samples; -+ process_events(ao); -+ -+ return true; -+} -+ -+static void get_state(struct ao *ao, struct mp_pcm_state *state) -+{ -+ struct priv *p = ao->priv; -+ -+ process_events(ao); -+ -+ state->free_samples = (ao->device_buffer - p->delay); -+ state->queued_samples = p->delay; -+ state->delay = (p->delay / (double)p->par.rate); -+ state->playing = p->playing; -+} -+ -+const struct ao_driver audio_out_sndio = { -+ .name = "sndio", -+ .description = "sndio audio output", -+ .init = init, -+ .uninit = uninit, -+ .control = control, -+ .reset = reset, -+ .start = start, -+ .write = audio_write, -+ .get_state = get_state, -+ .priv_size = sizeof(struct priv), -+}; -diff --git a/wscript b/wscript -index b44adc2ad4..eeb38f127f 100644 ---- a/wscript -+++ b/wscript -@@ -434,6 +434,12 @@ audio_output_features = [ - 'desc': 'OSSv4 audio output', - 'func': check_statement(['sys/soundcard.h'], 'int x = SNDCTL_DSP_SETPLAYVOL'), - 'deps': 'posix && gpl', -+ }, { -+ 'name': '--sndio', -+ 'desc': 'sndio audio input/output', -+ 'func': check_statement('sndio.h', -+ 'struct sio_par par; sio_initpar(&par); const char *s = SIO_DEVANY', lib='sndio'), -+ 'default': 'disable' - }, { - 'name': '--pulse', - 'desc': 'PulseAudio audio output', -diff --git a/wscript_build.py b/wscript_build.py -index 384bb50d2e..8244dbe3d3 100644 ---- a/wscript_build.py -+++ b/wscript_build.py -@@ -248,6 +248,7 @@ def build(ctx): - ( "audio/out/ao_pcm.c" ), - ( "audio/out/ao_pulse.c", "pulse" ), - ( "audio/out/ao_sdl.c", "sdl2-audio" ), -+ ( "audio/out/ao_sndio.c", "sndio" ), - ( "audio/out/ao_wasapi.c", "wasapi" ), - ( "audio/out/ao_wasapi_changenotify.c", "wasapi" ), - ( "audio/out/ao_wasapi_utils.c", "wasapi" ), --- -2.35.1 - diff --git a/pkg/mpv/patch/0006-wayland-include-math.h-for-ceil.patch b/pkg/mpv/patch/0004-wayland-include-math.h-for-ceil.patch diff --git a/pkg/mpv/patch/0005-ao_sndio-bugfix-and-small-refactoring-for-8314.patch b/pkg/mpv/patch/0005-ao_sndio-bugfix-and-small-refactoring-for-8314.patch @@ -1,199 +0,0 @@ -From d3e06b98678b5cde1330476b92def52df31ed344 Mon Sep 17 00:00:00 2001 -From: Andrew Krasavin <noiseless-ak@yandex.ru> -Date: Tue, 11 Jan 2022 19:23:52 +0300 -Subject: [PATCH] ao_sndio: bugfix and small refactoring for #8314 - -Changes: - * fixed hangups in the loop function and in some other cases - * refactoring according to @michaelforney's recommendations in #8314 - * a few minor and/or cosmetic changes - * ability to build ao_sndio using meson ---- - audio/out/ao_sndio.c | 87 ++++++++++++++++++++++---------------------- - wscript | 3 +- - 2 files changed, 45 insertions(+), 45 deletions(-) - -diff --git a/audio/out/ao_sndio.c b/audio/out/ao_sndio.c -index 4a6f49ee58..6dc1d5ca9e 100644 ---- a/audio/out/ao_sndio.c -+++ b/audio/out/ao_sndio.c -@@ -2,6 +2,7 @@ - * Copyright (c) 2008 Alexandre Ratchov <alex@caoua.org> - * Copyright (c) 2013 Christian Neukirchen <chneukirchen@gmail.com> - * Copyright (c) 2020 Rozhuk Ivan <rozhuk.im@gmail.com> -+ * Copyright (c) 2021 Andrew Krasavin <noiseless-ak@yandex.ru> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above -@@ -41,7 +42,7 @@ struct priv { - }; - - --static const struct mp_chmap sndio_layouts[MP_NUM_CHANNELS + 1] = { -+static const struct mp_chmap sndio_layouts[] = { - {0}, /* empty */ - {1, {MP_SPEAKER_ID_FL}}, /* mono */ - MP_CHMAP2(FL, FR), /* stereo */ -@@ -64,11 +65,9 @@ static void uninit(struct ao *ao); - static void process_events(struct ao *ao) - { - struct priv *p = ao->priv; -- -- if (!p->playing) -- return; -+ - int n = sio_pollfd(p->hdl, p->pfd, POLLOUT); -- while (poll(p->pfd, n, 0) < 0 && errno == EINTR) {} -+ while (poll(p->pfd, n, 0) < 0 && errno == EINTR); - - sio_revents(p->hdl, p->pfd); - } -@@ -119,21 +118,15 @@ static int init(struct ao *ao) - - /* Selecting sound format. */ - ao->format = af_fmt_from_planar(ao->format); -- for (i = 0, ap = af_to_par;; i++, ap++) { -- if (i == MP_ARRAY_SIZE(af_to_par)) { -- MP_VERBOSE(ao, "unsupported format\n"); -- p->par.bits = 16; -- p->par.sig = 1; -- p->par.le = SIO_LE_NATIVE; -- break; -- } -+ -+ p->par.bits = 16; -+ p->par.sig = 1; -+ p->par.le = SIO_LE_NATIVE; -+ for (i = 0; i < MP_ARRAY_SIZE(af_to_par); i++) { -+ ap = &af_to_par[i]; - if (ap->format == ao->format) { - p->par.bits = ap->bits; - p->par.sig = ap->sig; -- if (ap->bits > 8) -- p->par.le = SIO_LE_NATIVE; -- if (ap->bits != SIO_BPS(ap->bits)) -- p->par.bps = ap->bits / 8; - break; - } - } -@@ -148,10 +141,9 @@ static int init(struct ao *ao) - goto err_out; - - p->par.pchan = ao->channels.num; --#ifdef __FreeBSD__ -- /* OSS wrapper have bad defaults, overwrite it. */ -- p->par.appbufsz = ((p->par.rate * 25) / 1000); /* 25 ms. */ --#endif -+ p->par.appbufsz = p->par.rate * 250 / 1000; /* 250ms buffer */ -+ p->par.round = p->par.rate * 10 / 1000; /* 10ms block size */ -+ - if (!sio_setpar(p->hdl, &p->par)) { - MP_ERR(ao, "couldn't set params\n"); - goto err_out; -@@ -182,7 +174,7 @@ static int init(struct ao *ao) - p->havevol = sio_onvol(p->hdl, volcb, ao); - sio_onmove(p->hdl, movecb, ao); - -- p->pfd = calloc(sio_nfds(p->hdl), sizeof(struct pollfd)); -+ p->pfd = talloc_array_ptrtype(p, p->pfd, sio_nfds(p->hdl)); - if (!p->pfd) - goto err_out; - -@@ -212,7 +204,6 @@ static void uninit(struct ao *ao) - sio_close(p->hdl); - p->hdl = NULL; - } -- free(p->pfd); - p->pfd = NULL; - p->playing = false; - } -@@ -243,23 +234,16 @@ static void reset(struct ao *ao) - { - struct priv *p = ao->priv; - -- process_events(ao); -- p->delay = 0; -- p->playing = false; -+ if (p->playing) { -+ p->playing = false; - -- /* XXX: some times may block here then sndiod used. */ -- if (!sio_stop(p->hdl)) { -- MP_ERR(ao, "reset: couldn't sio_stop()\n"); --reinit: -- /* Without this device will never work again. */ -- MP_WARN(ao, "Force reinitialize audio device.\n"); -- uninit(ao); -- init(ao); -- return; -- } -- if (!sio_start(p->hdl)) { -- MP_ERR(ao, "reset: sio_start() fail.\n"); -- goto reinit; -+ if (!sio_stop(p->hdl)) { -+ MP_ERR(ao, "reset: couldn't sio_stop()\n"); -+ } -+ p->delay = 0; -+ if (!sio_start(p->hdl)) { -+ MP_ERR(ao, "reset: sio_start() fail.\n"); -+ } - } - } - -@@ -286,7 +270,6 @@ static bool audio_write(struct ao *ao, void **data, int samples) - return false; - } - p->delay += samples; -- process_events(ao); - - return true; - } -@@ -297,10 +280,28 @@ static void get_state(struct ao *ao, struct mp_pcm_state *state) - - process_events(ao); - -- state->free_samples = (ao->device_buffer - p->delay); -+ /* how many samples we can play without blocking */ -+ state->free_samples = ao->device_buffer - p->delay; -+ state->free_samples = state->free_samples / p->par.round * p->par.round; -+ /* how many samples are already in the buffer to be played */ - state->queued_samples = p->delay; -- state->delay = (p->delay / (double)p->par.rate); -- state->playing = p->playing; -+ /* delay in seconds between first and last sample in buffer */ -+ state->delay = p->delay / (double)p->par.rate; -+ -+ /* report unexpected EOF / underrun */ -+ if (state->queued_samples && state->queued_samples && -+ state->queued_samples < state->free_samples && -+ p->playing || sio_eof(p->hdl)) -+ { -+ MP_VERBOSE(ao, "get_state: EOF/underrun detected.\n"); -+ MP_VERBOSE(ao, "get_state: free: %d, queued: %d, delay: %lf\n", \ -+ state->free_samples, state->queued_samples, state->delay); -+ p->playing = false; -+ state->playing = p->playing; -+ ao_wakeup_playthread(ao); -+ } else { -+ state->playing = p->playing; -+ } - } - - const struct ao_driver audio_out_sndio = { -diff --git a/wscript b/wscript -index eeb38f127f..1651187b34 100644 ---- a/wscript -+++ b/wscript -@@ -437,8 +437,7 @@ audio_output_features = [ - }, { - 'name': '--sndio', - 'desc': 'sndio audio input/output', -- 'func': check_statement('sndio.h', -- 'struct sio_par par; sio_initpar(&par); const char *s = SIO_DEVANY', lib='sndio'), -+ 'func': check_pkg_config('sndio'), - 'default': 'disable' - }, { - 'name': '--pulse', --- -2.35.1 - diff --git a/pkg/mpv/patch/0007-wayland-actually-handle-0x0-resizes-correctly.patch b/pkg/mpv/patch/0007-wayland-actually-handle-0x0-resizes-correctly.patch @@ -1,39 +0,0 @@ -From 386d92e1ac1c22dbed0d2ab0e77ba1038baba966 Mon Sep 17 00:00:00 2001 -From: Dudemanguy <random342@airmail.cc> -Date: Tue, 25 Jan 2022 11:56:37 -0600 -Subject: [PATCH] wayland: actually handle 0x0 resizes correctly - -According to the xdg-shell protocol spec, a 0x0 size from the compositor -means that "the client should decide its own window dimension". We were -not doing this correctly. What should happen is that mpv should simply -reuse the old window size if it is not maximized or fullscreened. This -should work on all (reasonably recent) versions of mutter and an -compositor that follows the spec. - -https://gitlab.freedesktop.org/wayland/wayland-protocols/-/blob/main/stable/xdg-shell/xdg-shell.xml#L1050 ---- - video/out/wayland_common.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/video/out/wayland_common.c b/video/out/wayland_common.c -index 4ec5c148e7..61964c46e5 100644 ---- a/video/out/wayland_common.c -+++ b/video/out/wayland_common.c -@@ -856,6 +856,14 @@ static void handle_toplevel_config(void *data, struct xdg_toplevel *toplevel, - } - } - -+ /* Reuse old size if either of these are 0. */ -+ if (width == 0 || height == 0) { -+ if (!is_fullscreen && !is_maximized) { -+ wl->geometry = wl->window_size; -+ } -+ goto resize; -+ } -+ - if (old_toplevel_width == wl->toplevel_width && - old_toplevel_height == wl->toplevel_height) - return; --- -2.35.1 - diff --git a/pkg/mpv/patch/0008-audio-replace-deprecated-av_mallocz_array.patch b/pkg/mpv/patch/0008-audio-replace-deprecated-av_mallocz_array.patch @@ -1,25 +0,0 @@ -From 7c2361dbc8ceabc1b3edf9e585ccd4e80dd83ea8 Mon Sep 17 00:00:00 2001 -From: sfan5 <sfan5@live.de> -Date: Sat, 30 Oct 2021 17:11:46 +0200 -Subject: [PATCH] audio: replace deprecated av_mallocz_array - ---- - audio/aframe.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/audio/aframe.c b/audio/aframe.c -index c2c0df7c9b..46264b692e 100644 ---- a/audio/aframe.c -+++ b/audio/aframe.c -@@ -637,7 +637,7 @@ int mp_aframe_pool_allocate(struct mp_aframe_pool *pool, struct mp_aframe *frame - av_freep(&av_frame->extended_data); // sigh - if (planes > AV_NUM_DATA_POINTERS) { - av_frame->extended_data = -- av_mallocz_array(planes, sizeof(av_frame->extended_data[0])); -+ av_calloc(planes, sizeof(av_frame->extended_data[0])); - if (!av_frame->extended_data) - abort(); - } else { --- -2.37.3 - diff --git a/pkg/mpv/patch/0009-f_lavfi-replace-deprecated-avfilter_pad_count.patch b/pkg/mpv/patch/0009-f_lavfi-replace-deprecated-avfilter_pad_count.patch @@ -1,46 +0,0 @@ -From ea1a98299479f1678d649585723f6a446e9760b1 Mon Sep 17 00:00:00 2001 -From: sfan5 <sfan5@live.de> -Date: Sat, 30 Oct 2021 17:12:29 +0200 -Subject: [PATCH] f_lavfi: replace deprecated avfilter_pad_count - ---- - filters/f_lavfi.c | 20 ++++++++++---------- - 1 file changed, 10 insertions(+), 10 deletions(-) - -diff --git a/filters/f_lavfi.c b/filters/f_lavfi.c -index 9e64215f39..f9d581fed8 100644 ---- a/filters/f_lavfi.c -+++ b/filters/f_lavfi.c -@@ -944,19 +944,19 @@ static struct mp_filter *lavfi_create(struct mp_filter *parent, void *options) - return l ? l->f : NULL; - } - --static bool is_single_media_only(const AVFilterPad *pads, int media_type) --{ -- int count = avfilter_pad_count(pads); -- if (count != 1) -- return false; -- return avfilter_pad_get_type(pads, 0) == media_type; --} -- - // Does it have exactly one video input and one video output? - static bool is_usable(const AVFilter *filter, int media_type) - { -- return is_single_media_only(filter->inputs, media_type) && -- is_single_media_only(filter->outputs, media_type); -+#if LIBAVFILTER_VERSION_INT >= AV_VERSION_INT(8, 3, 0) -+ int nb_inputs = avfilter_filter_pad_count(filter, 0), -+ nb_outputs = avfilter_filter_pad_count(filter, 1); -+#else -+ int nb_inputs = avfilter_pad_count(filter->inputs), -+ nb_outputs = avfilter_pad_count(filter->outputs); -+#endif -+ return nb_inputs == 1 && nb_outputs == 1 && -+ avfilter_pad_get_type(filter->inputs, 0) == media_type && -+ avfilter_pad_get_type(filter->outputs, 0) == media_type; - } - - bool mp_lavfi_is_usable(const char *name, int media_type) --- -2.37.3 - diff --git a/pkg/mpv/sources.txt b/pkg/mpv/sources.txt @@ -1,5 +1,6 @@ audio/aframe.c audio/chmap.c +audio/chmap_avchannel.c av-channel-layout audio/chmap_sel.c audio/decode/ad_lavc.c audio/decode/ad_spdif.c @@ -28,6 +29,7 @@ audio/out/ao_openal.c openal audio/out/ao_opensles.c opensles audio/out/ao_oss.c oss-audio audio/out/ao_pcm.c +audio/out/ao_pipewire.c pipewire audio/out/ao_pulse.c pulse audio/out/ao_sdl.c sdl2-audio audio/out/ao_sndio.c sndio @@ -93,6 +95,7 @@ misc/json.c misc/natural_sort.c misc/node.c misc/rendezvous.c +misc/random.c misc/thread_pool.c misc/thread_tools.c options/m_config_core.c @@ -163,6 +166,7 @@ test/tests.c tests video/csputils.c video/cuda.c cuda-hwaccel video/d3d.c d3d-hwaccel +video/drmprime.c drm video/decode/vd_lavc.c video/filter/refqueue.c video/filter/vf_d3d11vpp.c d3d-hwaccel @@ -212,12 +216,17 @@ video/out/gpu/user_shaders.c video/out/gpu/utils.c video/out/gpu/video.c video/out/gpu/video_shaders.c +video/out/gpu_next/context.c libplacebo-next +video/out/hwdec/hwdec_aimagereader.c android-media-ndk video/out/hwdec/hwdec_cuda.c cuda-interop video/out/hwdec/hwdec_cuda_gl.c cuda-interop && gl video/out/hwdec/hwdec_cuda_vk.c cuda-interop && vulkan -video/out/hwdec/hwdec_vaapi.c vaapi-egl || vaapi-vulkan -video/out/hwdec/hwdec_vaapi_gl.c vaapi-egl -video/out/hwdec/hwdec_vaapi_vk.c vaapi-vulkan +video/out/hwdec/hwdec_drmprime.c drm +video/out/hwdec/hwdec_drmprime_overlay.c drm +video/out/hwdec/hwdec_vaapi.c vaapi-egl || vaapi-libplacebo +video/out/hwdec/dmabuf_interop_gl.c dmabuf-interop-gl +video/out/hwdec/dmabuf_interop_pl.c dmabuf-interop-pl +video/out/hwdec/dmabuf_interop_wl.c dmabuf-wayland video/out/libmpv_sw.c video/out/placebo/ra_pl.c libplacebo video/out/placebo/utils.c libplacebo @@ -237,7 +246,6 @@ video/out/opengl/context_x11egl.c egl-x11 video/out/opengl/egl_helpers.c egl-helpers video/out/opengl/formats.c gl video/out/opengl/hwdec_d3d11egl.c d3d-hwaccel && egl-angle -video/out/opengl/hwdec_drmprime_drm.c drm video/out/opengl/hwdec_dxva2egl.c d3d9-hwaccel && egl-angle video/out/opengl/hwdec_dxva2gldx.c gl-dxinterop-d3d9 video/out/opengl/hwdec_ios.m ios-gl @@ -245,14 +253,18 @@ video/out/opengl/hwdec_osx.c videotoolbox-gl video/out/opengl/hwdec_rpi.c rpi-mmal video/out/opengl/hwdec_vdpau.c vdpau-gl-x11 video/out/opengl/libmpv_gl.c gl -video/out/opengl/oml_sync.c egl-x11 || gl-x11 video/out/opengl/ra_gl.c gl video/out/opengl/utils.c gl +video/out/present_sync.c wayland || x11 +video/out/wldmabuf/context_wldmabuf.c dmabuf-wayland +video/out/wldmabuf/ra_wldmabuf.c dmabuf-wayland +video/out/wlbuf_pool.c dmabuf-wayland video/out/vo.c video/out/vo_caca.c caca video/out/vo_direct3d.c direct3d video/out/vo_drm.c drm video/out/vo_gpu.c +video/out/vo_gpu_next.c libplacebo-next video/out/vo_image.c video/out/vo_lavc.c video/out/vo_libmpv.c @@ -263,6 +275,7 @@ video/out/vo_sdl.c sdl2-video video/out/vo_sixel.c sixel video/out/vo_tct.c video/out/vo_vaapi.c vaapi-x11 && gpl +video/out/vo_dmabuf_wayland.c dmabuf-wayland video/out/vo_vdpau.c vdpau video/out/vo_wlshm.c wayland && memfd_create video/out/vo_x11.c x11 @@ -279,6 +292,8 @@ $builddir/pkg/wayland-protocols/idle-inhibit-unstable-v1-protocol.c.o wayland $builddir/pkg/wayland-protocols/presentation-time-protocol.c.o wayland $builddir/pkg/wayland-protocols/xdg-decoration-unstable-v1-protocol.c.o wayland $builddir/pkg/wayland-protocols/xdg-shell-protocol.c.o wayland +$builddir/pkg/wayland-protocols/linux-dmabuf-unstable-v1-protocol.c.o wayland +$builddir/pkg/wayland-protocols/viewporter-protocol.c.o wayland video/out/wayland_common.c wayland video/out/win32/displayconfig.c win32-desktop video/out/win32/droptarget.c win32-desktop diff --git a/pkg/mpv/ver b/pkg/mpv/ver @@ -1 +1 @@ -0.34.1 r1 +0.35.1 r0