X-Git-Url: https://git.sesse.net/?p=pitch;a=blobdiff_plain;f=linux_audio.cpp;h=c07e6bb289a543419d608063796ada457157c66c;hp=8b0d756396faa3937c5c689029e19421a5b6b114;hb=HEAD;hpb=abee20b74fec255942d42656047e371979ef0fcf diff --git a/linux_audio.cpp b/linux_audio.cpp index 8b0d756..c07e6bb 100644 --- a/linux_audio.cpp +++ b/linux_audio.cpp @@ -86,8 +86,13 @@ void read_chunk(snd_pcm_t *handle, short *in, unsigned num_samples) printf("EOF\n"); exit(0); } - if (ret == -1) { - perror("read"); + if (ret == -EPIPE) { + fprintf(stderr, "ALSA underrun\n"); + snd_pcm_prepare(handle); + continue; + } + if (ret < 0) { + fprintf(stderr, "snd_pcm_readi: %s\n", snd_strerror(ret)); exit(1); } in += ret;