| OLD | NEW | 
|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/media/cma_media_pipeline_client.h" | 5 #include "chromecast/browser/media/cma_media_pipeline_client.h" | 
| 6 #include "chromecast/public/cast_media_shlib.h" | 6 #include "chromecast/public/cast_media_shlib.h" | 
| 7 | 7 | 
| 8 namespace chromecast { | 8 namespace chromecast { | 
| 9 namespace media { | 9 namespace media { | 
| 10 | 10 | 
| 11 CmaMediaPipelineClient::CmaMediaPipelineClient() : media_pipeline_count_(0) { | 11 CmaMediaPipelineClient::CmaMediaPipelineClient() : media_pipeline_count_(0) { | 
| 12   thread_checker_.DetachFromThread(); | 12   thread_checker_.DetachFromThread(); | 
| 13 } | 13 } | 
| 14 | 14 | 
| 15 CmaMediaPipelineClient::~CmaMediaPipelineClient() {} | 15 CmaMediaPipelineClient::~CmaMediaPipelineClient() {} | 
| 16 | 16 | 
| 17 scoped_ptr<MediaPipelineBackend> | 17 scoped_ptr<MediaPipelineBackend> | 
| 18 CmaMediaPipelineClient::CreateMediaPipelineBackend( | 18 CmaMediaPipelineClient::CreateMediaPipelineBackend( | 
| 19     const MediaPipelineDeviceParams& params) { | 19     const MediaPipelineDeviceParams& params) { | 
| 20   return make_scoped_ptr(CastMediaShlib::CreateMediaPipelineBackend(params)); | 20   return make_scoped_ptr(CastMediaShlib::CreateMediaPipelineBackend(params)); | 
| 21 } | 21 } | 
| 22 | 22 | 
| 23 void CmaMediaPipelineClient::OnMediaPipelineBackendCreated() { | 23 void CmaMediaPipelineClient::OnMediaPipelineBackendCreated() { | 
| 24   DCHECK(thread_checker_.CalledOnValidThread()); | 24   DCHECK(thread_checker_.CalledOnValidThread()); | 
| 25   media_pipeline_count_++; | 25   media_pipeline_count_++; | 
| 26 | 26 | 
| 27   if (media_pipeline_count_ == 1) | 27   if (media_pipeline_count_ == 1) | 
| 28     NotifyResourceAcquired(); | 28     CastResource::RegisterWithClient(); | 
| 29 } | 29 } | 
| 30 | 30 | 
| 31 void CmaMediaPipelineClient::OnMediaPipelineBackendDestroyed() { | 31 void CmaMediaPipelineClient::OnMediaPipelineBackendDestroyed() { | 
| 32   DCHECK(thread_checker_.CalledOnValidThread()); | 32   DCHECK(thread_checker_.CalledOnValidThread()); | 
| 33   media_pipeline_count_--; | 33   media_pipeline_count_--; | 
| 34 | 34 | 
| 35   if (media_pipeline_count_ == 0) | 35   if (media_pipeline_count_ == 0) | 
| 36     NotifyResourceReleased(CastResource::kResourceNone); | 36     NotifyResourceReleased(CastResource::kResourceNone); | 
| 37 } | 37 } | 
| 38 | 38 | 
|  | 39 void CmaMediaPipelineClient::AcquireResource(CastResource::Resource resource) {} | 
|  | 40 | 
| 39 void CmaMediaPipelineClient::ReleaseResource(CastResource::Resource resource) { | 41 void CmaMediaPipelineClient::ReleaseResource(CastResource::Resource resource) { | 
| 40   CastResource::Resource audio_video_resource = | 42   CastResource::Resource audio_video_resource = | 
| 41       static_cast<CastResource::Resource>(CastResource::kResourceAudio | | 43       static_cast<CastResource::Resource>(CastResource::kResourceAudio | | 
| 42                                           CastResource::kResourceScreenPrimary); | 44                                           CastResource::kResourceScreenPrimary); | 
| 43 | 45 | 
| 44   // TODO(yucliu): media pipeline need to stop audio video seperately | 46   // TODO(yucliu): media pipeline need to stop audio video seperately | 
| 45   if (!(resource & audio_video_resource)) | 47   if (!(resource & audio_video_resource)) | 
| 46     NotifyResourceReleased(audio_video_resource); | 48     NotifyResourceReleased(audio_video_resource); | 
| 47 } | 49 } | 
| 48 | 50 | 
| 49 }  // namespace media | 51 }  // namespace media | 
| 50 }  // namespace chromecast | 52 }  // namespace chromecast | 
| OLD | NEW | 
|---|