Three things are needed for proper interlaced playback:
1) You need perfect line matching between the video framebuffer and
the tv-raster-lines. This can (at least on my nvidia card) be solved
with a proper modeline and overscan-settings. No form of rescaling must
be allowed as this will blend the fields together.
2) You need to synch at the field frequency.
With xv or the OpenGL synch function, this is no problem.
I'm not sure if OpenGL or XV will blur odd/even lines together. This
might be a problem.
3) You need to update half the lines (one field) at one refresh, and the
other half at the next (but not removing the previous field)
rinse, repeat.
Some people seem to think you need to know when the TV-out is doing a
odd-line or even-line refresh, which is not easy at all. But this is
incorrect, all you need to do is make sure odd-field lines are only in odd
lines in the framebuffer and the same for the even fields and update the
fields in order. (This is known as "bob and weave")
I'm quite interested in this, because I use homebuilt hardware to
directly connect VGA to s-vid on my TV. I drive the VGA at NTSC
frequencies directly and have always had great quality. Trouble is that
the VSYNC seems to be ignored (as you say). The result is a tearing that
can only be band-aided by enabling something like kerneldeint.
I was unaware that plain ol' XV had the ability to sync, but now I
see (with xvinfo on my main machine, not my mythtv machine):
"XV_SYNC_TO_VBLANK" (range 0 to 1)
client settable attribute
client gettable attribute (current value is 1)
Interesting...
-Cory
--
*************************************************************************
* Cory Papenfuss *
* Electrical Engineering candidate Ph.D. graduate student *
* Virginia Polytechnic Institute and State University *
*************************************************************************
_______________________________________________
mythtv-dev mailing list
[email protected]
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev