[MPlayer-dev-eng] Writing a brand new D3D video output to fix Vista Aero disabling

Reimar Döffinger Reimar.Doeffinger at stud.uni-karlsruhe.de
Sun Jun 1 13:22:23 CEST 2008


On Sat, May 31, 2008 at 03:41:24AM +0300, Georgi Petrov wrote:
> Do you mean that with ATi hardware/drivers -vo gl:yuy=1 doesn't work
> at all? If it doesn't, that's one of the other reasons I want to
> develop D3D driver - because it's supported for sure even in the most
> retarded drivers for Vista (nothing against ATi. I mean something like
> SiS if they are still alive...).

-vo gl:yuv=2 definitely will work with ATI, and I think it works with
Intel, too (though I have not tested personally).
A big problem with Vista is that enabling vsync seems to eat up 10% CPU
in some kernel driver.
Since vsync is not needed with Aero enabled, you should try
-vo gl:yuv=2:force-pbo:swapinterval=0  (for ATI cards you will also need
to add ati-hack, this is probably due to yet another driver bug).

> VLC's D3D module doesn't use VMR as well as far as I can
> understand the source code.

Not using VMR (or is that only since EVR or whatever the next version is
called) also means you do not get on-GPU deinterlacing, no advanced scaling
(unless you write your own scalers) etc.

> Once I have working D3D module and the performance is as expected on
> par with the -vo directx's current DirectDraw, I supposse that it
> would make sense after extensive testing to make it the default
> drawing mode for Windows, because DirectDraw is dying from my
> perspective. It doesn't hurt Windows XP, but for Vista it's a real
> pain.

Making D3D the default AFAICT means dropping support for GeForce 3 and
anything similarly old/weak without doing yuv->rgb in software.
It certainly is an option, though it may be better to either leave such
decisions to others (e.g. smplayer not defaults to vo gl on Vista it
seems - unfortunately with slow settings) or extend the way the default
vo is selected to make better decisions (e.g. adding a get_score
function and trying the vos in order of the score they returned).
There is also the question which D3D version you intend to use and if
and how a generic MPlayer build can still run on Win9x.

> Also - if I'm not mistaken DirectDraw offers HW accelerated overlay
> only for the FIRST player instance. Every other MPlayer instance
> doesn't get HW overlay (because it's only one available) and the video
> looks terrible. Especially upscaled. Try it - launch MPlayer, then
> launch another instance with another video (both instances using -vo
> directx) and observe the second one's quality. If you can't tell the
> difference, hit "f" for full screen and enjoy terrible quality :)
> 
> This is all related to XP. In Vista the second video doesn't work at
> all! It's all green (colorkey) and nothing happens :)

What kind of card is that? The newer (PCIe) cards at least on Linux only
support a kind of emulated overlay that has none of these problems, it
has only an arbitrary limit of 32 simultaneous videos (unfortunately, it
does not support setting of hue/saturation/contrast/brightness/gamma,
though this seems more like a driver than hardware limitation).

Greetings,
Reimar Döffinger



More information about the MPlayer-dev-eng mailing list