diff options
author | wm4 <wm4@nowhere> | 2015-01-11 04:14:41 +0100 |
---|---|---|
committer | Diogo Franco (Kovensky) <diogomfranco@gmail.com> | 2015-01-25 17:00:07 +0900 |
commit | f551da2cfb4e77fb53c41677205948d794211b2f (patch) | |
tree | 3f8d15d25e1810e8d4667d4dfa6bd8e79a8aaa5a | |
parent | ac06ba0aecfe764009602cec0cbc3f45b7538a1a (diff) | |
download | mpv-f551da2cfb4e77fb53c41677205948d794211b2f.tar.bz2 mpv-f551da2cfb4e77fb53c41677205948d794211b2f.tar.xz |
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.
-rw-r--r-- | audio/out/ao_pulse.c | 6 |
1 files changed, 5 insertions, 1 deletions
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; |