| Index: media/filters/audio_renderer_impl_unittest.cc
|
| diff --git a/media/filters/audio_renderer_impl_unittest.cc b/media/filters/audio_renderer_impl_unittest.cc
|
| index cb7626fe0c5b44cd30edcbd4f3ad5cf6b9767375..eb2537baa2dece3cbb6f11717f33e7ed936fcd7f 100644
|
| --- a/media/filters/audio_renderer_impl_unittest.cc
|
| +++ b/media/filters/audio_renderer_impl_unittest.cc
|
| @@ -10,6 +10,7 @@
|
| #include "base/run_loop.h"
|
| #include "base/stl_util.h"
|
| #include "base/strings/stringprintf.h"
|
| +#include "base/test/simple_test_tick_clock.h"
|
| #include "media/base/audio_buffer.h"
|
| #include "media/base/audio_buffer_converter.h"
|
| #include "media/base/audio_hardware_config.h"
|
| @@ -62,6 +63,7 @@ class AudioRendererImplTest : public ::testing::Test {
|
| needs_stop_(true),
|
| demuxer_stream_(DemuxerStream::AUDIO),
|
| decoder_(new MockAudioDecoder()),
|
| + tick_clock_(new base::SimpleTestTickClock()),
|
| last_time_update_(kNoTimestamp()) {
|
| AudioDecoderConfig audio_config(kCodec,
|
| kSampleFormat,
|
| @@ -98,10 +100,7 @@ class AudioRendererImplTest : public ::testing::Test {
|
| decoders.Pass(),
|
| SetDecryptorReadyCB(),
|
| &hardware_config_));
|
| -
|
| - // Stub out time.
|
| - renderer_->set_now_cb_for_testing(base::Bind(
|
| - &AudioRendererImplTest::GetTime, base::Unretained(this)));
|
| + renderer_->SetTickClockForTesting(scoped_ptr<base::TickClock>(tick_clock_));
|
| }
|
|
|
| virtual ~AudioRendererImplTest() {
|
| @@ -417,8 +416,7 @@ class AudioRendererImplTest : public ::testing::Test {
|
| }
|
|
|
| void AdvanceTime(TimeDelta time) {
|
| - base::AutoLock auto_lock(lock_);
|
| - time_ += time;
|
| + tick_clock_->Advance(time);
|
| }
|
|
|
| void force_config_change() {
|
| @@ -448,11 +446,6 @@ class AudioRendererImplTest : public ::testing::Test {
|
| bool needs_stop_;
|
|
|
| private:
|
| - TimeTicks GetTime() {
|
| - base::AutoLock auto_lock(lock_);
|
| - return time_;
|
| - }
|
| -
|
| void DecodeDecoder(const scoped_refptr<DecoderBuffer>& buffer,
|
| const AudioDecoder::DecodeCB& decode_cb) {
|
| // We shouldn't ever call Read() after Stop():
|
| @@ -501,9 +494,7 @@ class AudioRendererImplTest : public ::testing::Test {
|
| MockDemuxerStream demuxer_stream_;
|
| MockAudioDecoder* decoder_;
|
|
|
| - // Used for stubbing out time in the audio callback thread.
|
| - base::Lock lock_;
|
| - TimeTicks time_;
|
| + base::SimpleTestTickClock* tick_clock_; // Owned by |renderer_|.
|
|
|
| // Used for satisfying reads.
|
| AudioDecoder::OutputCB output_cb_;
|
| @@ -572,12 +563,14 @@ TEST_F(AudioRendererImplTest, Underflow) {
|
| // update.
|
| EXPECT_CALL(*this, OnBufferingStateChange(BUFFERING_HAVE_NOTHING));
|
| EXPECT_FALSE(ConsumeBufferedData(kDataSize, NULL));
|
| + base::RunLoop().RunUntilIdle();
|
|
|
| // Verify we're still not getting audio data.
|
| bool muted = false;
|
| EXPECT_EQ(0, frames_buffered());
|
| EXPECT_FALSE(ConsumeBufferedData(kDataSize, &muted));
|
| EXPECT_TRUE(muted);
|
| + base::RunLoop().RunUntilIdle();
|
|
|
| // Deliver enough data to have enough for buffering.
|
| EXPECT_CALL(*this, OnBufferingStateChange(BUFFERING_HAVE_ENOUGH));
|
| @@ -602,6 +595,7 @@ TEST_F(AudioRendererImplTest, Underflow_CapacityResetsAfterFlush) {
|
| int initial_capacity = buffer_capacity();
|
| EXPECT_CALL(*this, OnBufferingStateChange(BUFFERING_HAVE_NOTHING));
|
| EXPECT_FALSE(ConsumeBufferedData(kDataSize, NULL));
|
| + base::RunLoop().RunUntilIdle();
|
|
|
| // Verify that the buffer capacity increased as a result of underflowing.
|
| EXPECT_GT(buffer_capacity(), initial_capacity);
|
|
|