Chromium Code Reviews| Index: chromecast/media/cma/backend/media_pipeline_backend_manager.cc |
| diff --git a/chromecast/media/cma/backend/media_pipeline_backend_manager.cc b/chromecast/media/cma/backend/media_pipeline_backend_manager.cc |
| index 49227383e414f2b37af46db4d778c4db3cec5e49..6fa18df86cada8d5d9eceeeac3b16b729be7e840 100644 |
| --- a/chromecast/media/cma/backend/media_pipeline_backend_manager.cc |
| +++ b/chromecast/media/cma/backend/media_pipeline_backend_manager.cc |
| @@ -15,8 +15,9 @@ namespace media { |
| MediaPipelineBackendManager::MediaPipelineBackendManager( |
| scoped_refptr<base::SingleThreadTaskRunner> media_task_runner) |
| - : media_task_runner_(std::move(media_task_runner)) { |
| -} |
| + : media_task_runner_(std::move(media_task_runner)), |
| + audio_decoder_count_(0), |
| + video_decoder_count_(0) {} |
| MediaPipelineBackendManager::~MediaPipelineBackendManager() { |
| } |
| @@ -42,6 +43,38 @@ MediaPipelineBackendManager::CreateMediaPipelineBackend( |
| return backend_ptr; |
| } |
| +bool MediaPipelineBackendManager::IncrementAudioDecoderCount() { |
|
alokp
2016/07/22 16:46:44
nit: You may want to merge the implementation for
halliwell
2016/07/22 17:16:29
Done.
|
| + DCHECK(media_task_runner_->BelongsToCurrentThread()); |
| + if (audio_decoder_count_ >= 2) { |
| + LOG(WARNING) << "AudioDecoder limit reached"; |
| + return false; |
| + } |
| + |
| + ++audio_decoder_count_; |
| + return true; |
| +} |
| + |
| +bool MediaPipelineBackendManager::IncrementVideoDecoderCount() { |
| + DCHECK(media_task_runner_->BelongsToCurrentThread()); |
| + if (video_decoder_count_ >= 1) { |
| + LOG(WARNING) << "VideoDecoder limit reached"; |
| + return false; |
| + } |
| + |
| + ++video_decoder_count_; |
| + return true; |
| +} |
| + |
| +void MediaPipelineBackendManager::DecrementAudioDecoderCount() { |
| + DCHECK(media_task_runner_->BelongsToCurrentThread()); |
| + audio_decoder_count_--; |
|
alokp
2016/07/22 16:46:44
DCHECK(audio_decoder_count_ > 0)
halliwell
2016/07/22 17:16:29
Done.
|
| +} |
| + |
| +void MediaPipelineBackendManager::DecrementVideoDecoderCount() { |
| + DCHECK(media_task_runner_->BelongsToCurrentThread()); |
| + video_decoder_count_--; |
|
alokp
2016/07/22 16:46:44
ditto
halliwell
2016/07/22 17:16:29
Done.
|
| +} |
| + |
| void MediaPipelineBackendManager::OnMediaPipelineBackendDestroyed( |
| const MediaPipelineBackend* backend) { |
| DCHECK(media_task_runner_->BelongsToCurrentThread()); |