[mythtv-users] Mythtv 0.24 Acer Revo ALSA WriteAudio buffer underruns

Johnny Stenback mythtv-users at jstenback.com
Mon Feb 14 02:22:35 UTC 2011


On 02/10/2011 03:44 PM, Jean-Yves Avenard wrote:
[...]
> I'm intimately convinced that the issue is the communication between
> the backend and the frontend.
>
> For all people who mentioned the buffer underruns errors to me; when
> using mythavtest on the same file they would get problem on (so the
> file is played locally and not streamed from the backend) there are no
> issues whatsoever.
> Everything plays fine.
>
> Start streaming, either a recording or using the new storage group:
> and problems start.
>
> Try this:
> if using storage group; mount the recording directory or mythvideos
> folder via NFS or cifs ; and play the file using mythavtest
> mythavtest -v audio,playback /path/to/file
>
> See if you get any buffer underruns or videos pause during the entire
> duration of playback

I've been playing around with this for some time now (since you 
recommended it here), and I don't think I can say that things work any 
better in mythavtest playing off of a cifs mounted share than when 
playing with mythfrontend through storage groups. IOW, still see 
occasional pauses. What I did was to run mythavtest -v audio,playback on 
the frontend, and when I notice the pauses I see stuff like this in the 
output:

2011-02-13 18:04:23.200 Player(0): 1600 interlaced frames seen.
'video_output' mean = '33343.91', std. dev. = '4309.38', fps = '29.99'
'video_output' mean = '33358.56', std. dev. = '608.63', fps = '29.98'
'video_output' mean = '33357.87', std. dev. = '425.53', fps = '29.98'
'video_output' mean = '33357.87', std. dev. = '469.70', fps = '29.98'
2011-02-13 18:04:36.546 Player(0): 2000 interlaced frames seen.
'video_output' mean = '33363.51', std. dev. = '518.59', fps = '29.97'
'video_output' mean = '33352.72', std. dev. = '736.49', fps = '29.98'
'video_output' mean = '33380.18', std. dev. = '552.62', fps = '29.96'
2011-02-13 18:04:46.458 Player(0): Waiting for video buffers...
2011-02-13 18:04:46.462 AO: Pause 1
2011-02-13 18:04:46.469 AO: OutputAudioLoop: audio paused
2011-02-13 18:04:46.573 Player(0): Waited 100ms for video buffers 
AAAAAAAAAAAADdDLL
2011-02-13 18:04:46.709 Player(0): Waited 100ms for video buffers 
AAAAAAAAAAAADdDLL
2011-02-13 18:04:46.823 Player(0): Waited 100ms for video buffers 
AAAAAAAAAAAADdDLL
2011-02-13 18:04:46.846 Player(0): Waited 100ms for video buffers 
AAAAAAAAAAAADdDLL
2011-02-13 18:04:46.940 AO: Pause 0
2011-02-13 18:04:46.943 AO: OutputAudioLoop: Play Event
2011-02-13 18:04:46.973 ALSA, Error: WriteAudio: buffer underrun
'video_output' mean = '37709.28', std. dev. = '48871.93', fps = '26.52'
2011-02-13 18:04:47.126 Player(0): Waiting for video buffers...
2011-02-13 18:04:47.126 AO: Pause 1
2011-02-13 18:04:47.144 AO: OutputAudioLoop: audio paused
2011-02-13 18:04:47.162 AO: Pause 0
2011-02-13 18:04:47.230 AO: OutputAudioLoop: Play Event
2011-02-13 18:04:50.416 Player(0): 2400 interlaced frames seen.
'video_output' mean = '34233.21', std. dev. = '4730.83', fps = '29.21'
'video_output' mean = '33363.96', std. dev. = '337.42', fps = '29.97'
'video_output' mean = '33365.04', std. dev. = '456.08', fps = '29.97'
'video_output' mean = '33389.13', std. dev. = '469.25', fps = '29.95'

At the same time this happened I was running "vmstat 1" on the frontend 
as well, and here's what it shows during this pause:

procs -system-- ----cpu----
  r  b   in   cs us sy id wa
  3  0 7429 1454 13 15 72  0
  0  0 7714 1383 10 13 77  0
  3  0 7681 1363 10 14 76  0
  1  0 7760 1378 14 24 62  0
  1  0 7901 1151  9 13 78  0
  0  0 7508 1079  9 13 78  0
  0  0 7744 1118 10 13 77  0
  0  0 7734 1099  9 15 76  0
  2  0 7478 1118 11 15 74  0
  1  0 7675 2349 31 35 34  0   <---
  1  0 7622 1687 33 26 41  0
  0  0 7831 1361  1  3 96  0
  2  0 7809 1196  1  3 97  0
  0  0 7030 1170  2  5 93  0
  1  0 7265  967  5  5 90  0
  0  0 7349 1077  6 10 84  0
  0  0 6287  999  8 12 81  0
  0  0 7192  993  9 14 77  0
  2  0 7684 1068 10 12 78  0
  0  0 7706 1307 11 15 73  0
  0  0 7690 1217 10 16 74  0

(memory and IO info cut out, as there's nothing of interest in those fields)

What seems consistent with the pauses is that the idle value reported by 
vmstat drops from ~70% to 50 or less. When watching the CPU usage of 
various processes (using top) while these pauses are happening there's 
no noticeable change to anything other than mythavtest, which spikes to 
100% for a short period of time.

I've also been running vmstat 1 on the backend, but I haven't seen any 
consistent changes on the backend while the pauses happen.

If anyone's got other ideas on what to try here, I'll gladly try to 
collect more data here...

>
> JY
> _______________________________________________
> mythtv-users mailing list
> mythtv-users at mythtv.org
> http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-users
>


More information about the mythtv-users mailing list