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

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

Issue 403723006: Make media::AudioRenderer inherit from media::TimeSource. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: composition Created 6 years, 5 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
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/filters/audio_renderer_impl.h" 5 #include "media/filters/audio_renderer_impl.h"
6 6
7 #include <math.h> 7 #include <math.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 10
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 audio_buffer_stream_->set_config_change_observer(base::Bind( 65 audio_buffer_stream_->set_config_change_observer(base::Bind(
66 &AudioRendererImpl::OnConfigChange, weak_factory_.GetWeakPtr())); 66 &AudioRendererImpl::OnConfigChange, weak_factory_.GetWeakPtr()));
67 } 67 }
68 68
69 AudioRendererImpl::~AudioRendererImpl() { 69 AudioRendererImpl::~AudioRendererImpl() {
70 // Stop() should have been called and |algorithm_| should have been destroyed. 70 // Stop() should have been called and |algorithm_| should have been destroyed.
71 DCHECK(state_ == kUninitialized || state_ == kStopped); 71 DCHECK(state_ == kUninitialized || state_ == kStopped);
72 DCHECK(!algorithm_.get()); 72 DCHECK(!algorithm_.get());
73 } 73 }
74 74
75 void AudioRendererImpl::StartRendering() { 75 void AudioRendererImpl::StartTicking() {
76 DVLOG(1) << __FUNCTION__; 76 DVLOG(1) << __FUNCTION__;
77 DCHECK(task_runner_->BelongsToCurrentThread()); 77 DCHECK(task_runner_->BelongsToCurrentThread());
78 DCHECK(!rendering_); 78 DCHECK(!rendering_);
79 rendering_ = true; 79 rendering_ = true;
80 80
81 base::AutoLock auto_lock(lock_); 81 base::AutoLock auto_lock(lock_);
82 // Wait for an eventual call to SetPlaybackRate() to start rendering. 82 // Wait for an eventual call to SetPlaybackRate() to start rendering.
83 if (algorithm_->playback_rate() == 0) { 83 if (algorithm_->playback_rate() == 0) {
84 DCHECK(!sink_playing_); 84 DCHECK(!sink_playing_);
85 return; 85 return;
86 } 86 }
87 87
88 StartRendering_Locked(); 88 StartRendering_Locked();
89 } 89 }
90 90
91 void AudioRendererImpl::StartRendering_Locked() { 91 void AudioRendererImpl::StartRendering_Locked() {
92 DVLOG(1) << __FUNCTION__; 92 DVLOG(1) << __FUNCTION__;
93 DCHECK(task_runner_->BelongsToCurrentThread()); 93 DCHECK(task_runner_->BelongsToCurrentThread());
94 DCHECK_EQ(state_, kPlaying); 94 DCHECK_EQ(state_, kPlaying);
95 DCHECK(!sink_playing_); 95 DCHECK(!sink_playing_);
96 DCHECK_NE(algorithm_->playback_rate(), 0); 96 DCHECK_NE(algorithm_->playback_rate(), 0);
97 lock_.AssertAcquired(); 97 lock_.AssertAcquired();
98 98
99 sink_playing_ = true; 99 sink_playing_ = true;
100 100
101 base::AutoUnlock auto_unlock(lock_); 101 base::AutoUnlock auto_unlock(lock_);
102 sink_->Play(); 102 sink_->Play();
103 } 103 }
104 104
105 void AudioRendererImpl::StopRendering() { 105 void AudioRendererImpl::StopTicking() {
106 DVLOG(1) << __FUNCTION__; 106 DVLOG(1) << __FUNCTION__;
107 DCHECK(task_runner_->BelongsToCurrentThread()); 107 DCHECK(task_runner_->BelongsToCurrentThread());
108 DCHECK(rendering_); 108 DCHECK(rendering_);
109 rendering_ = false; 109 rendering_ = false;
110 110
111 base::AutoLock auto_lock(lock_); 111 base::AutoLock auto_lock(lock_);
112 // Rendering should have already been stopped with a zero playback rate. 112 // Rendering should have already been stopped with a zero playback rate.
113 if (algorithm_->playback_rate() == 0) { 113 if (algorithm_->playback_rate() == 0) {
114 DCHECK(!sink_playing_); 114 DCHECK(!sink_playing_);
115 return; 115 return;
(...skipping 18 matching lines...) Expand all
134 DVLOG(1) << __FUNCTION__ << "(" << time.InMicroseconds() << ")"; 134 DVLOG(1) << __FUNCTION__ << "(" << time.InMicroseconds() << ")";
135 DCHECK(task_runner_->BelongsToCurrentThread()); 135 DCHECK(task_runner_->BelongsToCurrentThread());
136 136
137 base::AutoLock auto_lock(lock_); 137 base::AutoLock auto_lock(lock_);
138 DCHECK(!rendering_); 138 DCHECK(!rendering_);
139 DCHECK_EQ(state_, kFlushed); 139 DCHECK_EQ(state_, kFlushed);
140 140
141 start_timestamp_ = time; 141 start_timestamp_ = time;
142 } 142 }
143 143
144 base::TimeDelta AudioRendererImpl::CurrentMediaTime() {
145 DVLOG(1) << __FUNCTION__;
146 DCHECK(task_runner_->BelongsToCurrentThread());
147
148 // TODO(scherkus): Finish implementing when ready to switch Pipeline to using
149 // TimeSource http://crbug.com/370634
150 NOTIMPLEMENTED();
151
152 return base::TimeDelta();
153 }
154
155 TimeSource* AudioRendererImpl::GetTimeSource() {
156 return this;
157 }
158
144 void AudioRendererImpl::Flush(const base::Closure& callback) { 159 void AudioRendererImpl::Flush(const base::Closure& callback) {
145 DVLOG(1) << __FUNCTION__; 160 DVLOG(1) << __FUNCTION__;
146 DCHECK(task_runner_->BelongsToCurrentThread()); 161 DCHECK(task_runner_->BelongsToCurrentThread());
147 162
148 base::AutoLock auto_lock(lock_); 163 base::AutoLock auto_lock(lock_);
149 DCHECK_EQ(state_, kPlaying); 164 DCHECK_EQ(state_, kPlaying);
150 DCHECK(flush_cb_.is_null()); 165 DCHECK(flush_cb_.is_null());
151 166
152 flush_cb_ = callback; 167 flush_cb_ = callback;
153 ChangeState_Locked(kFlushing); 168 ChangeState_Locked(kFlushing);
(...skipping 556 matching lines...) Expand 10 before | Expand all | Expand 10 after
710 << buffering_state; 725 << buffering_state;
711 DCHECK_NE(buffering_state_, buffering_state); 726 DCHECK_NE(buffering_state_, buffering_state);
712 lock_.AssertAcquired(); 727 lock_.AssertAcquired();
713 buffering_state_ = buffering_state; 728 buffering_state_ = buffering_state;
714 729
715 task_runner_->PostTask(FROM_HERE, 730 task_runner_->PostTask(FROM_HERE,
716 base::Bind(buffering_state_cb_, buffering_state_)); 731 base::Bind(buffering_state_cb_, buffering_state_));
717 } 732 }
718 733
719 } // namespace media 734 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698