Tuesday, October 02, 2007

Sysinternals Process Monitor - mplayer GL output on Vista

Mplayer is my favourite movie player. It's got handy keyboard shortcuts, virtually all codecs, it's fast and without bloat. Problem is some video output drivers don't work well on all platforms. Some require you to use "-vo xv" (for fast scalable graphics on UNIX systems), some only support -vo gl and so on. In the case of Windows Vista, you need to use "-vo gl" if you're using Aero.

Ever wondered where a programs looks for default configurations files, registry entries and such? You can use truss or DTrace on Solaris for example, but on Windows, you have ProcMon. Mplayer usually looks for default configuration in ~/.mplayer/config or mplayer.conf in the default dir and such. Well, on Vista, it looks for the default config in C:\Users\cmihai\AppData\Roaming\mplayer (or whatever your home may be), but it really depends on your setup. A quick way to find out is to use Process Monitor:

Process Monitor - procmon is a Sysinternals tool that combines FileMon and RegMon.

Just filter by process name to include mplayer, and you've got yourself a nice list of files and registry keys it opens or tries to access. Simple as that.

All that remains is to edit that file C:\Users\cmihai\AppData\Roaming\mplayer\config and to add "vo=gl" to it, and we've "fixed" mplayer so that it works with the Aero interface in Vista.