From 0ac468669ab54a561956ba3c1b385d87654120b9 Mon Sep 17 00:00:00 2001 From: triallax Date: Thu, 27 Jul 2023 17:11:53 +0100 Subject: [PATCH] mpv: update to 0.36.0. --- srcpkgs/mpv/patches/fix-ytdl-fragment.patch | 26 ------- srcpkgs/mpv/patches/pipewire-native.patch | 78 --------------------- srcpkgs/mpv/patches/ytdl-fragment-log.patch | 37 ---------- srcpkgs/mpv/template | 6 +- 4 files changed, 3 insertions(+), 144 deletions(-) delete mode 100644 srcpkgs/mpv/patches/fix-ytdl-fragment.patch delete mode 100644 srcpkgs/mpv/patches/pipewire-native.patch delete mode 100644 srcpkgs/mpv/patches/ytdl-fragment-log.patch diff --git a/srcpkgs/mpv/patches/fix-ytdl-fragment.patch b/srcpkgs/mpv/patches/fix-ytdl-fragment.patch deleted file mode 100644 index d01421de7ea..00000000000 --- a/srcpkgs/mpv/patches/fix-ytdl-fragment.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 94c189dae76ba280d9883b16346c3dfb9720687e Mon Sep 17 00:00:00 2001 -From: Christoph Heinrich -Date: Fri, 3 Mar 2023 00:45:45 +0100 -Subject: [PATCH] ytdl_hook: init fragment requires other fragments - -With dash the first fragment was always considered an init fragment if -there wasn't a duration. However that only makes sense when there are -also other fragments, so check if there are other fragments in addition -to the lack of a duration. ---- - player/lua/ytdl_hook.lua | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/player/lua/ytdl_hook.lua b/player/lua/ytdl_hook.lua -index 27e5f4544b2..9e50b3a80b8 100644 ---- a/player/lua/ytdl_hook.lua -+++ b/player/lua/ytdl_hook.lua -@@ -297,7 +297,7 @@ local function edl_track_joined(fragments, protocol, is_live, base) - local args = "" - - -- assume MP4 DASH initialization segment -- if not fragments[1].duration then -+ if not fragments[1].duration and #fragments > 1 then - msg.debug("Using init segment") - args = args .. ",init=" .. edl_escape(join_url(base, fragments[1])) - offset = 2 diff --git a/srcpkgs/mpv/patches/pipewire-native.patch b/srcpkgs/mpv/patches/pipewire-native.patch deleted file mode 100644 index 8b2fe79530c..00000000000 --- a/srcpkgs/mpv/patches/pipewire-native.patch +++ /dev/null @@ -1,78 +0,0 @@ -From ac6bb48728af60c706a6a92573ea13651adb6d7d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= -Date: Sun, 23 Jul 2023 09:10:55 +0200 -Subject: [PATCH] ao_pipewire: for_each_sink: properly check termination - condition - -Doing a pw_thread_loop_wait() without checking conditions is invalid. -The thread loop could be signalled for other reasons and in this case -the wait needs to continue. - -PipeWire added such additional signaling in -commit 33be898130f0 ("thread-loop: signal when started"). - -This meant that for_each_sink would return before the callbacks have -fired and session_has_sink() would incorrectly return "false", failing -the initialization of ao_pipewire. - -Fixes #11995 ---- - audio/out/ao_pipewire.c | 19 +++++++++++++++---- - 1 file changed, 15 insertions(+), 4 deletions(-) - -diff --git a/audio/out/ao_pipewire.c b/audio/out/ao_pipewire.c -index 8e93dc5341b..0a39e4e1a59 100644 ---- a/audio/out/ao_pipewire.c -+++ b/audio/out/ao_pipewire.c -@@ -354,6 +354,11 @@ static void for_each_sink_registry_event_global(void *data, uint32_t id, - } - - -+struct for_each_done_ctx { -+ struct pw_thread_loop *loop; -+ bool done; -+}; -+ - static const struct pw_registry_events for_each_sink_registry_events = { - .version = PW_VERSION_REGISTRY_EVENTS, - .global = for_each_sink_registry_event_global, -@@ -361,8 +366,9 @@ static const struct pw_registry_events for_each_sink_registry_events = { - - static void for_each_sink_done(void *data, uint32_t it, int seq) - { -- struct pw_thread_loop *loop = data; -- pw_thread_loop_signal(loop, false); -+ struct for_each_done_ctx *ctx = data; -+ ctx->done = true; -+ pw_thread_loop_signal(ctx->loop, false); - } - - static const struct pw_core_events for_each_sink_core_events = { -@@ -376,12 +382,16 @@ static int for_each_sink(struct ao *ao, void (cb) (struct ao *ao, uint32_t id, - struct priv *priv = ao->priv; - struct pw_registry *registry; - struct spa_hook core_listener; -+ struct for_each_done_ctx done_ctx = { -+ .loop = priv->loop, -+ .done = false, -+ }; - int ret = -1; - - pw_thread_loop_lock(priv->loop); - - spa_zero(core_listener); -- if (pw_core_add_listener(priv->core, &core_listener, &for_each_sink_core_events, priv->loop) < 0) -+ if (pw_core_add_listener(priv->core, &core_listener, &for_each_sink_core_events, &done_ctx) < 0) - goto unlock_loop; - - registry = pw_core_get_registry(priv->core, PW_VERSION_REGISTRY, 0); -@@ -400,7 +410,8 @@ static int for_each_sink(struct ao *ao, void (cb) (struct ao *ao, uint32_t id, - if (pw_registry_add_listener(registry, ®istry_listener, &for_each_sink_registry_events, &revents_ctx) < 0) - goto destroy_registry; - -- pw_thread_loop_wait(priv->loop); -+ while (!done_ctx.done) -+ pw_thread_loop_wait(priv->loop); - - spa_hook_remove(®istry_listener); - diff --git a/srcpkgs/mpv/patches/ytdl-fragment-log.patch b/srcpkgs/mpv/patches/ytdl-fragment-log.patch deleted file mode 100644 index fb5e8bcec4f..00000000000 --- a/srcpkgs/mpv/patches/ytdl-fragment-log.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 362256edbc4f95c63e69c1fa8c8dce9cc6c44288 Mon Sep 17 00:00:00 2001 -From: Christoph Heinrich -Date: Fri, 3 Mar 2023 00:50:58 +0100 -Subject: [PATCH] ytdl_hook: only log error when no fallback url available - -An error indicates that something doesn't work, but as long as a -safe url is available, playback is still expected to work. - -Thus reduce logging level of MP4 DASH without fragments message and -add a new error message for when there is no safe url available either. - -Also adds a missing space. ---- - player/lua/ytdl_hook.lua | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/player/lua/ytdl_hook.lua b/player/lua/ytdl_hook.lua -index 9e50b3a80b8..77f7446ed22 100644 ---- a/player/lua/ytdl_hook.lua -+++ b/player/lua/ytdl_hook.lua -@@ -309,7 +309,7 @@ local function edl_track_joined(fragments, protocol, is_live, base) - -- if not available in all, give up. - for i = offset, #fragments do - if not fragments[i].duration then -- msg.error("EDL doesn't support fragments" .. -+ msg.verbose("EDL doesn't support fragments " .. - "without duration with MP4 DASH") - return nil - end -@@ -423,6 +423,7 @@ local function formats_to_edl(json, formats, use_all_formats) - track.protocol, json.is_live, - track.fragment_base_url) - if not edl_track and not url_is_safe(track.url) then -+ msg.error("No safe URL or supported fragmented stream available") - return nil - end - diff --git a/srcpkgs/mpv/template b/srcpkgs/mpv/template index 1f7108e162d..5770251d33c 100644 --- a/srcpkgs/mpv/template +++ b/srcpkgs/mpv/template @@ -1,7 +1,7 @@ # Template file for 'mpv' pkgname=mpv -version=0.35.1 -revision=3 +version=0.36.0 +revision=1 build_style=meson configure_args="-Dcdda=enabled -Ddvbin=enabled -Ddvdnav=enabled -Dlibmpv=true -Dcplugins=enabled @@ -41,7 +41,7 @@ license="GPL-2.0-or-later" homepage="https://mpv.io" changelog="https://github.com/mpv-player/mpv/releases" distfiles="https://github.com/mpv-player/mpv/archive/v${version}.tar.gz" -checksum=41df981b7b84e33a2ef4478aaf81d6f4f5c8b9cd2c0d337ac142fc20b387d1a9 +checksum=29abc44f8ebee013bb2f9fe14d80b30db19b534c679056e4851ceadf5a5e8bf6 build_options="alsa caca jack lcms lua openal pulseaudio pipewire sdl2 sndio vapoursynth vdpau vulkan wayland x11"