Mailing List Archive

Some questions about mythtv's technology
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.

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?

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?

b.

--
Brian J. Murrell
Re: Some questions about mythtv's technology [ In reply to ]
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.

Isaac