[Development] wmf backend dxva
jason.barron at outlook.com
Fri Oct 5 09:14:02 CEST 2012
> I have read recently that qt5 will be available thru angle/Directx and
> there is work in progress about a wmf backend dxva. when will it be
> available in git ?
> Will it be possible to have a public access to directx surface to
For the next beta we hope to have ANGLE properly integrated into Qt's 3rdparty directory and use it in the Windows binaries by default. In addition to this, we plan to enable DXVA throughout the WMF plugin in QtMultimedia.
There are two video rendering code paths in the plugin currently. The first one renders directly to a QWidget/QWindow (HWND) using the Enhanced Video Renderer (EVR) from Media Foundation. I believe this should already be using DXVA as it accesses the DXVA video processor directly to change the contrast, brightness, etc.
The second renderer is used for QML and is implemented as a custom media sink. At the moment, this does not support Direct X, but this is something we are working on changing. The current implementation receives the sample buffers as 2D buffers and does a texture upload for each frame. With ANGLE, we can implement this more efficiently. By using DXVA, the decoder will allocate the sample buffers in Direct X surfaces. Using a combination of EGL extensions and Direct X, we can then efficiently get this surface into a texture (using eglBindTexImage) without incurring the cost of an upload.
I'm not sure what type of custom decoding you want to do here, but it sounds like you probably want a way to insert a Media Transform node into the underlying topology and use DXVA inside it. At the moment we don't have any plans of exposing the topology through public API, however, we will likely need to provide some form of API to enable WebKit2 video rendering which will need a handle to render video in a separate process. It's possible you'll be able to use this share handle to do what you want, but I don't know for sure. We haven't really started the WebKit integration yet.
The ANGLE integration will likely be pushed to Gerrit next week, but it will probably need a few rounds of improvements to polish the qmake files. As for the QtMultimedia changes, I have made some changes locally, but it will be some weeks still before it is in any kind of usable condition.
More information about the Development