src/3rdparty/phonon/ds9/videowidget.cpp
changeset 30 5dc02b23752f
parent 18 2f34d5167611
--- a/src/3rdparty/phonon/ds9/videowidget.cpp	Wed Jun 23 19:07:03 2010 +0300
+++ b/src/3rdparty/phonon/ds9/videowidget.cpp	Tue Jul 06 15:10:48 2010 +0300
@@ -24,7 +24,12 @@
 
 #include "mediaobject.h"
 
+#ifndef Q_OS_WINCE
+#include "videorenderer_evr.h"
 #include "videorenderer_vmr9.h"
+#else
+#include "videorenderer_default.h"
+#endif
 #include "videorenderer_soft.h"
 
 QT_BEGIN_NAMESPACE
@@ -352,14 +357,29 @@
             int index = graphIndex * 2 + type;
             if (m_renderers[index] == 0 && autoCreate) {
                 AbstractVideoRenderer *renderer = 0;
-				if (type == Native) {
-                    renderer = new VideoRendererVMR9(m_widget);
+                if (type == Native) {
+#ifndef Q_OS_WINCE
+                    renderer = new VideoRendererEVR(m_widget);
                     if (renderer->getFilter() == 0) {
-                        //instanciating the renderer might fail with error VFW_E_DDRAW_CAPS_NOT_SUITABLE (0x80040273)
+                        delete renderer;
+                        //EVR not present, let's try VMR
+                        renderer = new VideoRendererVMR9(m_widget);
+                        if (renderer->getFilter() == 0) {
+                            //instanciating the renderer might fail
+                            m_noNativeRendererSupported = true;
+                            delete renderer;
+                            renderer = 0;
+                        }
+                    }
+#else
+                    renderer = new VideoRendererDefault(m_widget);
+                    if (renderer->getFilter() == 0) {
+                        //instanciating the renderer might fail
                         m_noNativeRendererSupported = true;
                         delete renderer;
                         renderer = 0;
                     }
+#endif
                 }
 
                 if (renderer == 0) {