src/3rdparty/phonon/mmf/abstractvideoplayer.cpp
changeset 33 3e2da88830cd
parent 22 79de32ba3296
child 37 758a864f9613
--- a/src/3rdparty/phonon/mmf/abstractvideoplayer.cpp	Tue Jul 06 15:10:48 2010 +0300
+++ b/src/3rdparty/phonon/mmf/abstractvideoplayer.cpp	Wed Aug 18 10:37:55 2010 +0300
@@ -66,6 +66,8 @@
 
     createPlayer();
 
+    m_player->RegisterForVideoLoadingNotification(*this);
+
     TRACE_EXIT_0();
 }
 
@@ -211,7 +213,8 @@
     TRACE_CONTEXT(AbstractVideoPlayer::aspectRatioChanged, EVideoInternal);
     TRACE_ENTRY("state %d aspectRatio %d", state());
 
-    updateScaleFactors(m_videoOutput->videoWindowSize());
+    if (m_videoOutput)
+        updateScaleFactors(m_videoOutput->videoWindowSize());
 
     TRACE_EXIT_0();
 }
@@ -221,7 +224,8 @@
     TRACE_CONTEXT(AbstractVideoPlayer::scaleModeChanged, EVideoInternal);
     TRACE_ENTRY("state %d", state());
 
-    updateScaleFactors(m_videoOutput->videoWindowSize());
+    if (m_videoOutput)
+        updateScaleFactors(m_videoOutput->videoWindowSize());
 
     TRACE_EXIT_0();
 }
@@ -357,6 +361,8 @@
 
 void MMF::AbstractVideoPlayer::initVideoOutput()
 {
+    Q_ASSERT(m_videoOutput);
+
     bool connected = connect(
         m_videoOutput, SIGNAL(videoWindowChanged()),
         this, SLOT(videoWindowChanged())
@@ -378,9 +384,6 @@
     // Suppress warnings in release builds
     Q_UNUSED(connected);
 
-    // Do these after all connections are complete, to ensure
-    // that any signals generated get to their destinations.
-    m_videoOutput->winId();
     m_videoOutput->setVideoSize(m_videoFrameSize);
 }
 
@@ -400,6 +403,8 @@
 
 void MMF::AbstractVideoPlayer::updateScaleFactors(const QSize &windowSize, bool apply)
 {
+    Q_ASSERT(m_videoOutput);
+
     if (m_videoFrameSize.isValid()) {
         QRect videoRect;