[mythtv] Some questions about mythtv's technology

Isaac Richards mythtv-dev@snowman.net
Fri, 19 Jul 2002 18:26:41 -0400

On Friday 19 July 2002 05:28 pm, mythtv@interlinx.bc.ca wrote:
> Hello,
> I took a look at some of your project's notes and screenshots as well
> as some list messages.  I have a few questions.  I am developing a
> "set-top" linux PVR as well so I am quite familiar with all of the
> issues.
> First of all, I have gathered that you are using X11 and the Xvideo
> extension for your output.  How do you control flipping the images of
> a video stream from one frame to the next such that they only get
> flipped on the vertical retrace (vsync pulse).  As I understood it,
> this was not possible in X11/Xv.  If you can't do this, then you must
> get horrible tearing of your displayed video streams.

Actually, I only see very minor tearing when using a monitor as a display 
device, and that very rarely.  On a TV as an output device, none at all.  
XvPutImage with a call to XSync immediately after seems to automatically sync 
up with the retrace.  The video output code does make its best attempt to 
display frames at exactly the right times, which also helps.  

> I have also gathered that you are using the Nuppel video format.  I
> have not really looked much into this format myself, but does it store
> field information (i.e. interlaced streams) or is it progressive like
> MPEG1 and store frames?  If it's progressive like MPEG1, how do you
> deal with the temporal issues of two fields, each being a different
> snapshot in time being combined together into a single frame?  Do you
> get interlace artifacts or does Nuppel have some
> "smoothing/blending/interpolating" algorithm to combine the two fields
> into a single frame?

The format's basically similar to MJPEG, and so, a whole lot like MPEG1 with 
mostly key frames.  At least, as I understand things.  So yeah, it stores 
full frames.

I've got code in there to deinterlace the image (grabbed the linear blend 
filter from mplayer), but that's only needed when displayed on a monitor -- 
the tv out (at least with nvidia's drivers) does the right thing and 
separates the frame into its fields for display.

> Do you not feel that an interlaced storage format that saves the
> temporal information from two fields is better suited when your output
> target is an interlaced device like a television?

Probably, but this works pretty well.