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