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

Side by Side Diff: cc/layers/video_layer_impl.cc

Issue 485043003: cc: Use correct message loop proxy in BlockingTaskRunner (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Comments. Created 6 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 | Annotate | Revision Log
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 "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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698