From d1ed93501d23aef90bfbf96e0629c4512d090d41 Mon Sep 17 00:00:00 2001 From: Ahmet Inan Date: Tue, 26 Aug 2014 16:17:53 +0200 Subject: [PATCH] set min rate to 8000 to work around pulseaudio ignorance pulseaudio ignores our request no to do any rate conversion. so we need to set the min rate to 8000hz so we wont get 1hz :S --- alsa.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/alsa.c b/alsa.c index 788f003..474f276 100644 --- a/alsa.c +++ b/alsa.c @@ -125,6 +125,15 @@ int open_alsa_read(struct pcm **p, char *name) return 0; } + unsigned rate_min = 8000; + int dir_min = 1; + if (snd_pcm_hw_params_set_rate_min(pcm, params, &rate_min, &dir_min) < 0 || rate_min < 8000) { + fprintf(stderr, "Error setting min rate.\n"); + snd_pcm_close(alsa->pcm); + free(alsa); + return 0; + } + if (snd_pcm_hw_params(pcm, params) < 0) { fprintf(stderr, "Error setting HW params.\n"); snd_pcm_close(alsa->pcm);