Under XFree86 4.0.2 or newer, you can use your card's hardware YUV routines using the XVideo extension. This is what the option -vo xv uses. Also, this driver supports adjusting brightness/contrast/hue/etc. (unless you use the old, slow DirectShow DivX codec, which supports it everywhere), see the man page.
In order to make this work, be sure to check the following:
You have to use XFree86 4.0.2 or newer (former versions don't have XVideo)
Your card actually supports hardware acceleration (modern cards do)
X loads the XVideo extension, it's something like this:
(II) Loading extension XVideo
This loads only the XFree86's extension. In a good install, this is always loaded, and doesn't mean that the card's XVideo support is loaded!
Your card has Xv support under Linux. To check, try xvinfo, it is the part of the XFree86 distribution. It should display a long text, similar to this:
X-Video Extension version 2.2 screen #0 Adaptor #0: "Savage Streams Engine" number of ports: 1 port base: 43 operations supported: PutImage supported visuals: depth 16, visualID 0x22 depth 16, visualID 0x23 number of attributes: 5 (...) Number of image formats: 7 id: 0x32595559 (YUY2) guid: 59555932-0000-0010-8000-00aa00389b71 bits per pixel: 16 number of planes: 1 type: YUV (packed) id: 0x32315659 (YV12) guid: 59563132-0000-0010-8000-00aa00389b71 bits per pixel: 12 number of planes: 3 type: YUV (planar) (...etc...)
It must support YUY2 packed, and YV12 planar pixel formats to be usable with MPlayer.
And finally, check if MPlayer was compiled with 'xv' support. Do a mplayer -vo help | grep xv . If 'xv' support was built a line similar to this should appear: