summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorRon Nazarov <ron@noisytoot.org>2025-12-06 03:02:21 +0000
committerLiliana Marie Prikler <liliana.prikler@gmail.com>2025-12-07 08:16:55 +0100
commit7b9cfea908a787d31d5458c386653c0780af0e86 (patch)
tree5996f216482df80b20448714b2f57905411ea6a0 /gnu
parent2e9170642ee386559e4e76d5703993a0fafd21d6 (diff)
gnu: mpv: Fix 100% CPU usage on wayland.
* gnu/packages/patches/mpv-0.40.0-fix-wayland-cpu-usage.patch: New file. * gnu/packages/video.scm (mpv): Use it. * gnu/local.mk (dist_patch_DATA): Add it. Change-Id: I80244eacc0f8294f2b4e521217f68ada7a347bf4 Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
Diffstat (limited to 'gnu')
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/patches/mpv-0.40.0-fix-wayland-cpu-usage.patch34
-rw-r--r--gnu/packages/video.scm3
3 files changed, 37 insertions, 1 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 656315bdb79..7a6d044d9a2 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1876,6 +1876,7 @@ dist_patch_DATA = \
%D%/packages/patches/mpg321-CVE-2019-14247.patch \
%D%/packages/patches/mpg321-gcc-10.patch \
%D%/packages/patches/mpv-0.40.0-fix-ffmpeg-8.0.patch \
+ %D%/packages/patches/mpv-0.40.0-fix-wayland-cpu-usage.patch \
%D%/packages/patches/modglue-fix-build.patch \
%D%/packages/patches/modem-manager-fix-test-wrapper.patch \
%D%/packages/patches/module-init-tools-moduledir.patch \
diff --git a/gnu/packages/patches/mpv-0.40.0-fix-wayland-cpu-usage.patch b/gnu/packages/patches/mpv-0.40.0-fix-wayland-cpu-usage.patch
new file mode 100644
index 00000000000..fdc7d3714d2
--- /dev/null
+++ b/gnu/packages/patches/mpv-0.40.0-fix-wayland-cpu-usage.patch
@@ -0,0 +1,34 @@
+Upstream-status: https://github.com/mpv-player/mpv/pull/16140
+
+From d20ded876d27497d3fe6a9494add8106b507a45c Mon Sep 17 00:00:00 2001
+From: llyyr <llyyr.public@gmail.com>
+Date: Fri, 28 Mar 2025 15:34:33 +0530
+Subject: [PATCH] clipboard-wayland: prevent reading from hung up fd
+
+This causes mpv to use up 100% of a core if there's an offer for a
+mime_type that mpv doesn't accept with ext_data_control clipboard
+backend.
+---
+ player/clipboard/clipboard-wayland.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/player/clipboard/clipboard-wayland.c b/player/clipboard/clipboard-wayland.c
+index c4a5e50472..bd8ac35af2 100644
+--- a/player/clipboard/clipboard-wayland.c
++++ b/player/clipboard/clipboard-wayland.c
+@@ -348,6 +348,12 @@ static bool clipboard_wayland_dispatch_events(struct clipboard_wayland_priv *wl,
+ if (fds[1].revents & POLLIN)
+ return false;
+
++ if (fds[2].revents & (POLLERR | POLLHUP | POLLNVAL))
++ destroy_offer(wl->selection_offer);
++
++ if (fds[3].revents & (POLLERR | POLLHUP | POLLNVAL))
++ destroy_offer(wl->primary_selection_offer);
++
+ if (fds[2].revents & POLLIN)
+ get_selection_data(wl, wl->selection_offer, false);
+
+--
+2.51.0
+
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 724194e48e0..3107c428457 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -2743,7 +2743,8 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
(base32 "0w0qk61ll0mddbkiwavqfx048sacyvp6fwglms58ypw869rh7iy7"))
(patches
(search-patches
- "mpv-0.40.0-fix-ffmpeg-8.0.patch"))))
+ "mpv-0.40.0-fix-ffmpeg-8.0.patch"
+ "mpv-0.40.0-fix-wayland-cpu-usage.patch"))))
(build-system meson-build-system)
(arguments
(list