src/3rdparty/phonon/ds9/videowidget.cpp
changeset 30 5dc02b23752f
parent 18 2f34d5167611
equal deleted inserted replaced
29:b72c6db6890b 30:5dc02b23752f
    22 #include <QtCore/QTimer>
    22 #include <QtCore/QTimer>
    23 #include <QtCore/QSettings>
    23 #include <QtCore/QSettings>
    24 
    24 
    25 #include "mediaobject.h"
    25 #include "mediaobject.h"
    26 
    26 
       
    27 #ifndef Q_OS_WINCE
       
    28 #include "videorenderer_evr.h"
    27 #include "videorenderer_vmr9.h"
    29 #include "videorenderer_vmr9.h"
       
    30 #else
       
    31 #include "videorenderer_default.h"
       
    32 #endif
    28 #include "videorenderer_soft.h"
    33 #include "videorenderer_soft.h"
    29 
    34 
    30 QT_BEGIN_NAMESPACE
    35 QT_BEGIN_NAMESPACE
    31 
    36 
    32 #ifndef QT_NO_PHONON_VIDEO
    37 #ifndef QT_NO_PHONON_VIDEO
   350         AbstractVideoRenderer *VideoWidget::getRenderer(int graphIndex, RendererType type, bool autoCreate)
   355         AbstractVideoRenderer *VideoWidget::getRenderer(int graphIndex, RendererType type, bool autoCreate)
   351         {
   356         {
   352             int index = graphIndex * 2 + type;
   357             int index = graphIndex * 2 + type;
   353             if (m_renderers[index] == 0 && autoCreate) {
   358             if (m_renderers[index] == 0 && autoCreate) {
   354                 AbstractVideoRenderer *renderer = 0;
   359                 AbstractVideoRenderer *renderer = 0;
   355 				if (type == Native) {
   360                 if (type == Native) {
   356                     renderer = new VideoRendererVMR9(m_widget);
   361 #ifndef Q_OS_WINCE
       
   362                     renderer = new VideoRendererEVR(m_widget);
   357                     if (renderer->getFilter() == 0) {
   363                     if (renderer->getFilter() == 0) {
   358                         //instanciating the renderer might fail with error VFW_E_DDRAW_CAPS_NOT_SUITABLE (0x80040273)
   364                         delete renderer;
       
   365                         //EVR not present, let's try VMR
       
   366                         renderer = new VideoRendererVMR9(m_widget);
       
   367                         if (renderer->getFilter() == 0) {
       
   368                             //instanciating the renderer might fail
       
   369                             m_noNativeRendererSupported = true;
       
   370                             delete renderer;
       
   371                             renderer = 0;
       
   372                         }
       
   373                     }
       
   374 #else
       
   375                     renderer = new VideoRendererDefault(m_widget);
       
   376                     if (renderer->getFilter() == 0) {
       
   377                         //instanciating the renderer might fail
   359                         m_noNativeRendererSupported = true;
   378                         m_noNativeRendererSupported = true;
   360                         delete renderer;
   379                         delete renderer;
   361                         renderer = 0;
   380                         renderer = 0;
   362                     }
   381                     }
       
   382 #endif
   363                 }
   383                 }
   364 
   384 
   365                 if (renderer == 0) {
   385                 if (renderer == 0) {
   366                     type = NonNative;
   386                     type = NonNative;
   367                     index = graphIndex * 2 + type;
   387                     index = graphIndex * 2 + type;