1
0
mirror of https://git.savannah.gnu.org/git/guix.git synced 2026-04-08 06:00:36 +02:00
Files
guix/gnu/packages/patches/exaile-gstreamer-1.28.patch
Ryne Everett de36de495f gnu: Add exaile.
* gnu/packages/music.scm (exaile): New variable.
* gnu/packages/patches/exaile-gstreamer-1.28.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.

Signed-off-by: Sughosha <sughosha@disroot.org>
2026-03-18 10:58:52 +05:30

40 lines
1.4 KiB
Diff

From 34165c500abce930daa4efd51d4933016ce80dc4 Mon Sep 17 00:00:00 2001
From: Johannes Sasongko <johannes@sasongko.org>
Date: Mon, 2 Mar 2026 02:17:37 +1100
Subject: [PATCH] player/gst/sink: Work around GStreamer >= 1.28 API change
Fixes: https://github.com/exaile/exaile/issues/999
---
xl/player/gst/sink.py | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/xl/player/gst/sink.py b/xl/player/gst/sink.py
index c8d298be6..27f896c2c 100644
--- a/xl/player/gst/sink.py
+++ b/xl/player/gst/sink.py
@@ -81,10 +81,22 @@
def __filter_presets():
+ """Remove items in SINK_PRESETS that cannot be created."""
for name, preset in list(SINK_PRESETS.items()):
pipe = preset.get('pipe')
- if pipe and not Gst.ElementFactory.make(pipe):
- del SINK_PRESETS[name]
+ if not pipe:
+ continue # No 'pipe' means this is auto or custom
+ # In GStreamer < 1.28, Gst.ElementFactory.make always returns None when
+ # the element can't be created.
+ # In GStreamer >= 1.28, it can either return None or raise a custom
+ # exception depending on whether the Gst Python override is installed.
+ # See <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4914>.
+ try:
+ if Gst.ElementFactory.make(pipe):
+ continue
+ except Exception:
+ pass
+ del SINK_PRESETS[name]
__filter_presets()