| 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) {
|
|
|