I have a developed sample playback application which is playing the sound properly for 48 Khz, 44.1 Khz for intel sound card which is built in Pentium PC.
For setting the period size and buffer size i am using snd_pcm_hw_params_set_buffer_size_near(), snd_pcm_hw_params_set_period_size_near() functions.
buffer_size, period size retruned from those functions are 16384, 1024 respectively. transfer_align also 1024.
 But if i run the same  playback application for CMI 8788 card it is not giving any output. The values returned from the snd_pcm_hw_params_set_buffer_size_near(), snd_pcm_hw_params_set_period_size_near()  are 64, 32 respectively. The transfer align is 32. How can set the buffer size? Is there any formula available for setting the buffer size? or snd_pcm_hw_params_set_buffer_size_near() can set properly? and occasionally i am seeing underrun also.. Please help...
Sakthi  S G