On Tue, Apr 23, 2013 at 05:09:35PM +0200, Clemens Ladisch wrote: > Alan Stern wrote: > > On Tue, 23 Apr 2013, Clemens Ladisch wrote: > >> Why is having a queue of two URB with one packet each suddenly not > >> allowed? > > > > It _is_ allowed when URB_ISO_ASAP is clear. I have never fully > > understood why the audio driver sets that flag. By setting it, you are > > telling the host controller driver that you are willing to give up > > reduced latency in order to avoid underruns. > > This flag was needed to avoid having to set urb->start_frame. > > With the changed queueing API, the audio driver needs to change too. > I'll look into this ... For what it's worth, the following -stable patch "ALSA: USB: adjust for changed 3.8 USB API" c75c5ab575af7db707689cdbb5a5c458e9a034bb fixes the discontinuous playback on period sizes between 139 and 192, but the discontinuous playback on period sizes between 48 and 138 has been replaced by rather worse kernel blocking and kernel errors: jrayhawk@richardiv:~$ sudo tail -F -n 0 /var/log/kern.log & [1] 4490 jrayhawk@richardiv:~$ time perl -e 'print pack "H*", "00FF" x 2048' | aplay --period-size=192 -r 48000 -f S16_LE -c2 -D hw:0,0 Playing raw data 'stdin' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo real 0m0.053s user 0m0.008s sys 0m0.000s jrayhawk@richardiv:~$ time perl -e 'print pack "H*", "00FF" x 2048' | aplay --period-size=48 -r 48000 -f S16_LE -c2 -D hw:0,0 Playing raw data 'stdin' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo May 8 17:01:56 richardiv kernel: [ 1680.923474] cannot submit urb (err = -18) May 8 17:01:56 richardiv kernel: [ 1680.924472] cannot submit urb (err = -18) real 0m10.023s user 0m0.008s sys 0m0.004s
Attachment:
signature.asc
Description: Digital signature