[MPlayer-dev-eng] [PATCH] mga_vid support for interlaced video modes

D Richard Felker III dalias at aerifal.cx
Sun Jan 12 04:32:09 CET 2003


Here's a somewhat preliminary patch to add support for interlaced
video modes to the mga_vid driver. This is especially useful since tv
is interlaced. The G200 manual says the BES doesn't support interlaced
modes and it's not supposed to, but this trickery makes it work.

A few important issues still remain though...

1) I don't like probing for interlaced mode in the mga_vid_set_config
   function. Ideally this should be configured by the client program,
   especially since it's something of a hack, but I didn't want to
   make the ioctl interface incompatible. Of course at some point I
   think new features do need to be added to the interface anyway...
   For instance the BES supports deinterlacing in hardware, which we
   should use!

2) Interlace support works by muddling with the pitch and buffer
   pointers at every vblank. This requires using the irq support in
   mga_vid, which was disabled by default. It works, but if you switch
   virtual consoles while it's running the stupid matroxfb driver goes
   and kills your interrupt setup and then pages don't get flipped at
   all. This is bad. I'm not sure how to properly work around the
   problem. Also I don't know if/how using the irq conflicts with DRM
   stuff for GLX users.

3) I have no idea how to get the current field number from the G200
   when in interlaced mode, so you have a 50% chance of having your
   fields displayed backwards every time around. This is bad, but
   pressing f to toggle fullscreen a few times usually gets you the
   right field order before it's over. Still there should be a better
   way...

If anyone wants to help put the finishing touches on this patch, I'd
really appreciate it (either help with coding or just some info on the
hardware that I could use to work around the above problems). Ideas,
anyone?

Rich







More information about the MPlayer-dev-eng mailing list