| Index: webrtc/modules/audio_coding/neteq/audio_decoder_unittest.cc
|
| diff --git a/webrtc/modules/audio_coding/neteq/audio_decoder_unittest.cc b/webrtc/modules/audio_coding/neteq/audio_decoder_unittest.cc
|
| index 1850807783a9852e0b4b0aa538e95b7441b26ca4..d54fbe9099a50a86b427b0fcecc8b6b26df8ec56 100644
|
| --- a/webrtc/modules/audio_coding/neteq/audio_decoder_unittest.cc
|
| +++ b/webrtc/modules/audio_coding/neteq/audio_decoder_unittest.cc
|
| @@ -485,6 +485,24 @@ TEST_F(AudioDecoderPcmUTest, EncodeDecode) {
|
| EXPECT_FALSE(decoder_->HasDecodePlc());
|
| }
|
|
|
| +namespace {
|
| +int SetAndGetTargetBitrate(AudioEncoder* audio_encoder, int rate) {
|
| + audio_encoder->SetTargetBitrate(rate);
|
| + return audio_encoder->GetTargetBitrate();
|
| +}
|
| +void TestSetAndGetTargetBitratesWithFixedCodec(AudioEncoder* audio_encoder,
|
| + int fixed_rate) {
|
| + EXPECT_EQ(fixed_rate, SetAndGetTargetBitrate(audio_encoder, 32000));
|
| + EXPECT_EQ(fixed_rate, SetAndGetTargetBitrate(audio_encoder, fixed_rate - 1));
|
| + EXPECT_EQ(fixed_rate, SetAndGetTargetBitrate(audio_encoder, fixed_rate));
|
| + EXPECT_EQ(fixed_rate, SetAndGetTargetBitrate(audio_encoder, fixed_rate + 1));
|
| +}
|
| +} // namespace
|
| +
|
| +TEST_F(AudioDecoderPcmUTest, SetTargetBitrate) {
|
| + TestSetAndGetTargetBitratesWithFixedCodec(audio_encoder_.get(), 64000);
|
| +}
|
| +
|
| TEST_F(AudioDecoderPcmATest, EncodeDecode) {
|
| int tolerance = 308;
|
| double mse = 1931.0;
|
| @@ -494,6 +512,10 @@ TEST_F(AudioDecoderPcmATest, EncodeDecode) {
|
| EXPECT_FALSE(decoder_->HasDecodePlc());
|
| }
|
|
|
| +TEST_F(AudioDecoderPcmATest, SetTargetBitrate) {
|
| + TestSetAndGetTargetBitratesWithFixedCodec(audio_encoder_.get(), 64000);
|
| +}
|
| +
|
| TEST_F(AudioDecoderPcm16BTest, EncodeDecode) {
|
| int tolerance = 0;
|
| double mse = 0.0;
|
| @@ -506,6 +528,11 @@ TEST_F(AudioDecoderPcm16BTest, EncodeDecode) {
|
| EXPECT_FALSE(decoder_->HasDecodePlc());
|
| }
|
|
|
| +TEST_F(AudioDecoderPcm16BTest, SetTargetBitrate) {
|
| + TestSetAndGetTargetBitratesWithFixedCodec(audio_encoder_.get(),
|
| + codec_input_rate_hz_ * 16);
|
| +}
|
| +
|
| TEST_F(AudioDecoderIlbcTest, EncodeDecode) {
|
| int tolerance = 6808;
|
| double mse = 2.13e6;
|
| @@ -517,6 +544,10 @@ TEST_F(AudioDecoderIlbcTest, EncodeDecode) {
|
| DecodePlcTest();
|
| }
|
|
|
| +TEST_F(AudioDecoderIlbcTest, SetTargetBitrate) {
|
| + TestSetAndGetTargetBitratesWithFixedCodec(audio_encoder_.get(), 13333);
|
| +}
|
| +
|
| TEST_F(AudioDecoderIsacFloatTest, EncodeDecode) {
|
| int tolerance = 3399;
|
| double mse = 434951.0;
|
| @@ -527,6 +558,10 @@ TEST_F(AudioDecoderIsacFloatTest, EncodeDecode) {
|
| EXPECT_FALSE(decoder_->HasDecodePlc());
|
| }
|
|
|
| +TEST_F(AudioDecoderIsacFloatTest, SetTargetBitrate) {
|
| + TestSetAndGetTargetBitratesWithFixedCodec(audio_encoder_.get(), 32000);
|
| +}
|
| +
|
| TEST_F(AudioDecoderIsacSwbTest, EncodeDecode) {
|
| int tolerance = 19757;
|
| double mse = 8.18e6;
|
| @@ -537,6 +572,10 @@ TEST_F(AudioDecoderIsacSwbTest, EncodeDecode) {
|
| EXPECT_FALSE(decoder_->HasDecodePlc());
|
| }
|
|
|
| +TEST_F(AudioDecoderIsacSwbTest, SetTargetBitrate) {
|
| + TestSetAndGetTargetBitratesWithFixedCodec(audio_encoder_.get(), 32000);
|
| +}
|
| +
|
| // Fails Android ARM64. https://code.google.com/p/webrtc/issues/detail?id=4198
|
| #if defined(WEBRTC_ANDROID) && defined(WEBRTC_ARCH_ARM64)
|
| #define MAYBE_EncodeDecode DISABLED_EncodeDecode
|
| @@ -558,6 +597,10 @@ TEST_F(AudioDecoderIsacFixTest, MAYBE_EncodeDecode) {
|
| EXPECT_FALSE(decoder_->HasDecodePlc());
|
| }
|
|
|
| +TEST_F(AudioDecoderIsacFixTest, SetTargetBitrate) {
|
| + TestSetAndGetTargetBitratesWithFixedCodec(audio_encoder_.get(), 32000);
|
| +}
|
| +
|
| TEST_F(AudioDecoderG722Test, EncodeDecode) {
|
| int tolerance = 6176;
|
| double mse = 238630.0;
|
| @@ -568,6 +611,10 @@ TEST_F(AudioDecoderG722Test, EncodeDecode) {
|
| EXPECT_FALSE(decoder_->HasDecodePlc());
|
| }
|
|
|
| +TEST_F(AudioDecoderG722Test, SetTargetBitrate) {
|
| + TestSetAndGetTargetBitratesWithFixedCodec(audio_encoder_.get(), 64000);
|
| +}
|
| +
|
| TEST_F(AudioDecoderG722StereoTest, CreateAndDestroy) {
|
| EXPECT_TRUE(CodecSupported(kDecoderG722_2ch));
|
| }
|
| @@ -583,6 +630,10 @@ TEST_F(AudioDecoderG722StereoTest, EncodeDecode) {
|
| EXPECT_FALSE(decoder_->HasDecodePlc());
|
| }
|
|
|
| +TEST_F(AudioDecoderG722StereoTest, SetTargetBitrate) {
|
| + TestSetAndGetTargetBitratesWithFixedCodec(audio_encoder_.get(), 128000);
|
| +}
|
| +
|
| TEST_F(AudioDecoderOpusTest, EncodeDecode) {
|
| int tolerance = 6176;
|
| double mse = 238630.0;
|
| @@ -593,6 +644,20 @@ TEST_F(AudioDecoderOpusTest, EncodeDecode) {
|
| EXPECT_FALSE(decoder_->HasDecodePlc());
|
| }
|
|
|
| +namespace {
|
| +void TestOpusSetTargetBitrates(AudioEncoder* audio_encoder) {
|
| + EXPECT_EQ(500, SetAndGetTargetBitrate(audio_encoder, 499));
|
| + EXPECT_EQ(500, SetAndGetTargetBitrate(audio_encoder, 500));
|
| + EXPECT_EQ(32000, SetAndGetTargetBitrate(audio_encoder, 32000));
|
| + EXPECT_EQ(512000, SetAndGetTargetBitrate(audio_encoder, 512000));
|
| + EXPECT_EQ(512000, SetAndGetTargetBitrate(audio_encoder, 513000));
|
| +}
|
| +} // namespace
|
| +
|
| +TEST_F(AudioDecoderOpusTest, SetTargetBitrate) {
|
| + TestOpusSetTargetBitrates(audio_encoder_.get());
|
| +}
|
| +
|
| TEST_F(AudioDecoderOpusStereoTest, EncodeDecode) {
|
| int tolerance = 6176;
|
| int channel_diff_tolerance = 0;
|
| @@ -604,6 +669,10 @@ TEST_F(AudioDecoderOpusStereoTest, EncodeDecode) {
|
| EXPECT_FALSE(decoder_->HasDecodePlc());
|
| }
|
|
|
| +TEST_F(AudioDecoderOpusStereoTest, SetTargetBitrate) {
|
| + TestOpusSetTargetBitrates(audio_encoder_.get());
|
| +}
|
| +
|
| TEST(AudioDecoder, CodecSampleRateHz) {
|
| EXPECT_EQ(8000, CodecSampleRateHz(kDecoderPCMu));
|
| EXPECT_EQ(8000, CodecSampleRateHz(kDecoderPCMa));
|
|
|