| 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 253 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 264 } | 264 } |
| 265 | 265 |
| 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 |
| 275 media::MediaPipelineBackendManager* |
| 276 CastBrowserMainParts::media_pipeline_backend_manager() { |
| 277 if (!media_pipeline_backend_manager_) { |
| 278 media_pipeline_backend_manager_.reset( |
| 279 new media::MediaPipelineBackendManager(GetMediaTaskRunner())); |
| 280 } |
| 281 return media_pipeline_backend_manager_.get(); |
| 282 } |
| 274 #endif | 283 #endif |
| 275 | 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 |
| (...skipping 46 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 127 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(); |
| 488 #endif | 499 #endif |
| 489 } | 500 } |
| 490 | 501 |
| 491 } // namespace shell | 502 } // namespace shell |
| 492 } // namespace chromecast | 503 } // namespace chromecast |
| OLD | NEW |