[mythtv] Ticket #2903 is necessary to achieve perfect playback with an interleaved display mode.

Thomas Hilber mythtv-dev at toh.cx
Sun Mar 29 13:28:47 UTC 2009


On Sun, Mar 29, 2009 at 02:05:17PM +0100, Paul Gardiner wrote:
> For Mythtv there's a another solution which is to use a "fieldorder"
> deinterlacer, see http://svn.mythtv.org/trac/ticket/6391. It's very
> light weight in terms of impact on the code, although, it does involve
> doubling the frame rate, so may require a little more grunt from the
> system.

yeah I just read about it. It's based on the fact that

12 32 34 54 56 76 78

produces spatially and temporally correct field order no matter if we
output top or bottom field first. The idea is quite good. Though not
sufficient to solve the problem completely.

The point is that with your solution DVB stream and VGA video output is
NOT synchronized. This way there will repeatedly come the situation when
a weaved frame is dropped. That means for example we get this sequence:

12 32 34 56 76 78

'54' is completely dropped which leads to visible jerkyness. This effect
is worsened by the fact that there is not hysteresis in effect. At the
time there occurs a frame drop often many frames are dropped until phase
relation between DVB stream and VGA output is unambiguous again.

That's why I finally decided to synchronize VGA output timing with DVB 
stream. This gives me a smooth playback with no frame/field drops at
all.

Maybe you will have a look at [1]. The bar indicates at what time within
allowed 40ms interval we update graphics card double buffer. Of course
I try to place this update in the middle of this interval. This provides
maximum immunity against unforeseen timing irregularities. Caused by
sudden CPU load or driver problems.

Cheers
   Thomas

[1] http://vga2scart.gw90.de/explanation_of_output_in_x_server_log/



More information about the mythtv-dev mailing list