XINE video output plugin for MATROX G200/G400/G450 cards *only*
Starting from XINE release 0.9.4 a new version of this plugin is
included which basically is a complete rewrite.
Even though we are trying to make things as stable as possible, you
*might* experience some problems we haven't yet fixed or we don't
know about yet. Please refer to the end of this README for more
information on known bugs and how to report new ones.
Thanks for your help to get this plugin as rock-solid as possible.
* WHAT IS THIS PLUGIN ABOUT and WHY SHOULD I EVEN CONSIDER TO USE IT? :)
This XINE video output plugin uses the so called SyncFB driver (from
the Teletux project) which provides special hardware features of
Matrox G200 and newer cards like hardware deinterlacing, scaling and
synchronization of your video output to the vertical retrace of your
monitor - just to name a few. The plugin makes all those features
available to XINE and because all this tasks are done by the graphics
card there is no need for XINE to do them in software -- so you save
precious CPU time which you may gonna need for other things. :-)
Ok ok -- why should you want to have your video output synchronized to
the vertical retrace of your monitor?! Well... :)
In order to have an optimal DVD playback the update of the image needs
to be syncronized with the vertical refresh of the screen. Otherwise
you will sometimes see part of frame n and part of frame n+1 during
playback of a movie. Resulting in tearing artefacts on moving objects.
When using this plugin the update of the screen is done during the
vertical retrace of your monitor and those tearing artefacts are gone
Last but not least, you may ask what's so special about deinterlacing?
There are already several deinterlacing methods available in XINE and
why should you care about another one? Well (again)... ;-))
All current deinterlacers in XINE are done in software and therefore
will cost you some CPU power. The SyncFB video out plugin will use the
hardware deinterlacing support of your graphics card, thus saving your
CPU power because everything is done by your graphic processor...
* WILL IT WORK WITH MY G200/G400/G450/... CARD?
So far the plugin and the kernel module itself are only being tested
on G400 cards by its developers thus we cannot tell about newer
or older generation chips.
Nevertheless we have received positive feedback that the SyncFB kernel
module and this plugin work fine with G450 cards too.
* AND HOW DOES IT WORK?
The SyncFB driver is a kernel module you will have to load that makes
a special device (e.g. /dev/syncfb) available which is opened by the
plugin and controlled with certain ioctl calls. Easy, isn't it? ;-)
That module is based on the mga_vid driver from Aaron Holzmann and was
advanced (and reworked) by Matthias Oelmann.
* OK I HEARD ENOUGH - HOW DO I INSTALL and USE IT? :)
First of all you will need to get the SyncFB kernel module which is
part of the Teletux project. (URL: http://teletux.sourceforge.net)
Please note that we do recommend a recent CVS checkout.
Once you have got your copy of the module, please read the README
included with it and follow the compilation instructions. (usually a
normal "make" *should* work out-of-the-box)
(Currently you *might* experience some problems with the compilation
process - we know about it and will try to fix them soon)
Now there are only a few things left for you to do...
1) Become root. Hey now you can take over the world *evil laugh* :-)))
2) Create a device called /dev/syncfb ===> mknod /dev/syncfb c 178 0
3) Copy the file "syncfb.o" to your modules directory (usually this is
/lib/modules/YOUR_KERNEL_VERSION/) and do a "depmod -a".
This should be it. In order to use the SyncFB kernel module, you will
have to load it with the command "insmod syncfb.o" -- please note that
it is necessary to load the module like this every time you reboot
your system to use this plugin.
Now just start XINE once with the following parameter: "-V SyncFB" and
the SyncFB video out plugin will be used as default plugin. (please
remember to load the SyncFB module before starting XINE, otherwise it
will fall back to the Xv video out plugin as default)
* THE VIDEO IS JERKING - WHAT'S THE MATTER?!
Playing back video material that is mastered for e.g. NTSC can cause
this jerking if your monitor is not running at a refresh rate that is
a multiple of 30 (PAL: 25).
You can try to fix that by switching your monitor to the appropriate
refresh rates (e.g. 50/75/100 Hz for PAL, 60/90/120 Hz for NTSC). You
will need to add so called modelines to your XFree86 config to make
those modes available, if you don't already have them.
Here is is a short listing of some sample modelines. Please add only
those two lines (for NTSC and PAL) which exactly fit the screensize
you are running your X Server with. You need to add those lines to the
monitor section of your XF86Config file as well as include their names
in the screen section (subsection display of the color depth your are
USE THE FOLLOWING MODELINES AT YOUR OWN RISK. THEY COULD DAMAGE YOUR
MONITOR PERMANTELY - PLEASE TAKE CAUTION AND DON'T BLAME US. YOU HAVE
So much for the standard disclaimer. :)
Note: If you want to be on the safe side, generate your very own
modelines with an application like kvideogen or use a service
like http://zaph.com/Modeline/ on the web.
Also the modelines may need some fine tuning for your setup. You
can use xvidtune (comes with XFree86) to do that.
Modeline "1024x768pal" 64.94 1024 1040 1216 1328 768 768 775 802
Modeline "1024x768ntsc" 54.32 1024 1040 1216 1328 768 768 774 802
Modeline "1152x864pal" 68.82 1152 1168 1384 1496 864 864 871 902
Modeline "1152x864ntsc" 80.93 1152 1168 1384 1496 864 864 872 902
none yet - might be added in the future
So before you run XINE just turn to the appropriate refresh rate and
the jerking *should* be gone. (you may also want to have a look at the
XF86VidMode support included in XINE which makes on-the-fly resolution
switching possible when fullscreen is toggled)
* WHAT SCREENSIZE SHOULD I PREFER?
Well. It is important that the screensize you choose for DVD playback
is exactly the same screensize you're starting up your X Server with
if you are not using the XF86VidMode extension which will properly do
the switching for you and take care that the plugin is updated
accordingly. So you shouldn't switch down to 1024x768 yourself if you
are running 1280x1024 because that gives you a virtual screensize
of 1280x1024 in a resolution of 1024x768 - and the plugin can't handle
that - and probably never will.
You may want to have a look at the XF86VidMode support in XINE which
will enable on-the-fly resolution switching when activating fullscreen.
Now back to the question. A screensize of 1024x768 should be it. A DVD
is always 720x576 for pal and 720x480 for ntsc. If you've an anamorphe
DVD the image only has to be horizontally scaled to get back to the
original geometry of 16:9 which is easier to be done.
* WHAT ABOUT DEINTERLACING?!
Pressing 'i' during playback will toggle hardware deinterlacing. A
decrease in picture quality is a known side effect, yet you won't see
any artefacts caused by interlacing anymore. :-)
One more note, hardware deinterlacing uses BOB as deinterlacing method
and is totally independent from the software deinterlacing in XINE. So
specifing a different deinterlacing method in your .xinerc won't have
any effect on this feature.
* HEY! THE OVERLAY TURNS OFF WHEN THE WINDOW IS PARTLY OFF THE DESKTOP!?
That's done on purpose. It prevents possible yet harmless screen
corruption. And by the way - why would you want to see a movie just
* MY DESKTOP BACKGROUND IMAGE GETS CORRUPTED WHEN USING THIS PLUGIN!
Even though it doesn't look nice, it's nevertheless harmless. So no
need to worry about it. XFree86 is using your free video memory as
cache for certain things. Now when you use this plugin that part of
your video memory could also be used by the syncfb module. So your
image data cached there will be corrupted. Unfortunately there is no
way to avoid it. Yet, like stated earlier, it is truely harmless and
just a cosmetical side effect.
* KNOWN BUGs
+ toggling hardware deinterlacing will reset video out window to the
original video size. (bug or feature?)
+ zooming in/out of a video exposes a bug with the SyncFB kernel
module and should currently be considered broken. (being worked on)
+ quitting xine by closing the video window, won't properly deactivate
the overlay - this is a problem with the xitk signal handler.
* WHAT IS ON THE TODO LIST?
+ RGB support (maybe)
+ check if the video source is not too big in terms of dimensions for
the video memory left (video memory - X reserved video memory)
+ patching the syncfb kernel module itself for devfs and the recently
introduced license tag support (as well as bug fixing and updating)
[status: progressing - check CVS of the Teletux project]
+ bug fixes
+ more sanity checks
+ new features
* CONTACTS and FEEDBACK
Your first starting point should be this README followed by the FAQ. :-)
If you don't find your answers there or if you found a bug, please leave
a message on the XINE User Mailinglist (see the general README).
You can also reach the maintainers directly by mail (or you may consider
sending a message in bottle so we have some more time to find a good
excuse for the bug you may have found *grin*):
Matthias Dahl <firstname.lastname@example.org>
Joachim Koening <email@example.com>