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

Maarten Lankhorst maarten.lankhorst at canonical.com
Tue Mar 4 05:59:16 PST 2014


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.

~Maarten


More information about the pulseaudio-discuss mailing list