From 2c9180f47ba28a2117312da474d14b130baf1589 Mon Sep 17 00:00:00 2001 From: wm4 Date: Sun, 11 Jan 2015 04:14:41 +0100 Subject: ao_pulse: exit AO if stream fails This can for example reproduced by killing the pulseaudio server. If this happens, just try to reload the AO, instead of breaking everything forever. --- audio/out/ao_pulse.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/audio/out/ao_pulse.c b/audio/out/ao_pulse.c index 1f07189779..d96b9fb98d 100644 --- a/audio/out/ao_pulse.c +++ b/audio/out/ao_pulse.c @@ -86,8 +86,12 @@ static void stream_state_cb(pa_stream *s, void *userdata) struct ao *ao = userdata; struct priv *priv = ao->priv; switch (pa_stream_get_state(s)) { - case PA_STREAM_READY: case PA_STREAM_FAILED: + MP_VERBOSE(ao, "Stream failed.\n"); + ao_request_reload(ao); + pa_threaded_mainloop_signal(priv->mainloop, 0); + break; + case PA_STREAM_READY: case PA_STREAM_TERMINATED: pa_threaded_mainloop_signal(priv->mainloop, 0); break; -- cgit v1.2.3