Re: Buffer size for ALSA USB PCM audio

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



At Wed, 24 Jul 2013 10:41:43 -0400 (EDT),
Alan Stern wrote:
> 
> I have been studying the data_ep_set_params() function in
> sound/usb/endpoint.c.  This is the routine that calculates the number
> of samples and I/O requests to keep on the USB hardware queue for PCM
> audio, based on the ALSA parameters.
> 
> It uses the PERIOD_BYTES parameter but not BUFFER_BYTES.  In simplified
> terms (ignoring rounding, boundary cases, and other things), the number
> of periods per buffer is fixed at 24 for recording and 1 for playback,
> completely ignoring the user's setting.  If you look at the parameters
> copied in snd_usb_hw_params() in sound/usb/pcm.c, you'll see what I
> mean.
> 
> Is this really the intended behavior?  It doesn't seem right at all.

The buffer size doesn't matter for urb setup because the usb-audio
driver transfers the data by the driver itself at urb completes.
The buffer size is considered in these callbacks,
i.e. prepare_playback_urb() and retire_capture_urb().

OTOH, the period size is evaluated for determining the urb buffer
size, so that the data transfer (thus the wakeup via complete) is
aligned to the period size.


Takashi
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux