Jaroslav Kysela wrote: >> alsa_buffer_size = snd_pcm_hw_params_get_buffer_size(params); >> err = snd_pcm_hw_params_set_period_time_near(handle, params, >> alsa_period_time, &dir); >> alsa_period_size = snd_pcm_hw_params_get_period_size(params, &dir); >> ... >> err = snd_pcm_sw_params_set_start_threshold(handle, swparams, >> alsa_buffer_size-1) > It's not correct and it was never correct, but the pcm.c was buggy, > too. Look to the latest version.
Running a file compare, I see only one line of significant difference between the version in 0.9rc2 and 1.0.4 pcm.c... err = snd_pcm_sw_params_set_start_threshold(handle, swparams, (buffer_size / period_size) * period_size); Which gives threshold = 6552 from buffer=6553, period=3276... exactly the same value as the code I was already using gives! What else am I missing from the garish red and yellow blocks of WinDiff? Why does changing to mmap writes make the blocking problem go away? And as I said, the problem only has been made to occur at 88.2 and 96K sampling rates... - Tom. ------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click _______________________________________________ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel