Index: webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus_unittest.cc |
diff --git a/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus_unittest.cc b/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus_unittest.cc |
index 6a4c47c0e33a189bcb910a5290dfd7facad3905f..170dc7f685c076abc447f4ef6310a754b8056ea9 100644 |
--- a/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus_unittest.cc |
+++ b/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus_unittest.cc |
@@ -34,6 +34,7 @@ AudioEncoderOpus::Config CreateConfig(const CodecInst& codec_inst) { |
config.payload_type = codec_inst.pltype; |
config.application = config.num_channels == 1 ? AudioEncoderOpus::kVoip |
: AudioEncoderOpus::kAudio; |
+ config.supported_frame_lengths_ms.push_back(config.frame_size_ms); |
return config; |
} |
@@ -222,9 +223,33 @@ TEST(AudioEncoderOpusTest, PacketLossRateOptimized) { |
// clang-format on |
} |
+namespace { |
+ |
+void CheckArrayView(const std::vector<int>& expect_values, |
+ const rtc::ArrayView<const int>& array_view) { |
kwiberg-webrtc
2016/10/24 11:58:35
Pass ArrayView by value.
|
+ EXPECT_THAT(expect_values, ::testing::ElementsAreArray(array_view.data(), |
+ array_view.size())); |
kwiberg-webrtc
2016/10/24 11:58:35
The actual value should be the first argument, and
|
+} |
+ |
+} // namespace |
+ |
+TEST(AudioEncoderOpusTest, SetReceiverFrameLengthRange) { |
+ auto states = CreateCodec(2); |
+ // Before calling to |SetReceiverFrameLengthRange|, |
+ // |supported_frame_lengths_ms| should contain only the frame length being |
+ // used. |
+ CheckArrayView({states.encoder->next_frame_length_ms()}, |
+ states.encoder->supported_frame_lengths_ms()); |
kwiberg-webrtc
2016/10/24 11:58:35
I don't think you need the separate function:
EXP
|
+ states.encoder->SetReceiverFrameLengthRange(0, 12345); |
+ CheckArrayView({20, 60}, states.encoder->supported_frame_lengths_ms()); |
kwiberg-webrtc
2016/10/24 11:58:35
EXPECT_THAT(states.encoder->supported_frame_length
|
+ states.encoder->SetReceiverFrameLengthRange(21, 60); |
+ CheckArrayView({60}, states.encoder->supported_frame_lengths_ms()); |
+ states.encoder->SetReceiverFrameLengthRange(20, 59); |
+ CheckArrayView({20}, states.encoder->supported_frame_lengths_ms()); |
+} |
+ |
TEST(AudioEncoderOpusTest, InvokeAudioNetworkAdaptorOnSetUplinkBandwidth) { |
auto states = CreateCodec(2); |
- printf("passed!\n"); |
states.encoder->EnableAudioNetworkAdaptor("", nullptr); |
auto config = CreateEncoderRuntimeConfig(); |
@@ -292,24 +317,6 @@ TEST(AudioEncoderOpusTest, InvokeAudioNetworkAdaptorOnSetRtt) { |
} |
TEST(AudioEncoderOpusTest, |
- InvokeAudioNetworkAdaptorOnSetReceiverFrameLengthRange) { |
- auto states = CreateCodec(2); |
- states.encoder->EnableAudioNetworkAdaptor("", nullptr); |
- |
- auto config = CreateEncoderRuntimeConfig(); |
- EXPECT_CALL(**states.mock_audio_network_adaptor, GetEncoderRuntimeConfig()) |
- .WillOnce(Return(config)); |
- |
- constexpr int kMinFrameLength = 10; |
- constexpr int kMaxFrameLength = 60; |
- EXPECT_CALL(**states.mock_audio_network_adaptor, |
- SetReceiverFrameLengthRange(kMinFrameLength, kMaxFrameLength)); |
- states.encoder->SetReceiverFrameLengthRange(kMinFrameLength, kMaxFrameLength); |
- |
- CheckEncoderRuntimeConfig(states.encoder.get(), config); |
-} |
- |
-TEST(AudioEncoderOpusTest, |
PacketLossFractionSmoothedOnSetUplinkPacketLossFraction) { |
auto states = CreateCodec(2); |