Crackling with snd-hda-intel / VIA VT2020 in VLC, Google Voice
Submitted by Edward Liaw
Assigned to pul..@..op.org
Description
Further described here: https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/751265
My hardware: $ aplay -l **** List of PLAYBACK Hardware Devices **** card 0: SB [HDA ATI SB], device 0: VT2020 Analog [VT2020 Analog] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: SB [HDA ATI SB], device 1: VT2020 Digital [VT2020 Digital] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: SB [HDA ATI SB], device 2: VT2020 HP [VT2020 HP] Subdevices: 1/1 Subdevice #0: subdevice #0 card 2: Generic [HD-Audio Generic], device 3: HDMI 0 [HDMI 0] Subdevices: 1/1 Subdevice #0: subdevice #0
$ lspci -v | grep -A7 -i "audio"
00:14.2 Audio device: Advanced Micro Devices [AMD] nee ATI SBx00 Azalia (Intel HDA) (rev 40)
Subsystem: ASUSTeK Computer Inc. M4A89GTD PRO/USB3 Motherboard
Flags: bus master, slow devsel, latency 64, IRQ 16
Memory at fe4f8000 (64-bit, non-prefetchable) [size=16K]
Capabilities: <access denied>
Kernel driver in use: snd_hda_intel
00:14.3 ISA bridge: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 LPC host controller (rev 40)
06:00.1 Audio device: Advanced Micro Devices [AMD] nee ATI Cayman/Antilles HDMI Audio [Radeon HD 6900 Series]
Subsystem: XFX Pine Group Inc. Device aa80
Flags: bus master, fast devsel, latency 0, IRQ 86
Memory at fe9bc000 (64-bit, non-prefetchable) [size=16K]
Capabilities: <access denied>
Kernel driver in use: snd_hda_intel
#23 in the linked bug report fixed the crackling for me, but it was recommended that a bug report be filed. In /etc/pulse/default.pa : I added tsched=0 to the end of load-module module-udev-detect
#61 gives a more technical description that may be of use: It's all very confusing with many people experiencing similar symptoms. But the original logs look like a simple case of PulseAudio selecting a far too short latency:
I: protocol-native.c: Final latency 201.00 ms = 0.50 ms + 2*100.00 ms + 0.50 ms D: alsa-sink.c: Cutting sleep time for the initial iterations by half. D: alsa-sink.c: Latency set to 0.50ms
And indeed, VLC version 1.1.8 requested tlength=200ms and minreq=100ms. A similar problem affects more recent VLC versions with tlength=40ms and minreq=-1 (overriden by PA to 20ms). It seems that when tlength is exactly twice minreq, PulseAudio settles on an insanely small latency. That causes frequent underrun in hardware buffers, accounting for the distorsion.