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 /audio | |
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.
Diffstat (limited to 'audio')
-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; |