KMPlayerㅣForum

KMPlayerㅣForum (http://www.kmplayer.com/forums/forums.php)
-   휴게실 (http://www.kmplayer.com/forums/forumdisplay.php?f=13)
-   -   DxVA 2.0 (http://www.kmplayer.com/forums/showthread.php?t=7271)

z 08-28-2007 12:20 PM

DxVA 2.0
 
Quote:

am I right to think that in DXVA 2.0 it will be possible to have acceleration done in the decoder (H264/AVC/MPEG2) and then add the subs with a software decoder attached between the main video decoder and the renderer (EVR for example)?
That's my understanding too. DXVA 2.0 video processor API can be used to perform subtitle blending. I think subtitles could also be composited with the decoded picture before it's passed off to the custom allocator.

Even though DXVA 2.0 separates decoding from the renderer, a renderer is still required. I don't think DXVA 2.0 would allow HW acceleration to be used for decoding in something like Avisynth's DirectShowSource(), for example.

Quote:

WMV decoder dont have any options for enable or disable dxva. In WMP you can enable dxva under preferences, in other player you can't, so is it dxva enable by default in MS decoder?
I agree it's confusing. DXVA support for WMV decoder is controlled via a registry key. You can use the [Only registered and activated users can see links. Click Here To Register...] to enable/disable it. The confusing part is that WMP uses the same reg key to control DXVA for WMV - so the setting actually has a wider effect than just on the player application.

By default (if DXVA reg key doesn't exist), DXVA 2.0 support is enabled for WMV decoder (implies MF and EVR pipeline) but disabled for DXVA 1.0 (implies DirectShow/WMFSDK and VMR pipeline). When the reg key is set (0 or 1), then it disables/enables both DXVA 1.0 and 2.0 support.

@All:

Some basic facts about DXVA 2.0 vs 1.0:
  • DXVA 2.0 requires EVR and Vista. VMR7 and VMR9 support only DXVA 1.0, and this is true in both XP and Vista.
  • DXVA 2.0 is supported in both DirectShow and Media Foundation on Vista. A DShow decoder filter can be designed to support both DXVA 1.0 (with VMR) and DXVA 2.0 (with EVR). The WM Format SDK only supports DXVA 1.0 for WMV decoding.
  • Vista only has a native DXVA 2.0 driver, but the driver is designed to translate DXVA 1.0 API calls into equivalent DXVA 2.0 functions if the video driver is WDDM compatible. This allows legacy (XP) DXVA 1.0 decoders to still work in Vista.

A few MSDN topics on DXVA 2.0:
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]

Finally, if anybody has technical questions (Sulik, you might want to ask about that H.264 DXVA 1.0 issue), you can e-mail [Only registered and activated users can see links. Click Here To Register...] with questions and somebody from the DXVA team will get back to you.

z 08-28-2007 12:24 PM

It's possible to use EVR under XP - it comes with the .NET 3.0 runtime - though it's not registered by default. But it's impossible to use DXVA 2.0 in XP - it requires Vista video driver model.



There was never a spec for H.264 DXVA 1.0 decoding. Any H.264 HW acceleration support under XP was likely done using custom API hooks. Looks like there will never be DXVA support for H.264 decoding in XP and DXVA 1.0. That doesn't mean there can't be HW acceleration for H.264 in XP - it just can't be done with any public DirectX APIs.

[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]

z 08-28-2007 12:29 PM

DXVA is more than just for decoding. It also includes video processing and capture support.

In order to have DXVA decoding support, you need 4 components:
  • An MPEG-2, VC-1 or H.264 decoder that supports offloading parts of the decoding process to the GPU by using DXVA API calls
  • DXVA system driver - this is the OS runtime library that powers the DXVA API. You have DXVA 1.0 in XP and DXVA 2.0 in Vista. In Vista this component also translates DXVA 1.0 API calls into equivalent DXVA 2.0 functions.
  • Video driver that supports DXVA decoding/processing. It's up to the driver to report the capabilities of the card to the DXVA driver. Because many of the actual decoding/processing functions are generic and implemented in a whole class of GPUs, sometimes it only takes a driver update to bring a particular DXVA feature to life.
  • Video card that has particular decoding/processing features implemented in its hardware.


All of those articles come from Zambelli who works at MS codec tech team.

z 08-28-2007 12:33 PM

The "DXVA" registry key works for the WMV decoder in general, not just WMP.

If "DXVA" does not exist, HW acceleration will be enabled for DXVA 2.0 in Media Foundation with EVR. It will be disabled for DXVA 1.0 in DirectShow with VMR7/9.

If "DXVA" = 0, HW acceleration will be disabled in the WMV decoder for all apps, regardless of pipeline or renderer.

If "DXVA" = 1, HW acceleration will be enabled in the WMV decoder in both DirectShow (DXVA 1.0 - VMR) and MF (DXVA 2.0 - EVR).



The WMV decoder only uses DXVA 2.0 in Media Foundation with EVR. No other player (that I'm aware of) besides WMP in Vista uses Media Foundation and EVR for playback. They could - but nobody has done it yet.


EVR only supports DXVA 2.0, and DXVA 2.0 only exists on Vista.


All times are GMT +9. The time now is 04:13 PM.

Supported by PANDORA.TV