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

Reply via email to