Chromium Code Reviews| 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/video_frame_provider_client_impl.h" | 9 #include "cc/layers/video_frame_provider_client_impl.h" |
| 10 #include "cc/quads/io_surface_draw_quad.h" | 10 #include "cc/quads/io_surface_draw_quad.h" |
| 11 #include "cc/quads/stream_video_draw_quad.h" | 11 #include "cc/quads/stream_video_draw_quad.h" |
| 12 #include "cc/quads/texture_draw_quad.h" | 12 #include "cc/quads/texture_draw_quad.h" |
| 13 #include "cc/quads/yuv_video_draw_quad.h" | 13 #include "cc/quads/yuv_video_draw_quad.h" |
| 14 #include "cc/resources/resource_provider.h" | 14 #include "cc/resources/resource_provider.h" |
| 15 #include "cc/resources/single_release_callback.h" | 15 #include "cc/resources/single_release_callback_impl.h" |
| 16 #include "cc/trees/layer_tree_impl.h" | 16 #include "cc/trees/layer_tree_impl.h" |
| 17 #include "cc/trees/occlusion_tracker.h" | 17 #include "cc/trees/occlusion_tracker.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(VIDEO_HOLE) | 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 // defined(VIDEO_HOLE) | 23 #endif // defined(VIDEO_HOLE) |
| 24 | 24 |
| 25 namespace cc { | 25 namespace cc { |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 115 software_release_callback_ = | 115 software_release_callback_ = |
| 116 external_resources.software_release_callback; | 116 external_resources.software_release_callback; |
| 117 return true; | 117 return true; |
| 118 } | 118 } |
| 119 | 119 |
| 120 DCHECK_EQ(external_resources.mailboxes.size(), | 120 DCHECK_EQ(external_resources.mailboxes.size(), |
| 121 external_resources.release_callbacks.size()); | 121 external_resources.release_callbacks.size()); |
| 122 for (size_t i = 0; i < external_resources.mailboxes.size(); ++i) { | 122 for (size_t i = 0; i < external_resources.mailboxes.size(); ++i) { |
| 123 unsigned resource_id = resource_provider->CreateResourceFromTextureMailbox( | 123 unsigned resource_id = resource_provider->CreateResourceFromTextureMailbox( |
| 124 external_resources.mailboxes[i], | 124 external_resources.mailboxes[i], |
| 125 SingleReleaseCallback::Create(external_resources.release_callbacks[i])); | 125 SingleReleaseCallbackImpl::Create( |
| 126 external_resources.release_callbacks[i])); | |
| 126 frame_resources_.push_back(resource_id); | 127 frame_resources_.push_back(resource_id); |
| 127 } | 128 } |
| 128 | 129 |
| 129 return true; | 130 return true; |
| 130 } | 131 } |
| 131 | 132 |
| 132 void VideoLayerImpl::AppendQuads( | 133 void VideoLayerImpl::AppendQuads( |
| 133 RenderPass* render_pass, | 134 RenderPass* render_pass, |
| 134 const OcclusionTracker<LayerImpl>& occlusion_tracker, | 135 const OcclusionTracker<LayerImpl>& occlusion_tracker, |
| 135 AppendQuadsData* append_quads_data) { | 136 AppendQuadsData* append_quads_data) { |
| (...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 329 } | 330 } |
| 330 } | 331 } |
| 331 | 332 |
| 332 void VideoLayerImpl::DidDraw(ResourceProvider* resource_provider) { | 333 void VideoLayerImpl::DidDraw(ResourceProvider* resource_provider) { |
| 333 LayerImpl::DidDraw(resource_provider); | 334 LayerImpl::DidDraw(resource_provider); |
| 334 | 335 |
| 335 DCHECK(frame_.get()); | 336 DCHECK(frame_.get()); |
| 336 | 337 |
| 337 if (frame_resource_type_ == | 338 if (frame_resource_type_ == |
| 338 VideoFrameExternalResources::SOFTWARE_RESOURCE) { | 339 VideoFrameExternalResources::SOFTWARE_RESOURCE) { |
| 340 ResourceProvider* resource_provider = | |
| 341 layer_tree_impl()->resource_provider(); | |
| 339 for (size_t i = 0; i < software_resources_.size(); ++i) | 342 for (size_t i = 0; i < software_resources_.size(); ++i) |
| 340 software_release_callback_.Run(0, false); | 343 software_release_callback_.Run( |
| 344 0, false, resource_provider->blocking_main_thread_task_runner()); | |
|
danakj
2014/09/03 16:09:36
same here use layer_tree_impl to access the task r
Sami
2014/09/03 17:59:12
Done.
| |
| 341 | 345 |
| 342 software_resources_.clear(); | 346 software_resources_.clear(); |
| 343 software_release_callback_.Reset(); | 347 software_release_callback_.Reset(); |
| 344 } else { | 348 } else { |
| 345 for (size_t i = 0; i < frame_resources_.size(); ++i) | 349 for (size_t i = 0; i < frame_resources_.size(); ++i) |
| 346 resource_provider->DeleteResource(frame_resources_[i]); | 350 resource_provider->DeleteResource(frame_resources_[i]); |
| 347 frame_resources_.clear(); | 351 frame_resources_.clear(); |
| 348 } | 352 } |
| 349 | 353 |
| 350 provider_client_impl_->PutCurrentFrame(frame_); | 354 provider_client_impl_->PutCurrentFrame(frame_); |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 365 void VideoLayerImpl::SetProviderClientImpl( | 369 void VideoLayerImpl::SetProviderClientImpl( |
| 366 scoped_refptr<VideoFrameProviderClientImpl> provider_client_impl) { | 370 scoped_refptr<VideoFrameProviderClientImpl> provider_client_impl) { |
| 367 provider_client_impl_ = provider_client_impl; | 371 provider_client_impl_ = provider_client_impl; |
| 368 } | 372 } |
| 369 | 373 |
| 370 const char* VideoLayerImpl::LayerTypeAsString() const { | 374 const char* VideoLayerImpl::LayerTypeAsString() const { |
| 371 return "cc::VideoLayerImpl"; | 375 return "cc::VideoLayerImpl"; |
| 372 } | 376 } |
| 373 | 377 |
| 374 } // namespace cc | 378 } // namespace cc |
| OLD | NEW |