Small cleanup of {get,put}CurrentFrame for WebMediaPlayerClientImpl/CCVideoLayerImpl.
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 21 Jan 2012 01:34:07 +0000 (01:34 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 21 Jan 2012 01:34:07 +0000 (01:34 +0000)
https://bugs.webkit.org/show_bug.cgi?id=76332

Patch by Ami Fischman <fischman@chromium.org> on 2012-01-20
Reviewed by James Robinson.

Source/WebCore:

* platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
(WebCore::CCVideoLayerImpl::draw):

Source/WebKit/chromium:

* src/WebMediaPlayerClientImpl.cpp:
(WebKit::WebMediaPlayerClientImpl::getCurrentFrame):
(WebKit::WebMediaPlayerClientImpl::putCurrentFrame):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@105559 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/platform/graphics/chromium/cc/CCVideoLayerImpl.cpp
Source/WebKit/chromium/ChangeLog
Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp

index 96dd800..0f43619 100644 (file)
@@ -1,3 +1,13 @@
+2012-01-20  Ami Fischman  <fischman@chromium.org>
+
+        Small cleanup of {get,put}CurrentFrame for  WebMediaPlayerClientImpl/CCVideoLayerImpl.
+        https://bugs.webkit.org/show_bug.cgi?id=76332
+
+        Reviewed by James Robinson.
+
+        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
+        (WebCore::CCVideoLayerImpl::draw):
+
 2012-01-20  Brady Eidson  <beidson@apple.com>
 
         <rdar://problem/9328684> and https://bugs.webkit.org/show_bug.cgi?id=62764
index ba1290e..09afb08 100644 (file)
@@ -126,11 +126,15 @@ void CCVideoLayerImpl::draw(LayerRendererChromium* layerRenderer)
         return;
     GC3Denum format = convertVFCFormatToGC3DFormat(frame->format());
 
-    if (format == GraphicsContext3D::INVALID_VALUE)
+    if (format == GraphicsContext3D::INVALID_VALUE) {
+        m_provider->putCurrentFrame(frame);
         return;
+    }
 
-    if (!copyFrameToTextures(frame, format, layerRenderer))
+    if (!copyFrameToTextures(frame, format, layerRenderer)) {
+        m_provider->putCurrentFrame(frame);
         return;
+    }
 
     switch (format) {
     case GraphicsContext3D::LUMINANCE:
index cf03d7d..3f17e1e 100644 (file)
@@ -1,3 +1,14 @@
+2012-01-20  Ami Fischman  <fischman@chromium.org>
+
+        Small cleanup of {get,put}CurrentFrame for  WebMediaPlayerClientImpl/CCVideoLayerImpl.
+        https://bugs.webkit.org/show_bug.cgi?id=76332
+
+        Reviewed by James Robinson.
+
+        * src/WebMediaPlayerClientImpl.cpp:
+        (WebKit::WebMediaPlayerClientImpl::getCurrentFrame):
+        (WebKit::WebMediaPlayerClientImpl::putCurrentFrame):
+
 2012-01-20  Ryosuke Niwa  <rniwa@webkit.org>
 
         Roll Chromium DEPS from 118291 to 118493.
index e263655..996e707 100644 (file)
@@ -603,7 +603,7 @@ VideoFrameChromium* WebMediaPlayerClientImpl::getCurrentFrame()
 {
     MutexLocker locker(m_compositingMutex);
     ASSERT(!m_currentVideoFrame);
-    if (m_webMediaPlayer && !m_currentVideoFrame) {
+    if (m_webMediaPlayer) {
         WebVideoFrame* webkitVideoFrame = m_webMediaPlayer->getCurrentFrame();
         if (webkitVideoFrame)
             m_currentVideoFrame = adoptPtr(new VideoFrameChromiumImpl(webkitVideoFrame));
@@ -614,14 +614,14 @@ VideoFrameChromium* WebMediaPlayerClientImpl::getCurrentFrame()
 void WebMediaPlayerClientImpl::putCurrentFrame(VideoFrameChromium* videoFrame)
 {
     MutexLocker locker(m_compositingMutex);
-    if (videoFrame && videoFrame == m_currentVideoFrame) {
-        if (m_webMediaPlayer) {
-            m_webMediaPlayer->putCurrentFrame(
-                VideoFrameChromiumImpl::toWebVideoFrame(videoFrame));
-        }
-        ASSERT(videoFrame == m_currentVideoFrame);
-        m_currentVideoFrame.clear();
+    ASSERT(videoFrame == m_currentVideoFrame);
+    if (!videoFrame)
+        return;
+    if (m_webMediaPlayer) {
+        m_webMediaPlayer->putCurrentFrame(
+            VideoFrameChromiumImpl::toWebVideoFrame(videoFrame));
     }
+    m_currentVideoFrame.clear();
 }
 #endif