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

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.

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

Reply via email to