[mythtv-users] Audio drops every few seconds with "WriteAudio: buffer underrun" (PulseAudio problem?)

Jeffrey J. Kosowsky mythtv-users at kosowsky.org
Thu Dec 4 16:01:46 UTC 2008

No matter how I seem to configure video or audio playback, whenever I
watch mpeg2 HD video streams, my audio seems to temporarily drop every
2-5 seconds for about half a second. The console gives the error message:
		WriteAudio: buffer underrun

Watching mpeg2 HD streams is unbearable though the problem seems a
little worse with LiveTV than with playback, though with playback I
also sometimes get:
	 	NVP: prebuffering pause errors

When I watch "old-fashioned" analog TV, I very rarely get such errors
and I never seem to get them when watching mpeg4 transcoded streams
(even at 2200 bps encoding).

I originally thought this was a video problem due to my CPU/graphics
card being too slow, but I upgraded my graphics card and tried it
with/without XvMC and the problem persists even when the CPU is not
fully utilized.  Also, live TV and playback work perfectly fine with
mplayer (though without XvMC I get some frame dropping).

So, I'm thinking it may be more of a mythtv audio problem -- perhaps related
to Pulseaudio?

Anyway, the console shows the following audio info and "errors":
	TV: Attempting to change from None to WatchingPreRecorded
	DPMS Deactivated 
	AFD: Opened codec 0xa2dd550, id(MPEG2VIDEO) type(Video)
	AFD: codec AC3 has 2 channels
	AFD: Opened codec 0x9fcb2d0, id(AC3) type(Audio)
	AFD: codec AC3 has 2 channels
	AFD: Opened codec 0x9f0b760, id(AC3) type(Audio)
	AFD: Opened codec 0x9295760, id(MPEG2VIDEO) type(Video)
	AFD: codec AC3 has 2 channels
	AFD: Opened codec 0xa328ef0, id(AC3) type(Audio)
	AFD: codec AC3 has 2 channels
	AFD: Opened codec 0x90b7f10, id(AC3) type(Audio)
	Opening audio device 'default'. ch 2(2) sr 48000
	Opening ALSA audio device 'default'.
	ALSA, Warning: mmap not available, attempting to fall back to slow writes.

In the 'General' mythfrontend setup section, I tried setting:
   Audio output device: ALSA:default (or ALSA:pulse)
   Passthrough output device: Default (or ALSA:iec958:{AES0 0x02} )
which all give the same above behavior (note: I am running Fedora 8
which uses PulseAudio).
I also set Max Audio Channels=Stereo and Upmix=Passive.

- Adding "Aggressive Sound card Buffering" didn't make any difference.

- Changing the Audio output device to /dev/dsp (OSS) made the sound
  worse (it became completely choppy). Changing to ALSA:analog or
  ALSA:digital lost sound completely

- Interestingly, if I look at the playback tabe under pavucontrol
 (PulseAudio Volume Control), the mythtv stream seems to momentarily
 flicker off in synch with the lost audio -- almost as if the stream
 was being dropped and restarted.

- Other applications (e.g., mplayer, xine, totem) all seem to work
  fine with PulseAudio

- I have tried using both the 'Normal' playback profile which uses
  ffmpeg & XVideo and my own 'XvMC' playback profile using 'Standard
  XvMC' with xvmc-blit

Again, I originally, thought this was just a slow CPU/slow video card
problem but I upgraded from an old nVidia GeForce 4 4600 128MB card to
a new GeForce 6200 with 256MB card and the sound problems didn't
improve though my X cpu usage went down (especially with XvMC).

 As you can see below, while the CPU usage is high, it is not 100%
(nothing else is running) so, I don't think this is just due to slow
CPU (Pentium 4 2.8GHz, single core, no hyperthreading).

                         XvMC                        XV Video
                  ______________________      _______________________________
                  LiveTV      HD Playback     LiveTV          HD Playback
Mythfrontend      40-45%      50-65%          40-45%              40-45%
Mythbackend       14-17%      0%			  12-15%              0%
X                 6-8%        11-15%		  18-22%			  23-26%
PulseAudio        6-9%        9-13%			  5-8%				  8-10%

Note that the actual CPU usage improved from my old G4 4600 card where
X was taking up about 30% and leaving no free CPU -- however the
overall quality (especially the jerky sound) is really unchanged.

The  motherboard is an ASUSP4PE with embedded AD1980 6-channel audio

My HD tuner is a PCHDTV5500 board. I don't have any problem recording
HD streams so I believe the audio (and video) IN is fine.

I really can't disable PulseAudio completely since I need it for other apps.

More information about the mythtv-users mailing list