OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "content/common/gpu/media/rendering_helper.h" | 5 #include "content/common/gpu/media/rendering_helper.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <numeric> | 8 #include <numeric> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
238 base::RunLoop wait_window_resize; | 238 base::RunLoop wait_window_resize; |
239 | 239 |
240 platform_window_delegate_.reset(new RenderingHelper::StubOzoneDelegate()); | 240 platform_window_delegate_.reset(new RenderingHelper::StubOzoneDelegate()); |
241 window_ = platform_window_delegate_->accelerated_widget(); | 241 window_ = platform_window_delegate_->accelerated_widget(); |
242 #if defined(OS_CHROMEOS) | 242 #if defined(OS_CHROMEOS) |
243 // We hold onto the main loop here to wait for the DisplayController | 243 // We hold onto the main loop here to wait for the DisplayController |
244 // to give us the size of the display so we can create a window of | 244 // to give us the size of the display so we can create a window of |
245 // the same size. | 245 // the same size. |
246 base::RunLoop wait_display_setup; | 246 base::RunLoop wait_display_setup; |
247 DisplayConfiguratorObserver display_setup_observer(&wait_display_setup); | 247 DisplayConfiguratorObserver display_setup_observer(&wait_display_setup); |
248 display_configurator_.reset(new ui::DisplayConfigurator()); | 248 display_configurator_ = DisplayConfigurator::GetInstance(); |
249 display_configurator_->AddObserver(&display_setup_observer); | 249 display_configurator_->AddObserver(&display_setup_observer); |
250 display_configurator_->Init(true); | 250 display_configurator_->Init(true); |
251 display_configurator_->ForceInitialConfigure(0); | 251 display_configurator_->ForceInitialConfigure(0); |
252 // Make sure all the display configuration is applied. | 252 // Make sure all the display configuration is applied. |
253 wait_display_setup.Run(); | 253 wait_display_setup.Run(); |
254 display_configurator_->RemoveObserver(&display_setup_observer); | 254 display_configurator_->RemoveObserver(&display_setup_observer); |
255 | 255 |
256 platform_window_delegate_->platform_window()->SetBounds( | 256 platform_window_delegate_->platform_window()->SetBounds( |
257 gfx::Rect(display_configurator_->framebuffer_size())); | 257 gfx::Rect(display_configurator_->framebuffer_size())); |
258 #else | 258 #else |
(...skipping 21 matching lines...) Expand all Loading... |
280 #elif defined(USE_X11) | 280 #elif defined(USE_X11) |
281 // Destroy resources acquired in Initialize, in reverse-acquisition order. | 281 // Destroy resources acquired in Initialize, in reverse-acquisition order. |
282 if (window_) { | 282 if (window_) { |
283 CHECK(XUnmapWindow(gfx::GetXDisplay(), window_)); | 283 CHECK(XUnmapWindow(gfx::GetXDisplay(), window_)); |
284 CHECK(XDestroyWindow(gfx::GetXDisplay(), window_)); | 284 CHECK(XDestroyWindow(gfx::GetXDisplay(), window_)); |
285 } | 285 } |
286 #elif defined(USE_OZONE) | 286 #elif defined(USE_OZONE) |
287 platform_window_delegate_.reset(); | 287 platform_window_delegate_.reset(); |
288 #if defined(OS_CHROMEOS) | 288 #if defined(OS_CHROMEOS) |
289 display_configurator_->PrepareForExit(); | 289 display_configurator_->PrepareForExit(); |
290 display_configurator_.reset(); | |
291 #endif | 290 #endif |
292 #endif | 291 #endif |
293 window_ = gfx::kNullAcceleratedWidget; | 292 window_ = gfx::kNullAcceleratedWidget; |
294 } | 293 } |
295 | 294 |
296 void RenderingHelper::Initialize(const RenderingHelperParams& params, | 295 void RenderingHelper::Initialize(const RenderingHelperParams& params, |
297 base::WaitableEvent* done) { | 296 base::WaitableEvent* done) { |
298 // Use videos_.size() != 0 as a proxy for the class having already been | 297 // Use videos_.size() != 0 as a proxy for the class having already been |
299 // Initialize()'d, and UnInitialize() before continuing. | 298 // Initialize()'d, and UnInitialize() before continuing. |
300 if (videos_.size()) { | 299 if (videos_.size()) { |
(...skipping 543 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
844 // When the rendering falls behind, drops frames. | 843 // When the rendering falls behind, drops frames. |
845 while (scheduled_render_time_ < target) { | 844 while (scheduled_render_time_ < target) { |
846 scheduled_render_time_ += frame_duration_; | 845 scheduled_render_time_ += frame_duration_; |
847 DropOneFrameForAllVideos(); | 846 DropOneFrameForAllVideos(); |
848 } | 847 } |
849 | 848 |
850 message_loop_->PostDelayedTask( | 849 message_loop_->PostDelayedTask( |
851 FROM_HERE, render_task_.callback(), target - now); | 850 FROM_HERE, render_task_.callback(), target - now); |
852 } | 851 } |
853 } // namespace content | 852 } // namespace content |
OLD | NEW |