| 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 } | |
| 283 #endif | 274 #endif |
| 284 | 275 |
| 285 void CastBrowserMainParts::PreMainMessageLoopStart() { | 276 void CastBrowserMainParts::PreMainMessageLoopStart() { |
| 286 // GroupedHistograms needs to be initialized before any threads are created | 277 // GroupedHistograms needs to be initialized before any threads are created |
| 287 // to prevent race conditions between calls to Preregister and those threads | 278 // to prevent race conditions between calls to Preregister and those threads |
| 288 // attempting to collect metrics. | 279 // attempting to collect metrics. |
| 289 // This call must also be before NetworkChangeNotifier, as it generates | 280 // This call must also be before NetworkChangeNotifier, as it generates |
| 290 // Net/DNS metrics. | 281 // Net/DNS metrics. |
| 291 metrics::PreregisterAllGroupedHistograms(); | 282 metrics::PreregisterAllGroupedHistograms(); |
| 292 | 283 |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 339 base::FilePath home_dir; | 330 base::FilePath home_dir; |
| 340 CHECK(PathService::Get(DIR_CAST_HOME, &home_dir)); | 331 CHECK(PathService::Get(DIR_CAST_HOME, &home_dir)); |
| 341 if (!base::CreateDirectory(home_dir)) | 332 if (!base::CreateDirectory(home_dir)) |
| 342 return 1; | 333 return 1; |
| 343 | 334 |
| 344 // Hook for internal code | 335 // Hook for internal code |
| 345 cast_browser_process_->browser_client()->PreCreateThreads(); | 336 cast_browser_process_->browser_client()->PreCreateThreads(); |
| 346 | 337 |
| 347 // AudioManager is created immediately after threads are created, requiring | 338 // AudioManager is created immediately after threads are created, requiring |
| 348 // AudioManagerFactory to be set beforehand. | 339 // AudioManagerFactory to be set beforehand. |
| 349 ::media::AudioManager::SetFactory( | 340 ::media::AudioManager::SetFactory(new media::CastAudioManagerFactory()); |
| 350 new media::CastAudioManagerFactory(media_pipeline_backend_manager())); | |
| 351 | 341 |
| 352 // Set GL strings so GPU config code can make correct feature blacklisting/ | 342 // Set GL strings so GPU config code can make correct feature blacklisting/ |
| 353 // whitelisting decisions. | 343 // whitelisting decisions. |
| 354 // Note: SetGLStrings can be called before GpuDataManager::Initialize. | 344 // Note: SetGLStrings can be called before GpuDataManager::Initialize. |
| 355 scoped_ptr<CastSysInfo> sys_info = CreateSysInfo(); | 345 scoped_ptr<CastSysInfo> sys_info = CreateSysInfo(); |
| 356 content::GpuDataManager::GetInstance()->SetGLStrings( | 346 content::GpuDataManager::GetInstance()->SetGLStrings( |
| 357 sys_info->GetGlVendor(), sys_info->GetGlRenderer(), | 347 sys_info->GetGlVendor(), sys_info->GetGlRenderer(), |
| 358 sys_info->GetGlVersion()); | 348 sys_info->GetGlVersion()); |
| 359 #endif | 349 #endif |
| 360 | 350 |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 488 #endif | 478 #endif |
| 489 | 479 |
| 490 DeregisterKillOnAlarm(); | 480 DeregisterKillOnAlarm(); |
| 491 #endif | 481 #endif |
| 492 } | 482 } |
| 493 | 483 |
| 494 void CastBrowserMainParts::PostDestroyThreads() { | 484 void CastBrowserMainParts::PostDestroyThreads() { |
| 495 #if !defined(OS_ANDROID) | 485 #if !defined(OS_ANDROID) |
| 496 media_resource_tracker_->FinalizeAndDestroy(); | 486 media_resource_tracker_->FinalizeAndDestroy(); |
| 497 media_resource_tracker_ = nullptr; | 487 media_resource_tracker_ = nullptr; |
| 498 media_pipeline_backend_manager_.reset(); | |
| 499 #endif | 488 #endif |
| 500 } | 489 } |
| 501 | 490 |
| 502 } // namespace shell | 491 } // namespace shell |
| 503 } // namespace chromecast | 492 } // namespace chromecast |
| OLD | NEW |