diff options
Diffstat (limited to 'audio/out/ao_pulse.c')
-rw-r--r-- | audio/out/ao_pulse.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/audio/out/ao_pulse.c b/audio/out/ao_pulse.c index 12fca17dd6..d08ffcfc53 100644 --- a/audio/out/ao_pulse.c +++ b/audio/out/ao_pulse.c @@ -205,13 +205,18 @@ static bool select_chmap(struct ao *ao, pa_channel_map *dst) chmap_pa_from_mp(dst, &ao->channels); } -static void uninit(struct ao *ao, bool cut_audio) +static void drain(struct ao *ao) { struct priv *priv = ao->priv; - if (priv->stream && !cut_audio) { + if (priv->stream) { pa_threaded_mainloop_lock(priv->mainloop); waitop(priv, pa_stream_drain(priv->stream, success_cb, ao)); } +} + +static void uninit(struct ao *ao) +{ + struct priv *priv = ao->priv; if (priv->mainloop) pa_threaded_mainloop_stop(priv->mainloop); @@ -366,7 +371,7 @@ fail: if (proplist) pa_proplist_free(proplist); - uninit(ao, true); + uninit(ao); return -1; } @@ -620,6 +625,7 @@ const struct ao_driver audio_out_pulse = { .get_delay = get_delay, .pause = pause, .resume = resume, + .drain = drain, .priv_size = sizeof(struct priv), .priv_defaults = &(const struct priv) { .cfg_buffer = 250, |