Actually, I think I found the problem. I was using the maximum number
of playback and captures channels reported by the device. For
"plughw", this number is apparently 10000, rather than the actual
number the hardware supports! I guess what I have to do is open the
"hw" device first to get the actual number of channels, then open
"plughw" with that number of channels. 

I have no idea if that is a bug or a feature. Does "plughw" do something
useful if you specify more channels than the device supports?

Actually, one more question that I couldn't answer from the API docs:
What do you have to do to recover from -EPIPE in the case when the
hardware doesn't stop (i.e., when stop_threshold == UINT_MAX)?  Do you
just retry the write, or is there some call needed to clear the xrun?

        Thanks again -- Ken


On Sun, 24 Mar 2002, Paul Davis wrote:

> >
> >Oh -- thanks a lot for the quick answer! But then I guess I'll
> >rephrase the question: Why would I get xruns with "plughw", but not
> >with "hw"?
> 
> 2 possibilities readily spring to mind:
> 
>   1) the plughw device is causing more code to be run, possibly
>      causing timing issues
> 
>   2) a bug in the plughw code
> 
> what period size and number of periods are you using?
>         
> 
> _______________________________________________
> Alsa-devel mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/alsa-devel
> 


_______________________________________________
Alsa-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-devel

Reply via email to