summaryrefslogtreecommitdiffstats
path: root/src/plugins/wmf/player/mfvideorenderercontrol.h
diff options
context:
space:
mode:
authorYoann Lopes <yoann.lopes@digia.com>2013-01-14 17:44:06 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-01-23 22:34:07 +0100
commit101c78983a8acd6cc7a7cb314700fabd6e8909dc (patch)
treec3cd299610a550cd57dba17d92fe705a3ac55151 /src/plugins/wmf/player/mfvideorenderercontrol.h
parent02add40392f1f708a1875f7088a853aa12ffca62 (diff)
WMF: enabled HW-accelerated video decoding for the QML video item.
It also applies to QGraphicsVideoItem when used on a GL viewport. We now have a new video sink that is based on Microsoft's EVR sink, we just replace the default Presenter with our own. Frames are rendered into D3D surfaces using DXVA, then copied into a shared D3D/EGL surface and finally bound to a GL texture to be used by the video surface. The shared D3D/EGL surface is a feature provided by ANGLE and therefore Qt must be compiled with ANGLE for this new video sink to be compiled and used. Change-Id: I0b7b9968eed5488f9ef1a2dcca5213bd0af232ab Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
Diffstat (limited to 'src/plugins/wmf/player/mfvideorenderercontrol.h')
-rw-r--r--src/plugins/wmf/player/mfvideorenderercontrol.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/plugins/wmf/player/mfvideorenderercontrol.h b/src/plugins/wmf/player/mfvideorenderercontrol.h
index b0db4dc19..d796ce36d 100644
--- a/src/plugins/wmf/player/mfvideorenderercontrol.h
+++ b/src/plugins/wmf/player/mfvideorenderercontrol.h
@@ -46,6 +46,14 @@
#include <mfapi.h>
#include <mfidl.h>
+QT_BEGIN_NAMESPACE
+
+#ifdef QT_OPENGL_ES_2_ANGLE
+class EVRCustomPresenterActivate;
+#endif
+
+QT_END_NAMESPACE
+
QT_USE_NAMESPACE
class MFVideoRendererControl : public QVideoRendererControl
@@ -74,6 +82,10 @@ private:
QAbstractVideoSurface *m_surface;
IMFActivate *m_currentActivate;
IMFSampleGrabberSinkCallback *m_callback;
+
+#ifdef QT_OPENGL_ES_2_ANGLE
+ EVRCustomPresenterActivate *m_presenterActivate;
+#endif
};
#endif