[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