[mythtv-users] fps drops with DRM sync and bob

Hamish Moffatt hamish at cloud.net.au
Sun Jun 3 13:54:46 UTC 2007


I have a working frontend with an NVidia card using bob deinterlacing.
According to mythfrontend -v playback, it's using usleep sync.
This is working well and I'm happy with it.

2007-06-03 20:33:21.959 Realtime priority would require SUID as root.
2007-06-03 20:33:21.969 Using deinterlace method bobdeint
2007-06-03 20:33:22.072 nVidiaVideoSync: VBlank ioctl did not work, unimplemented in this driver?
2007-06-03 20:33:22.072 DRMVideoSync: Could not open device /dev/dri/card0, No such file or directory
2007-06-03 20:33:22.072 RTCVideoSync: Could not set RTC frequency, Permission denied.
2007-06-03 20:33:22.072 Set video sync frame interval to 40000
2007-06-03 20:33:22.074 Using video as timebase
2007-06-03 20:33:22.074 Video timing method: USleep with busy wait
2007-06-03 20:33:22.074 Refresh rate: 19992, frame interval: 40000
'video_output' mean = '39991.49', std. dev. = '564.11', fps = '25.01'

Now I'm setting up a new frontend with Intel graphics. I'm using the
same modeline, which works out to slightly more than 50Hz (hence the
25.01 fps above).

The new machine is using DRM sync apparently, and with bob enabled it's
not doing well; it claims 24.96 fps for a while, but then that drops off
and it starts dropping frames. The audio quality decreases noticeably.

2007-06-03 23:38:16.675 Using deinterlace method bobdeint
2007-06-03 23:38:16.677 nVidiaVideoSync: Could not open device /dev/nvidia0, No such file or directory
2007-06-03 23:38:16.680 Set video sync frame interval to 40000
2007-06-03 23:38:16.682 Connected to database 'mythconverg' at host: tv
2007-06-03 23:38:16.684 Realtime priority would require SUID as root.
2007-06-03 23:38:16.702 Using video as timebase
2007-06-03 23:38:16.702 Video timing method: DRM
2007-06-03 23:38:16.702 Refresh rate: 19992, frame interval: 40000
2007-06-03 23:38:16.725 NVP: Waiting for prebuffer.. 0 UuUULAAAAAAAAAAAAAAAAAAAAAAAAAA
'video_output' mean = '40067.90', std. dev. = '36.81', fps = '24.96'
'video_output' mean = '40070.28', std. dev. = '25.11', fps = '24.96'
'video_output' mean = '40070.88', std. dev. = '32.60', fps = '24.96'
2007-06-03 23:38:32.670 NVP: 400 interlaced frames seen.
'video_output' mean = '40071.30', std. dev. = '29.38', fps = '24.96'
'video_output' mean = '40070.77', std. dev. = '38.20', fps = '24.96'
'video_output' mean = '40070.71', std. dev. = '31.75', fps = '24.96'
'video_output' mean = '40071.23', std. dev. = '574.40', fps = '24.96'
2007-06-03 23:38:48.698 NVP: 800 interlaced frames seen.
'video_output' mean = '40070.97', std. dev. = '35.61', fps = '24.96'
'video_output' mean = '40070.87', std. dev. = '41.36', fps = '24.96'
'video_output' mean = '40070.78', std. dev. = '32.52', fps = '24.96'
'video_output' mean = '40859.13', std. dev. = '3338.62', fps = '24.47'
2007-06-03 23:39:01.720 NVP: Video is 3.06932 frames behind audio (too slow), dropping frame to catch up.
2007-06-03 23:39:01.721 NVP: Video is 3.02697 frames behind audio (too slow), dropping frame to catch up.
2007-06-03 23:39:02.155 NVP: Video is 3.03393 frames behind audio (too slow), dropping frame to catch up.
[..]
'video_output' mean = '42333.96', std. dev. = '18130.41', fps = '23.62'
'video_output' mean = '41686.57', std. dev. = '18624.15', fps = '23.99'

Now if I switch to kerneldeint this doesn't happen, though it doesn't
look as good.

2007-06-03 23:40:32.639 Using deinterlace method kerneldeint
2007-06-03 23:40:32.640 nVidiaVideoSync: Could not open device /dev/nvidia0, No such file or directory
2007-06-03 23:40:32.670 Using video as timebase
2007-06-03 23:40:32.670 Video timing method: DRM
2007-06-03 23:40:32.671 Refresh rate: 19992, frame interval: 40000
'video_output' mean = '40065.76', std. dev. = '63.76', fps = '24.96'
'video_output' mean = '40070.82', std. dev. = '26.84', fps = '24.96'
'video_output' mean = '40070.86', std. dev. = '26.33', fps = '24.96'
2007-06-03 23:40:48.576 NVP: 400 interlaced frames seen.
'video_output' mean = '40071.03', std. dev. = '57.98', fps = '24.96'
'video_output' mean = '40070.99', std. dev. = '80.81', fps = '24.96'
'video_output' mean = '40070.84', std. dev. = '57.33', fps = '24.96'
'video_output' mean = '40071.09', std. dev. = '53.32', fps = '24.96'
[...]
2007-06-03 23:42:24.749 NVP: 2800 interlaced frames seen.
'video_output' mean = '40071.12', std. dev. = '101.26', fps = '24.96'
'video_output' mean = '40070.64', std. dev. = '79.50', fps = '24.96'
'video_output' mean = '40072.99', std. dev. = '61.29', fps = '24.95'
'video_output' mean = '40068.70', std. dev. = '60.84', fps = '24.96'
2007-06-03 23:42:40.778 NVP: 3200 interlaced frames seen.

Questions;

Why does the fps vary when I use bob?

Perhaps more importantly, how can I disable DRM sync?

I've tried OpenGL sync enabled/disabled and it doesn't make any
difference; it still reports using DRM sync. (I'm using the latest 
Intel driver from git.freedesktop.org.)

With a refresh rate of 50.02Hz why do I get 24.96 fps? Hmm.

thanks,
Hamish
-- 
Hamish Moffatt VK3SB <hamish at debian.org> <hamish at cloud.net.au>


More information about the mythtv-users mailing list