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; |