Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "chromecast/browser/cast_browser_main_parts.h" | 5 #include "chromecast/browser/cast_browser_main_parts.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <string.h> | 8 #include <string.h> |
| 9 | 9 |
| 10 #include <string> | 10 #include <string> |
| (...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 266 #if !defined(OS_ANDROID) | 266 #if !defined(OS_ANDROID) |
| 267 media::MediaResourceTracker* CastBrowserMainParts::media_resource_tracker() { | 267 media::MediaResourceTracker* CastBrowserMainParts::media_resource_tracker() { |
| 268 if (!media_resource_tracker_) { | 268 if (!media_resource_tracker_) { |
| 269 media_resource_tracker_ = new media::MediaResourceTracker( | 269 media_resource_tracker_ = new media::MediaResourceTracker( |
| 270 base::ThreadTaskRunnerHandle::Get(), GetMediaTaskRunner()); | 270 base::ThreadTaskRunnerHandle::Get(), GetMediaTaskRunner()); |
| 271 } | 271 } |
| 272 return media_resource_tracker_; | 272 return media_resource_tracker_; |
| 273 } | 273 } |
| 274 #endif | 274 #endif |
| 275 | 275 |
| 276 media::MediaPipelineBackendManager* | |
| 277 CastBrowserMainParts::media_pipeline_backend_manager() { | |
| 278 if (!media_pipeline_backend_manager_) { | |
| 279 media_pipeline_backend_manager_.reset( | |
| 280 new media::MediaPipelineBackendManager(GetMediaTaskRunner())); | |
| 281 } | |
| 282 return media_pipeline_backend_manager_.get(); | |
| 283 } | |
| 284 | |
| 276 void CastBrowserMainParts::PreMainMessageLoopStart() { | 285 void CastBrowserMainParts::PreMainMessageLoopStart() { |
| 277 // GroupedHistograms needs to be initialized before any threads are created | 286 // GroupedHistograms needs to be initialized before any threads are created |
| 278 // to prevent race conditions between calls to Preregister and those threads | 287 // to prevent race conditions between calls to Preregister and those threads |
| 279 // attempting to collect metrics. | 288 // attempting to collect metrics. |
| 280 // This call must also be before NetworkChangeNotifier, as it generates | 289 // This call must also be before NetworkChangeNotifier, as it generates |
| 281 // Net/DNS metrics. | 290 // Net/DNS metrics. |
| 282 metrics::PreregisterAllGroupedHistograms(); | 291 metrics::PreregisterAllGroupedHistograms(); |
| 283 | 292 |
| 284 #if defined(OS_ANDROID) | 293 #if defined(OS_ANDROID) |
| 285 net::NetworkChangeNotifier::SetFactory( | 294 net::NetworkChangeNotifier::SetFactory( |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 330 base::FilePath home_dir; | 339 base::FilePath home_dir; |
| 331 CHECK(PathService::Get(DIR_CAST_HOME, &home_dir)); | 340 CHECK(PathService::Get(DIR_CAST_HOME, &home_dir)); |
| 332 if (!base::CreateDirectory(home_dir)) | 341 if (!base::CreateDirectory(home_dir)) |
| 333 return 1; | 342 return 1; |
| 334 | 343 |
| 335 // Hook for internal code | 344 // Hook for internal code |
| 336 cast_browser_process_->browser_client()->PreCreateThreads(); | 345 cast_browser_process_->browser_client()->PreCreateThreads(); |
| 337 | 346 |
| 338 // AudioManager is created immediately after threads are created, requiring | 347 // AudioManager is created immediately after threads are created, requiring |
| 339 // AudioManagerFactory to be set beforehand. | 348 // AudioManagerFactory to be set beforehand. |
| 340 ::media::AudioManager::SetFactory(new media::CastAudioManagerFactory()); | 349 ::media::AudioManager::SetFactory( |
| 350 new media::CastAudioManagerFactory(media_pipeline_backend_manager())); | |
| 341 | 351 |
| 342 // Set GL strings so GPU config code can make correct feature blacklisting/ | 352 // Set GL strings so GPU config code can make correct feature blacklisting/ |
| 343 // whitelisting decisions. | 353 // whitelisting decisions. |
| 344 // Note: SetGLStrings can be called before GpuDataManager::Initialize. | 354 // Note: SetGLStrings can be called before GpuDataManager::Initialize. |
| 345 scoped_ptr<CastSysInfo> sys_info = CreateSysInfo(); | 355 scoped_ptr<CastSysInfo> sys_info = CreateSysInfo(); |
| 346 content::GpuDataManager::GetInstance()->SetGLStrings( | 356 content::GpuDataManager::GetInstance()->SetGLStrings( |
| 347 sys_info->GetGlVendor(), sys_info->GetGlRenderer(), | 357 sys_info->GetGlVendor(), sys_info->GetGlRenderer(), |
| 348 sys_info->GetGlVersion()); | 358 sys_info->GetGlVersion()); |
| 349 #endif | 359 #endif |
| 350 | 360 |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 409 ui::OverlayManagerCast::SetOverlayCompositedCallback( | 419 ui::OverlayManagerCast::SetOverlayCompositedCallback( |
| 410 base::Bind(&media::VideoPlaneController::SetGeometry, | 420 base::Bind(&media::VideoPlaneController::SetGeometry, |
| 411 base::Unretained(video_plane_controller_.get()))); | 421 base::Unretained(video_plane_controller_.get()))); |
| 412 #endif | 422 #endif |
| 413 | 423 |
| 414 cast_browser_process_->SetCastService( | 424 cast_browser_process_->SetCastService( |
| 415 cast_browser_process_->browser_client()->CreateCastService( | 425 cast_browser_process_->browser_client()->CreateCastService( |
| 416 cast_browser_process_->browser_context(), | 426 cast_browser_process_->browser_context(), |
| 417 cast_browser_process_->pref_service(), | 427 cast_browser_process_->pref_service(), |
| 418 url_request_context_factory_->GetSystemGetter(), | 428 url_request_context_factory_->GetSystemGetter(), |
| 419 video_plane_controller_.get())); | 429 video_plane_controller_.get(), media_pipeline_backend_manager())); |
| 420 cast_browser_process_->cast_service()->Initialize(); | 430 cast_browser_process_->cast_service()->Initialize(); |
| 421 | 431 |
| 422 #if !defined(OS_ANDROID) | 432 #if !defined(OS_ANDROID) |
| 423 media_resource_tracker()->InitializeMediaLib(); | 433 media_resource_tracker()->InitializeMediaLib(); |
| 424 #endif | 434 #endif |
| 425 ::media::InitializeMediaLibrary(); | 435 ::media::InitializeMediaLibrary(); |
| 426 | 436 |
| 427 // Initializing metrics service and network delegates must happen after cast | 437 // Initializing metrics service and network delegates must happen after cast |
| 428 // service is intialized because CastMetricsServiceClient and | 438 // service is intialized because CastMetricsServiceClient and |
| 429 // CastNetworkDelegate may use components initialized by cast service. | 439 // CastNetworkDelegate may use components initialized by cast service. |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 478 #endif | 488 #endif |
| 479 | 489 |
| 480 DeregisterKillOnAlarm(); | 490 DeregisterKillOnAlarm(); |
| 481 #endif | 491 #endif |
| 482 } | 492 } |
| 483 | 493 |
| 484 void CastBrowserMainParts::PostDestroyThreads() { | 494 void CastBrowserMainParts::PostDestroyThreads() { |
| 485 #if !defined(OS_ANDROID) | 495 #if !defined(OS_ANDROID) |
| 486 media_resource_tracker_->FinalizeAndDestroy(); | 496 media_resource_tracker_->FinalizeAndDestroy(); |
| 487 media_resource_tracker_ = nullptr; | 497 media_resource_tracker_ = nullptr; |
| 498 media_pipeline_backend_manager_.reset(nullptr); | |
|
alokp
2016/03/31 04:37:24
1. No need for nullptr.
2. This needs to happen be
tianyuwang1
2016/03/31 18:14:53
Done.
| |
| 488 #endif | 499 #endif |
| 489 } | 500 } |
| 490 | 501 |
| 491 } // namespace shell | 502 } // namespace shell |
| 492 } // namespace chromecast | 503 } // namespace chromecast |
| OLD | NEW |