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

Side by Side Diff: media/base/pipeline.cc

Issue 10855051: Use enum instead of string in MessageLoopFactory::GetMessageLoop* (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 8 years, 4 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 | Annotate | Revision Log
« no previous file with comments | « media/base/pipeline.h ('k') | media/base/pipeline_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/base/pipeline.h" 5 #include "media/base/pipeline.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/callback.h" 10 #include "base/callback.h"
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 media::PipelineStatus PipelineStatusNotification::status() { 58 media::PipelineStatus PipelineStatusNotification::status() {
59 base::AutoLock auto_lock(lock_); 59 base::AutoLock auto_lock(lock_);
60 DCHECK(notified_); 60 DCHECK(notified_);
61 return status_; 61 return status_;
62 } 62 }
63 63
64 struct Pipeline::PipelineInitState { 64 struct Pipeline::PipelineInitState {
65 scoped_refptr<AudioDecoder> audio_decoder; 65 scoped_refptr<AudioDecoder> audio_decoder;
66 }; 66 };
67 67
68 Pipeline::Pipeline(MessageLoop* message_loop, MediaLog* media_log) 68 Pipeline::Pipeline(const scoped_refptr<base::MessageLoopProxy>& message_loop,
69 : message_loop_(message_loop->message_loop_proxy()), 69 MediaLog* media_log)
70 : message_loop_(message_loop),
70 media_log_(media_log), 71 media_log_(media_log),
71 running_(false), 72 running_(false),
72 seek_pending_(false), 73 seek_pending_(false),
73 tearing_down_(false), 74 tearing_down_(false),
74 playback_rate_change_pending_(false), 75 playback_rate_change_pending_(false),
75 did_loading_progress_(false), 76 did_loading_progress_(false),
76 total_bytes_(0), 77 total_bytes_(0),
77 natural_size_(0, 0), 78 natural_size_(0, 0),
78 volume_(1.0f), 79 volume_(1.0f),
79 playback_rate_(0.0f), 80 playback_rate_(0.0f),
(...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after
513 // Continue the initialize task by proceeding to the next stage. 514 // Continue the initialize task by proceeding to the next stage.
514 message_loop_->PostTask(FROM_HERE, base::Bind( 515 message_loop_->PostTask(FROM_HERE, base::Bind(
515 &Pipeline::InitializeTask, this, status)); 516 &Pipeline::InitializeTask, this, status));
516 } 517 }
517 518
518 // Called from any thread. 519 // Called from any thread.
519 // This method makes the PipelineStatusCB behave like a Closure. It 520 // This method makes the PipelineStatusCB behave like a Closure. It
520 // makes it look like a host()->SetError() call followed by a call to 521 // makes it look like a host()->SetError() call followed by a call to
521 // OnFilterStateTransition() when errors occur. 522 // OnFilterStateTransition() when errors occur.
522 // 523 //
523 // TODO: Revisit this code when SetError() is removed from FilterHost and 524 // TODO(scherkus): Revisit this code when SetError() is removed from FilterHost
524 // all the Closures are converted to PipelineStatusCB. 525 // and all the Closures are converted to PipelineStatusCB.
525 void Pipeline::OnFilterStateTransition(PipelineStatus status) { 526 void Pipeline::OnFilterStateTransition(PipelineStatus status) {
526 if (status != PIPELINE_OK) 527 if (status != PIPELINE_OK)
527 SetError(status); 528 SetError(status);
528 message_loop_->PostTask(FROM_HERE, base::Bind( 529 message_loop_->PostTask(FROM_HERE, base::Bind(
529 &Pipeline::FilterStateTransitionTask, this)); 530 &Pipeline::FilterStateTransitionTask, this));
530 } 531 }
531 532
532 void Pipeline::OnTeardownStateTransition(PipelineStatus status) { 533 void Pipeline::OnTeardownStateTransition(PipelineStatus status) {
533 // Ignore any errors during teardown. 534 // Ignore any errors during teardown.
534 message_loop_->PostTask(FROM_HERE, base::Bind( 535 message_loop_->PostTask(FROM_HERE, base::Bind(
(...skipping 675 matching lines...) Expand 10 before | Expand all | Expand 10 after
1210 void Pipeline::StartClockIfWaitingForTimeUpdate_Locked() { 1211 void Pipeline::StartClockIfWaitingForTimeUpdate_Locked() {
1211 lock_.AssertAcquired(); 1212 lock_.AssertAcquired();
1212 if (!waiting_for_clock_update_) 1213 if (!waiting_for_clock_update_)
1213 return; 1214 return;
1214 1215
1215 waiting_for_clock_update_ = false; 1216 waiting_for_clock_update_ = false;
1216 clock_->Play(); 1217 clock_->Play();
1217 } 1218 }
1218 1219
1219 } // namespace media 1220 } // namespace media
OLDNEW
« no previous file with comments | « media/base/pipeline.h ('k') | media/base/pipeline_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698