[pulseaudio-discuss] Playback pauses

Dmitri Paduchikh dpaduchikh at gmail.com
Tue Feb 12 08:53:33 PST 2013


Tanu Kaskinen wrote:

> On Tue, 2013-02-12 at 08:54 +0100, David Henningsson wrote:

>> On 02/11/2013 11:03 AM, Dmitri Paduchikh wrote:
>> > Hello,
>> >
>> > When I play a sound using paplay (or aplay with ALSA configured to use
>> > PulseAudio) there is a big pause between two successive runs. For
>> > example:
>> >
>> > $ paplay sound1.wav; paplay sound2.wav
>> >
>> > The pause between these sounds is something about two seconds. I've
>> > tried to adjust latency (through --latency-msec=50) but this doesn't
>> > seem to change much.
>> >
>> > Couldn't you explain what is the cause of this pause? Is it possible to
>> > eliminate it?
>> >
>> 
>> This is a well-known issue which we discussed briefly at PulseConf. 
>> Fixing it is not trivial, unfortunately.
>> 
>> I did a quick test here; and for me the delay is 250 - 500 ms, which is 
>> consistent with the output of pacmd list-sinks:
>> 
>>       configured latency: 0.00 ms; range is 0.50 .. 371.52 ms
>> 
>> Is your maximum latency going up to about 2000 ms? What distro are you 
>> running?
>> 
>> There was some effort a while ago to try to increase this to 2000 ms in 
>> order to reduce power consumption, and I think we had that in Ubuntu too 
>> at some point? I don't know why this is now down to 371 ms, but given 
>> that gstreamer has a latency or similar magnitude (200 - 400 ms, IIRC) 
>> for media playback anyway, I see little reason to investigate it 
>> further. And in addition, it helps a bit against this bug. :-)

> In case you didn't know, the maximum hw buffer size for HDA is defined
> by this kernel configuration option: CONFIG_SND_HDA_PREALLOC_SIZE. The
> default is 64 (kB), which results in 271.52 ms with 2 ch, 16 bit, 44.1
> kHz. It is recommended to change this value to e.g. 2048 on systems that
> use PulseAudio. Since Debian still doesn't enable PulseAudio by default,
> Debian's kernel uses the default value. Perhaps that has propagated to
> Ubuntu by accident at some point?

Here, on Arch Linux, the value of CONFIG_SND_HDA_PREALLOC_SIZE is set to
 4096. Am I understanding correctly that maximal latency depends not
 only on this buffer size but also on the sound format used? I was
 experimenting with sound of 8-bit unsigned encoding, 1 ch, rate 11025
 Hz. Then the buffer size only explains latency of 371.52 ms. But delay
 is much higher:

 $ pacmd list-sinks; time paplay ~/sounds/ringin.wav
Welcome to PulseAudio! Use "help" for usage information.
>>> 1 sink(s) available.
  * index: 0
	name: <alsa_output.pci-0000_00_1b.0.analog-stereo>
	driver: <module-alsa-card.c>
	flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY FLAT_VOLUME DYNAMIC_LATENCY
	state: RUNNING
	suspend cause: 
	priority: 9959
	volume: 0:  98% 1:  98%
	        0: -0,40 dB 1: -0,40 dB
	        balance 0,00
	base volume: 100%
	             0,00 dB
	volume steps: 65537
	muted: no
	current latency: 121,40 ms
	max request: 23 KiB
	max rewind: 344 KiB
	monitor source: 0
	sample spec: s16le 2ch 48000Гц
	channel map: front-left,front-right
	             Стерео
	used by: 1
	linked by: 1
	configured latency: 125,00 ms; range is 0,50 .. 1837,50 ms
	card: 0 <alsa_card.pci-0000_00_1b.0>
	module: 4
	properties:
		alsa.resolution_bits = "16"
		device.api = "alsa"
		device.class = "sound"
		alsa.class = "generic"
		alsa.subclass = "generic-mix"
		alsa.name = "ALC892 Analog"
		alsa.id = "ALC892 Analog"
		alsa.subdevice = "0"
		alsa.subdevice_name = "subdevice #0"
		alsa.device = "0"
		alsa.card = "0"
		alsa.card_name = "HDA Intel PCH"
		alsa.long_card_name = "HDA Intel PCH at 0xf7e10000 irq 43"
		alsa.driver_name = "snd_hda_intel"
		device.bus_path = "pci-0000:00:1b.0"
		sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card0"
		device.bus = "pci"
		device.vendor.id = "8086"
		device.vendor.name = "Intel Corporation"
		device.product.id = "1e20"
		device.form_factor = "internal"
		device.string = "front:0"
		device.buffering.buffer_size = "352800"
		device.buffering.fragment_size = "176400"
		device.access_mode = "mmap+timer"
		device.profile.name = "analog-stereo"
		device.profile.description = "Аналоговое стерео"
		device.description = "Встроенное аудио Аналоговое стерео"
		alsa.mixer_name = "Intel PantherPoint HDMI"
		alsa.components = "HDA:10ec0892,18498892,00100302 HDA:80862806,80860101,00100000"
		module-udev-detect.discovered = "1"
		device.icon_name = "audio-card-pci"
	ports:
		analog-output: Аналоговый вывод (priority 9900, latency offset 0 usec, available: unknown)
			properties:
				
		analog-output-headphones: Аналоговые наушники (priority 9000, latency offset 0 usec, available: no)
			properties:
				device.icon_name = "audio-headphones"
	active port: <analog-output>
>>> 
real	0m2.339s
user	0m0.007s
sys	0m0.000s
$ soxi ~/sounds/ringin.wav

Input File     : '/home/dmai/sounds/ringin.wav'
Channels       : 1
Sample Rate    : 
Precision      : 8-bit
Duration       : 00:00:00.91 = 9981 samples ~ 67.898 CDDA sectors
File Size      : 10.0k
Bit Rate       : 88.6k
Sample Encoding: 8-bit Unsigned Integer PCM

$ 

-- 
With best regards
Dmitri Paduchikh


More information about the pulseaudio-discuss mailing list