| OLD | NEW |
| 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 "cc/layers/video_layer_impl.h" | 5 #include "cc/layers/video_layer_impl.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "cc/layers/quad_sink.h" | 9 #include "cc/layers/quad_sink.h" |
| 10 #include "cc/layers/video_frame_provider_client_impl.h" | 10 #include "cc/layers/video_frame_provider_client_impl.h" |
| 11 #include "cc/quads/io_surface_draw_quad.h" | 11 #include "cc/quads/io_surface_draw_quad.h" |
| 12 #include "cc/quads/stream_video_draw_quad.h" | 12 #include "cc/quads/stream_video_draw_quad.h" |
| 13 #include "cc/quads/texture_draw_quad.h" | 13 #include "cc/quads/texture_draw_quad.h" |
| 14 #include "cc/quads/yuv_video_draw_quad.h" | 14 #include "cc/quads/yuv_video_draw_quad.h" |
| 15 #include "cc/resources/resource_provider.h" | 15 #include "cc/resources/resource_provider.h" |
| 16 #include "cc/resources/single_release_callback.h" | 16 #include "cc/resources/single_release_callback.h" |
| 17 #include "cc/trees/layer_tree_impl.h" | 17 #include "cc/trees/layer_tree_impl.h" |
| 18 #include "cc/trees/proxy.h" | 18 #include "cc/trees/proxy.h" |
| 19 #include "media/base/video_frame.h" | 19 #include "media/base/video_frame.h" |
| 20 | 20 |
| 21 #if defined(GOOGLE_TV) | 21 #if defined(VIDEO_HOLE) |
| 22 #include "cc/quads/solid_color_draw_quad.h" | 22 #include "cc/quads/solid_color_draw_quad.h" |
| 23 #endif | 23 #endif // defined(VIDEO_HOLE) |
| 24 | 24 |
| 25 namespace cc { | 25 namespace cc { |
| 26 | 26 |
| 27 // static | 27 // static |
| 28 scoped_ptr<VideoLayerImpl> VideoLayerImpl::Create( | 28 scoped_ptr<VideoLayerImpl> VideoLayerImpl::Create( |
| 29 LayerTreeImpl* tree_impl, | 29 LayerTreeImpl* tree_impl, |
| 30 int id, | 30 int id, |
| 31 VideoFrameProvider* provider) { | 31 VideoFrameProvider* provider) { |
| 32 scoped_ptr<VideoLayerImpl> layer(new VideoLayerImpl(tree_impl, id)); | 32 scoped_ptr<VideoLayerImpl> layer(new VideoLayerImpl(tree_impl, id)); |
| 33 layer->SetProviderClientImpl(VideoFrameProviderClientImpl::Create(provider)); | 33 layer->SetProviderClientImpl(VideoFrameProviderClientImpl::Create(provider)); |
| (...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 238 io_surface_quad->SetNew(shared_quad_state, | 238 io_surface_quad->SetNew(shared_quad_state, |
| 239 quad_rect, | 239 quad_rect, |
| 240 opaque_rect, | 240 opaque_rect, |
| 241 visible_size, | 241 visible_size, |
| 242 frame_resources_[0], | 242 frame_resources_[0], |
| 243 IOSurfaceDrawQuad::UNFLIPPED); | 243 IOSurfaceDrawQuad::UNFLIPPED); |
| 244 quad_sink->Append(io_surface_quad.PassAs<DrawQuad>(), | 244 quad_sink->Append(io_surface_quad.PassAs<DrawQuad>(), |
| 245 append_quads_data); | 245 append_quads_data); |
| 246 break; | 246 break; |
| 247 } | 247 } |
| 248 #if defined(GOOGLE_TV) | 248 #if defined(VIDEO_HOLE) |
| 249 // This block and other blocks wrapped around #if defined(GOOGLE_TV) is not | 249 // This block and other blocks wrapped around #if defined(GOOGLE_TV) is not |
| 250 // maintained by the general compositor team. Please contact the following | 250 // maintained by the general compositor team. Please contact the following |
| 251 // people instead: | 251 // people instead: |
| 252 // | 252 // |
| 253 // wonsik@chromium.org | 253 // wonsik@chromium.org |
| 254 // ycheo@chromium.org | 254 // ycheo@chromium.org |
| 255 case VideoFrameExternalResources::HOLE: { | 255 case VideoFrameExternalResources::HOLE: { |
| 256 DCHECK_EQ(frame_resources_.size(), 0u); | 256 DCHECK_EQ(frame_resources_.size(), 0u); |
| 257 scoped_ptr<SolidColorDrawQuad> solid_color_draw_quad = | 257 scoped_ptr<SolidColorDrawQuad> solid_color_draw_quad = |
| 258 SolidColorDrawQuad::Create(); | 258 SolidColorDrawQuad::Create(); |
| 259 | 259 |
| 260 // Create a solid color quad with transparent black and force no | 260 // Create a solid color quad with transparent black and force no |
| 261 // blending / no anti-aliasing. | 261 // blending / no anti-aliasing. |
| 262 solid_color_draw_quad->SetAll( | 262 solid_color_draw_quad->SetAll( |
| 263 shared_quad_state, quad_rect, quad_rect, quad_rect, false, | 263 shared_quad_state, quad_rect, quad_rect, quad_rect, false, |
| 264 SK_ColorTRANSPARENT, true); | 264 SK_ColorTRANSPARENT, true); |
| 265 quad_sink->Append(solid_color_draw_quad.PassAs<DrawQuad>(), | 265 quad_sink->Append(solid_color_draw_quad.PassAs<DrawQuad>(), |
| 266 append_quads_data); | 266 append_quads_data); |
| 267 break; | 267 break; |
| 268 } | 268 } |
| 269 #endif | 269 #endif // defined(VIDEO_HOLE) |
| 270 case VideoFrameExternalResources::NONE: | 270 case VideoFrameExternalResources::NONE: |
| 271 NOTIMPLEMENTED(); | 271 NOTIMPLEMENTED(); |
| 272 break; | 272 break; |
| 273 } | 273 } |
| 274 } | 274 } |
| 275 | 275 |
| 276 void VideoLayerImpl::DidDraw(ResourceProvider* resource_provider) { | 276 void VideoLayerImpl::DidDraw(ResourceProvider* resource_provider) { |
| 277 LayerImpl::DidDraw(resource_provider); | 277 LayerImpl::DidDraw(resource_provider); |
| 278 | 278 |
| 279 DCHECK(frame_.get()); | 279 DCHECK(frame_.get()); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 309 void VideoLayerImpl::SetProviderClientImpl( | 309 void VideoLayerImpl::SetProviderClientImpl( |
| 310 scoped_refptr<VideoFrameProviderClientImpl> provider_client_impl) { | 310 scoped_refptr<VideoFrameProviderClientImpl> provider_client_impl) { |
| 311 provider_client_impl_ = provider_client_impl; | 311 provider_client_impl_ = provider_client_impl; |
| 312 } | 312 } |
| 313 | 313 |
| 314 const char* VideoLayerImpl::LayerTypeAsString() const { | 314 const char* VideoLayerImpl::LayerTypeAsString() const { |
| 315 return "cc::VideoLayerImpl"; | 315 return "cc::VideoLayerImpl"; |
| 316 } | 316 } |
| 317 | 317 |
| 318 } // namespace cc | 318 } // namespace cc |
| OLD | NEW |