On Tue, 6 Apr 2004, Tom Browne wrote: > 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?
Then it really appears like a bug. Could you add snd_pcm_dump() call just before the block occurs? > 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... mmap does never block Jaroslav ----- Jaroslav Kysela <[EMAIL PROTECTED]> Linux Kernel Sound Maintainer ALSA Project, SuSE Labs ------------------------------------------------------- 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