[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