Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3707)

Unified Diff: media/base/audio_renderer_mixer_unittest.cc

Issue 1942803002: Caching AudioOutputDevice instances in mixer manager (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Review comments addressed, map->vector in AudioRendererCacheImpl Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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) {

Powered by Google App Engine
This is Rietveld 408576698