Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(483)

Side by Side Diff: cc/CCVideoLayerImpl.cpp

Issue 10898023: Update cc snapshot to WK r126941 (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: rebased Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/CCVideoLayerImpl.h ('k') | cc/cc.gyp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "config.h" 5 #include "config.h"
6 6
7 #if USE(ACCELERATED_COMPOSITING) 7 #if USE(ACCELERATED_COMPOSITING)
8 8
9 #include "CCVideoLayerImpl.h" 9 #include "CCVideoLayerImpl.h"
10 10
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 if (!copyPlaneData(resourceProvider)) { 149 if (!copyPlaneData(resourceProvider)) {
150 m_provider->putCurrentFrame(m_frame); 150 m_provider->putCurrentFrame(m_frame);
151 m_frame = 0; 151 m_frame = 0;
152 return; 152 return;
153 } 153 }
154 154
155 if (m_format == GraphicsContext3D::TEXTURE_2D) 155 if (m_format == GraphicsContext3D::TEXTURE_2D)
156 m_externalTextureResource = resourceProvider->createResourceFromExternal Texture(m_frame->textureId()); 156 m_externalTextureResource = resourceProvider->createResourceFromExternal Texture(m_frame->textureId());
157 } 157 }
158 158
159 void CCVideoLayerImpl::appendQuads(CCQuadSink& quadSink, bool&) 159 void CCVideoLayerImpl::appendQuads(CCQuadSink& quadSink, CCAppendQuadsData& appe ndQuadsData)
160 { 160 {
161 ASSERT(CCProxy::isImplThread()); 161 ASSERT(CCProxy::isImplThread());
162 162
163 if (!m_frame) 163 if (!m_frame)
164 return; 164 return;
165 165
166 CCSharedQuadState* sharedQuadState = quadSink.useSharedQuadState(createShare dQuadState()); 166 CCSharedQuadState* sharedQuadState = quadSink.useSharedQuadState(createShare dQuadState());
167 appendDebugBorderQuad(quadSink, sharedQuadState); 167 appendDebugBorderQuad(quadSink, sharedQuadState, appendQuadsData);
168 168
169 // FIXME: When we pass quads out of process, we need to double-buffer, or 169 // FIXME: When we pass quads out of process, we need to double-buffer, or
170 // otherwise synchonize use of all textures in the quad. 170 // otherwise synchonize use of all textures in the quad.
171 171
172 IntRect quadRect(IntPoint(), contentBounds()); 172 IntRect quadRect(IntPoint(), contentBounds());
173 173
174 switch (m_format) { 174 switch (m_format) {
175 case GraphicsContext3D::LUMINANCE: { 175 case GraphicsContext3D::LUMINANCE: {
176 // YUV software decoder. 176 // YUV software decoder.
177 const FramePlane& yPlane = m_framePlanes[WebKit::WebVideoFrame::yPlane]; 177 const FramePlane& yPlane = m_framePlanes[WebKit::WebVideoFrame::yPlane];
178 const FramePlane& uPlane = m_framePlanes[WebKit::WebVideoFrame::uPlane]; 178 const FramePlane& uPlane = m_framePlanes[WebKit::WebVideoFrame::uPlane];
179 const FramePlane& vPlane = m_framePlanes[WebKit::WebVideoFrame::vPlane]; 179 const FramePlane& vPlane = m_framePlanes[WebKit::WebVideoFrame::vPlane];
180 OwnPtr<CCYUVVideoDrawQuad> yuvVideoQuad = CCYUVVideoDrawQuad::create(sha redQuadState, quadRect, yPlane, uPlane, vPlane); 180 OwnPtr<CCYUVVideoDrawQuad> yuvVideoQuad = CCYUVVideoDrawQuad::create(sha redQuadState, quadRect, yPlane, uPlane, vPlane);
181 quadSink.append(yuvVideoQuad.release()); 181 quadSink.append(yuvVideoQuad.release(), appendQuadsData);
182 break; 182 break;
183 } 183 }
184 case GraphicsContext3D::RGBA: { 184 case GraphicsContext3D::RGBA: {
185 // RGBA software decoder. 185 // RGBA software decoder.
186 const FramePlane& plane = m_framePlanes[WebKit::WebVideoFrame::rgbPlane] ; 186 const FramePlane& plane = m_framePlanes[WebKit::WebVideoFrame::rgbPlane] ;
187 float widthScaleFactor = static_cast<float>(plane.visibleSize.width()) / plane.size.width(); 187 float widthScaleFactor = static_cast<float>(plane.visibleSize.width()) / plane.size.width();
188 188
189 bool premultipliedAlpha = true; 189 bool premultipliedAlpha = true;
190 FloatRect uvRect(0, 0, widthScaleFactor, 1); 190 FloatRect uvRect(0, 0, widthScaleFactor, 1);
191 bool flipped = false; 191 bool flipped = false;
192 OwnPtr<CCTextureDrawQuad> textureQuad = CCTextureDrawQuad::create(shared QuadState, quadRect, plane.resourceId, premultipliedAlpha, uvRect, flipped); 192 OwnPtr<CCTextureDrawQuad> textureQuad = CCTextureDrawQuad::create(shared QuadState, quadRect, plane.resourceId, premultipliedAlpha, uvRect, flipped);
193 quadSink.append(textureQuad.release()); 193 quadSink.append(textureQuad.release(), appendQuadsData);
194 break; 194 break;
195 } 195 }
196 case GraphicsContext3D::TEXTURE_2D: { 196 case GraphicsContext3D::TEXTURE_2D: {
197 // NativeTexture hardware decoder. 197 // NativeTexture hardware decoder.
198 bool premultipliedAlpha = true; 198 bool premultipliedAlpha = true;
199 FloatRect uvRect(0, 0, 1, 1); 199 FloatRect uvRect(0, 0, 1, 1);
200 bool flipped = false; 200 bool flipped = false;
201 OwnPtr<CCTextureDrawQuad> textureQuad = CCTextureDrawQuad::create(shared QuadState, quadRect, m_externalTextureResource, premultipliedAlpha, uvRect, flip ped); 201 OwnPtr<CCTextureDrawQuad> textureQuad = CCTextureDrawQuad::create(shared QuadState, quadRect, m_externalTextureResource, premultipliedAlpha, uvRect, flip ped);
202 quadSink.append(textureQuad.release()); 202 quadSink.append(textureQuad.release(), appendQuadsData);
203 break; 203 break;
204 } 204 }
205 case Extensions3D::TEXTURE_RECTANGLE_ARB: { 205 case Extensions3D::TEXTURE_RECTANGLE_ARB: {
206 IntSize textureSize(m_frame->width(), m_frame->height()); 206 IntSize textureSize(m_frame->width(), m_frame->height());
207 OwnPtr<CCIOSurfaceDrawQuad> ioSurfaceQuad = CCIOSurfaceDrawQuad::create( sharedQuadState, quadRect, textureSize, m_frame->textureId(), CCIOSurfaceDrawQua d::Unflipped); 207 OwnPtr<CCIOSurfaceDrawQuad> ioSurfaceQuad = CCIOSurfaceDrawQuad::create( sharedQuadState, quadRect, textureSize, m_frame->textureId(), CCIOSurfaceDrawQua d::Unflipped);
208 quadSink.append(ioSurfaceQuad.release()); 208 quadSink.append(ioSurfaceQuad.release(), appendQuadsData);
209 break; 209 break;
210 } 210 }
211 case Extensions3DChromium::GL_TEXTURE_EXTERNAL_OES: { 211 case Extensions3DChromium::GL_TEXTURE_EXTERNAL_OES: {
212 // StreamTexture hardware decoder. 212 // StreamTexture hardware decoder.
213 OwnPtr<CCStreamVideoDrawQuad> streamVideoQuad = CCStreamVideoDrawQuad::c reate(sharedQuadState, quadRect, m_frame->textureId(), m_streamTextureMatrix); 213 OwnPtr<CCStreamVideoDrawQuad> streamVideoQuad = CCStreamVideoDrawQuad::c reate(sharedQuadState, quadRect, m_frame->textureId(), m_streamTextureMatrix);
214 quadSink.append(streamVideoQuad.release()); 214 quadSink.append(streamVideoQuad.release(), appendQuadsData);
215 break; 215 break;
216 } 216 }
217 default: 217 default:
218 CRASH(); // Someone updated convertVFCFormatToGC3DFormat above but updat e this! 218 CRASH(); // Someone updated convertVFCFormatToGC3DFormat above but updat e this!
219 } 219 }
220 } 220 }
221 221
222 void CCVideoLayerImpl::didDraw(CCResourceProvider* resourceProvider) 222 void CCVideoLayerImpl::didDraw(CCResourceProvider* resourceProvider)
223 { 223 {
224 ASSERT(CCProxy::isImplThread()); 224 ASSERT(CCProxy::isImplThread());
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
379 void CCVideoLayerImpl::dumpLayerProperties(TextStream& ts, int indent) const 379 void CCVideoLayerImpl::dumpLayerProperties(TextStream& ts, int indent) const
380 { 380 {
381 writeIndent(ts, indent); 381 writeIndent(ts, indent);
382 ts << "video layer\n"; 382 ts << "video layer\n";
383 CCLayerImpl::dumpLayerProperties(ts, indent); 383 CCLayerImpl::dumpLayerProperties(ts, indent);
384 } 384 }
385 385
386 } 386 }
387 387
388 #endif // USE(ACCELERATED_COMPOSITING) 388 #endif // USE(ACCELERATED_COMPOSITING)
OLDNEW
« no previous file with comments | « cc/CCVideoLayerImpl.h ('k') | cc/cc.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698