[alsa-devel] Buffer size for ALSA USB PCM audio

Eldad Zack eldad at fogrefinery.com
Sun Sep 22 23:50:39 CEST 2013



On Thu, 29 Aug 2013, Alan Stern wrote:

> On Thu, 29 Aug 2013, James Stone wrote:
> 
> > On Wed, Aug 28, 2013 at 7:46 PM, Alan Stern <stern at rowland.harvard.edu> wrote:
> > > On Wed, 28 Aug 2013, Clemens Ladisch wrote:
> > >
> > >> Sorry, what I said applies more to explicit sync endpoints.  When using
> > >> implicit sync, a playback URB is submitted for each completed capture
> > >> URB, with the number of samples per packet identical to the
> > >> corresponding capture packet, so the parameters must be identical.
> > >
> > > Got it.  Below is an updated patch.
> > >
> > > James, the problem you encountered was most likely a result of the
> > > faulty treatment of capture endpoints that Clemens pointed out.  It was
> > > quite obvious in the usbmon traces that the unpatched driver used 8
> > > packets per URB whereas the patched driver used 22.  This updated patch
> > > should fix that problem.
> > >
> > 
> > Works fine. With this, it is possible to get clear playback at 64
> > frames/period too. With vanilla 3.10.9, there was some glitchy
> > distortion to the sound at that latency, so this seems to be an
> > improvement.
> 
> That's good.  What happens if you push frames/period even lower?
> 
> Daniel and Eldad, more testing of the most recent proposed patch would
> be welcome.

Sorry for the long response time but I've been busy lately.

I see a good improvement on my card (M-Audio C400, implicit feedback) -
using a 48 frame period (@48kHz) I get no xruns with jack running without 
clients. Without the patch, the above test generates constant xruns.
I tested the patch with mainline 3.11.0, and let jack run about 5 
minutes.

Thank you for working on this! FWIW, feel free to add:

Tested-by: Eldad Zack <eldad at fogrefinery.com>

Cheers,
Eldad


More information about the Alsa-devel mailing list