mirror of https://github.com/mpv-player/mpv
ao_pulse: change suspend circumvention logic
Commit 957097 attempted to use PA_STREAM_FAIL_ON_SUSPEND to make ao_pulse exit if the stream was started suspended. Unfortunately, PA_STREAM_FAIL_ON_SUSPEND is active even during playback. If you pause mpv, pulseaudio will close the actual audio device after a while (or something like this), and unpausing won't work. Instead, it will spam "Entity killed" error messages. Undo this change and check for suspended audio manually during init. CC: @mpv-player/stable
This commit is contained in:
parent
80e10b0058
commit
0d4e245de7
|
@ -400,7 +400,7 @@ static int init(struct ao *ao)
|
|||
.fragsize = -1,
|
||||
};
|
||||
|
||||
int flags = PA_STREAM_NOT_MONOTONIC | PA_STREAM_FAIL_ON_SUSPEND;
|
||||
int flags = PA_STREAM_NOT_MONOTONIC;
|
||||
if (!priv->cfg_latency_hacks)
|
||||
flags |= PA_STREAM_INTERPOLATE_TIMING|PA_STREAM_AUTO_TIMING_UPDATE;
|
||||
|
||||
|
@ -418,6 +418,11 @@ static int init(struct ao *ao)
|
|||
pa_threaded_mainloop_wait(priv->mainloop);
|
||||
}
|
||||
|
||||
if (pa_stream_is_suspended(priv->stream)) {
|
||||
MP_ERR(ao, "The stream is suspended. Bailing out.\n");
|
||||
goto unlock_and_fail;
|
||||
}
|
||||
|
||||
pa_threaded_mainloop_unlock(priv->mainloop);
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Reference in New Issue