Commit d3eccb23 authored by Max Kellermann's avatar Max Kellermann

player_thread: pass format to audio_output_all_open() after resume

When playback is unpaused, pass the audio_format to audio_output_all_open(). Don't assume that output_all.c remembers the previous audio format. Also check if there has been an audio format yet.
parent a790b645
......@@ -333,17 +333,21 @@ static void player_process_command(struct player *player)
if (player->paused) {
audio_output_all_pause();
pc.state = PLAYER_STATE_PAUSE;
} else if (!audio_format_defined(&player->play_audio_format)) {
/* the decoder hasn't provided an audio format
yet - don't open the audio device yet */
pc.state = PLAYER_STATE_PLAY;
} else if (audio_output_all_open(&player->play_audio_format, player_buffer)) {
pc.state = PLAYER_STATE_PLAY;
} else {
if (audio_output_all_open(NULL, player_buffer)) {
pc.state = PLAYER_STATE_PLAY;
} else {
assert(dc.next_song == NULL || dc.next_song->url != NULL);
pc.errored_song = dc.next_song;
pc.error = PLAYER_ERROR_AUDIO;
assert(dc.next_song == NULL || dc.next_song->url != NULL);
pc.errored_song = dc.next_song;
pc.error = PLAYER_ERROR_AUDIO;
player->paused = true;
}
player->paused = true;
}
player_command_finished();
break;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment