Index: webrtc/modules/audio_mixer/test/audio_mixer_unittest.cc |
diff --git a/webrtc/modules/audio_mixer/test/audio_mixer_unittest.cc b/webrtc/modules/audio_mixer/test/audio_mixer_unittest.cc |
index 8e4d0fc1edc540f3329649a72e464e5d222c2876..c228ec532eb5914bde148c23eb573ebb68dbad4c 100644 |
--- a/webrtc/modules/audio_mixer/test/audio_mixer_unittest.cc |
+++ b/webrtc/modules/audio_mixer/test/audio_mixer_unittest.cc |
@@ -69,7 +69,6 @@ class MockMixerAudioSource : public MixerAudioSource { |
MOCK_METHOD2(GetAudioFrameWithMuted, |
AudioFrameWithMuted(const int32_t id, int sample_rate_hz)); |
- MOCK_CONST_METHOD1(NeededFrequency, int32_t(const int32_t id)); |
AudioFrame* fake_frame() { return &fake_frame_; } |
AudioFrameInfo fake_info() { return fake_audio_frame_info_; } |
@@ -106,7 +105,9 @@ class CompareWithOldMixerTest : public testing::Test, AudioMixerOutputReceiver { |
// mix statuses. |
void MixAndCompare() { |
old_mixer_->Process(); |
- new_mixer_->Mix(&new_mixer_frame_); |
+ new_mixer_->Mix(kSampleRateHz, |
+ 1, // number of channels |
+ &new_mixer_frame_); |
EXPECT_EQ(0, memcmp(old_mixer_frame_.data_, new_mixer_frame_.data_, |
sizeof(old_mixer_frame_.data_))); |
@@ -202,8 +203,6 @@ class BothMixersTest : public testing::Test { |
// Frame duration 10ms. |
participant_.fake_frame()->samples_per_channel_ = kSampleRateHz / 100; |
- EXPECT_CALL(participant_, NeededFrequency(_)) |
- .WillRepeatedly(Return(kSampleRateHz)); |
} |
~BothMixersTest() { AudioMixer::Destroy(audio_mixer_); } |
@@ -302,8 +301,6 @@ TEST(AudioMixer, LargestEnergyVadActiveMixed) { |
EXPECT_EQ(0, mixer->SetMixabilityStatus(&participants[i], true)); |
EXPECT_CALL(participants[i], GetAudioFrameWithMuted(_, _)) |
.Times(Exactly(1)); |
- EXPECT_CALL(participants[i], NeededFrequency(_)) |
- .WillRepeatedly(Return(kSampleRateHz)); |
} |
// Last participant gives audio frame with passive VAD, although it has the |
@@ -312,7 +309,9 @@ TEST(AudioMixer, LargestEnergyVadActiveMixed) { |
AudioFrame::kVadPassive; |
AudioFrame audio_frame; |
- mixer->Mix(&audio_frame); |
+ mixer->Mix(kSampleRateHz, |
+ 1, // number of channels |
+ &audio_frame); |
for (int i = 0; i < kAudioSources; ++i) { |
bool is_mixed = participants[i].IsMixed(); |
@@ -328,6 +327,49 @@ TEST(AudioMixer, LargestEnergyVadActiveMixed) { |
} |
} |
+TEST(AudioMixer, ParticipantSampleRate) { |
+ const int kId = 1; |
+ std::unique_ptr<NewAudioConferenceMixer> mixer( |
+ NewAudioConferenceMixer::Create(kId)); |
+ AudioFrame frame_for_mixing; |
+ |
+ MockMixerAudioSource participant; |
+ participant.fake_frame()->sample_rate_hz_ = 8000; |
+ participant.fake_frame()->num_channels_ = 1; |
+ |
+ // Frame duration 10ms. |
+ participant.fake_frame()->samples_per_channel_ = 8000 / 100; |
+ |
+ EXPECT_EQ(0, mixer->SetMixabilityStatus(&participant, true)); |
+ for (auto frequency : {8000, 16000, 32000, 48000}) { |
+ EXPECT_CALL(participant, GetAudioFrameWithMuted(_, frequency)) |
+ .Times(Exactly(1)); |
+ mixer->Mix(frequency, 1, &frame_for_mixing); |
+ EXPECT_EQ(frequency, frame_for_mixing.sample_rate_hz_); |
+ } |
+} |
+ |
+TEST(AudioMixer, ParticipantNumberOfChannels) { |
+ const int kId = 1; |
+ std::unique_ptr<NewAudioConferenceMixer> mixer( |
+ NewAudioConferenceMixer::Create(kId)); |
+ AudioFrame frame_for_mixing; |
+ |
+ MockMixerAudioSource participant; |
+ participant.fake_frame()->sample_rate_hz_ = 8000; |
+ participant.fake_frame()->num_channels_ = 1; |
+ |
+ // Frame duration 10ms. |
+ participant.fake_frame()->samples_per_channel_ = 8000 / 100; |
+ |
+ EXPECT_EQ(0, mixer->SetMixabilityStatus(&participant, true)); |
+ for (size_t number_of_channels : {1, 2}) { |
+ EXPECT_CALL(participant, GetAudioFrameWithMuted(_, 8000)).Times(Exactly(1)); |
+ mixer->Mix(8000, number_of_channels, &frame_for_mixing); |
+ EXPECT_EQ(number_of_channels, frame_for_mixing.num_channels_); |
+ } |
+} |
+ |
aleloi2
2016/08/06 10:13:50
Two new tests to check that the mixer asks for the
|
TEST_F(BothMixersTest, CompareInitialFrameAudio) { |
EXPECT_CALL(participant_, GetAudioFrameWithMuted(_, _)).Times(Exactly(1)); |
@@ -340,7 +382,6 @@ TEST_F(BothMixersTest, CompareInitialFrameAudio) { |
RampIn(mixing_round_frame); |
// Mix frames and put the result into a frame. |
- audio_mixer_->MixActiveChannels(); |
audio_mixer_->GetMixedAudio(kSampleRateHz, 1, &mixed_results_frame_); |
// Compare the received frame with the expected. |
@@ -362,11 +403,10 @@ TEST_F(BothMixersTest, CompareSecondFrameAudio) { |
ResetAudioSource(); |
// Do one mixing iteration. |
- audio_mixer_->MixActiveChannels(); |
+ audio_mixer_->GetMixedAudio(kSampleRateHz, 1, &mixed_results_frame_); |
// Mix frames a second time and compare with the expected frame |
// (which is the participant's frame). |
- audio_mixer_->MixActiveChannels(); |
audio_mixer_->GetMixedAudio(kSampleRateHz, 1, &mixed_results_frame_); |
EXPECT_EQ(0, |
memcmp(participant_.fake_frame()->data_, mixed_results_frame_.data_, |