summaryrefslogtreecommitdiffstats
path: root/audio
diff options
context:
space:
mode:
authorMisaki Kasumi <misakikasumi@outlook.com>2024-03-26 21:57:12 +0800
committersfan5 <sfan5@live.de>2024-04-03 23:40:05 +0200
commit2407e1b2d095611db1e61fca781b45ba389e8788 (patch)
tree236dbb53668252b527c30818d110fec87604213e /audio
parentd419cc562db140d302a7d32d40d67a543d0fbec4 (diff)
downloadmpv-2407e1b2d095611db1e61fca781b45ba389e8788.tar.bz2
mpv-2407e1b2d095611db1e61fca781b45ba389e8788.tar.xz
ao_pipewire: support set_pause
Diffstat (limited to 'audio')
-rw-r--r--audio/out/ao_pipewire.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/audio/out/ao_pipewire.c b/audio/out/ao_pipewire.c
index a03f172529..9e08ddc626 100644
--- a/audio/out/ao_pipewire.c
+++ b/audio/out/ao_pipewire.c
@@ -693,6 +693,15 @@ static void start(struct ao *ao)
pw_thread_loop_unlock(p->loop);
}
+static bool set_pause(struct ao *ao, bool paused)
+{
+ struct priv *p = ao->priv;
+ pw_thread_loop_lock(p->loop);
+ pw_stream_set_active(p->stream, !paused);
+ pw_thread_loop_unlock(p->loop);
+ return true;
+}
+
#define CONTROL_RET(r) (!r ? CONTROL_OK : CONTROL_ERROR)
static int control(struct ao *ao, enum aocontrol cmd, void *arg)
@@ -884,7 +893,7 @@ const struct ao_driver audio_out_pipewire = {
.uninit = uninit,
.reset = reset,
.start = start,
-
+ .set_pause = set_pause,
.control = control,
.hotplug_init = hotplug_init,