output/wasapi: start after the buffer has been filled

Postpone the Start() call until there is something to be played.
This commit is contained in:
Max Kellermann 2021-03-08 23:02:43 +01:00
parent 69783a44c8
commit 0a97e68aa9

View File

@ -355,17 +355,11 @@ try {
return;
}
if (!started) {
if (current_state != Status::PLAY)
/* don't bother starting the
IAudioClient if we're
paused */
if (!started && current_state != Status::PLAY)
/* don't bother starting the IAudioClient if
we're paused */
continue;
Start(client);
started = true;
}
UINT32 write_in_frames = buffer_size_in_frames;
if (!is_exclusive) {
UINT32 data_in_frames =
@ -387,6 +381,11 @@ try {
AtScopeExit(&) {
render_client->ReleaseBuffer(write_in_frames, mode);
if (!started) {
Start(client);
started = true;
}
};
if (current_state == Status::PLAY) {