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

Reply via email to