Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] Re: osd for nova ?





*********** REPLY SEPARATOR  ***********

On 09.10.02 at 10:17 Holger Waechtler wrote:

>sschmidt wrote:
>> By accident i have send to the wrong adress. :-) So there is the
>original:
>> 
>> *****
>> Maybe this:
>> http://df-gp.sourceforge.net/
>> is also a good starting point. A bit limited to MGA Cards but who knows.

>> *****
>
>I don't see a point why it should be limited to Matrox cards. Any card 
>that's well supported by DirectFB and can do either PAL resolution or 
>hardware accelerated stretchblits should work fine. Using the SDL 
>backend you can even render into an X11 window...

Simply because they have only patched the MGA driver vor syncing. :-) 
DVB is at the moment interlaced. TV-Out should be, at least in germany,
also interlaced. You have to sync source and destination if you don't like
to buffer the stream.

*********
Synchronisation
Synchronisation of video sources is the biggest issue to get a good video
quality. In the gp-vdr plugin the video source and the video output on TV
must be somehow synchronized. The normal way to do that is to take a frame
from input and display it when the output signals a frame change
(WAITFORSYNC). The problem is that both units are running freely, i.e. one
of both will still be faster than the other. The possibility that both run
exactly at the same speed is very low. When they run at slightly different
speeds it will happen that you have to skip a frame when the
synchronisation points are running over. If the clock has some jitter than
it may be that the overrun happens not only one but multiple times when
both points are near to each other.

The solution to that problem is very old. Because the input clock can't be
changed and the input and the output clock have a fix relation (1:1) the
phase must be locked. Normally this can be done by genlock devices. In our
case we have full control over TV-out and for TV-out it doesn't matter if
we run 50Hz or 50.0001Hz or 49.999Hz. That means we could varying the speed
of the output to stay in phase with the input. Therefore we would never
have an overrun effect.

Practical I was not able to fine control the output timings. The only thing
I was able to implement yet is a RESYNC ioctl. This ioctl restarts the
TV-out timers, i.e. after issuing this ioctl a new full frame sequence is
started.

Because the input is PAL and the output is PAL to, the difference is not
that much. The easiest thing would be now, to restart the TV-out every time
a new frame is ready. A new frame is ready every 40ms and to output the
frame will take 40ms. The result would be perfect, but the restart of the
TV-out chip can be seen. That means if we resync every frame, the picture
looks very bad.

The current solution is, to RESYNC every some hundred frames. This results
in a noticable flicker every some seconds. But in the meantime the picture
quality is excellent.
********
directly taken from: http://df-gp.sourceforge.net/explanation.html
Main reason is quality afaik.



-- 
Info:
To unsubscribe send a mail to listar@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index