| 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/media/cma/pipeline/media_pipeline_impl.h" | 5 #include "chromecast/media/cma/pipeline/media_pipeline_impl.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 109 video_pipeline_.reset(); | 109 video_pipeline_.reset(); |
| 110 audio_pipeline_.reset(); | 110 audio_pipeline_.reset(); |
| 111 audio_decoder_.reset(); | 111 audio_decoder_.reset(); |
| 112 media_pipeline_backend_.reset(); | 112 media_pipeline_backend_.reset(); |
| 113 if (!client_.pipeline_backend_destroyed_cb.is_null()) | 113 if (!client_.pipeline_backend_destroyed_cb.is_null()) |
| 114 client_.pipeline_backend_destroyed_cb.Run(); | 114 client_.pipeline_backend_destroyed_cb.Run(); |
| 115 } | 115 } |
| 116 | 116 |
| 117 void MediaPipelineImpl::Initialize( | 117 void MediaPipelineImpl::Initialize( |
| 118 LoadType load_type, | 118 LoadType load_type, |
| 119 scoped_ptr<MediaPipelineBackend> media_pipeline_backend) { | 119 std::unique_ptr<MediaPipelineBackend> media_pipeline_backend) { |
| 120 CMALOG(kLogControl) << __FUNCTION__; | 120 CMALOG(kLogControl) << __FUNCTION__; |
| 121 DCHECK(thread_checker_.CalledOnValidThread()); | 121 DCHECK(thread_checker_.CalledOnValidThread()); |
| 122 audio_decoder_.reset(); | 122 audio_decoder_.reset(); |
| 123 media_pipeline_backend_.reset(media_pipeline_backend.release()); | 123 media_pipeline_backend_.reset(media_pipeline_backend.release()); |
| 124 if (!client_.pipeline_backend_created_cb.is_null()) | 124 if (!client_.pipeline_backend_created_cb.is_null()) |
| 125 client_.pipeline_backend_created_cb.Run(); | 125 client_.pipeline_backend_created_cb.Run(); |
| 126 | 126 |
| 127 if (load_type == kLoadTypeURL || load_type == kLoadTypeMediaSource) { | 127 if (load_type == kLoadTypeURL || load_type == kLoadTypeMediaSource) { |
| 128 base::TimeDelta low_threshold(kLowBufferThresholdURL); | 128 base::TimeDelta low_threshold(kLowBufferThresholdURL); |
| 129 base::TimeDelta high_threshold(kHighBufferThresholdURL); | 129 base::TimeDelta high_threshold(kHighBufferThresholdURL); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 160 cdm_ = cdm; | 160 cdm_ = cdm; |
| 161 if (audio_pipeline_) | 161 if (audio_pipeline_) |
| 162 audio_pipeline_->SetCdm(cdm); | 162 audio_pipeline_->SetCdm(cdm); |
| 163 if (video_pipeline_) | 163 if (video_pipeline_) |
| 164 video_pipeline_->SetCdm(cdm); | 164 video_pipeline_->SetCdm(cdm); |
| 165 } | 165 } |
| 166 | 166 |
| 167 ::media::PipelineStatus MediaPipelineImpl::InitializeAudio( | 167 ::media::PipelineStatus MediaPipelineImpl::InitializeAudio( |
| 168 const ::media::AudioDecoderConfig& config, | 168 const ::media::AudioDecoderConfig& config, |
| 169 const AvPipelineClient& client, | 169 const AvPipelineClient& client, |
| 170 scoped_ptr<CodedFrameProvider> frame_provider) { | 170 std::unique_ptr<CodedFrameProvider> frame_provider) { |
| 171 DCHECK(thread_checker_.CalledOnValidThread()); | 171 DCHECK(thread_checker_.CalledOnValidThread()); |
| 172 DCHECK(!audio_decoder_); | 172 DCHECK(!audio_decoder_); |
| 173 | 173 |
| 174 MediaPipelineBackend::AudioDecoder* backend_audio_decoder = | 174 MediaPipelineBackend::AudioDecoder* backend_audio_decoder = |
| 175 media_pipeline_backend_->CreateAudioDecoder(); | 175 media_pipeline_backend_->CreateAudioDecoder(); |
| 176 if (!backend_audio_decoder) { | 176 if (!backend_audio_decoder) { |
| 177 return ::media::PIPELINE_ERROR_ABORT; | 177 return ::media::PIPELINE_ERROR_ABORT; |
| 178 } | 178 } |
| 179 audio_decoder_.reset(new AudioDecoderSoftwareWrapper(backend_audio_decoder)); | 179 audio_decoder_.reset(new AudioDecoderSoftwareWrapper(backend_audio_decoder)); |
| 180 audio_pipeline_.reset(new AudioPipelineImpl(audio_decoder_.get(), client)); | 180 audio_pipeline_.reset(new AudioPipelineImpl(audio_decoder_.get(), client)); |
| 181 if (cdm_) | 181 if (cdm_) |
| 182 audio_pipeline_->SetCdm(cdm_); | 182 audio_pipeline_->SetCdm(cdm_); |
| 183 return audio_pipeline_->Initialize(config, std::move(frame_provider)); | 183 return audio_pipeline_->Initialize(config, std::move(frame_provider)); |
| 184 } | 184 } |
| 185 | 185 |
| 186 ::media::PipelineStatus MediaPipelineImpl::InitializeVideo( | 186 ::media::PipelineStatus MediaPipelineImpl::InitializeVideo( |
| 187 const std::vector<::media::VideoDecoderConfig>& configs, | 187 const std::vector<::media::VideoDecoderConfig>& configs, |
| 188 const VideoPipelineClient& client, | 188 const VideoPipelineClient& client, |
| 189 scoped_ptr<CodedFrameProvider> frame_provider) { | 189 std::unique_ptr<CodedFrameProvider> frame_provider) { |
| 190 DCHECK(thread_checker_.CalledOnValidThread()); | 190 DCHECK(thread_checker_.CalledOnValidThread()); |
| 191 DCHECK(!video_decoder_); | 191 DCHECK(!video_decoder_); |
| 192 | 192 |
| 193 video_decoder_ = media_pipeline_backend_->CreateVideoDecoder(); | 193 video_decoder_ = media_pipeline_backend_->CreateVideoDecoder(); |
| 194 if (!video_decoder_) { | 194 if (!video_decoder_) { |
| 195 return ::media::PIPELINE_ERROR_ABORT; | 195 return ::media::PIPELINE_ERROR_ABORT; |
| 196 } | 196 } |
| 197 video_pipeline_.reset(new VideoPipelineImpl(video_decoder_, client)); | 197 video_pipeline_.reset(new VideoPipelineImpl(video_decoder_, client)); |
| 198 if (cdm_) | 198 if (cdm_) |
| 199 video_pipeline_->SetCdm(cdm_); | 199 video_pipeline_->SetCdm(cdm_); |
| (...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 513 | 513 |
| 514 void MediaPipelineImpl::ResetBitrateState() { | 514 void MediaPipelineImpl::ResetBitrateState() { |
| 515 elapsed_time_delta_ = base::TimeDelta::FromSeconds(0); | 515 elapsed_time_delta_ = base::TimeDelta::FromSeconds(0); |
| 516 audio_bytes_for_bitrate_estimation_ = 0; | 516 audio_bytes_for_bitrate_estimation_ = 0; |
| 517 video_bytes_for_bitrate_estimation_ = 0; | 517 video_bytes_for_bitrate_estimation_ = 0; |
| 518 last_sample_time_ = base::TimeTicks::Now(); | 518 last_sample_time_ = base::TimeTicks::Now(); |
| 519 } | 519 } |
| 520 | 520 |
| 521 } // namespace media | 521 } // namespace media |
| 522 } // namespace chromecast | 522 } // namespace chromecast |
| OLD | NEW |