1 Feb 2004 15:20
memory allocation in snd_alsa.c
Jamie Wilkinson <jaq <at> quakeforge.net>
2004-02-01 14:20:25 GMT
2004-02-01 14:20:25 GMT
I wrote a libao output driver last night, and was looking at snd_alsa for clues, but noticed that despite dma.buffer being pointed to buffer, neither of them were actually getting allocated. I then looked at snd_arts.c, which it looks like snd_alsa.c was derived from, and that actually does malloc some space for buffer. There's also a free in SNDDMA_Shutdown which will probably crash. Does snd_alsa.c actually work? I haven't tried it but it looks like the first attempt to fill the buffer will crash. Also, the buffer size is hardcoded to be dma.samples * 2 big, with the #define snf_buf at the start. The snd_linux.c and other OS specific audio code use dma.samples * dma.samplebits / 8 for the size of the buffer, as they can take 8 or 16 bit samples. Just pointing that out in case someone wanted to use 24 or 32 bit samples in the future. -- -- finger jaq <at> gozer.quakeforge.net http://www.quakeforge.net/
RSS Feed