diff options
author | waker <wakeroid@gmail.com> | 2009-08-21 21:02:01 +0200 |
---|---|---|
committer | waker <wakeroid@gmail.com> | 2009-08-21 21:02:01 +0200 |
commit | ded20935eac98983cb4412ba6a867cf92b6ec1d8 (patch) | |
tree | 43f699cf6a1449f0b11516f5c6eed168218e6b87 /palsa.c | |
parent | 1d43ce00d5081c8a9cda7767e70c81de9a39cd92 (diff) |
fixed alsa snd_pcm_writei underrun detection
Diffstat (limited to 'palsa.c')
-rw-r--r-- | palsa.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -101,6 +101,7 @@ palsa_init (void) { goto open_error; } alsa_rate = val; + printf ("chosen samplerate: %d\n", alsa_rate); if ((err = snd_pcm_hw_params_set_channels (audio, hw_params, 2)) < 0) { fprintf (stderr, "cannot set channel count (%s)\n", @@ -323,7 +324,9 @@ palsa_thread (uintptr_t context) { char buf[bufsize]; palsa_callback (buf, frames_to_deliver*4); if ((err = snd_pcm_writei (audio, buf, frames_to_deliver)) < 0) { - fprintf (stderr, "write failed (%s)\n", snd_strerror (err)); + //fprintf (stderr, "write failed (%s)\n", snd_strerror (err)); + snd_pcm_prepare (audio); + snd_pcm_start (audio); } mutex_unlock (mutex); usleep (0); // let other threads gain some spin (avoid deadlock) |