Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1177)

Side by Side Diff: media/filters/pipeline_controller.cc

Issue 2689863002: Change ownership of PipelineImpl (Closed)
Patch Set: Remove leftover test method Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "media/filters/pipeline_controller.h" 5 #include "media/filters/pipeline_controller.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "media/base/demuxer.h" 8 #include "media/base/demuxer.h"
9 9
10 namespace media { 10 namespace media {
11 11
12 PipelineController::PipelineController( 12 PipelineController::PipelineController(
13 Pipeline* pipeline, 13 std::unique_ptr<Pipeline> pipeline,
14 const RendererFactoryCB& renderer_factory_cb, 14 const RendererFactoryCB& renderer_factory_cb,
15 const SeekedCB& seeked_cb, 15 const SeekedCB& seeked_cb,
16 const SuspendedCB& suspended_cb, 16 const SuspendedCB& suspended_cb,
17 const BeforeResumeCB& before_resume_cb, 17 const BeforeResumeCB& before_resume_cb,
18 const ResumedCB& resumed_cb, 18 const ResumedCB& resumed_cb,
19 const PipelineStatusCB& error_cb) 19 const PipelineStatusCB& error_cb)
20 : pipeline_(pipeline), 20 : pipeline_(std::move(pipeline)),
21 renderer_factory_cb_(renderer_factory_cb), 21 renderer_factory_cb_(renderer_factory_cb),
22 seeked_cb_(seeked_cb), 22 seeked_cb_(seeked_cb),
23 suspended_cb_(suspended_cb), 23 suspended_cb_(suspended_cb),
24 before_resume_cb_(before_resume_cb), 24 before_resume_cb_(before_resume_cb),
25 resumed_cb_(resumed_cb), 25 resumed_cb_(resumed_cb),
26 error_cb_(error_cb), 26 error_cb_(error_cb),
27 weak_factory_(this) { 27 weak_factory_(this) {
28 DCHECK(pipeline_); 28 DCHECK(pipeline_);
29 DCHECK(!renderer_factory_cb_.is_null()); 29 DCHECK(!renderer_factory_cb_.is_null());
30 DCHECK(!seeked_cb_.is_null()); 30 DCHECK(!seeked_cb_.is_null());
31 DCHECK(!suspended_cb_.is_null()); 31 DCHECK(!suspended_cb_.is_null());
32 DCHECK(!before_resume_cb_.is_null()); 32 DCHECK(!before_resume_cb_.is_null());
33 DCHECK(!resumed_cb_.is_null()); 33 DCHECK(!resumed_cb_.is_null());
34 DCHECK(!error_cb_.is_null()); 34 DCHECK(!error_cb_.is_null());
35 } 35 }
36 36
37 PipelineController::~PipelineController() { 37 PipelineController::~PipelineController() {
38 DCHECK(thread_checker_.CalledOnValidThread()); 38 DCHECK(thread_checker_.CalledOnValidThread());
39 } 39 }
40 40
41 // TODO(sandersd): If there is a pending suspend, don't call pipeline_.Start() 41 // TODO(sandersd): If there is a pending suspend, don't call pipeline_->Start()
42 // until Resume(). 42 // until Resume().
43 void PipelineController::Start(Demuxer* demuxer, 43 void PipelineController::Start(Demuxer* demuxer,
44 Pipeline::Client* client, 44 Pipeline::Client* client,
45 bool is_streaming, 45 bool is_streaming,
46 bool is_static) { 46 bool is_static) {
47 DCHECK(thread_checker_.CalledOnValidThread()); 47 DCHECK(thread_checker_.CalledOnValidThread());
48 DCHECK(state_ == State::CREATED); 48 DCHECK(state_ == State::CREATED);
49 DCHECK(demuxer); 49 DCHECK(demuxer);
50 50
51 // Once the pipeline is started, we want to call the seeked callback but 51 // Once the pipeline is started, we want to call the seeked callback but
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
239 // immediately. 239 // immediately.
240 pending_seeked_cb_ = false; 240 pending_seeked_cb_ = false;
241 bool was_pending_time_updated = pending_time_updated_; 241 bool was_pending_time_updated = pending_time_updated_;
242 pending_time_updated_ = false; 242 pending_time_updated_ = false;
243 seeked_cb_.Run(was_pending_time_updated); 243 seeked_cb_.Run(was_pending_time_updated);
244 return; 244 return;
245 } 245 }
246 } 246 }
247 } 247 }
248 248
249 void PipelineController::Stop() {
250 pipeline_->Stop();
sandersd (OOO until July 31) 2017/02/23 23:11:46 Should we perhaps be resetting |state_| here?
tguilbert 2017/02/24 02:13:59 I added a comment, a TODO, and opened crbug.com/69
251 }
252
253 bool PipelineController::IsPipelineRunning() const {
254 return pipeline_->IsRunning();
255 }
256
257 double PipelineController::GetPlaybackRate() const {
258 return pipeline_->GetPlaybackRate();
259 }
260
261 void PipelineController::SetPlaybackRate(double playback_rate) {
262 pipeline_->SetPlaybackRate(playback_rate);
263 }
264
265 float PipelineController::GetVolume() const {
266 return pipeline_->GetVolume();
267 }
268
269 void PipelineController::SetVolume(float volume) {
270 pipeline_->SetVolume(volume);
271 }
272
273 base::TimeDelta PipelineController::GetMediaTime() const {
274 return pipeline_->GetMediaTime();
275 }
276
277 Ranges<base::TimeDelta> PipelineController::GetBufferedTimeRanges() const {
278 return pipeline_->GetBufferedTimeRanges();
279 }
280
281 base::TimeDelta PipelineController::GetMediaDuration() const {
282 return pipeline_->GetMediaDuration();
283 }
284
285 bool PipelineController::DidLoadingProgress() {
286 return pipeline_->DidLoadingProgress();
287 }
288
289 PipelineStatistics PipelineController::GetStatistics() const {
290 return pipeline_->GetStatistics();
291 }
292
293 void PipelineController::SetCdm(CdmContext* cdm_context,
294 const CdmAttachedCB& cdm_attached_cb) {
295 pipeline_->SetCdm(cdm_context, cdm_attached_cb);
296 }
297
298 void PipelineController::OnEnabledAudioTracksChanged(
299 const std::vector<MediaTrack::Id>& enabledTrackIds) {
300 pipeline_->OnEnabledAudioTracksChanged(enabledTrackIds);
301 }
302
303 void PipelineController::OnSelectedVideoTrackChanged(
304 const std::vector<MediaTrack::Id>& selectedTrackId) {
305 pipeline_->OnSelectedVideoTrackChanged(selectedTrackId);
306 }
307
249 } // namespace media 308 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698