[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