currently we use the endpoint's maximum packet size for recording,
authorjakemsr <jakemsr@openbsd.org>
Wed, 21 Jul 2010 03:06:35 +0000 (03:06 +0000)
committerjakemsr <jakemsr@openbsd.org>
Wed, 21 Jul 2010 03:06:35 +0000 (03:06 +0000)
commitb4b78d3c72355b9755371396339b174295f321bd
tree6a31c7faa174de35efd3aac1a3a90a14f6c9017e
parent3f6a8c87846c3fa1f6c5cc711dd4694d60f7691f
currently we use the endpoint's maximum packet size for recording,
and for playback, we use a packet size that is at least one audio
frame smaller.

in most usb audio devices, the sample clock is synced to the usb
clock.  this means that for sample rates that aren't multiples of
1000, we'll occasionally need to add a frame to adjust the overall
rate.  that's why we use the smaller packet size.

also, the usb audio spec defines a way for devices to request
to always use the maximum packet size.

so,
* add a max_bytes_per_frame, which is the largest packet size
the channel will use.  use that instead of calculating what
the maximum we will use is in a couple places.  generally makes
things easier to understand.
* respect a device's request to always use maximum packet size.
sys/dev/usb/uaudio.c