Mailing List archive

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

[vdr] Re: More thoughts on Matrox TV out with interlaced programmes



I was just quickly replying to Tony's post, but this kind of grew. Guess some 
people may be interested... 

With live TV VDR isn't recording at all I believe (I wish it did, but thats 
another post...). Presuming the graphics card clock is not exact PAL/NTSC 
frequency you'll either skip or have to repeat fields. Running slightly slow 
and skipping the odd frame is probably the easiest option. If running fast 
you wouldn't want to repeat a complete frame (i.e. 2 fields). The odd field 
is before the even field in time, so any motion will appear to flicker 
backwards. That said if it doesn't happen often that might not look so bad. 
Thoughts? Might be easiest to change the hardware clock on the card to a PAL 
frequency one!

BTW I had VDR working on a Matrox G450 using the normal VGA output (i.e. not 
via the Maven) to the TV's RGB input. It was not perfect, but I got close! 
Here is what you need to do:
i)You have to patch X to run at a low enough dot clock for PAL. Freezes while 
finding the G450 clock. Works without on G400.
ii)The G450 can output a composite sync signal - just turn on "Sync on Green" 
in the X options. This is meant to combine sync then output it on the Green 
line. However it just combines sync on the HSYNC since the G400/G450 don't do 
the "on green" bit AFAIK! Anyway with that it can pretty much just be 
connected directly to an RGB scart. I also built some hardware to protect the 
TV from accidental high sync frequencies from the PC. e.g. on a reboot.
iii)I used the xine plugin to do the output, since I didn't know about 
softdevice at the time. I modified the output to use the DRM module for 
VSYNC. Then I modified the DRM module to work in interlace mode and just 
interrupt at the end (or thereabouts) of the even frame. 
iv)The G400/G450 have no overlay in interlaced mode. So you have to use 
Textured Video in X. This blits the frame around the graphics card doing the 
YUV->RGB conversion for you. Of course synchronisation is a pain. Also the X 
driver does the chroma upsampling wrong for interlaced video. Might be better 
to use CRTC2 instead, but that has no interrupt for telling you which field 
its on AFAIK! 
v) I could not get the dot clock slow enough to do <720x576i. So for 480x576i 
scaling was needed. Then texture engine scaling is horrible, so I did cubic 
interpolation (nice, but slow...) on the YUV data. Course you need to scale 
the overlay and video separately. Xine filters to do this were above my head, 
so I hacked it into the output device!

Anyway I gave up in the end and bought a Technotrend DVB-S card instead. Far 
easier, much lower CPU and seems to work fairly well. Though it does go 
blocky more often than it should... 

Thanks,

Mark




Home | Main Index | Thread Index