Index: media/base/audio_renderer_mixer_unittest.cc |
diff --git a/media/base/audio_renderer_mixer_unittest.cc b/media/base/audio_renderer_mixer_unittest.cc |
index f4c1122e4c380d633a3a57328c5476b51de23b5e..a79d1f8c0c99d796111275cebe00a4ddbadd4d0c 100644 |
--- a/media/base/audio_renderer_mixer_unittest.cc |
+++ b/media/base/audio_renderer_mixer_unittest.cc |
@@ -19,6 +19,7 @@ |
#include "base/synchronization/waitable_event.h" |
#include "base/threading/platform_thread.h" |
#include "media/base/audio_renderer_mixer_input.h" |
+#include "media/base/audio_renderer_mixer_pool.h" |
#include "media/base/fake_audio_render_callback.h" |
#include "media/base/mock_audio_renderer_sink.h" |
#include "testing/gmock/include/gmock/gmock.h" |
@@ -47,11 +48,12 @@ const int kTestInput3Rates[] = {22050, 44100, 48000}; |
// Tuple of <input sampling rates, number of input sample rates, |
// output sampling rate, epsilon>. |
-typedef std::tr1::tuple<const int* const, size_t, int, double> |
- AudioRendererMixerTestData; |
+using AudioRendererMixerTestData = |
+ std::tr1::tuple<const int* const, size_t, int, double>; |
class AudioRendererMixerTest |
- : public testing::TestWithParam<AudioRendererMixerTestData> { |
+ : public testing::TestWithParam<AudioRendererMixerTestData>, |
+ AudioRendererMixerPool { |
public: |
AudioRendererMixerTest() |
: epsilon_(std::tr1::get<3>(GetParam())), half_fill_(false) { |
@@ -84,18 +86,24 @@ class AudioRendererMixerTest |
expected_callback_.reset(new FakeAudioRenderCallback(step)); |
} |
- AudioRendererMixer* GetMixer(const AudioParameters& params, |
+ AudioRendererMixer* GetMixer(int owner_id, |
+ const AudioParameters& params, |
const std::string& device_id, |
const url::Origin& security_origin, |
- OutputDeviceStatus* device_status) { |
+ OutputDeviceStatus* device_status) final { |
return mixer_.get(); |
- } |
+ }; |
- MOCK_METHOD3(RemoveMixer, |
- void(const AudioParameters&, |
+ MOCK_METHOD4(ReturnMixer, |
+ void(int, |
+ const AudioParameters&, |
const std::string&, |
const url::Origin&)); |
+ MOCK_METHOD4( |
+ GetOutputDeviceInfo, |
+ OutputDeviceInfo(int, int, const std::string&, const url::Origin&)); |
+ |
void InitializeInputs(int inputs_per_sample_rate) { |
mixer_inputs_.reserve(inputs_per_sample_rate * input_parameters_.size()); |
fake_callbacks_.reserve(inputs_per_sample_rate * input_parameters_.size()); |
@@ -112,20 +120,12 @@ class AudioRendererMixerTest |
for (int j = 0; j < inputs_per_sample_rate; ++j, ++input) { |
fake_callbacks_.push_back(new FakeAudioRenderCallback(step)); |
- mixer_inputs_.push_back(new AudioRendererMixerInput( |
- base::Bind(&AudioRendererMixerTest::GetMixer, |
- base::Unretained(this)), |
- base::Bind(&AudioRendererMixerTest::RemoveMixer, |
- base::Unretained(this)), |
- // Default device ID and security origin. |
- std::string(), url::Origin())); |
+ mixer_inputs_.push_back(CreateMixerInput()); |
mixer_inputs_[input]->Initialize(input_parameters_[i], |
fake_callbacks_[input]); |
mixer_inputs_[input]->SetVolume(1.0f); |
} |
} |
- EXPECT_CALL(*this, RemoveMixer(testing::_, testing::_, testing::_)) |
- .Times(mixer_inputs_.size()); |
} |
bool ValidateAudioData(int index, int frames, float scale, double epsilon) { |
@@ -329,6 +329,13 @@ class AudioRendererMixerTest |
mixer_inputs_[i]->Stop(); |
} |
+ scoped_refptr<AudioRendererMixerInput> CreateMixerInput() { |
+ return new AudioRendererMixerInput( |
+ this, |
+ // Zero frame id, default device ID and security origin. |
+ 0, std::string(), url::Origin()); |
+ } |
+ |
protected: |
virtual ~AudioRendererMixerTest() {} |
@@ -461,19 +468,6 @@ TEST_P(AudioRendererMixerBehavioralTest, OnRenderErrorPausedInput) { |
mixer_inputs_[i]->Stop(); |
} |
-// Ensure constructing an AudioRendererMixerInput, but not initializing it does |
-// not call RemoveMixer(). |
-TEST_P(AudioRendererMixerBehavioralTest, NoInitialize) { |
- EXPECT_CALL(*this, RemoveMixer(testing::_, testing::_, testing::_)).Times(0); |
- scoped_refptr<AudioRendererMixerInput> audio_renderer_mixer_input = |
- new AudioRendererMixerInput( |
- base::Bind(&AudioRendererMixerTest::GetMixer, base::Unretained(this)), |
- base::Bind(&AudioRendererMixerTest::RemoveMixer, |
- base::Unretained(this)), |
- // Default device ID and security origin. |
- std::string(), url::Origin()); |
-} |
- |
// Ensure the physical stream is paused after a certain amount of time with no |
// inputs playing. The test will hang if the behavior is incorrect. |
TEST_P(AudioRendererMixerBehavioralTest, MixerPausesStream) { |