Index: webrtc/modules/audio_coding/codecs/opus/audio_encoder_mutable_opus_test.cc |
diff --git a/webrtc/modules/audio_coding/codecs/opus/audio_encoder_mutable_opus_test.cc b/webrtc/modules/audio_coding/codecs/opus/audio_encoder_mutable_opus_test.cc |
index ed3f52fff7f42052c2a1568a9746a60cffada84e..2a3a4cef81485c9f461e1d0b4fed760bd26ac6a4 100644 |
--- a/webrtc/modules/audio_coding/codecs/opus/audio_encoder_mutable_opus_test.cc |
+++ b/webrtc/modules/audio_coding/codecs/opus/audio_encoder_mutable_opus_test.cc |
@@ -79,6 +79,30 @@ TEST_F(AudioEncoderMutableOpusTest, ToggleDtx) { |
// Turn off DTX. |
EXPECT_TRUE(encoder_->SetDtx(false)); |
} |
+ |
+TEST_F(AudioEncoderMutableOpusTest, SetBitrate) { |
+ CreateCodec(1); |
+ // Constants are replicated from audio_encoder_opus.cc. |
+ const int kMinBitrateBps = 500; |
+ const int kMaxBitrateBps = 512000; |
+ // Set a too low bitrate. |
+ EXPECT_EQ(kMinBitrateBps, encoder_->SetTargetBitrate(kMinBitrateBps - 1)); |
+ EXPECT_EQ(kMinBitrateBps, encoder_->bitrate_bps()); |
+ // Set a too high bitrate. |
+ EXPECT_EQ(kMaxBitrateBps, encoder_->SetTargetBitrate(kMaxBitrateBps + 1)); |
+ EXPECT_EQ(kMaxBitrateBps, encoder_->bitrate_bps()); |
+ // Set the minimum rate. |
+ EXPECT_EQ(kMinBitrateBps, encoder_->SetTargetBitrate(kMinBitrateBps)); |
+ EXPECT_EQ(kMinBitrateBps, encoder_->bitrate_bps()); |
+ // Set the maximum rate. |
+ EXPECT_EQ(kMaxBitrateBps, encoder_->SetTargetBitrate(kMaxBitrateBps)); |
+ EXPECT_EQ(kMaxBitrateBps, encoder_->bitrate_bps()); |
+ // Set rates from 1000 up to 32000 bps. |
+ for (int rate = 1000; rate <= 32000; rate += 1000) { |
+ EXPECT_EQ(rate, encoder_->SetTargetBitrate(rate)); |
+ EXPECT_EQ(rate, encoder_->bitrate_bps()); |
+ } |
+} |
#endif // WEBRTC_CODEC_OPUS |
} // namespace acm2 |