[alsa-devel] USB Audio questions

Pierre-Louis Bossart pierre-louis.bossart at linux.intel.com
Tue Aug 16 19:19:42 CEST 2011

> > What is this USB frame counter and what would to enable its use, at
> > least for playback where there is scope for lots of power
> > optimizations.
> USB timing is defined by frames, of which there are about 1000 per
> second.  The audio driver schedules one packet to be sent/received for
> each frame.  Multiple packets are grouped in a URB (USB request
> buffer);
> the controller raises an interrupt when the last packet of the URB has
> been completed.
> By reading the current frame number, the driver could deduce how many
> packets (and therefore, how many samples) have been processed by the
> controller.

Thanks Clemens, this is valuable information.
If this frame number was used to update the delay field with more accuracy,
I'd be able to use a larger number of packets while allowing for precise a/v
sync. Removing the memcpys, etc, are probably a second-degree optimization.
I agree it'd make the code more complex. 
Any idea on how this frame number can be read, I can try to prototype this
if this is supported by the USB core?

More information about the Alsa-devel mailing list