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.
This commit is contained in:
Max Kellermann
2009-03-10 21:00:52 +01:00
parent a790b64568
commit d3eccb2324

View File

@@ -333,8 +333,12 @@ static void player_process_command(struct player *player)
if (player->paused) {
audio_output_all_pause();
pc.state = PLAYER_STATE_PAUSE;
} else {
if (audio_output_all_open(NULL, player_buffer)) {
} 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 {
assert(dc.next_song == NULL || dc.next_song->url != NULL);
@@ -343,7 +347,7 @@ static void player_process_command(struct player *player)
player->paused = true;
}
}
player_command_finished();
break;