--- a/src/audio/alsa/SDL_alsa_audio.c Mon Oct 19 03:18:15 2009 +0000
+++ b/src/audio/alsa/SDL_alsa_audio.c Mon Oct 19 05:15:21 2009 +0000
@@ -314,8 +314,10 @@
while ( frames_left > 0 && this->enabled ) {
status = SDL_NAME(snd_pcm_writei)(pcm_handle, sample_buf, frames_left);
if ( status < 0 ) {
- if ( SDL_NAME(snd_pcm_recover)(pcm_handle, status, 0) < 0 ) {
+ status = SDL_NAME(snd_pcm_recover)(pcm_handle, status, 0);
+ if ( status < 0 ) {
/* Hmm, not much we can do - abort */
+ fprintf(stderr, "ALSA write failed (unrecoverable): %s", SDL_NAME(snd_strerror)(status));
this->enabled = 0;
return;
}