| 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 299 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 310 } | 310 } |
| 311 | 311 |
| 312 scoped_refptr<base::SingleThreadTaskRunner> | 312 scoped_refptr<base::SingleThreadTaskRunner> |
| 313 CastBrowserMainParts::GetMediaTaskRunner() { | 313 CastBrowserMainParts::GetMediaTaskRunner() { |
| 314 #if BUILDFLAG(IS_CAST_USING_CMA_BACKEND) | 314 #if BUILDFLAG(IS_CAST_USING_CMA_BACKEND) |
| 315 if (!media_thread_) { | 315 if (!media_thread_) { |
| 316 media_thread_.reset(new base::Thread("CastMediaThread")); | 316 media_thread_.reset(new base::Thread("CastMediaThread")); |
| 317 base::Thread::Options options; | 317 base::Thread::Options options; |
| 318 options.priority = base::ThreadPriority::REALTIME_AUDIO; | 318 options.priority = base::ThreadPriority::REALTIME_AUDIO; |
| 319 CHECK(media_thread_->StartWithOptions(options)); | 319 CHECK(media_thread_->StartWithOptions(options)); |
| 320 // Start the media_resource_tracker as soon as the media thread is created. |
| 321 // There are services that run on the media thread that depend on it, |
| 322 // and we want to initialize it with the correct task runner before any |
| 323 // tasks that might use it are posted to the media thread. |
| 324 media_resource_tracker_ = new media::MediaResourceTracker( |
| 325 base::ThreadTaskRunnerHandle::Get(), media_thread_->task_runner()); |
| 320 } | 326 } |
| 321 return media_thread_->task_runner(); | 327 return media_thread_->task_runner(); |
| 322 #else | 328 #else |
| 323 return nullptr; | 329 return nullptr; |
| 324 #endif // BUILDFLAG(IS_CAST_USING_CMA_BACKEND) | 330 #endif // BUILDFLAG(IS_CAST_USING_CMA_BACKEND) |
| 325 } | 331 } |
| 326 | 332 |
| 327 #if BUILDFLAG(IS_CAST_USING_CMA_BACKEND) | 333 #if BUILDFLAG(IS_CAST_USING_CMA_BACKEND) |
| 328 media::MediaResourceTracker* CastBrowserMainParts::media_resource_tracker() { | 334 media::MediaResourceTracker* CastBrowserMainParts::media_resource_tracker() { |
| 329 if (!media_resource_tracker_) { | 335 DCHECK(media_thread_); |
| 330 media_resource_tracker_ = new media::MediaResourceTracker( | |
| 331 base::ThreadTaskRunnerHandle::Get(), GetMediaTaskRunner()); | |
| 332 } | |
| 333 return media_resource_tracker_; | 336 return media_resource_tracker_; |
| 334 } | 337 } |
| 335 | 338 |
| 336 media::MediaPipelineBackendManager* | 339 media::MediaPipelineBackendManager* |
| 337 CastBrowserMainParts::media_pipeline_backend_manager() { | 340 CastBrowserMainParts::media_pipeline_backend_manager() { |
| 338 if (!media_pipeline_backend_manager_) { | 341 if (!media_pipeline_backend_manager_) { |
| 339 media_pipeline_backend_manager_.reset( | 342 media_pipeline_backend_manager_.reset( |
| 340 new media::MediaPipelineBackendManager(GetMediaTaskRunner())); | 343 new media::MediaPipelineBackendManager(GetMediaTaskRunner())); |
| 341 } | 344 } |
| 342 return media_pipeline_backend_manager_.get(); | 345 return media_pipeline_backend_manager_.get(); |
| (...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 561 | 564 |
| 562 void CastBrowserMainParts::PostDestroyThreads() { | 565 void CastBrowserMainParts::PostDestroyThreads() { |
| 563 #if !defined(OS_ANDROID) | 566 #if !defined(OS_ANDROID) |
| 564 media_resource_tracker_->FinalizeAndDestroy(); | 567 media_resource_tracker_->FinalizeAndDestroy(); |
| 565 media_resource_tracker_ = nullptr; | 568 media_resource_tracker_ = nullptr; |
| 566 #endif | 569 #endif |
| 567 } | 570 } |
| 568 | 571 |
| 569 } // namespace shell | 572 } // namespace shell |
| 570 } // namespace chromecast | 573 } // namespace chromecast |
| OLD | NEW |