| 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 "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/callback.h" | 8 #include "base/callback.h" |
| 9 #include "base/callback_helpers.h" | 9 #include "base/callback_helpers.h" |
| 10 #include "base/location.h" | 10 #include "base/location.h" |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 137 if (clock_device_->GetState() == MediaClockDevice::kStateUninitialized && | 137 if (clock_device_->GetState() == MediaClockDevice::kStateUninitialized && |
| 138 !clock_device_->SetState(MediaClockDevice::kStateIdle)) { | 138 !clock_device_->SetState(MediaClockDevice::kStateIdle)) { |
| 139 status_cb.Run(::media::PIPELINE_ERROR_INITIALIZATION_FAILED); | 139 status_cb.Run(::media::PIPELINE_ERROR_INITIALIZATION_FAILED); |
| 140 return; | 140 return; |
| 141 } | 141 } |
| 142 has_audio_ = true; | 142 has_audio_ = true; |
| 143 audio_pipeline_->Initialize(config, frame_provider.Pass(), status_cb); | 143 audio_pipeline_->Initialize(config, frame_provider.Pass(), status_cb); |
| 144 } | 144 } |
| 145 | 145 |
| 146 void MediaPipelineImpl::InitializeVideo( | 146 void MediaPipelineImpl::InitializeVideo( |
| 147 const ::media::VideoDecoderConfig& config, | 147 const std::vector<::media::VideoDecoderConfig>& configs, |
| 148 scoped_ptr<CodedFrameProvider> frame_provider, | 148 scoped_ptr<CodedFrameProvider> frame_provider, |
| 149 const ::media::PipelineStatusCB& status_cb) { | 149 const ::media::PipelineStatusCB& status_cb) { |
| 150 DCHECK(thread_checker_.CalledOnValidThread()); | 150 DCHECK(thread_checker_.CalledOnValidThread()); |
| 151 DCHECK(!has_video_); | 151 DCHECK(!has_video_); |
| 152 if (clock_device_->GetState() == MediaClockDevice::kStateUninitialized && | 152 if (clock_device_->GetState() == MediaClockDevice::kStateUninitialized && |
| 153 !clock_device_->SetState(MediaClockDevice::kStateIdle)) { | 153 !clock_device_->SetState(MediaClockDevice::kStateIdle)) { |
| 154 status_cb.Run(::media::PIPELINE_ERROR_INITIALIZATION_FAILED); | 154 status_cb.Run(::media::PIPELINE_ERROR_INITIALIZATION_FAILED); |
| 155 return; | 155 return; |
| 156 } | 156 } |
| 157 has_video_ = true; | 157 has_video_ = true; |
| 158 video_pipeline_->Initialize(config, frame_provider.Pass(), status_cb); | 158 video_pipeline_->Initialize(configs, frame_provider.Pass(), status_cb); |
| 159 } | 159 } |
| 160 | 160 |
| 161 void MediaPipelineImpl::StartPlayingFrom(base::TimeDelta time) { | 161 void MediaPipelineImpl::StartPlayingFrom(base::TimeDelta time) { |
| 162 CMALOG(kLogControl) << __FUNCTION__ << " t0=" << time.InMilliseconds(); | 162 CMALOG(kLogControl) << __FUNCTION__ << " t0=" << time.InMilliseconds(); |
| 163 DCHECK(thread_checker_.CalledOnValidThread()); | 163 DCHECK(thread_checker_.CalledOnValidThread()); |
| 164 DCHECK(has_audio_ || has_video_); | 164 DCHECK(has_audio_ || has_video_); |
| 165 DCHECK(!pending_callbacks_); | 165 DCHECK(!pending_callbacks_); |
| 166 | 166 |
| 167 // Reset the start of the timeline. | 167 // Reset the start of the timeline. |
| 168 DCHECK_EQ(clock_device_->GetState(), MediaClockDevice::kStateIdle); | 168 DCHECK_EQ(clock_device_->GetState(), MediaClockDevice::kStateIdle); |
| (...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 362 | 362 |
| 363 void MediaPipelineImpl::OnError(::media::PipelineStatus error) { | 363 void MediaPipelineImpl::OnError(::media::PipelineStatus error) { |
| 364 DCHECK(thread_checker_.CalledOnValidThread()); | 364 DCHECK(thread_checker_.CalledOnValidThread()); |
| 365 DCHECK_NE(error, ::media::PIPELINE_OK) << "PIPELINE_OK is not an error!"; | 365 DCHECK_NE(error, ::media::PIPELINE_OK) << "PIPELINE_OK is not an error!"; |
| 366 if (!client_.error_cb.is_null()) | 366 if (!client_.error_cb.is_null()) |
| 367 client_.error_cb.Run(error); | 367 client_.error_cb.Run(error); |
| 368 } | 368 } |
| 369 | 369 |
| 370 } // namespace media | 370 } // namespace media |
| 371 } // namespace chromecast | 371 } // namespace chromecast |
| OLD | NEW |