| 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_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 25 matching lines...) Expand all Loading... |
| 36 } | 36 } |
| 37 | 37 |
| 38 } // namespace | 38 } // namespace |
| 39 | 39 |
| 40 AudioRendererImpl::AudioRendererImpl( | 40 AudioRendererImpl::AudioRendererImpl( |
| 41 const scoped_refptr<base::SingleThreadTaskRunner>& task_runner, | 41 const scoped_refptr<base::SingleThreadTaskRunner>& task_runner, |
| 42 media::AudioRendererSink* sink, | 42 media::AudioRendererSink* sink, |
| 43 ScopedVector<AudioDecoder> decoders, | 43 ScopedVector<AudioDecoder> decoders, |
| 44 const SetDecryptorReadyCB& set_decryptor_ready_cb) | 44 const SetDecryptorReadyCB& set_decryptor_ready_cb) |
| 45 : task_runner_(task_runner), | 45 : task_runner_(task_runner), |
| 46 weak_factory_(this), | |
| 47 sink_(sink), | 46 sink_(sink), |
| 48 decoder_selector_(new AudioDecoderSelector( | 47 decoder_selector_(new AudioDecoderSelector(task_runner, |
| 49 task_runner, decoders.Pass(), set_decryptor_ready_cb)), | 48 decoders.Pass(), |
| 49 set_decryptor_ready_cb)), |
| 50 now_cb_(base::Bind(&base::TimeTicks::Now)), | 50 now_cb_(base::Bind(&base::TimeTicks::Now)), |
| 51 state_(kUninitialized), | 51 state_(kUninitialized), |
| 52 sink_playing_(false), | 52 sink_playing_(false), |
| 53 pending_read_(false), | 53 pending_read_(false), |
| 54 received_end_of_stream_(false), | 54 received_end_of_stream_(false), |
| 55 rendered_end_of_stream_(false), | 55 rendered_end_of_stream_(false), |
| 56 audio_time_buffered_(kNoTimestamp()), | 56 audio_time_buffered_(kNoTimestamp()), |
| 57 current_time_(kNoTimestamp()), | 57 current_time_(kNoTimestamp()), |
| 58 underflow_disabled_(false), | 58 underflow_disabled_(false), |
| 59 preroll_aborted_(false) { | 59 preroll_aborted_(false), |
| 60 } | 60 weak_factory_(this) {} |
| 61 | 61 |
| 62 AudioRendererImpl::~AudioRendererImpl() { | 62 AudioRendererImpl::~AudioRendererImpl() { |
| 63 // Stop() should have been called and |algorithm_| should have been destroyed. | 63 // Stop() should have been called and |algorithm_| should have been destroyed. |
| 64 DCHECK(state_ == kUninitialized || state_ == kStopped); | 64 DCHECK(state_ == kUninitialized || state_ == kStopped); |
| 65 DCHECK(!algorithm_.get()); | 65 DCHECK(!algorithm_.get()); |
| 66 } | 66 } |
| 67 | 67 |
| 68 void AudioRendererImpl::Play(const base::Closure& callback) { | 68 void AudioRendererImpl::Play(const base::Closure& callback) { |
| 69 DCHECK(task_runner_->BelongsToCurrentThread()); | 69 DCHECK(task_runner_->BelongsToCurrentThread()); |
| 70 | 70 |
| (...skipping 671 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 742 } | 742 } |
| 743 } | 743 } |
| 744 | 744 |
| 745 void AudioRendererImpl::ChangeState_Locked(State new_state) { | 745 void AudioRendererImpl::ChangeState_Locked(State new_state) { |
| 746 DVLOG(1) << __FUNCTION__ << " : " << state_ << " -> " << new_state; | 746 DVLOG(1) << __FUNCTION__ << " : " << state_ << " -> " << new_state; |
| 747 lock_.AssertAcquired(); | 747 lock_.AssertAcquired(); |
| 748 state_ = new_state; | 748 state_ = new_state; |
| 749 } | 749 } |
| 750 | 750 |
| 751 } // namespace media | 751 } // namespace media |
| OLD | NEW |