[WINDOWS] GPU assisted video decoding in XBMC for Windows via a custom DXVA renderer?

  Thread Rating:
  • 2 Votes - 4.5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Post Reply
Gamester17 Offline
Team-XBMC Forum Moderator
Posts: 10,523
Joined: Sep 2003
Reputation: 10
Location: Sweden
Question  [WINDOWS] GPU assisted video decoding in XBMC for Windows via a custom DXVA renderer?
Post: #1
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...cvideodec/
(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/ffmp...42612.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

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.
(This post was last modified: 2009-05-22 17:54 by Gamester17.)
find quote
WiSo Offline
Team-Kodi Developer
Posts: 2,745
Joined: Oct 2003
Reputation: 0
Location: Germany
Post: #2
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.

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.
find quote
Gamester17 Offline
Team-XBMC Forum Moderator
Posts: 10,523
Joined: Sep 2003
Reputation: 10
Location: Sweden
Post: #3
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_Acc...o_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.

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.
find quote
ethan_9219 Offline
Fan
Posts: 346
Joined: Sep 2008
Reputation: 0
Location: Australia
Question  [WINDOWS] GPU Hardware Accelerated Video Decoding in XBMC for Windows?
Post: #4
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?
find quote
ashlar Offline
Donor
Posts: 2,157
Joined: Mar 2006
Reputation: 27
Post: #5
Never? Or at least until ATI, Nvidia or Intel release hardware acceleration accessible under OpenGL.
find quote
ethan_9219 Offline
Fan
Posts: 346
Joined: Sep 2008
Reputation: 0
Location: Australia
Post: #6
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?
find quote
o_dog Offline
Senior Member
Posts: 117
Joined: Aug 2008
Reputation: 0
Post: #7
Well, i'll take a wild guess....sending picture to your screen?
find quote
ethan_9219 Offline
Fan
Posts: 346
Joined: Sep 2008
Reputation: 0
Location: Australia
Post: #8
@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.
find quote
LaTropa64 Offline
Fan
Posts: 649
Joined: Nov 2005
Reputation: 0
Post: #9
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?
(This post was last modified: 2009-03-11 03:36 by LaTropa64.)
find quote
natethomas Offline
Team Kodi Community Manager
Posts: 3,943
Joined: Apr 2008
Reputation: 68
Location: Kansas
Post: #10
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.
find quote
natethomas Offline
Team Kodi Community Manager
Posts: 3,943
Joined: Apr 2008
Reputation: 68
Location: Kansas
Post: #11
Beat me to it, LaTropa!
find quote
ethan_9219 Offline
Fan
Posts: 346
Joined: Sep 2008
Reputation: 0
Location: Australia
Post: #12
@natethomas...thanks, interesting.
find quote
nekrosoft13 Offline
Fan
Posts: 509
Joined: Dec 2008
Reputation: 1
Post: #13
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.
find quote
nekrosoft13 Offline
Fan
Posts: 509
Joined: Dec 2008
Reputation: 1
Post: #14
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
find quote
tslayer Offline
Team-XBMC Developer
Posts: 3,557
Joined: Oct 2003
Reputation: 12
Post: #15
Why not just use XBMC for Linux where VDPAU is being implemented (and quite far along).

You'll then get hardware gpu decoding.

42.7% of all statistics are made up on the spot

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.
find quote
Post Reply