}
} /* while(1) */
__end:
- voc_pcm_flush();
+ if (!in_aborting) {
+ voc_pcm_flush();
+ }
free(buf);
}
/* that was a big one, perhaps somebody split it :-) */
written += r;
l = 0;
}
- snd_pcm_nonblock(handle, 0);
- snd_pcm_drain(handle);
- snd_pcm_nonblock(handle, nonblock);
+ if (!in_aborting) {
+ snd_pcm_nonblock(handle, 0);
+ snd_pcm_drain(handle);
+ snd_pcm_nonblock(handle, nonblock);
+ }
}
static int read_header(int *loaded, int header_size)
r = r * bits_per_frame / 8;
count -= r;
}
- snd_pcm_nonblock(handle, 0);
- snd_pcm_drain(handle);
- snd_pcm_nonblock(handle, nonblock);
+ if (!in_aborting) {
+ snd_pcm_nonblock(handle, 0);
+ snd_pcm_drain(handle);
+ snd_pcm_nonblock(handle, nonblock);
+ }
}
static void capturev_go(int* fds, unsigned int channels, off64_t count, int rtype, char **names)