There's a 3rd issue here. Most (all?) linux video cards run with a free-running clock. If you want to avoid beat frequency issues and tearing, you really want to have the mpeg stream itself trigger the card to send out a new vertical field. Otherwise, you have the MPEG stream running a 29.97Hz field rate, and the video card running at a "close," but not phase/frequency locked rate of, say, 29.98Hz. That leaves a 0.01Hz beat frequency which can show up as screen tearing that moves slowly.The key to MythTV (or any program, really) being able to render a display without tears or choppiness is really in two things: 1. Being able to know when the vertical sync is, and, 2. Being able to react to the vertical sync event in a timely manner
I guess if you've got the VBI, you can do without this by simply using the blanking interval time as a time buffer. If the card runs too fast and the MPEG stream doesn't have another frame yet, show the old frame again. If the card runs too slowly and *another* frame is ready before the previous has been shown, drop it. As said before, the fundamental problem is that linux is not realtime (hard or even soft).
-Cory
************************************************************************* * Cory Papenfuss * * Electrical Engineering candidate Ph.D. graduate student * * Virginia Polytechnic Institute and State University * *************************************************************************
_______________________________________________ mythtv-users mailing list mythtv-users@mythtv.org http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-users