[LAD] Possible snd_pcm_hw_params_set_buffer_time_near() gotcha

From: Mario Lang <mlang@email-addr-hidden>
Date: Mon Dec 07 2009 - 21:22:29 EET

Hi.

I just happened to stumble about a (what I call) pretty subtle
bug in typical ALSA PCM code:

root@fzidpc73:/tmp# cat test.c
#include <stdio.h>
int main() {
  int period = 1024;
  int nperiods = 3;
  int rate = 96000;
  unsigned buffer_time = 1000000*period*nperiods/rate;
  printf("%d\n", buffer_time);
}
root@fzidpc73:/tmp# ./test
-12739
root@fzidpc73:/tmp# sed -i -e 's/int rate/unsigned int rate/' test.c
root@fzidpc73:/tmp# gcc -o test test.c
root@fzidpc73:/tmp# ./test
32000

I.e., don't trust this boilerplate formula blindly.

-- 
CYa,
  ⡍⠁⠗⠊⠕
_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
Received on Tue Dec 8 00:15:04 2009

This archive was generated by hypermail 2.1.8 : Tue Dec 08 2009 - 00:15:04 EET