[pulseaudio-discuss] [REGRESSION] [PATCH] alsa: Disable timer-scheduling for PCMs with the BATCH flag

David Henningsson david.henningsson at canonical.com
Tue Mar 4 06:01:28 PST 2014

On 03/04/2014 02:59 PM, Maarten Lankhorst wrote:
> Hey,
> op 30-11-13 18:07, Lars-Peter Clausen schreef:
>> PCM Devices which have the BATCH flag set update the PCM pointer only
>> with
>> period size granularity. Using timer based scheduling does not have any
>> advantage in this mode. For one devices which have that flag set
>> usually update
>> the position pointer in software after getting the period interrupt. So
>> disabling the period interrupt is not possible for this kind of devices.
>> Furthermore writing to or reading from the buffer slice for the
>> current period
>> is not possible since the position inside the buffer is not known. On
>> the other
>> hand the tsched algorithm seems to get easily confused for this kind of
>> hardware, which results in garbled audio output. This typically means
>> that timer
>> based scheduling needs to be manually disabled on systems with such
>> devices.
>> Auto disabling tsched in this case allows these systems to run with
>> the default
>> configuration.
> This causes a regression on USB headphones with winepulse when using
> pulseaudio 5.0.
> The latency is set to 100 ms and never changed afterwards, when
> interactive applications are
> run that require lower latency the latency is never lowered, and wine's
> dsound emulation will fail
> because it expects a granularity of ~40-50 ms at most, depending on the
> application.
> I believe that tsched can stay enabled, as long as we take care always
> to buffer at least 1 period_size.

The problem is that the USB driver has the BATCH flag set but it shouldn't.

Until that is fixed, I believe this patch should be reverted.

David Henningsson, Canonical Ltd.

More information about the pulseaudio-discuss mailing list