From f551da2cfb4e77fb53c41677205948d794211b2f 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 ae708df59e..8f60d91c87 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