Are there any plans for developing a direct 3d (vs directx) vo for windows. The current directx vo on Vista forces the compatibility mode and disables aero, which results in a degraded user experience. Moreover the current directx implementation will only work with the primary display. If anyone would have the capabilities of doing it (VLC has one, so it may be possible to base the mplayer's one on the implementation from VLC), please contact me back, as my company would be willing to pay for this development. Best, Olivier Chalouhi.
On 11/11/08, Olivier Chalouhi <olivier@vuze.com> wrote:
Are there any plans for developing a direct 3d (vs directx) vo for windows. The current directx vo on Vista forces the compatibility mode and disables aero, which results in a degraded user experience. Moreover the current directx implementation will only work with the primary display.
If anyone would have the capabilities of doing it (VLC has one, so it may be possible to base the mplayer's one on the implementation from VLC), please contact me back, as my company would be willing to pay for this development.
There was somebody quite enthusiastic to write direct3d vo, however we haven't heard much from him lately. His last attempts were not very encouraging as he was not able to get better performance than the already existing -vo gl driver. BTW, I think I've seen some simple patch messing with magic flags, so Vista won't drop the entire Aero, but only the windows where MPlayer is running.
On Tue, Nov 11, 2008 at 09:31:17AM -0800, Olivier Chalouhi wrote:
Are there any plans for developing a direct 3d (vs directx) vo for windows.
No (yes, once in a while someone states they will do it, so far nobody has, and honestly I don't think anyone ever will).
The current directx vo on Vista forces the compatibility mode and disables aero, which results in a degraded user experience. Moreover the current directx implementation will only work with the primary display.
Just use -vo gl:yuv=2:force-pbo:ati-hack and if you have an ATI card make sure you use the 8.8 driver (sorry, all others are just too broken - 8.8 is quite broken too, but it happens to work for MPlayer). I admit you will not have any fun with SIS/S3 or any card without OpenGL support, but probably movies won't play very well on these anyway... Greetings, Reimar Döffinger
we ran an opengl "test" on our user base, and about 40% of our users don't have an advanced enough opengl driver to playback videos. For some reasons, some default windows drivers have proper directx / direct3d support but not opengl, even though the card should be able to handle it. That's why we can't go with openGL (asking our users to update their video card drivers is not an option for us). Olivier. On Nov 11, 2008, at 9:42 AM, Reimar Döffinger wrote:
On Tue, Nov 11, 2008 at 09:31:17AM -0800, Olivier Chalouhi wrote:
Are there any plans for developing a direct 3d (vs directx) vo for windows.
No (yes, once in a while someone states they will do it, so far nobody has, and honestly I don't think anyone ever will).
The current directx vo on Vista forces the compatibility mode and disables aero, which results in a degraded user experience. Moreover the current directx implementation will only work with the primary display.
Just use -vo gl:yuv=2:force-pbo:ati-hack and if you have an ATI card make sure you use the 8.8 driver (sorry, all others are just too broken - 8.8 is quite broken too, but it happens to work for MPlayer). I admit you will not have any fun with SIS/S3 or any card without OpenGL support, but probably movies won't play very well on these anyway...
Greetings, Reimar Döffinger _______________________________________________ MPlayer-dev-eng mailing list MPlayer-dev-eng@mplayerhq.hu https://lists.mplayerhq.hu/mailman/listinfo/mplayer-dev-eng
Hello, On Tue, Nov 11, 2008 at 09:46:22AM -0800, Olivier Chalouhi wrote:
we ran an opengl "test" on our user base, and about 40% of our users don't have an advanced enough opengl driver to playback videos. For some reasons, some default windows drivers have proper directx / direct3d support but not opengl, even though the card should be able to handle it.
That's why we can't go with openGL (asking our users to update their video card drivers is not an option for us).
Um, Vista emulates OpenGL via Direct3D. Obviously you can't use the advanced commandline above, but just -vo gl should still work (since I do not have such a card I have never tested Vista's OpenGL emulation I admit). Greetings, Reimar Döffinger
Hello, On Tue, Nov 11, 2008 at 06:55:05PM +0100, Reimar Döffinger wrote:
On Tue, Nov 11, 2008 at 09:46:22AM -0800, Olivier Chalouhi wrote:
we ran an opengl "test" on our user base, and about 40% of our users don't have an advanced enough opengl driver to playback videos. For some reasons, some default windows drivers have proper directx / direct3d support but not opengl, even though the card should be able to handle it.
That's why we can't go with openGL (asking our users to update their video card drivers is not an option for us).
Um, Vista emulates OpenGL via Direct3D. Obviously you can't use the advanced commandline above, but just -vo gl should still work (since I do not have such a card I have never tested Vista's OpenGL emulation I admit).
I would like to add that I actually found out that up to about 1024x1024 resolution -vo gl works (and with "acceptable" speed) with Server 2008 under VirtualBox virtualization, whereas vo_direct3d does _not_ work. I admit I do not know for sure why, possibly the problem is that hardware acceleration is requested so the init fails while it would work as well as OpenGL if requesting software (there seems to be no "give me whatever you have" option?). Greetings, Reimar Döffinger
On Tue, 11 Nov 2008 09:31:17 -0800, Olivier Chalouhi wrote:
If anyone would have the capabilities of doing it (VLC has one, so it may be possible to base the mplayer's one on the implementation from VLC), please contact me back, as my company would be willing to pay for this development.
i'm curious, if vlc works , why not use it? or mpc? here is the previous thread about d3d and aero if interested: http://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/2008-June/057631.html -compn
Hi, that someone is me :) Actually last month I resumed my work on the driver and it's almost ready. I had plans to start a new thread very soon (a couple of days) about it. Right now this works: * Support for YV12/YUY2 (planar/packed) colorspaces. * Windowed mode * Fullscreen * Quality bilinear resize (both resized windowed mode and fullscreen) This is not ready: * RGB colorspaces * Subtitles * Video equalization (brightness, contrast, hue, etc). * A couple of other things I just want to write subtitles support and test the driver as good as I can before releasing it, so we have something good from the beginning. The performance is quite nice as it should be - everything is HW accelerated. Direct3D fully supports creating PlainOffscreen surfaces (where I render each frame) in both YV12/YUY2 formats and handles colorspace conversion when copying this offscreen surface to the screen backbuffer. It's nice and fast. Vsync also seems to work very nice, so no tearing. Also - the problem I have with my second display (TV) with opengl is not present. The problem was jerky video. When I drag the movie window on the TV, it was playing like 15fps. With Direct 3D it's as smooth as on the monitor. Picture "routing" through remote desktop works as well, which definitely doesn't work with DirectDraw. Also playing more than one video DOESN'T work when using DirectDraw (-vo directx). The second video remains black. You can try it right now. Just wait a couple of days to clean my code and to implement some additional checks and stuff and I'll release the first version of the driver :) Btw I seem to have problem with subtitles, but I'm not quite there yet :)
I forgot - you don't need to have advanced HW like the latest Geforce. I don't use any shaders or stuff like that. I use only 2D surfaces, so any DirectX 7 compatible card and up (GeForce 256 I believe) should work just fine. The card just need to have the capability to create 2D YV12/YUY2 surface, which every video card since last 9 years I believe can do. On Tue, Nov 11, 2008 at 11:20 PM, Georgi Petrov <gogothebee@gmail.com> wrote:
Hi, that someone is me :)
Actually last month I resumed my work on the driver and it's almost ready. I had plans to start a new thread very soon (a couple of days) about it.
Right now this works:
* Support for YV12/YUY2 (planar/packed) colorspaces. * Windowed mode * Fullscreen * Quality bilinear resize (both resized windowed mode and fullscreen)
This is not ready: * RGB colorspaces * Subtitles * Video equalization (brightness, contrast, hue, etc). * A couple of other things
I just want to write subtitles support and test the driver as good as I can before releasing it, so we have something good from the beginning.
The performance is quite nice as it should be - everything is HW accelerated. Direct3D fully supports creating PlainOffscreen surfaces (where I render each frame) in both YV12/YUY2 formats and handles colorspace conversion when copying this offscreen surface to the screen backbuffer. It's nice and fast. Vsync also seems to work very nice, so no tearing.
Also - the problem I have with my second display (TV) with opengl is not present. The problem was jerky video. When I drag the movie window on the TV, it was playing like 15fps. With Direct 3D it's as smooth as on the monitor. Picture "routing" through remote desktop works as well, which definitely doesn't work with DirectDraw. Also playing more than one video DOESN'T work when using DirectDraw (-vo directx). The second video remains black. You can try it right now.
Just wait a couple of days to clean my code and to implement some additional checks and stuff and I'll release the first version of the driver :)
Btw I seem to have problem with subtitles, but I'm not quite there yet :)
For somebody not really into Mplayer, the new Direct3D driver makes those things possible: * Vista's Aero doesn't shut down * Playback of more than one video is possible * Quality bilinear resizing (for fullscreen or larger/smaller that the original window) * Works on remote desktop * Works perfectly on secondary monitors/TVs (with perfect frame rate as well) * Works as fast as DirectDraw (-vo directx) * Works as reliable as DirectDraw under all versions of Windows (2000-Vista), given that you have Direct3D installed * I will draw the subtitles AFTER the movie is resized, so you will get -vo gl like subtitles and NOT -vo directx like subtitles (in -vo directx they are drawn at movie's resolution and rescaled later, which makes them look bad) * Future-proof driver, as Direct3D will be supported for years to come, where DirectDraw is deprecated since DirectX 8. * Overlay-less solution - just as expected on modern composited desktops where HW overlays just can't live any longer. That's why Vista shuts down Aero - HW overlay requires guarantee that the movie rectangle is being drawn DIRECTLY on the screen and not in screen backbuffer (as required by Aero). Since HW overlay just pops up and steals the rectangle where the movie is being rendered, it CAN'T be used in composited desktop and no magic flag can change this limitation. The only way is with the Direct3D driver, where the Mplayer frames are copied to Direct3D Offscreen surface and then copied to the video card's backbuffer (which with Aero on is actually another offscreen surface, which DWM renders when needed onscreen). On Tue, Nov 11, 2008 at 11:26 PM, Georgi Petrov <gogothebee@gmail.com> wrote:
I forgot - you don't need to have advanced HW like the latest Geforce. I don't use any shaders or stuff like that. I use only 2D surfaces, so any DirectX 7 compatible card and up (GeForce 256 I believe) should work just fine. The card just need to have the capability to create 2D YV12/YUY2 surface, which every video card since last 9 years I believe can do.
On Tue, Nov 11, 2008 at 11:20 PM, Georgi Petrov <gogothebee@gmail.com> wrote:
Hi, that someone is me :)
Actually last month I resumed my work on the driver and it's almost ready. I had plans to start a new thread very soon (a couple of days) about it.
Right now this works:
* Support for YV12/YUY2 (planar/packed) colorspaces. * Windowed mode * Fullscreen * Quality bilinear resize (both resized windowed mode and fullscreen)
This is not ready: * RGB colorspaces * Subtitles * Video equalization (brightness, contrast, hue, etc). * A couple of other things
I just want to write subtitles support and test the driver as good as I can before releasing it, so we have something good from the beginning.
The performance is quite nice as it should be - everything is HW accelerated. Direct3D fully supports creating PlainOffscreen surfaces (where I render each frame) in both YV12/YUY2 formats and handles colorspace conversion when copying this offscreen surface to the screen backbuffer. It's nice and fast. Vsync also seems to work very nice, so no tearing.
Also - the problem I have with my second display (TV) with opengl is not present. The problem was jerky video. When I drag the movie window on the TV, it was playing like 15fps. With Direct 3D it's as smooth as on the monitor. Picture "routing" through remote desktop works as well, which definitely doesn't work with DirectDraw. Also playing more than one video DOESN'T work when using DirectDraw (-vo directx). The second video remains black. You can try it right now.
Just wait a couple of days to clean my code and to implement some additional checks and stuff and I'll release the first version of the driver :)
Btw I seem to have problem with subtitles, but I'm not quite there yet :)
On Tue, Nov 11, 2008 at 11:26:44PM +0200, Georgi Petrov wrote:
I forgot - you don't need to have advanced HW like the latest Geforce. I don't use any shaders or stuff like that. I use only 2D surfaces, so any DirectX 7 compatible card and up (GeForce 256 I believe) should work just fine. The card just need to have the capability to create 2D YV12/YUY2 surface, which every video card since last 9 years I believe can do.
-vo gl:yuv=1 works with anything from GeForce 3 up, too. With YUY2 it would probably even be possible to support the TNT2 (in the worst case halving the horizontal resolution though).
Btw I seem to have problem with subtitles, but I'm not quite there yet :)
Can't you just submit what you have and deal with the subtitles later? The larger the patch you submit is the longer it will take to get it committed, and ASS subtitles support is likely to be a mess if you want good performance. Not to mention how _very_ much more painful it would be if the review found any design flaws (probably unlikely but still). Greetings, Reimar Döffinger
Ok, no problem. In the beginning of the next week I'll commit the first version of the driver. My top priority for the next week is: * -wid support * screen saver turning off during playback (easy) * fullscreen on the second display as well (works only on the primary right now) * clean up the code and implement additional safety checks I'll be happy if more people do some testing after the first commit, so I can fix bugs afterward. Later I'll add support for: * RGB colorspaces * OSD/Subtitles * Brightness/Contrast/etc. controls (if supported by HW) Is it anything else I need to know? What do you think about this plan?
On Wed, Nov 12, 2008 at 11:14:30AM +0200, Georgi Petrov wrote:
Ok, no problem. In the beginning of the next week I'll commit the first version of the driver.
You mean "submit". Anyway, submit it now, the things on your list of planned features are not essential. Diego P.S.: Please do not top-post.
I stand corrected about top posting. Anyway - I wrote to Olivier and we agreed that these features are important for his company, so I just want my first submit to contain this code as well. I will submit the cleaned up driver in the beginning of the next week.
On Wed, Nov 12, 2008 at 03:17:30PM +0200, Georgi Petrov wrote:
I stand corrected about top posting.
Anyway - I wrote to Olivier and we agreed that these features are important for his company, so I just want my first submit to contain this code as well. I will submit the cleaned up driver in the beginning of the next week.
It still is nonsense unless your goal is to make the review take longer and be more effort.
If everything goes ok and the driver is "accepted", am I going to have something like read-write rights to make subsequent changes when I decide and commit independent from anybody else? What's the policy? May be I should read about this in the "developer's documentation"? I just want everything to be as smooth as possible.
On Wed, Nov 12, 2008 at 04:01:17PM +0200, Georgi Petrov wrote:
I just want everything to be as smooth as possible.
Then start listening to the advice we are trying so hard to give to you: Submit your vo driver as early as possible, not when you think it is feature-complete. Why not today? Diego P.S.: Thanks for getting rid of your top-posting habits. If you could now upgrade to proper inline quoting, that would be wonderful.
Ok, I'll submit this evening. I don't understand both your viewpoints - I just wanted to be close to perfect from the beginning, but since you want so hard to submit as early as possible, as soon as I get home, I'll clean it up and submit it. I guess all I have to do is read DOCS\patches.txt and DOCS\svn-howto.txt and follow the rules inside. Is this ok?
On Wed, Nov 12, 2008 at 04:21:26PM +0200, Georgi Petrov wrote:
Ok, I'll submit this evening. I don't understand both your viewpoints
Trust the experienced grandpas ;-)
- I just wanted to be close to perfect from the beginning, but since you want so hard to submit as early as possible, as soon as I get home, I'll clean it up and submit it.
We want to see it early in case you are running into the wrong direction. Then we can prevent you from doing work in vain.
I guess all I have to do is read DOCS\patches.txt and DOCS\svn-howto.txt and follow the rules inside. Is this ok?
Yes. Diego
On Wed, Nov 12, 2008 at 04:21:26PM +0200, Georgi Petrov wrote:
Ok, I'll submit this evening. I don't understand both your viewpoints
This is just long standing experience, especially from experience with FFmpeg Google Summer of Code. The longer something is in "hidden" (i.e. only one person sees the code) development the longer it will usually take to be integrated. Greetings, Reimar Döffinger
Ok, I understand. Well, I've been developing it for 4-5 months already, but mostly fixing bugs and getting something to work instead of growing the code. You'll see that everything is quite tight and understandable (at least I hope so). I'll submit the patch in 5-6 hours.
On Tue, Nov 11, 2008 at 7:31 PM, Olivier Chalouhi <olivier@vuze.com> wrote:
Are there any plans for developing a direct 3d (vs directx) vo for windows. The current directx vo on Vista forces the compatibility mode and disables aero, which results in a degraded user experience. Moreover the current directx implementation will only work with the primary display.
If anyone would have the capabilities of doing it (VLC has one, so it may be possible to base the mplayer's one on the implementation from VLC), please contact me back, as my company would be willing to pay for this development.
Best,
Olivier Chalouhi.
I just wanted to notify the community that Vuze lived up to their promise and they really payed me for the driver. 3 months ago they promised and few days ago they did it. Not that I wouldn't do it without them, of course, but this came as a pleasant surprise to me! If you ever happen to have some promise-based relationship with Vuze, I want you to know that they are serious! I'm really happy and thankful!
On Tue, 17 Feb 2009 14:51:05 +0200, Georgi Petrov wrote:
On Tue, Nov 11, 2008 at 7:31 PM, Olivier Chalouhi <olivier@vuze.com> wrote:
Are there any plans for developing a direct 3d (vs directx) vo for windows. The current directx vo on Vista forces the compatibility mode and disables aero, which results in a degraded user experience. Moreover the current directx implementation will only work with the primary display.
If anyone would have the capabilities of doing it (VLC has one, so it may be possible to base the mplayer's one on the implementation from VLC), please contact me back, as my company would be willing to pay for this development.
Best,
Olivier Chalouhi.
I just wanted to notify the community that Vuze lived up to their promise and they really payed me for the driver. 3 months ago they promised and few days ago they did it. Not that I wouldn't do it without them, of course, but this came as a pleasant surprise to me! If you ever happen to have some promise-based relationship with Vuze, I want you to know that they are serious!
I'm really happy and thankful!
great! whats next for vo_direct3d? maybe DXVA can be sponsored next :) http://mpc-hc.sourceforge.net/DXVASupport.html -compn
great! whats next for vo_direct3d? maybe DXVA can be sponsored next :) http://mpc-hc.sourceforge.net/DXVASupport.html
Yap, I even thought about it, but right now I'm not quite interested in this topic. I won't decline another fund offer, of course. It's sufficient that now I can watch Battlestar Galactica and Lost on my TV-out under Vista, which was the main driving force behind this driver after all :) The driver is still missing image equalization (I'm working on it), direct rendering (not so useful???) and may be other things I'm not aware about, but I can say it's pretty usable now. I'm waiting for bug reports, although I consider it stable enough and the next SMPlayer seems to have plans for making Direct3D the default video out on Vista :)
participants (6)
-
compn -
Diego Biurrun -
Georgi Petrov -
Ivan Kalvachev -
Olivier Chalouhi -
Reimar Döffinger