[alsa-devel] [PATCH 1/3] sound: Add a quirk to enforce period_bytes
Clemens Ladisch
clemens at ladisch.de
Mon Jun 16 09:39:17 CEST 2014
(CC stable dropped; this is not how to submit stable patches.)
Mauro Carvalho Chehab wrote:
> The Auvitek 0828 chip, used on HVR950Q actually need two
> quirks and not just one.
>
> The first one, already implemented, enforces that it won't have
> channel swaps at the transfers.
>
> However, for TV applications, like xawtv and tvtime, another quirk
> is needed, in order to enforce that, at least 2 URB transfer
> intervals will be needed to fill a buffer.
> + period = 2 * MAX_URBS * fp->maxpacksize;
> + min_period = period * 90 / 100;
> + max_period = period * 110 / 100;
I don't quite understand what you mean with "URB transfer interval".
All USB audio devices transfer packets in intervals between 125 µs and
1000 µs.
MAX_URBS is a somewhat random value that is not directly derived from
either a hardware or software constraint.
Are you trying to enforce two packets per URB?
Why are you setting both a minimum and a maximum?
Isn't this affected by the constraints of the playback device?
> Without it, buffer underruns happen when trying to syncronize the
> audio input from au0828 and the audio playback at the default audio
> output device.
This looks like a workaround for a userspace bug that would affect all
USB audio devices. What period/buffer sizes are xawtv/tvtime trying to
use?
Regards,
Clemens
More information about the Alsa-devel
mailing list