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()); |