XBMC Community Forum
[WINDOWS] GPU assisted video decoding in XBMC for Windows via a custom DXVA renderer? - Printable Version

+- XBMC Community Forum (http://forum.xbmc.org)
+-- Forum: Development (/forumdisplay.php?fid=32)
+--- Forum: Feature Suggestions (/forumdisplay.php?fid=9)
+--- Thread: [WINDOWS] GPU assisted video decoding in XBMC for Windows via a custom DXVA renderer? (/showthread.php?tid=33323)

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16


[WINDOWS] GPU assisted video decoding in XBMC for Windows via a custom DXVA renderer? - Gamester17 - 2008-05-18 15:37

I read about MPC-HC (Media Player Classic Homecinema) on FFmpeg-dev mailing-list which does support GPU assisted video decoding of H.264 using FFmpeg and a custom DXVA renderer.

Could this method of GPU video acceleration be something for the Windows port of XBMC?:
http://tibrium.neuf.fr/DXVASupport.html
http://mpc-hc.svn.sourceforge.net/viewvc/mpc-hc/trunk/src/filters/transform/mpcvideodec/
(MPC-HC C++ source code http://sourceforge.net/projects/mpc-hc/)

DXVA (DirectX Video Acceleration):
http://en.wikipedia.org/wiki/DirectX_Video_Acceleration

MPC-HC (Media Player Classic Homecinema) developer posted this on FFmpeg-dev mailing-list:
http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/2008-February/042612.html
Quote:from Tibrium <tibrium@neuf.fr>
to FFmpeg development discussions and patches <ffmpeg-devel@mplayerhq.hu>
date Feb 25, 2008 10:29 PM
subject [FFmpeg-devel] New project using Ffmpeg with DXVA

Hello,
I'm one of the project administrator of Media Player Classic - Homecinema, a fork from original Guliverkli project. We have used ffmpeg to add a new internal video decoder inside mpc for software decoding, but we have also the possibility to accelerate H264 and VC1 decoding using DXVA hardware acceleration (only video card with bitstream acceleration are supported for the moment).

This project is present on SourceForge at this address http://sourceforge.net/projects/mpc-hc/ and the first release using ffmpeg decoder will be available soon (final testing stage).

Could you please add mpc-hc on the list of ffmpeg powered project.

Thank you very much for you great works

Christophe (a.k.a Casimir)

Further general (not specific) discussion about GPU assisted video decoding in XBMC here:
http://forum.xbmc.org/showthread.php?tid=1843


- WiSo - 2008-05-19 11:07

This might be possible of course although I'm not an expert in that.
But this - like the coreav stuff - gets the win32 port in another direction because we're back to OS specific things like directx.
I'm not sure how far ffmpeg is able to improve things and when this will happen so it might be that we will need to use OS specific accelerations but this should be a point of discussion.


- Gamester17 - 2008-05-19 16:31

Well, I believe that GPU assisted video-decoding might have to be platform specific for now and will thus each need unique renderers(?), ...that is at least until all GPU hardware manufacturers out there come up with a platform-independent API, (which is nothing that we can count on today, a such API might never become available).

Today we only have DxVA for Windows (and XvMC for Linux) to work from, or write our own GPGPU shaders.
http://wiki.xbmc.org/?title=Hardware_Accelerated_Video_Decoding

Future platform-independent API could possibly be VAAPI if it someday is implemented into the new Gallium 3D architecture.
http://www.freedesktop.org/wiki/Software/vaapi
http://www.bitblit.org/gsoc/gallium3d_xvmc.shtml
http://en.wikipedia.org/wiki/Gallium_3D
...but again, that will probably not happen this or even the next year.


[WINDOWS] GPU Hardware Accelerated Video Decoding in XBMC for Windows? - ethan_9219 - 2009-03-11 02:11

Was just wondering when we might realistically see XBMC be able to use the GPU for decoding.

Because, wouldn't this mean that we could get by and play 1080 sources using a slower processor, thus saving money if building a brand-new machine?


- ashlar - 2009-03-11 02:25

Never? Or at least until ATI, Nvidia or Intel release hardware acceleration accessible under OpenGL.


- ethan_9219 - 2009-03-11 02:30

okay....that's a disappointing, but quick answer....Thanks...guess i will just go ahead and build without consideration for GPU decoding etc.

Just an aside, what does XBMC use the Graphics card for?


- o_dog - 2009-03-11 02:43

Well, i'll take a wild guess....sending picture to your screen?


- ethan_9219 - 2009-03-11 02:47

@o_dog, That's a given, of course. But i must say, you seem the quite the genius...very helpful answer.

But no, disregarding the blatantly obvious, what is the GPU used for? I only ask so as to know what sort of graphics card i should get to be able to decode 1080.


- LaTropa64 - 2009-03-11 03:28

DXVA works beautifully under Media Player Classic HomeCinema. It's so awesome to see less than 5% CPU usage on 1080p mkv's. It also offers some awesome gpu shaders that enhance the picture quality.

Of course, the user interface of MPC-HC leaves much to be desired as it's nothing more than a player.

Considering the Xbox version is DirectX, how out of the realm of possibility is seeing a DirectX version of XBMC for Windows?


- natethomas - 2009-03-11 03:38

Aside from the blatantly obvious, the gpu is useful for any OpenGL graphics currently being run through XBMC. I'm not entirely sure what this includes, but I believe various types of shading and something called "alpha blending" are big pieces of the graphics puzzle. Also, I believe the gpu may currently be used for some limited upscaling.

As to the traditional response of never, with the current use of VDPAU in Linux, it appears a tacit acknowledgment exists that if a person can figure out how to code hardware acceleration into XBMC using DXVA (essentially DirectX Video Acceleration) without slowing down or destroying the XBMC code for the rest of the platforms, then they are welcome to do so.

So far, no one has stepped up to the plate. There are many possible reasons for this. 1. Attempting to make DXVA work with OpenGL sounds like a real pain. 2. DXVA 2.0 (the important one) is only supported in Vista and Windows 7.0, so all the XP holdouts cannot use it. 3. No one knows how.

Those are pretty big problems. It appears the last one has been resolved in limited cases. Media Player Classic Home Cinema seems to have overcome the limitation.

http://mpc-hc.sourceforge.net/DXVASupport.html

I don't know how open source their solution is though, and I don't know how well it would port to XBMC.

Anyway, if you happen to have mad coding skills, I highly recommend you give it a look. I don't personally need it, but it'd be pretty awesome to have in the future.


- natethomas - 2009-03-11 03:40

Beat me to it, LaTropa!


- ethan_9219 - 2009-03-11 03:43

@natethomas...thanks, interesting.


- nekrosoft13 - 2009-03-11 04:20

ashlar Wrote:Never? Or at least until ATI, Nvidia or Intel release hardware acceleration accessible under OpenGL.

why not use purevideo and that ati alternative?

because of license need to be bought from those companies? I mean PowerDVD, TotalTheater, WinDVD has support for that.


- nekrosoft13 - 2009-03-11 04:21

LaTropa64 Wrote:DXVA works beautifully under Media Player Classic HomeCinema. It's so awesome to see less than 5% CPU usage on 1080p mkv's. It also offers some awesome gpu shaders that enhance the picture quality.

Of course, the user interface of MPC-HC leaves much to be desired as it's nothing more than a player.

Considering the Xbox version is DirectX, how out of the realm of possibility is seeing a DirectX version of XBMC for Windows?

still lacking compared to Purevideo

XBMC biggest flaw is that developers are trying to making it uniform on to many different platforms, then then all platforms suffer.

mediaportal at least has DXVA support


- tslayer - 2009-03-11 04:22

Why not just use XBMC for Linux where VDPAU is being implemented (and quite far along).

You'll then get hardware gpu decoding.