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
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...)
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:
xv X11/Xv