[mythtv] Problems with Bob Playback
lists at ebourne.me.uk
Mon Jan 16 00:24:07 UTC 2006
On Sun, 15 Jan 2006 14:01:38 -0500, Daniel Kristjansson wrote:
> The result of using bob-deinterlacing with an interlaced display is
> undefined. If you search the archives you will find that this has been
> discussed before. If you are using an interlaced display and need
> deinterlacing for some reason, then you should use some other
True indeed, but while I can see many people do seem to use deinterlacing
with an interlaced TV I'm glad to say I'm not that daft. :)
What I have had until now is a normal TV for which I didn't use any
deinterlacing, and therefore worked fine making sure there was no scaling.
I've just switched to a new LCD which does need deinterlacing. I wouldn't
have posted to the list if I hadn't seen the current thread which sounded
I've fixed my problems now though. I enabled the 'Field' debugging for Bob
in videoout_xv.cpp to see what was going on and found that some of the
values were wrong (especially the source ones). I tracked it down to some
overscan settings still set from the TV which I'd forgotten about. I
reset those and now I've got excellent Bob playback and am very happy.
There do seem to be some bugs here though:
1. With the overscan settings bob was getting the calculations wrong. Up
close at the tv with horizontal lines in the picture it was clear the top
& bottom frames were being displayed several lines apart, rather than just
2. The timestretch is being disabled based on playback speed. This is
wrong, it should be done based on source and video vertical frame rates.
Unfortunately it is not always possible to get 50Hz display rate on
modern screens. Most LCDs only do 60Hz (or maybe 75Hz) through the VGA or
DVI ports. Fine for NTSC, but in PAL land we have to live with displaying
50Hz material on a 60Hz screen. In this case timestretch at 1.2x should be
the correct display rate and should therefore use bob. Even if I was
displaying on 50Hz I've also got some NTSC DVDs so it still matters.
3. Even if timestretch is in use, bob should only be disabled for
playback rate > display rate. When that is the case bob clearly doesn't
work and gives really jerky movement. If playback rate < display rate (ie.
normally when timestretch < 1) the bob does work very effectively still.
It always seems to produce better results than onefield. eg. 50Hz playback
on 60Hz is entirely watchable - 95% smooth.
I'll most likely code up 2 & 3 and submit a patch when I get chance.
More information about the mythtv-dev