OLD | NEW |
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_base.h" | 5 #include "media/filters/audio_renderer_base.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
169 } | 169 } |
170 | 170 |
171 switch (state_) { | 171 switch (state_) { |
172 case kUninitialized: | 172 case kUninitialized: |
173 NOTREACHED(); | 173 NOTREACHED(); |
174 return; | 174 return; |
175 case kPaused: | 175 case kPaused: |
176 if (buffer && !buffer->IsEndOfStream()) | 176 if (buffer && !buffer->IsEndOfStream()) |
177 algorithm_->EnqueueBuffer(buffer); | 177 algorithm_->EnqueueBuffer(buffer); |
178 DCHECK(!pending_read_); | 178 DCHECK(!pending_read_); |
179 ResetAndRunCB(&pause_cb_); | 179 pause_cb_.ResetAndRun(); |
180 return; | 180 return; |
181 case kSeeking: | 181 case kSeeking: |
182 if (IsBeforeSeekTime(buffer)) { | 182 if (IsBeforeSeekTime(buffer)) { |
183 ScheduleRead_Locked(); | 183 ScheduleRead_Locked(); |
184 return; | 184 return; |
185 } | 185 } |
186 if (buffer && !buffer->IsEndOfStream()) { | 186 if (buffer && !buffer->IsEndOfStream()) { |
187 algorithm_->EnqueueBuffer(buffer); | 187 algorithm_->EnqueueBuffer(buffer); |
188 if (!algorithm_->IsQueueFull()) | 188 if (!algorithm_->IsQueueFull()) |
189 return; | 189 return; |
190 } | 190 } |
191 state_ = kPaused; | 191 state_ = kPaused; |
192 ResetAndRunCB(&seek_cb_, PIPELINE_OK); | 192 seek_cb_.ResetAndRun(PIPELINE_OK); |
193 return; | 193 return; |
194 case kPlaying: | 194 case kPlaying: |
195 case kUnderflow: | 195 case kUnderflow: |
196 case kRebuffering: | 196 case kRebuffering: |
197 if (buffer && !buffer->IsEndOfStream()) | 197 if (buffer && !buffer->IsEndOfStream()) |
198 algorithm_->EnqueueBuffer(buffer); | 198 algorithm_->EnqueueBuffer(buffer); |
199 return; | 199 return; |
200 case kStopped: | 200 case kStopped: |
201 return; | 201 return; |
202 } | 202 } |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
303 base::AutoLock auto_lock(lock_); | 303 base::AutoLock auto_lock(lock_); |
304 return algorithm_->playback_rate(); | 304 return algorithm_->playback_rate(); |
305 } | 305 } |
306 | 306 |
307 bool AudioRendererBase::IsBeforeSeekTime(const scoped_refptr<Buffer>& buffer) { | 307 bool AudioRendererBase::IsBeforeSeekTime(const scoped_refptr<Buffer>& buffer) { |
308 return (state_ == kSeeking) && buffer && !buffer->IsEndOfStream() && | 308 return (state_ == kSeeking) && buffer && !buffer->IsEndOfStream() && |
309 (buffer->GetTimestamp() + buffer->GetDuration()) < seek_timestamp_; | 309 (buffer->GetTimestamp() + buffer->GetDuration()) < seek_timestamp_; |
310 } | 310 } |
311 | 311 |
312 } // namespace media | 312 } // namespace media |
OLD | NEW |