[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

vestbo at webkit.org vestbo at webkit.org
Wed Dec 22 13:57:31 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 7230c684d0471738d3c525966bd28c3ab8de23e7
Author: vestbo at webkit.org <vestbo at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Sep 30 12:29:03 2010 +0000

    [Qt] Ensure we always report a valid size for the video
    
    Reviewed by Simon Hausmann.
    
    Some QtMultimedia-backends require a paint before even giving us
    a size, so we start out by using the default video size, and then
    update it once QtMultimedia starts feeding us valid sizes.
    
    * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
    (WebCore::MediaPlayerPrivateQt::MediaPlayerPrivateQt):
    (WebCore::MediaPlayerPrivateQt::nativeSizeChanged):
    (WebCore::MediaPlayerPrivateQt::setSize):
    (WebCore::MediaPlayerPrivateQt::naturalSize):
    * platform/graphics/qt/MediaPlayerPrivateQt.h:
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@68777 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index e9477dc..6b2a951 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,20 @@
+2010-09-30  Tor Arne Vestbø  <tor.arne.vestbo at nokia.com>
+
+        Reviewed by Simon Hausmann.
+
+        [Qt] Ensure we always report a valid size for the video
+
+        Some QtMultimedia-backends require a paint before even giving us
+        a size, so we start out by using the default video size, and then
+        update it once QtMultimedia starts feeding us valid sizes.
+
+        * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
+        (WebCore::MediaPlayerPrivateQt::MediaPlayerPrivateQt):
+        (WebCore::MediaPlayerPrivateQt::nativeSizeChanged):
+        (WebCore::MediaPlayerPrivateQt::setSize):
+        (WebCore::MediaPlayerPrivateQt::naturalSize):
+        * platform/graphics/qt/MediaPlayerPrivateQt.h:
+
 2010-09-30  Nikolas Zimmermann  <nzimmermann at rim.com>
 
         Reviewed by Andreas Kling.
diff --git a/WebCore/platform/graphics/qt/MediaPlayerPrivateQt.cpp b/WebCore/platform/graphics/qt/MediaPlayerPrivateQt.cpp
index 5e70c71..fdb02ad 100644
--- a/WebCore/platform/graphics/qt/MediaPlayerPrivateQt.cpp
+++ b/WebCore/platform/graphics/qt/MediaPlayerPrivateQt.cpp
@@ -27,6 +27,7 @@
 #include "HTMLVideoElement.h"
 #include "NetworkingContext.h"
 #include "NotImplemented.h"
+#include "RenderVideo.h"
 #include "TimeRanges.h"
 #include "Widget.h"
 #include "qwebframe.h"
@@ -93,6 +94,8 @@ MediaPlayerPrivateQt::MediaPlayerPrivateQt(MediaPlayer* player)
     , m_videoScene(new QGraphicsScene)
     , m_networkState(MediaPlayer::Empty)
     , m_readyState(MediaPlayer::HaveNothing)
+    , m_currentSize(0, 0)
+    , m_naturalSize(RenderVideo::defaultSize())
     , m_isVisible(false)
     , m_isSeeking(false)
     , m_composited(false)
@@ -438,8 +441,15 @@ void MediaPlayerPrivateQt::stateChanged(QMediaPlayer::State state)
     }
 }
 
-void MediaPlayerPrivateQt::nativeSizeChanged(const QSizeF&)
+void MediaPlayerPrivateQt::nativeSizeChanged(const QSizeF& size)
 {
+    LOG(Media, "MediaPlayerPrivateQt::naturalSizeChanged(%dx%d)",
+            size.toSize().width(), size.toSize().height());
+
+    if (!size.isValid())
+        return;
+
+    m_naturalSize = size.toSize();
     m_webCorePlayer->sizeChanged();
 }
 
@@ -547,6 +557,9 @@ void MediaPlayerPrivateQt::updateStates()
 
 void MediaPlayerPrivateQt::setSize(const IntSize& size)
 {
+    LOG(Media, "MediaPlayerPrivateQt::setSize(%dx%d)",
+            size.width(), size.height());
+
     if (size == m_currentSize)
         return;
 
@@ -556,10 +569,15 @@ void MediaPlayerPrivateQt::setSize(const IntSize& size)
 
 IntSize MediaPlayerPrivateQt::naturalSize() const
 {
-    if (!hasVideo() || m_readyState < MediaPlayer::HaveMetadata)
+    if (!hasVideo() ||  m_readyState < MediaPlayer::HaveMetadata) {
+        LOG(Media, "MediaPlayerPrivateQt::naturalSize() -> 0x0 (!hasVideo || !haveMetaData)");
         return IntSize();
+    }
+
+    LOG(Media, "MediaPlayerPrivateQt::naturalSize() -> %dx%d (m_naturalSize)",
+            m_naturalSize.width(), m_naturalSize.height());
 
-    return IntSize(m_videoItem->nativeSize().toSize());
+    return m_naturalSize;
 }
 
 void MediaPlayerPrivateQt::paint(GraphicsContext* context, const IntRect& rect)
diff --git a/WebCore/platform/graphics/qt/MediaPlayerPrivateQt.h b/WebCore/platform/graphics/qt/MediaPlayerPrivateQt.h
index 179bf2a..ba85f8f 100644
--- a/WebCore/platform/graphics/qt/MediaPlayerPrivateQt.h
+++ b/WebCore/platform/graphics/qt/MediaPlayerPrivateQt.h
@@ -130,6 +130,7 @@ private:
     mutable MediaPlayer::ReadyState m_readyState;
 
     IntSize m_currentSize;
+    IntSize m_naturalSize;
     bool m_isVisible;
     bool m_isSeeking;
     bool m_composited;

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list