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