<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[180839] trunk/Source/WebCore</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/180839">180839</a></dd>
<dt>Author</dt> <dd>simon.fraser@apple.com</dd>
<dt>Date</dt> <dd>2015-02-28 12:58:51 -0800 (Sat, 28 Feb 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Fullscreen video layers are off by one sometimes
https://bugs.webkit.org/show_bug.cgi?id=142122
rdar://problem/19878821

Reviewed by Eric Carlson.

Convert MediaPlayer::naturalSize() to return a FloatSize, since the natural size
isn't always integral (because of preserving pixel aspect ratio etc). Fix all the media
backends to use FloatSizes for natural size. Convert the video image drawing code
paths to FloatSize, since naturalSize is used on the destination rect computation,
and painting should be floating point anyway.

Give the layer created by SourceBufferPrivateAVFObjC a name in debug builds.

* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::videoWidth):
(WebCore::HTMLVideoElement::videoHeight):
(WebCore::HTMLVideoElement::paintCurrentFrameInContext):
* html/HTMLVideoElement.h:
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::size):
(WebCore::CanvasRenderingContext2D::drawImage):
* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::videoFrameToImage):
* platform/graphics/MediaPlayer.cpp:
(WebCore::NullMediaPlayerPrivate::naturalSize):
(WebCore::MediaPlayer::naturalSize):
(WebCore::MediaPlayer::paint):
(WebCore::MediaPlayer::paintCurrentFrameInContext):
(WebCore::NullMediaPlayerPrivate::paint): Deleted.
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::paintCurrentFrameInContext):
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::naturalSize):
(WebCore::MediaPlayerPrivateAVFoundation::setNaturalSize):
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::paintCurrentFrameInContext):
(WebCore::MediaPlayerPrivateAVFoundationObjC::paint):
(WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithImageGenerator):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createImageForTimeInRect):
(WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged):
(WebCore::MediaPlayerPrivateAVFoundationObjC::sizeChanged):
(WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::naturalSize):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::paint):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::paintCurrentFrameInContext):
* platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
(WebCore::MediaSourcePrivateAVFObjC::naturalSize):
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled):
(WebCore::SourceBufferPrivateAVFObjC::naturalSize):
* platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.h:
* platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.mm:
(WebCore::VideoTrackPrivateMediaSourceAVFObjC::naturalSize):
* platform/graphics/mac/MediaPlayerPrivateQTKit.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivateQTKit::naturalSize):
(WebCore::MediaPlayerPrivateQTKit::paintCurrentFrameInContext):
(WebCore::MediaPlayerPrivateQTKit::paint):
* platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
(WebCore::MockMediaPlayerMediaSource::naturalSize):
(WebCore::MockMediaPlayerMediaSource::paint):
* platform/mock/mediasource/MockMediaPlayerMediaSource.h:
* rendering/RenderVideo.cpp:
(WebCore::RenderVideo::calculateIntrinsicSize):
(WebCore::RenderVideo::paintReplaced):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLVideoElementcpp">trunk/Source/WebCore/html/HTMLVideoElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLVideoElementh">trunk/Source/WebCore/html/HTMLVideoElement.h</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasCanvasRenderingContext2Dcpp">trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasWebGLRenderingContextBasecpp">trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsMediaPlayercpp">trunk/Source/WebCore/platform/graphics/MediaPlayer.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsMediaPlayerh">trunk/Source/WebCore/platform/graphics/MediaPlayer.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsMediaPlayerPrivateh">trunk/Source/WebCore/platform/graphics/MediaPlayerPrivate.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationMediaPlayerPrivateAVFoundationcpp">trunk/Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationMediaPlayerPrivateAVFoundationh">trunk/Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationcfMediaPlayerPrivateAVFoundationCFcpp">trunk/Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationcfMediaPlayerPrivateAVFoundationCFh">trunk/Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateAVFoundationObjCh">trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateAVFoundationObjCmm">trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateMediaSourceAVFObjCh">trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateMediaSourceAVFObjCmm">trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationobjcMediaSourcePrivateAVFObjCh">trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationobjcMediaSourcePrivateAVFObjCmm">trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationobjcSourceBufferPrivateAVFObjCh">trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationobjcSourceBufferPrivateAVFObjCmm">trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationobjcVideoTrackPrivateMediaSourceAVFObjCh">trunk/Source/WebCore/platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationobjcVideoTrackPrivateMediaSourceAVFObjCmm">trunk/Source/WebCore/platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsgstreamerMediaPlayerPrivateGStreamerBasecpp">trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsgstreamerMediaPlayerPrivateGStreamerBaseh">trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsmacMediaPlayerPrivateQTKith">trunk/Source/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsmacMediaPlayerPrivateQTKitmm">trunk/Source/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicswinMediaPlayerPrivateMediaFoundationcpp">trunk/Source/WebCore/platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicswinMediaPlayerPrivateMediaFoundationh">trunk/Source/WebCore/platform/graphics/win/MediaPlayerPrivateMediaFoundation.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmockmediasourceMockMediaPlayerMediaSourcecpp">trunk/Source/WebCore/platform/mock/mediasource/MockMediaPlayerMediaSource.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmockmediasourceMockMediaPlayerMediaSourceh">trunk/Source/WebCore/platform/mock/mediasource/MockMediaPlayerMediaSource.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderVideocpp">trunk/Source/WebCore/rendering/RenderVideo.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (180838 => 180839)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-02-28 20:20:31 UTC (rev 180838)
+++ trunk/Source/WebCore/ChangeLog        2015-02-28 20:58:51 UTC (rev 180839)
</span><span class="lines">@@ -1,3 +1,79 @@
</span><ins>+2015-02-28  Simon Fraser  &lt;simon.fraser@apple.com&gt;
+
+        Fullscreen video layers are off by one sometimes
+        https://bugs.webkit.org/show_bug.cgi?id=142122
+        rdar://problem/19878821
+
+        Reviewed by Eric Carlson.
+
+        Convert MediaPlayer::naturalSize() to return a FloatSize, since the natural size
+        isn't always integral (because of preserving pixel aspect ratio etc). Fix all the media
+        backends to use FloatSizes for natural size. Convert the video image drawing code
+        paths to FloatSize, since naturalSize is used on the destination rect computation,
+        and painting should be floating point anyway.
+        
+        Give the layer created by SourceBufferPrivateAVFObjC a name in debug builds.
+
+        * html/HTMLVideoElement.cpp:
+        (WebCore::HTMLVideoElement::videoWidth):
+        (WebCore::HTMLVideoElement::videoHeight):
+        (WebCore::HTMLVideoElement::paintCurrentFrameInContext):
+        * html/HTMLVideoElement.h:
+        * html/canvas/CanvasRenderingContext2D.cpp:
+        (WebCore::size):
+        (WebCore::CanvasRenderingContext2D::drawImage):
+        * html/canvas/WebGLRenderingContextBase.cpp:
+        (WebCore::WebGLRenderingContextBase::videoFrameToImage):
+        * platform/graphics/MediaPlayer.cpp:
+        (WebCore::NullMediaPlayerPrivate::naturalSize):
+        (WebCore::MediaPlayer::naturalSize):
+        (WebCore::MediaPlayer::paint):
+        (WebCore::MediaPlayer::paintCurrentFrameInContext):
+        (WebCore::NullMediaPlayerPrivate::paint): Deleted.
+        * platform/graphics/MediaPlayer.h:
+        * platform/graphics/MediaPlayerPrivate.h:
+        (WebCore::MediaPlayerPrivateInterface::paintCurrentFrameInContext):
+        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
+        (WebCore::MediaPlayerPrivateAVFoundation::naturalSize):
+        (WebCore::MediaPlayerPrivateAVFoundation::setNaturalSize):
+        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::paintCurrentFrameInContext):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::paint):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithImageGenerator):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::createImageForTimeInRect):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::sizeChanged):
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput):
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
+        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::naturalSize):
+        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::paint):
+        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::paintCurrentFrameInContext):
+        * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
+        * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
+        (WebCore::MediaSourcePrivateAVFObjC::naturalSize):
+        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
+        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
+        (WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled):
+        (WebCore::SourceBufferPrivateAVFObjC::naturalSize):
+        * platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.h:
+        * platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.mm:
+        (WebCore::VideoTrackPrivateMediaSourceAVFObjC::naturalSize):
+        * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
+        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
+        (WebCore::MediaPlayerPrivateQTKit::naturalSize):
+        (WebCore::MediaPlayerPrivateQTKit::paintCurrentFrameInContext):
+        (WebCore::MediaPlayerPrivateQTKit::paint):
+        * platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
+        (WebCore::MockMediaPlayerMediaSource::naturalSize):
+        (WebCore::MockMediaPlayerMediaSource::paint):
+        * platform/mock/mediasource/MockMediaPlayerMediaSource.h:
+        * rendering/RenderVideo.cpp:
+        (WebCore::RenderVideo::calculateIntrinsicSize):
+        (WebCore::RenderVideo::paintReplaced):
+
</ins><span class="cx"> 2015-02-27  Hunseop Jeong  &lt;hs85.jeong@samsung.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [EFL][GTK] Fix build break after r180790,180798
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLVideoElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLVideoElement.cpp (180838 => 180839)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLVideoElement.cpp        2015-02-28 20:20:31 UTC (rev 180838)
+++ trunk/Source/WebCore/html/HTMLVideoElement.cpp        2015-02-28 20:58:51 UTC (rev 180839)
</span><span class="lines">@@ -171,14 +171,14 @@
</span><span class="cx"> {
</span><span class="cx">     if (!player())
</span><span class="cx">         return 0;
</span><del>-    return player()-&gt;naturalSize().width();
</del><ins>+    return clampToUnsigned(player()-&gt;naturalSize().width());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> unsigned HTMLVideoElement::videoHeight() const
</span><span class="cx"> {
</span><span class="cx">     if (!player())
</span><span class="cx">         return 0;
</span><del>-    return player()-&gt;naturalSize().height();
</del><ins>+    return clampToUnsigned(player()-&gt;naturalSize().height());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool HTMLVideoElement::isURLAttribute(const Attribute&amp; attribute) const
</span><span class="lines">@@ -235,7 +235,7 @@
</span><span class="cx">         setDisplayMode(Poster);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void HTMLVideoElement::paintCurrentFrameInContext(GraphicsContext* context, const IntRect&amp; destRect)
</del><ins>+void HTMLVideoElement::paintCurrentFrameInContext(GraphicsContext* context, const FloatRect&amp; destRect)
</ins><span class="cx"> {
</span><span class="cx">     MediaPlayer* player = HTMLMediaElement::player();
</span><span class="cx">     if (!player)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLVideoElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLVideoElement.h (180838 => 180839)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLVideoElement.h        2015-02-28 20:20:31 UTC (rev 180838)
+++ trunk/Source/WebCore/html/HTMLVideoElement.h        2015-02-28 20:58:51 UTC (rev 180839)
</span><span class="lines">@@ -65,7 +65,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     // Used by canvas to gain raw pixel access
</span><del>-    void paintCurrentFrameInContext(GraphicsContext*, const IntRect&amp;);
</del><ins>+    void paintCurrentFrameInContext(GraphicsContext*, const FloatRect&amp;);
</ins><span class="cx"> 
</span><span class="cx">     PassNativeImagePtr nativeImageForCurrentTime();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasCanvasRenderingContext2Dcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp (180838 => 180839)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp        2015-02-28 20:20:31 UTC (rev 180838)
+++ trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp        2015-02-28 20:58:51 UTC (rev 180839)
</span><span class="lines">@@ -1288,11 +1288,11 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(VIDEO)
</span><del>-static IntSize size(HTMLVideoElement* video)
</del><ins>+static FloatSize size(HTMLVideoElement* video)
</ins><span class="cx"> {
</span><span class="cx">     if (MediaPlayer* player = video-&gt;player())
</span><span class="cx">         return player-&gt;naturalSize();
</span><del>-    return IntSize();
</del><ins>+    return FloatSize();
</ins><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="lines">@@ -1485,8 +1485,8 @@
</span><span class="cx">         ec = TYPE_MISMATCH_ERR;
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    IntSize s = size(video);
-    drawImage(video, x, y, s.width(), s.height(), ec);
</del><ins>+    FloatSize videoSize = size(video);
+    drawImage(video, x, y, videoSize.width(), videoSize.height(), ec);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void CanvasRenderingContext2D::drawImage(HTMLVideoElement* video,
</span><span class="lines">@@ -1496,8 +1496,8 @@
</span><span class="cx">         ec = TYPE_MISMATCH_ERR;
</span><span class="cx">         return;
</span><span class="cx">     }
</span><del>-    IntSize s = size(video);
-    drawImage(video, FloatRect(0, 0, s.width(), s.height()), FloatRect(x, y, width, height), ec);
</del><ins>+    FloatSize videoSize = size(video);
+    drawImage(video, FloatRect(0, 0, videoSize.width(), videoSize.height()), FloatRect(x, y, width, height), ec);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void CanvasRenderingContext2D::drawImage(HTMLVideoElement* video,
</span><span class="lines">@@ -1554,7 +1554,7 @@
</span><span class="cx">     c-&gt;translate(dstRect.x(), dstRect.y());
</span><span class="cx">     c-&gt;scale(FloatSize(dstRect.width() / srcRect.width(), dstRect.height() / srcRect.height()));
</span><span class="cx">     c-&gt;translate(-srcRect.x(), -srcRect.y());
</span><del>-    video-&gt;paintCurrentFrameInContext(c, IntRect(IntPoint(), size(video)));
</del><ins>+    video-&gt;paintCurrentFrameInContext(c, FloatRect(FloatPoint(), size(video)));
</ins><span class="cx">     stateSaver.restore();
</span><span class="cx">     didDraw(dstRect);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasWebGLRenderingContextBasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp (180838 => 180839)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp        2015-02-28 20:20:31 UTC (rev 180838)
+++ trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp        2015-02-28 20:58:51 UTC (rev 180839)
</span><span class="lines">@@ -3246,7 +3246,7 @@
</span><span class="cx">         synthesizeGLError(GraphicsContext3D::OUT_OF_MEMORY, &quot;texImage2D&quot;, &quot;out of memory&quot;);
</span><span class="cx">         return nullptr;
</span><span class="cx">     }
</span><del>-    IntRect destRect(0, 0, size.width(), size.height());
</del><ins>+    FloatRect destRect(0, 0, size.width(), size.height());
</ins><span class="cx">     // FIXME: Turn this into a GPU-GPU texture copy instead of CPU readback.
</span><span class="cx">     video-&gt;paintCurrentFrameInContext(buf-&gt;context(), destRect);
</span><span class="cx">     return buf-&gt;copyImage(backingStoreCopy);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsMediaPlayercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/MediaPlayer.cpp (180838 => 180839)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/MediaPlayer.cpp        2015-02-28 20:20:31 UTC (rev 180838)
+++ trunk/Source/WebCore/platform/graphics/MediaPlayer.cpp        2015-02-28 20:58:51 UTC (rev 180839)
</span><span class="lines">@@ -94,7 +94,7 @@
</span><span class="cx">     virtual PlatformMedia platformMedia() const { return NoPlatformMedia; }
</span><span class="cx">     virtual PlatformLayer* platformLayer() const { return 0; }
</span><span class="cx"> 
</span><del>-    virtual IntSize naturalSize() const { return IntSize(0, 0); }
</del><ins>+    virtual FloatSize naturalSize() const { return FloatSize(); }
</ins><span class="cx"> 
</span><span class="cx">     virtual bool hasVideo() const { return false; }
</span><span class="cx">     virtual bool hasAudio() const { return false; }
</span><span class="lines">@@ -131,7 +131,7 @@
</span><span class="cx"> 
</span><span class="cx">     virtual void setSize(const IntSize&amp;) { }
</span><span class="cx"> 
</span><del>-    virtual void paint(GraphicsContext*, const IntRect&amp;) { }
</del><ins>+    virtual void paint(GraphicsContext*, const FloatRect&amp;) override { }
</ins><span class="cx"> 
</span><span class="cx">     virtual bool canLoadPoster() const { return false; }
</span><span class="cx">     virtual void setPoster(const String&amp;) { }
</span><span class="lines">@@ -544,7 +544,7 @@
</span><span class="cx">     return m_private-&gt;requiresImmediateCompositing();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-IntSize MediaPlayer::naturalSize()
</del><ins>+FloatSize MediaPlayer::naturalSize()
</ins><span class="cx"> {
</span><span class="cx">     return m_private-&gt;naturalSize();
</span><span class="cx"> }
</span><span class="lines">@@ -733,12 +733,12 @@
</span><span class="cx">     m_private-&gt;setPreload(preload);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void MediaPlayer::paint(GraphicsContext* p, const IntRect&amp; r)
</del><ins>+void MediaPlayer::paint(GraphicsContext* p, const FloatRect&amp; r)
</ins><span class="cx"> {
</span><span class="cx">     m_private-&gt;paint(p, r);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void MediaPlayer::paintCurrentFrameInContext(GraphicsContext* p, const IntRect&amp; r)
</del><ins>+void MediaPlayer::paintCurrentFrameInContext(GraphicsContext* p, const FloatRect&amp; r)
</ins><span class="cx"> {
</span><span class="cx">     m_private-&gt;paintCurrentFrameInContext(p, r);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsMediaPlayerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/MediaPlayer.h (180838 => 180839)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/MediaPlayer.h        2015-02-28 20:20:31 UTC (rev 180838)
+++ trunk/Source/WebCore/platform/graphics/MediaPlayer.h        2015-02-28 20:58:51 UTC (rev 180839)
</span><span class="lines">@@ -311,7 +311,7 @@
</span><span class="cx">     String errorLog() const;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    IntSize naturalSize();
</del><ins>+    FloatSize naturalSize();
</ins><span class="cx">     bool hasVideo() const;
</span><span class="cx">     bool hasAudio() const;
</span><span class="cx"> 
</span><span class="lines">@@ -391,8 +391,8 @@
</span><span class="cx">     bool autoplay() const;
</span><span class="cx">     void setAutoplay(bool);
</span><span class="cx"> 
</span><del>-    void paint(GraphicsContext*, const IntRect&amp;);
-    void paintCurrentFrameInContext(GraphicsContext*, const IntRect&amp;);
</del><ins>+    void paint(GraphicsContext*, const FloatRect&amp;);
+    void paintCurrentFrameInContext(GraphicsContext*, const FloatRect&amp;);
</ins><span class="cx"> 
</span><span class="cx">     // copyVideoTextureToPlatformTexture() is used to do the GPU-GPU textures copy without a readback to system memory.
</span><span class="cx">     // The first five parameters denote the corresponding GraphicsContext, destination texture, requested level, requested type and the required internalFormat for destination texture.
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsMediaPlayerPrivateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/MediaPlayerPrivate.h (180838 => 180839)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/MediaPlayerPrivate.h        2015-02-28 20:20:31 UTC (rev 180838)
+++ trunk/Source/WebCore/platform/graphics/MediaPlayerPrivate.h        2015-02-28 20:58:51 UTC (rev 180839)
</span><span class="lines">@@ -74,7 +74,7 @@
</span><span class="cx"> 
</span><span class="cx">     virtual bool canSaveMediaData() const { return false; }
</span><span class="cx"> 
</span><del>-    virtual IntSize naturalSize() const = 0;
</del><ins>+    virtual FloatSize naturalSize() const = 0;
</ins><span class="cx"> 
</span><span class="cx">     virtual bool hasVideo() const = 0;
</span><span class="cx">     virtual bool hasAudio() const = 0;
</span><span class="lines">@@ -137,9 +137,9 @@
</span><span class="cx"> 
</span><span class="cx">     virtual void setSize(const IntSize&amp;) = 0;
</span><span class="cx"> 
</span><del>-    virtual void paint(GraphicsContext*, const IntRect&amp;) = 0;
</del><ins>+    virtual void paint(GraphicsContext*, const FloatRect&amp;) = 0;
</ins><span class="cx"> 
</span><del>-    virtual void paintCurrentFrameInContext(GraphicsContext* c, const IntRect&amp; r) { paint(c, r); }
</del><ins>+    virtual void paintCurrentFrameInContext(GraphicsContext* c, const FloatRect&amp; r) { paint(c, r); }
</ins><span class="cx">     virtual bool copyVideoTextureToPlatformTexture(GraphicsContext3D*, Platform3DObject, GC3Dint, GC3Denum, GC3Denum, bool, bool) { return false; }
</span><span class="cx">     virtual PassNativeImagePtr nativeImageForCurrentTime() { return nullptr; }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationMediaPlayerPrivateAVFoundationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp (180838 => 180839)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp        2015-02-28 20:20:31 UTC (rev 180838)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp        2015-02-28 20:58:51 UTC (rev 180839)
</span><span class="lines">@@ -307,7 +307,7 @@
</span><span class="cx">     return m_seeking;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-IntSize MediaPlayerPrivateAVFoundation::naturalSize() const
</del><ins>+FloatSize MediaPlayerPrivateAVFoundation::naturalSize() const
</ins><span class="cx"> {
</span><span class="cx">     if (!metaDataAvailable())
</span><span class="cx">         return IntSize();
</span><span class="lines">@@ -322,11 +322,11 @@
</span><span class="cx">     return m_cachedNaturalSize;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void MediaPlayerPrivateAVFoundation::setNaturalSize(IntSize size)
</del><ins>+void MediaPlayerPrivateAVFoundation::setNaturalSize(FloatSize size)
</ins><span class="cx"> {
</span><del>-    LOG(Media, &quot;MediaPlayerPrivateAVFoundation:setNaturalSize(%p) - size = %d x %d&quot;, this, size.width(), size.height());
</del><ins>+    LOG(Media, &quot;MediaPlayerPrivateAVFoundation:setNaturalSize(%p) - size = %f x %f&quot;, this, size.width(), size.height());
</ins><span class="cx"> 
</span><del>-    IntSize oldSize = m_cachedNaturalSize;
</del><ins>+    FloatSize oldSize = m_cachedNaturalSize;
</ins><span class="cx">     m_cachedNaturalSize = size;
</span><span class="cx">     if (oldSize != m_cachedNaturalSize)
</span><span class="cx">         m_player-&gt;sizeChanged();
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationMediaPlayerPrivateAVFoundationh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h (180838 => 180839)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h        2015-02-28 20:20:31 UTC (rev 180838)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h        2015-02-28 20:58:51 UTC (rev 180839)
</span><span class="lines">@@ -161,7 +161,7 @@
</span><span class="cx">     virtual void play() override;
</span><span class="cx">     virtual void pause() override;
</span><span class="cx"> 
</span><del>-    virtual IntSize naturalSize() const override;
</del><ins>+    virtual FloatSize naturalSize() const override;
</ins><span class="cx">     virtual bool hasVideo() const override { return m_cachedHasVideo; }
</span><span class="cx">     virtual bool hasAudio() const override { return m_cachedHasAudio; }
</span><span class="cx">     virtual void setVisible(bool) override;
</span><span class="lines">@@ -181,8 +181,8 @@
</span><span class="cx">     virtual std::unique_ptr&lt;PlatformTimeRanges&gt; buffered() const override;
</span><span class="cx">     virtual bool didLoadingProgress() const override;
</span><span class="cx">     virtual void setSize(const IntSize&amp;) override;
</span><del>-    virtual void paint(GraphicsContext*, const IntRect&amp;) = 0;
-    virtual void paintCurrentFrameInContext(GraphicsContext*, const IntRect&amp;) = 0;
</del><ins>+    virtual void paint(GraphicsContext*, const FloatRect&amp;) = 0;
+    virtual void paintCurrentFrameInContext(GraphicsContext*, const FloatRect&amp;) = 0;
</ins><span class="cx">     virtual void setPreload(MediaPlayer::Preload) override;
</span><span class="cx">     virtual PlatformLayer* platformLayer() const { return 0; }
</span><span class="cx">     virtual bool supportsAcceleratedRendering() const = 0;
</span><span class="lines">@@ -265,7 +265,7 @@
</span><span class="cx">     void setDelayCharacteristicsChangedNotification(bool);
</span><span class="cx">     void setDelayCallbacks(bool) const;
</span><span class="cx">     void setIgnoreLoadStateChanges(bool delay) { m_ignoreLoadStateChanges = delay; }
</span><del>-    void setNaturalSize(IntSize);
</del><ins>+    void setNaturalSize(FloatSize);
</ins><span class="cx">     bool isLiveStream() const { return std::isinf(duration()); }
</span><span class="cx"> 
</span><span class="cx">     enum MediaRenderingMode { MediaRenderingNone, MediaRenderingToContext, MediaRenderingToLayer };
</span><span class="lines">@@ -320,7 +320,7 @@
</span><span class="cx">     String m_assetURL;
</span><span class="cx">     MediaPlayer::Preload m_preload;
</span><span class="cx"> 
</span><del>-    IntSize m_cachedNaturalSize;
</del><ins>+    FloatSize m_cachedNaturalSize;
</ins><span class="cx">     mutable MediaTime m_cachedMaxTimeLoaded;
</span><span class="cx">     mutable MediaTime m_cachedMaxTimeSeekable;
</span><span class="cx">     mutable MediaTime m_cachedMinTimeSeekable;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationcfMediaPlayerPrivateAVFoundationCFcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp (180838 => 180839)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp        2015-02-28 20:20:31 UTC (rev 180838)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp        2015-02-28 20:58:51 UTC (rev 180839)
</span><span class="lines">@@ -106,7 +106,7 @@
</span><span class="cx"> 
</span><span class="cx">     void createImageGenerator();
</span><span class="cx">     void destroyImageGenerator();
</span><del>-    RetainPtr&lt;CGImageRef&gt; createImageForTimeInRect(const MediaTime&amp;, const IntRect&amp;);
</del><ins>+    RetainPtr&lt;CGImageRef&gt; createImageForTimeInRect(const MediaTime&amp;, const FloatRect&amp;);
</ins><span class="cx"> 
</span><span class="cx">     void createAssetForURL(const String&amp; url, bool inheritURI);
</span><span class="cx">     void setAsset(AVCFURLAssetRef);
</span><span class="lines">@@ -831,7 +831,7 @@
</span><span class="cx">     return MediaPlayerAVAssetStatusLoaded;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void MediaPlayerPrivateAVFoundationCF::paintCurrentFrameInContext(GraphicsContext* context, const IntRect&amp; rect)
</del><ins>+void MediaPlayerPrivateAVFoundationCF::paintCurrentFrameInContext(GraphicsContext* context, const FloatRect&amp; rect)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(isMainThread());
</span><span class="cx">     if (!metaDataAvailable() || context-&gt;paintingDisabled())
</span><span class="lines">@@ -846,7 +846,7 @@
</span><span class="cx">     paint(context, rect);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void MediaPlayerPrivateAVFoundationCF::paint(GraphicsContext* context, const IntRect&amp; rect)
</del><ins>+void MediaPlayerPrivateAVFoundationCF::paint(GraphicsContext* context, const FloatRect&amp; rect)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(isMainThread());
</span><span class="cx">     if (!metaDataAvailable() || context-&gt;paintingDisabled() || !imageGenerator(m_avfWrapper))
</span><span class="lines">@@ -861,7 +861,7 @@
</span><span class="cx">         context-&gt;translate(rect.x(), rect.y() + rect.height());
</span><span class="cx">         context-&gt;scale(FloatSize(1.0f, -1.0f));
</span><span class="cx">         context-&gt;setImageInterpolationQuality(InterpolationLow);
</span><del>-        IntRect paintRect(IntPoint(0, 0), IntSize(rect.width(), rect.height()));
</del><ins>+        FloatRect paintRect(FloatPoint(), rect.size());
</ins><span class="cx">         CGContextDrawImage(context-&gt;platformContext(), CGRectMake(0, 0, paintRect.width(), paintRect.height()), image.get());
</span><span class="cx">         context-&gt;restore();
</span><span class="cx">         image = 0;
</span><span class="lines">@@ -2000,7 +2000,7 @@
</span><span class="cx">     m_imageGenerator = 0;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RetainPtr&lt;CGImageRef&gt; AVFWrapper::createImageForTimeInRect(const MediaTime&amp; time, const IntRect&amp; rect)
</del><ins>+RetainPtr&lt;CGImageRef&gt; AVFWrapper::createImageForTimeInRect(const MediaTime&amp; time, const FloatRect&amp; rect)
</ins><span class="cx"> {
</span><span class="cx">     if (!m_imageGenerator)
</span><span class="cx">         return 0;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationcfMediaPlayerPrivateAVFoundationCFh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h (180838 => 180839)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h        2015-02-28 20:20:31 UTC (rev 180838)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h        2015-02-28 20:58:51 UTC (rev 180839)
</span><span class="lines">@@ -75,8 +75,8 @@
</span><span class="cx">     virtual MediaTime currentMediaTime() const override;
</span><span class="cx">     virtual void setVolume(float);
</span><span class="cx">     virtual void setClosedCaptionsVisible(bool);
</span><del>-    virtual void paint(GraphicsContext*, const IntRect&amp;);
-    virtual void paintCurrentFrameInContext(GraphicsContext*, const IntRect&amp;);
</del><ins>+    virtual void paint(GraphicsContext*, const FloatRect&amp;);
+    virtual void paintCurrentFrameInContext(GraphicsContext*, const FloatRect&amp;);
</ins><span class="cx">     virtual PlatformLayer* platformLayer() const;
</span><span class="cx">     virtual bool supportsAcceleratedRendering() const { return true; }
</span><span class="cx">     virtual MediaTime mediaTimeForTimeValue(const MediaTime&amp;) const;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateAVFoundationObjCh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h (180838 => 180839)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h        2015-02-28 20:20:31 UTC (rev 180838)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h        2015-02-28 20:58:51 UTC (rev 180839)
</span><span class="lines">@@ -150,8 +150,8 @@
</span><span class="cx">     virtual MediaTime currentMediaTime() const override;
</span><span class="cx">     virtual void setVolume(float);
</span><span class="cx">     virtual void setClosedCaptionsVisible(bool);
</span><del>-    virtual void paint(GraphicsContext*, const IntRect&amp;);
-    virtual void paintCurrentFrameInContext(GraphicsContext*, const IntRect&amp;);
</del><ins>+    virtual void paint(GraphicsContext*, const FloatRect&amp;);
+    virtual void paintCurrentFrameInContext(GraphicsContext*, const FloatRect&amp;);
</ins><span class="cx">     virtual PlatformLayer* platformLayer() const;
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">     virtual void setVideoFullscreenLayer(PlatformLayer*);
</span><span class="lines">@@ -217,8 +217,8 @@
</span><span class="cx"> 
</span><span class="cx">     void createImageGenerator();
</span><span class="cx">     void destroyImageGenerator();
</span><del>-    RetainPtr&lt;CGImageRef&gt; createImageForTimeInRect(float, const IntRect&amp;);
-    void paintWithImageGenerator(GraphicsContext*, const IntRect&amp;);
</del><ins>+    RetainPtr&lt;CGImageRef&gt; createImageForTimeInRect(float, const FloatRect&amp;);
+    void paintWithImageGenerator(GraphicsContext*, const FloatRect&amp;);
</ins><span class="cx"> 
</span><span class="cx"> #if HAVE(AVFOUNDATION_VIDEO_OUTPUT)
</span><span class="cx">     void createVideoOutput();
</span><span class="lines">@@ -226,7 +226,7 @@
</span><span class="cx">     RetainPtr&lt;CVPixelBufferRef&gt; createPixelBuffer();
</span><span class="cx">     void updateLastImage();
</span><span class="cx">     bool videoOutputHasAvailableFrame();
</span><del>-    void paintWithVideoOutput(GraphicsContext*, const IntRect&amp;);
</del><ins>+    void paintWithVideoOutput(GraphicsContext*, const FloatRect&amp;);
</ins><span class="cx">     virtual PassNativeImagePtr nativeImageForCurrentTime() override;
</span><span class="cx">     void waitForVideoOutputMediaDataWillChange();
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateAVFoundationObjCmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm (180838 => 180839)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm        2015-02-28 20:20:31 UTC (rev 180838)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm        2015-02-28 20:58:51 UTC (rev 180839)
</span><span class="lines">@@ -1466,7 +1466,7 @@
</span><span class="cx">     return [error code];
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void MediaPlayerPrivateAVFoundationObjC::paintCurrentFrameInContext(GraphicsContext* context, const IntRect&amp; rect)
</del><ins>+void MediaPlayerPrivateAVFoundationObjC::paintCurrentFrameInContext(GraphicsContext* context, const FloatRect&amp; rect)
</ins><span class="cx"> {
</span><span class="cx">     if (!metaDataAvailable() || context-&gt;paintingDisabled())
</span><span class="cx">         return;
</span><span class="lines">@@ -1487,7 +1487,7 @@
</span><span class="cx">     m_videoFrameHasDrawn = true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void MediaPlayerPrivateAVFoundationObjC::paint(GraphicsContext* context, const IntRect&amp; rect)
</del><ins>+void MediaPlayerPrivateAVFoundationObjC::paint(GraphicsContext* context, const FloatRect&amp; rect)
</ins><span class="cx"> {
</span><span class="cx">     if (!metaDataAvailable() || context-&gt;paintingDisabled())
</span><span class="cx">         return;
</span><span class="lines">@@ -1503,7 +1503,7 @@
</span><span class="cx">     paintCurrentFrameInContext(context, rect);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void MediaPlayerPrivateAVFoundationObjC::paintWithImageGenerator(GraphicsContext* context, const IntRect&amp; rect)
</del><ins>+void MediaPlayerPrivateAVFoundationObjC::paintWithImageGenerator(GraphicsContext* context, const FloatRect&amp; rect)
</ins><span class="cx"> {
</span><span class="cx">     LOG(Media, &quot;MediaPlayerPrivateAVFoundationObjC::paintWithImageGenerator(%p)&quot;, this);
</span><span class="cx"> 
</span><span class="lines">@@ -1535,7 +1535,7 @@
</span><span class="cx">     return cache;
</span><span class="cx"> } 
</span><span class="cx"> 
</span><del>-RetainPtr&lt;CGImageRef&gt; MediaPlayerPrivateAVFoundationObjC::createImageForTimeInRect(float time, const IntRect&amp; rect)
</del><ins>+RetainPtr&lt;CGImageRef&gt; MediaPlayerPrivateAVFoundationObjC::createImageForTimeInRect(float time, const FloatRect&amp; rect)
</ins><span class="cx"> {
</span><span class="cx">     if (!m_imageGenerator)
</span><span class="cx">         createImageGenerator();
</span><span class="lines">@@ -1827,7 +1827,7 @@
</span><span class="cx">         hasCaptions = [[m_avAsset.get() tracksWithMediaType:AVMediaTypeClosedCaption] count];
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-        presentationSizeDidChange(firstEnabledVideoTrack ? IntSize(CGSizeApplyAffineTransform([firstEnabledVideoTrack naturalSize], [firstEnabledVideoTrack preferredTransform])) : IntSize());
</del><ins>+        presentationSizeDidChange(firstEnabledVideoTrack ? FloatSize(CGSizeApplyAffineTransform([firstEnabledVideoTrack naturalSize], [firstEnabledVideoTrack preferredTransform])) : FloatSize());
</ins><span class="cx">     } else {
</span><span class="cx">         bool hasVideo = false;
</span><span class="cx">         bool hasAudio = false;
</span><span class="lines">@@ -2121,7 +2121,7 @@
</span><span class="cx">     if (!m_avAsset)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    setNaturalSize(roundedIntSize(m_cachedPresentationSize));
</del><ins>+    setNaturalSize(m_cachedPresentationSize);
</ins><span class="cx"> }
</span><span class="cx">     
</span><span class="cx"> bool MediaPlayerPrivateAVFoundationObjC::hasSingleSecurityOrigin() const 
</span><span class="lines">@@ -2273,7 +2273,7 @@
</span><span class="cx">         m_lastImage = createImageFromPixelBuffer(pixelBuffer.get());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput(GraphicsContext* context, const IntRect&amp; outputRect)
</del><ins>+void MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput(GraphicsContext* context, const FloatRect&amp; outputRect)
</ins><span class="cx"> {
</span><span class="cx">     if (m_videoOutput &amp;&amp; !m_lastImage &amp;&amp; !videoOutputHasAvailableFrame())
</span><span class="cx">         waitForVideoOutputMediaDataWillChange();
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateMediaSourceAVFObjCh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h (180838 => 180839)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h        2015-02-28 20:20:31 UTC (rev 180838)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h        2015-02-28 20:58:51 UTC (rev 180839)
</span><span class="lines">@@ -115,7 +115,7 @@
</span><span class="cx"> 
</span><span class="cx">     virtual bool supportsScanning() const override;
</span><span class="cx"> 
</span><del>-    virtual IntSize naturalSize() const override;
</del><ins>+    virtual FloatSize naturalSize() const override;
</ins><span class="cx"> 
</span><span class="cx">     virtual bool hasVideo() const override;
</span><span class="cx">     virtual bool hasAudio() const override;
</span><span class="lines">@@ -140,8 +140,8 @@
</span><span class="cx"> 
</span><span class="cx">     virtual void setSize(const IntSize&amp;) override;
</span><span class="cx"> 
</span><del>-    virtual void paint(GraphicsContext*, const IntRect&amp;) override;
-    virtual void paintCurrentFrameInContext(GraphicsContext*, const IntRect&amp;) override;
</del><ins>+    virtual void paint(GraphicsContext*, const FloatRect&amp;) override;
+    virtual void paintCurrentFrameInContext(GraphicsContext*, const FloatRect&amp;) override;
</ins><span class="cx"> 
</span><span class="cx">     virtual bool hasAvailableVideoFrame() const override;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateMediaSourceAVFObjCmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm (180838 => 180839)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm        2015-02-28 20:20:31 UTC (rev 180838)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm        2015-02-28 20:58:51 UTC (rev 180839)
</span><span class="lines">@@ -345,10 +345,10 @@
</span><span class="cx">         [*it setMuted:muted];
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-IntSize MediaPlayerPrivateMediaSourceAVFObjC::naturalSize() const
</del><ins>+FloatSize MediaPlayerPrivateMediaSourceAVFObjC::naturalSize() const
</ins><span class="cx"> {
</span><span class="cx">     if (!m_mediaSourcePrivate)
</span><del>-        return IntSize();
</del><ins>+        return FloatSize();
</ins><span class="cx"> 
</span><span class="cx">     return m_mediaSourcePrivate-&gt;naturalSize();
</span><span class="cx"> }
</span><span class="lines">@@ -512,12 +512,12 @@
</span><span class="cx">     // No-op.
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void MediaPlayerPrivateMediaSourceAVFObjC::paint(GraphicsContext*, const IntRect&amp;)
</del><ins>+void MediaPlayerPrivateMediaSourceAVFObjC::paint(GraphicsContext*, const FloatRect&amp;)
</ins><span class="cx"> {
</span><span class="cx">     // FIXME(125157): Implement painting.
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void MediaPlayerPrivateMediaSourceAVFObjC::paintCurrentFrameInContext(GraphicsContext*, const IntRect&amp;)
</del><ins>+void MediaPlayerPrivateMediaSourceAVFObjC::paintCurrentFrameInContext(GraphicsContext*, const FloatRect&amp;)
</ins><span class="cx"> {
</span><span class="cx">     // FIXME(125157): Implement painting.
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationobjcMediaSourcePrivateAVFObjCh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h (180838 => 180839)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h        2015-02-28 20:20:31 UTC (rev 180838)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h        2015-02-28 20:58:51 UTC (rev 180839)
</span><span class="lines">@@ -75,7 +75,7 @@
</span><span class="cx"> 
</span><span class="cx">     void seekToTime(const MediaTime&amp;);
</span><span class="cx">     MediaTime fastSeekTimeForMediaTime(const MediaTime&amp;, const MediaTime&amp; negativeThreshold, const MediaTime&amp; positiveThreshold);
</span><del>-    IntSize naturalSize() const;
</del><ins>+    FloatSize naturalSize() const;
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     MediaSourcePrivateAVFObjC(MediaPlayerPrivateMediaSourceAVFObjC*, MediaSourcePrivateClient*);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationobjcMediaSourcePrivateAVFObjCmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm (180838 => 180839)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm        2015-02-28 20:20:31 UTC (rev 180838)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm        2015-02-28 20:58:51 UTC (rev 180839)
</span><span class="lines">@@ -198,9 +198,9 @@
</span><span class="cx">     return seekTime;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-IntSize MediaSourcePrivateAVFObjC::naturalSize() const
</del><ins>+FloatSize MediaSourcePrivateAVFObjC::naturalSize() const
</ins><span class="cx"> {
</span><del>-    IntSize result;
</del><ins>+    FloatSize result;
</ins><span class="cx"> 
</span><span class="cx">     for (auto* sourceBuffer : m_activeSourceBuffers)
</span><span class="cx">         result = result.expandedTo(sourceBuffer-&gt;naturalSize());
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationobjcSourceBufferPrivateAVFObjCh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h (180838 => 180839)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h        2015-02-28 20:20:31 UTC (rev 180838)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h        2015-02-28 20:58:51 UTC (rev 180839)
</span><span class="lines">@@ -93,7 +93,7 @@
</span><span class="cx"> 
</span><span class="cx">     void seekToTime(MediaTime);
</span><span class="cx">     MediaTime fastSeekTimeForMediaTime(MediaTime, MediaTime negativeThreshold, MediaTime positiveThreshold);
</span><del>-    IntSize naturalSize();
</del><ins>+    FloatSize naturalSize();
</ins><span class="cx"> 
</span><span class="cx">     int protectedTrackID() const { return m_protectedTrackID; }
</span><span class="cx">     AVStreamDataParser* parser() const { return m_parser.get(); }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationobjcSourceBufferPrivateAVFObjCmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm (180838 => 180839)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm        2015-02-28 20:20:31 UTC (rev 180838)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm        2015-02-28 20:58:51 UTC (rev 180839)
</span><span class="lines">@@ -890,6 +890,9 @@
</span><span class="cx">         [m_parser setShouldProvideMediaData:YES forTrackID:trackID];
</span><span class="cx">         if (!m_displayLayer) {
</span><span class="cx">             m_displayLayer = adoptNS([allocAVSampleBufferDisplayLayerInstance() init]);
</span><ins>+#ifndef NDEBUG
+            [m_displayLayer setName:@&quot;SourceBufferPrivateAVFObjC AVSampleBufferDisplayLayer&quot;];
+#endif
</ins><span class="cx">             [m_displayLayer requestMediaDataWhenReadyOnQueue:dispatch_get_main_queue() usingBlock:^{
</span><span class="cx">                 didBecomeReadyForMoreSamples(trackID);
</span><span class="cx">             }];
</span><span class="lines">@@ -1076,9 +1079,9 @@
</span><span class="cx">         m_client-&gt;sourceBufferPrivateSeekToTime(this, time);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-IntSize SourceBufferPrivateAVFObjC::naturalSize()
</del><ins>+FloatSize SourceBufferPrivateAVFObjC::naturalSize()
</ins><span class="cx"> {
</span><del>-    return roundedIntSize(m_cachedSize);
</del><ins>+    return m_cachedSize;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void SourceBufferPrivateAVFObjC::didBecomeReadyForMoreSamples(int trackID)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationobjcVideoTrackPrivateMediaSourceAVFObjCh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.h (180838 => 180839)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.h        2015-02-28 20:20:31 UTC (rev 180838)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.h        2015-02-28 20:58:51 UTC (rev 180839)
</span><span class="lines">@@ -55,7 +55,7 @@
</span><span class="cx"> 
</span><span class="cx">     int trackID() { return m_trackID; }
</span><span class="cx"> 
</span><del>-    IntSize naturalSize() const;
</del><ins>+    FloatSize naturalSize() const;
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     explicit VideoTrackPrivateMediaSourceAVFObjC(AVAssetTrack*, SourceBufferPrivateAVFObjC* parent);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationobjcVideoTrackPrivateMediaSourceAVFObjCmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.mm (180838 => 180839)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.mm        2015-02-28 20:20:31 UTC (rev 180838)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.mm        2015-02-28 20:58:51 UTC (rev 180839)
</span><span class="lines">@@ -80,9 +80,9 @@
</span><span class="cx">     m_parent-&gt;trackDidChangeEnabled(this);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-IntSize VideoTrackPrivateMediaSourceAVFObjC::naturalSize() const
</del><ins>+FloatSize VideoTrackPrivateMediaSourceAVFObjC::naturalSize() const
</ins><span class="cx"> {
</span><del>-    return IntSize([assetTrack() naturalSize]);
</del><ins>+    return FloatSize([assetTrack() naturalSize]);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsgstreamerMediaPlayerPrivateGStreamerBasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp (180838 => 180839)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp        2015-02-28 20:20:31 UTC (rev 180838)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp        2015-02-28 20:58:51 UTC (rev 180839)
</span><span class="lines">@@ -129,21 +129,21 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // Returns the size of the video
</span><del>-IntSize MediaPlayerPrivateGStreamerBase::naturalSize() const
</del><ins>+FloatSize MediaPlayerPrivateGStreamerBase::naturalSize() const
</ins><span class="cx"> {
</span><span class="cx">     if (!hasVideo())
</span><del>-        return IntSize();
</del><ins>+        return FloatSize();
</ins><span class="cx"> 
</span><span class="cx">     if (!m_videoSize.isEmpty())
</span><span class="cx">         return m_videoSize;
</span><span class="cx"> 
</span><span class="cx">     WTF::GMutexLocker&lt;GMutex&gt; lock(m_sampleMutex);
</span><span class="cx">     if (!m_sample)
</span><del>-        return IntSize();
</del><ins>+        return FloatSize();
</ins><span class="cx"> 
</span><span class="cx">     GstCaps* caps = gst_sample_get_caps(m_sample);
</span><span class="cx">     if (!caps)
</span><del>-        return IntSize();
</del><ins>+        return FloatSize();
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx">     // TODO: handle possible clean aperture data. See
</span><span class="lines">@@ -157,7 +157,7 @@
</span><span class="cx">     IntSize originalSize;
</span><span class="cx">     GstVideoFormat format;
</span><span class="cx">     if (!getVideoSizeAndFormatFromCaps(caps, originalSize, format, pixelAspectRatioNumerator, pixelAspectRatioDenominator, stride))
</span><del>-        return IntSize();
</del><ins>+        return FloatSize();
</ins><span class="cx"> 
</span><span class="cx">     LOG_MEDIA_MESSAGE(&quot;Original video size: %dx%d&quot;, originalSize.width(), originalSize.height());
</span><span class="cx">     LOG_MEDIA_MESSAGE(&quot;Pixel aspect ratio: %d/%d&quot;, pixelAspectRatioNumerator, pixelAspectRatioDenominator);
</span><span class="lines">@@ -188,7 +188,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     LOG_MEDIA_MESSAGE(&quot;Natural size: %&quot; G_GUINT64_FORMAT &quot;x%&quot; G_GUINT64_FORMAT, width, height);
</span><del>-    m_videoSize = IntSize(static_cast&lt;int&gt;(width), static_cast&lt;int&gt;(height));
</del><ins>+    m_videoSize = FloatSize(static_cast&lt;int&gt;(width), static_cast&lt;int&gt;(height));
</ins><span class="cx">     return m_videoSize;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -351,7 +351,7 @@
</span><span class="cx">     m_size = size;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void MediaPlayerPrivateGStreamerBase::paint(GraphicsContext* context, const IntRect&amp; rect)
</del><ins>+void MediaPlayerPrivateGStreamerBase::paint(GraphicsContext* context, const FloatRect&amp; rect)
</ins><span class="cx"> {
</span><span class="cx"> #if USE(TEXTURE_MAPPER_GL) &amp;&amp; !USE(COORDINATED_GRAPHICS)
</span><span class="cx">     if (client())
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsgstreamerMediaPlayerPrivateGStreamerBaseh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h (180838 => 180839)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h        2015-02-28 20:20:31 UTC (rev 180838)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h        2015-02-28 20:58:51 UTC (rev 180839)
</span><span class="lines">@@ -57,7 +57,7 @@
</span><span class="cx"> public:
</span><span class="cx">     virtual ~MediaPlayerPrivateGStreamerBase();
</span><span class="cx"> 
</span><del>-    IntSize naturalSize() const;
</del><ins>+    FloatSize naturalSize() const;
</ins><span class="cx"> 
</span><span class="cx">     void setVolume(float);
</span><span class="cx">     float volume() const;
</span><span class="lines">@@ -78,7 +78,7 @@
</span><span class="cx">     void sizeChanged();
</span><span class="cx"> 
</span><span class="cx">     void triggerRepaint(GstSample*);
</span><del>-    void paint(GraphicsContext*, const IntRect&amp;);
</del><ins>+    void paint(GraphicsContext*, const FloatRect&amp;);
</ins><span class="cx"> 
</span><span class="cx">     virtual bool hasSingleSecurityOrigin() const { return true; }
</span><span class="cx">     virtual float maxTimeLoaded() const { return 0.0; }
</span><span class="lines">@@ -129,7 +129,7 @@
</span><span class="cx">     unsigned long m_repaintHandler;
</span><span class="cx">     unsigned long m_volumeSignalHandler;
</span><span class="cx">     unsigned long m_muteSignalHandler;
</span><del>-    mutable IntSize m_videoSize;
</del><ins>+    mutable FloatSize m_videoSize;
</ins><span class="cx"> #if USE(TEXTURE_MAPPER_GL) &amp;&amp; !USE(COORDINATED_GRAPHICS)
</span><span class="cx">     PassRefPtr&lt;BitmapTexture&gt; updateTexture(TextureMapper*);
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsmacMediaPlayerPrivateQTKith"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.h (180838 => 180839)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.h        2015-02-28 20:20:31 UTC (rev 180838)
+++ trunk/Source/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.h        2015-02-28 20:58:51 UTC (rev 180839)
</span><span class="lines">@@ -76,7 +76,7 @@
</span><span class="cx">     PlatformMedia platformMedia() const;
</span><span class="cx">     PlatformLayer* platformLayer() const;
</span><span class="cx"> 
</span><del>-    IntSize naturalSize() const;
</del><ins>+    FloatSize naturalSize() const override;
</ins><span class="cx">     bool hasVideo() const;
</span><span class="cx">     bool hasAudio() const;
</span><span class="cx">     bool supportsFullscreen() const;
</span><span class="lines">@@ -124,8 +124,8 @@
</span><span class="cx">     
</span><span class="cx">     virtual bool hasAvailableVideoFrame() const;
</span><span class="cx"> 
</span><del>-    void paint(GraphicsContext*, const IntRect&amp;);
-    void paintCurrentFrameInContext(GraphicsContext*, const IntRect&amp;);
</del><ins>+    void paint(GraphicsContext*, const FloatRect&amp;);
+    void paintCurrentFrameInContext(GraphicsContext*, const FloatRect&amp;);
</ins><span class="cx">     virtual void prepareForRendering();
</span><span class="cx"> 
</span><span class="cx">     bool supportsAcceleratedRendering() const;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsmacMediaPlayerPrivateQTKitmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm (180838 => 180839)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm        2015-02-28 20:20:31 UTC (rev 180838)
+++ trunk/Source/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm        2015-02-28 20:58:51 UTC (rev 180839)
</span><span class="lines">@@ -709,10 +709,10 @@
</span><span class="cx">     return m_seekTo &gt;= MediaTime::zeroTime();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-IntSize MediaPlayerPrivateQTKit::naturalSize() const
</del><ins>+FloatSize MediaPlayerPrivateQTKit::naturalSize() const
</ins><span class="cx"> {
</span><span class="cx">     if (!metaDataAvailable())
</span><del>-        return IntSize();
</del><ins>+        return FloatSize();
</ins><span class="cx"> 
</span><span class="cx">     // In spite of the name of this method, return QTMovieNaturalSizeAttribute transformed by the 
</span><span class="cx">     // initial movie scale because the spec says intrinsic size is:
</span><span class="lines">@@ -732,8 +732,9 @@
</span><span class="cx">         // event when this happens, so we must cache the last valid naturalSize here:
</span><span class="cx">         m_cachedNaturalSize = naturalSize;
</span><span class="cx">     }
</span><del>-        
-    return IntSize(naturalSize.width() * m_scaleFactor.width(), naturalSize.height() * m_scaleFactor.height());
</del><ins>+    
+    naturalSize.scale(m_scaleFactor.width(), m_scaleFactor.height());
+    return naturalSize;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool MediaPlayerPrivateQTKit::hasVideo() const
</span><span class="lines">@@ -1181,7 +1182,7 @@
</span><span class="cx">     m_player-&gt;repaint();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void MediaPlayerPrivateQTKit::paintCurrentFrameInContext(GraphicsContext* context, const IntRect&amp; r)
</del><ins>+void MediaPlayerPrivateQTKit::paintCurrentFrameInContext(GraphicsContext* context, const FloatRect&amp; r)
</ins><span class="cx"> {
</span><span class="cx">     id qtVideoRenderer = m_qtVideoRenderer.get();
</span><span class="cx">     if (!qtVideoRenderer &amp;&amp; currentRenderingMode() == MediaRenderingMovieLayer) {
</span><span class="lines">@@ -1195,7 +1196,7 @@
</span><span class="cx">     paint(context, r);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void MediaPlayerPrivateQTKit::paint(GraphicsContext* context, const IntRect&amp; r)
</del><ins>+void MediaPlayerPrivateQTKit::paint(GraphicsContext* context, const FloatRect&amp; r)
</ins><span class="cx"> {
</span><span class="cx">     if (context-&gt;paintingDisabled() || m_hasUnsupportedTracks)
</span><span class="cx">         return;
</span><span class="lines">@@ -1207,7 +1208,7 @@
</span><span class="cx">     BEGIN_BLOCK_OBJC_EXCEPTIONS;
</span><span class="cx">     NSGraphicsContext* newContext;
</span><span class="cx">     FloatSize scaleFactor(1.0f, -1.0f);
</span><del>-    IntRect paintRect(IntPoint(0, 0), IntSize(r.width(), r.height()));
</del><ins>+    FloatRect paintRect(FloatPoint(), r.size());
</ins><span class="cx"> 
</span><span class="cx">     GraphicsContextStateSaver stateSaver(*context);
</span><span class="cx">     context-&gt;translate(r.x(), r.y() + r.height());
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicswinMediaPlayerPrivateMediaFoundationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp (180838 => 180839)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp        2015-02-28 20:20:31 UTC (rev 180838)
+++ trunk/Source/WebCore/platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp        2015-02-28 20:58:51 UTC (rev 180839)
</span><span class="lines">@@ -143,7 +143,7 @@
</span><span class="cx">     m_paused = SUCCEEDED(m_mediaSession-&gt;Pause());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-IntSize MediaPlayerPrivateMediaFoundation::naturalSize() const 
</del><ins>+FloatSize MediaPlayerPrivateMediaFoundation::naturalSize() const 
</ins><span class="cx"> {
</span><span class="cx">     return m_size;
</span><span class="cx"> }
</span><span class="lines">@@ -221,7 +221,7 @@
</span><span class="cx">     m_videoDisplay-&gt;SetVideoPosition(nullptr, &amp;rc);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void MediaPlayerPrivateMediaFoundation::paint(GraphicsContext* context, const IntRect&amp; rect)
</del><ins>+void MediaPlayerPrivateMediaFoundation::paint(GraphicsContext* context, const FloatRect&amp; rect)
</ins><span class="cx"> {
</span><span class="cx">     if (context-&gt;paintingDisabled()
</span><span class="cx">         || !m_player-&gt;visible())
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicswinMediaPlayerPrivateMediaFoundationh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/win/MediaPlayerPrivateMediaFoundation.h (180838 => 180839)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/win/MediaPlayerPrivateMediaFoundation.h        2015-02-28 20:20:31 UTC (rev 180838)
+++ trunk/Source/WebCore/platform/graphics/win/MediaPlayerPrivateMediaFoundation.h        2015-02-28 20:58:51 UTC (rev 180839)
</span><span class="lines">@@ -49,7 +49,7 @@
</span><span class="cx">     virtual void play();
</span><span class="cx">     virtual void pause();
</span><span class="cx"> 
</span><del>-    virtual IntSize naturalSize() const;
</del><ins>+    virtual FloatSize naturalSize() const;
</ins><span class="cx"> 
</span><span class="cx">     virtual bool hasVideo() const;
</span><span class="cx">     virtual bool hasAudio() const;
</span><span class="lines">@@ -69,7 +69,7 @@
</span><span class="cx"> 
</span><span class="cx">     virtual void setSize(const IntSize&amp;);
</span><span class="cx"> 
</span><del>-    virtual void paint(GraphicsContext*, const IntRect&amp;);
</del><ins>+    virtual void paint(GraphicsContext*, const FloatRect&amp;);
</ins><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     MediaPlayer* m_player;
</span><span class="lines">@@ -81,7 +81,7 @@
</span><span class="cx">     bool m_hasVideo;
</span><span class="cx">     HWND m_hwndVideo;
</span><span class="cx">     MediaPlayer::ReadyState m_readyState;
</span><del>-    IntRect m_lastPaintRect;
</del><ins>+    FloatRect m_lastPaintRect;
</ins><span class="cx"> 
</span><span class="cx">     COMPtr&lt;IMFMediaSession&gt; m_mediaSession;
</span><span class="cx">     COMPtr&lt;IMFSourceResolver&gt; m_sourceResolver;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmockmediasourceMockMediaPlayerMediaSourcecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mock/mediasource/MockMediaPlayerMediaSource.cpp (180838 => 180839)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mock/mediasource/MockMediaPlayerMediaSource.cpp        2015-02-28 20:20:31 UTC (rev 180838)
+++ trunk/Source/WebCore/platform/mock/mediasource/MockMediaPlayerMediaSource.cpp        2015-02-28 20:58:51 UTC (rev 180839)
</span><span class="lines">@@ -118,9 +118,9 @@
</span><span class="cx">     m_playing = 0;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-IntSize MockMediaPlayerMediaSource::naturalSize() const
</del><ins>+FloatSize MockMediaPlayerMediaSource::naturalSize() const
</ins><span class="cx"> {
</span><del>-    return IntSize();
</del><ins>+    return FloatSize();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool MockMediaPlayerMediaSource::hasVideo() const
</span><span class="lines">@@ -179,7 +179,7 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void MockMediaPlayerMediaSource::paint(GraphicsContext*, const IntRect&amp;)
</del><ins>+void MockMediaPlayerMediaSource::paint(GraphicsContext*, const FloatRect&amp;)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmockmediasourceMockMediaPlayerMediaSourceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mock/mediasource/MockMediaPlayerMediaSource.h (180838 => 180839)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mock/mediasource/MockMediaPlayerMediaSource.h        2015-02-28 20:20:31 UTC (rev 180838)
+++ trunk/Source/WebCore/platform/mock/mediasource/MockMediaPlayerMediaSource.h        2015-02-28 20:58:51 UTC (rev 180839)
</span><span class="lines">@@ -63,7 +63,7 @@
</span><span class="cx">     virtual void cancelLoad() override;
</span><span class="cx">     virtual void play() override;
</span><span class="cx">     virtual void pause() override;
</span><del>-    virtual IntSize naturalSize() const override;
</del><ins>+    virtual FloatSize naturalSize() const override;
</ins><span class="cx">     virtual bool hasVideo() const override;
</span><span class="cx">     virtual bool hasAudio() const override;
</span><span class="cx">     virtual void setVisible(bool) override;
</span><span class="lines">@@ -74,7 +74,7 @@
</span><span class="cx">     virtual std::unique_ptr&lt;PlatformTimeRanges&gt; buffered() const override;
</span><span class="cx">     virtual bool didLoadingProgress() const override;
</span><span class="cx">     virtual void setSize(const IntSize&amp;) override;
</span><del>-    virtual void paint(GraphicsContext*, const IntRect&amp;) override;
</del><ins>+    virtual void paint(GraphicsContext*, const FloatRect&amp;) override;
</ins><span class="cx">     virtual MediaTime currentMediaTime() const override;
</span><span class="cx">     virtual MediaTime durationMediaTime() const override;
</span><span class="cx">     virtual void seekWithTolerance(const MediaTime&amp;, const MediaTime&amp;, const MediaTime&amp;) override;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderVideocpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderVideo.cpp (180838 => 180839)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderVideo.cpp        2015-02-28 20:20:31 UTC (rev 180838)
+++ trunk/Source/WebCore/rendering/RenderVideo.cpp        2015-02-28 20:58:51 UTC (rev 180839)
</span><span class="lines">@@ -106,7 +106,7 @@
</span><span class="cx">     // height of the poster frame, if that is available; otherwise it is 150 CSS pixels.
</span><span class="cx">     MediaPlayer* player = videoElement().player();
</span><span class="cx">     if (player &amp;&amp; videoElement().readyState() &gt;= HTMLVideoElement::HAVE_METADATA) {
</span><del>-        LayoutSize size = player-&gt;naturalSize();
</del><ins>+        LayoutSize size(player-&gt;naturalSize());
</ins><span class="cx">         if (!size.isEmpty())
</span><span class="cx">             return size;
</span><span class="cx">     }
</span><span class="lines">@@ -189,9 +189,9 @@
</span><span class="cx">     if (displayingPoster)
</span><span class="cx">         paintIntoRect(context, rect);
</span><span class="cx">     else if (view().frameView().paintBehavior() &amp; PaintBehaviorFlattenCompositingLayers)
</span><del>-        mediaPlayer-&gt;paintCurrentFrameInContext(context, snappedIntRect(rect));
</del><ins>+        mediaPlayer-&gt;paintCurrentFrameInContext(context, rect);
</ins><span class="cx">     else
</span><del>-        mediaPlayer-&gt;paint(context, snappedIntRect(rect));
</del><ins>+        mediaPlayer-&gt;paint(context, rect);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderVideo::layout()
</span></span></pre>
</div>
</div>

</body>
</html>