| 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 965e5cfac6f5e44e95f7edc0be9df2f0c8f0164a..c4fb6acef37d2467ebb1c3f45cb86dce669fc9f3 100644 | 
| --- a/media/filters/audio_renderer_impl_unittest.cc | 
| +++ b/media/filters/audio_renderer_impl_unittest.cc | 
| @@ -11,6 +11,7 @@ | 
| #include "base/stl_util.h" | 
| #include "base/strings/stringprintf.h" | 
| #include "media/base/audio_buffer.h" | 
| +#include "media/base/audio_hardware_config.h" | 
| #include "media/base/audio_timestamp_helper.h" | 
| #include "media/base/fake_audio_renderer_sink.h" | 
| #include "media/base/gmock_callback_support.h" | 
| @@ -51,7 +52,8 @@ class AudioRendererImplTest : public ::testing::Test { | 
| public: | 
| // Give the decoder some non-garbage media properties. | 
| AudioRendererImplTest() | 
| -      : needs_stop_(true), | 
| +      : hardware_config_(AudioParameters(), AudioParameters()), | 
| +        needs_stop_(true), | 
| demuxer_stream_(DemuxerStream::AUDIO), | 
| decoder_(new MockAudioDecoder()) { | 
| AudioDecoderConfig audio_config(kCodec, | 
| @@ -73,26 +75,24 @@ class AudioRendererImplTest : public ::testing::Test { | 
| EXPECT_CALL(*decoder_, Stop(_)) | 
| .WillRepeatedly(Invoke(this, &AudioRendererImplTest::StopDecoder)); | 
|  | 
| -    // Set up audio properties. | 
| -    EXPECT_CALL(*decoder_, bits_per_channel()) | 
| -        .WillRepeatedly(Return(audio_config.bits_per_channel())); | 
| -    EXPECT_CALL(*decoder_, channel_layout()) | 
| -        .WillRepeatedly(Return(audio_config.channel_layout())); | 
| -    EXPECT_CALL(*decoder_, samples_per_second()) | 
| -        .WillRepeatedly(Return(audio_config.samples_per_second())); | 
| - | 
| // Mock out demuxer reads | 
| EXPECT_CALL(demuxer_stream_, Read(_)).WillRepeatedly( | 
| RunCallback<0>(DemuxerStream::kOk, DecoderBuffer::CreateEOSBuffer())); | 
| - | 
| +    AudioParameters out_params = | 
| +        AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, | 
| +                        kChannelLayout, | 
| +                        kSamplesPerSecond, | 
| +                        SampleFormatToBytesPerChannel(kSampleFormat) * 8, | 
| +                        512); | 
| +    hardware_config_.UpdateOutputConfig(out_params); | 
| ScopedVector<AudioDecoder> decoders; | 
| decoders.push_back(decoder_); | 
| sink_ = new FakeAudioRendererSink(); | 
| -    renderer_.reset(new AudioRendererImpl( | 
| -        message_loop_.message_loop_proxy(), | 
| -        sink_, | 
| -        decoders.Pass(), | 
| -        SetDecryptorReadyCB())); | 
| +    renderer_.reset(new AudioRendererImpl(message_loop_.message_loop_proxy(), | 
| +                                          sink_, | 
| +                                          decoders.Pass(), | 
| +                                          SetDecryptorReadyCB(), | 
| +                                          &hardware_config_)); | 
|  | 
| // Stub out time. | 
| renderer_->set_now_cb_for_testing(base::Bind( | 
| @@ -113,17 +113,6 @@ class AudioRendererImplTest : public ::testing::Test { | 
| .WillOnce(RunCallback<1>(DECODER_ERROR_NOT_SUPPORTED)); | 
| } | 
|  | 
| -  void ExpectUnsupportedAudioDecoderConfig() { | 
| -    EXPECT_CALL(*decoder_, bits_per_channel()) | 
| -        .WillRepeatedly(Return(3)); | 
| -    EXPECT_CALL(*decoder_, channel_layout()) | 
| -        .WillRepeatedly(Return(CHANNEL_LAYOUT_UNSUPPORTED)); | 
| -    EXPECT_CALL(*decoder_, samples_per_second()) | 
| -        .WillRepeatedly(Return(0)); | 
| -    EXPECT_CALL(*decoder_, Initialize(_, _)) | 
| -        .WillOnce(RunCallback<1>(PIPELINE_OK)); | 
| -  } | 
| - | 
| MOCK_METHOD1(OnStatistics, void(const PipelineStatistics&)); | 
| MOCK_METHOD0(OnUnderflow, void()); | 
| MOCK_METHOD0(OnDisabled, void()); | 
| @@ -138,8 +127,8 @@ class AudioRendererImplTest : public ::testing::Test { | 
| .WillOnce(RunCallback<1>(PIPELINE_OK)); | 
| InitializeWithStatus(PIPELINE_OK); | 
|  | 
| -    next_timestamp_.reset( | 
| -        new AudioTimestampHelper(decoder_->samples_per_second())); | 
| +    next_timestamp_.reset(new AudioTimestampHelper( | 
| +        hardware_config_.GetOutputConfig().sample_rate())); | 
| } | 
|  | 
| void InitializeWithStatus(PipelineStatus expected) { | 
| @@ -368,7 +357,7 @@ class AudioRendererImplTest : public ::testing::Test { | 
| do { | 
| TimeDelta audio_delay = TimeDelta::FromMicroseconds( | 
| total_frames_read * Time::kMicrosecondsPerSecond / | 
| -          static_cast<float>(decoder_->samples_per_second())); | 
| +          static_cast<float>(hardware_config_.GetOutputConfig().sample_rate())); | 
|  | 
| frames_read = renderer_->Render( | 
| bus.get(), audio_delay.InMilliseconds()); | 
| @@ -460,6 +449,7 @@ class AudioRendererImplTest : public ::testing::Test { | 
| base::MessageLoop message_loop_; | 
| scoped_ptr<AudioRendererImpl> renderer_; | 
| scoped_refptr<FakeAudioRendererSink> sink_; | 
| +  AudioHardwareConfig hardware_config_; | 
|  | 
| // Whether or not the test needs the destructor to call Stop() on | 
| // |renderer_| at destruction. | 
| @@ -535,11 +525,6 @@ class AudioRendererImplTest : public ::testing::Test { | 
| DISALLOW_COPY_AND_ASSIGN(AudioRendererImplTest); | 
| }; | 
|  | 
| -TEST_F(AudioRendererImplTest, Initialize_Failed) { | 
| -  ExpectUnsupportedAudioDecoderConfig(); | 
| -  InitializeWithStatus(PIPELINE_ERROR_INITIALIZATION_FAILED); | 
| -} | 
| - | 
| TEST_F(AudioRendererImplTest, Initialize_Successful) { | 
| Initialize(); | 
| } | 
|  |