| Index: webrtc/modules/audio_coding/acm2/rent_a_codec_unittest.cc
|
| diff --git a/webrtc/modules/audio_coding/acm2/rent_a_codec_unittest.cc b/webrtc/modules/audio_coding/acm2/rent_a_codec_unittest.cc
|
| index 11c4bcb292728c04f937468f5f17f1a72339663f..e838488e53fe4f234d6acf2875f5d3ab84fb766f 100644
|
| --- a/webrtc/modules/audio_coding/acm2/rent_a_codec_unittest.cc
|
| +++ b/webrtc/modules/audio_coding/acm2/rent_a_codec_unittest.cc
|
| @@ -34,7 +34,8 @@ class RentACodecTestF : public ::testing::Test {
|
| ASSERT_TRUE(speech_encoder_);
|
| RentACodec::StackParameters param;
|
| param.use_cng = true;
|
| - encoder_ = rent_a_codec_.RentEncoderStack(speech_encoder_, ¶m);
|
| + param.speech_encoder = speech_encoder_;
|
| + encoder_ = rent_a_codec_.RentEncoderStack(¶m);
|
| }
|
|
|
| void EncodeAndVerify(size_t expected_out_length,
|
| @@ -110,7 +111,8 @@ TEST(RentACodecTest, ExternalEncoder) {
|
|
|
| RentACodec rac;
|
| RentACodec::StackParameters param;
|
| - EXPECT_EQ(&external_encoder, rac.RentEncoderStack(&external_encoder, ¶m));
|
| + param.speech_encoder = &external_encoder;
|
| + EXPECT_EQ(&external_encoder, rac.RentEncoderStack(¶m));
|
| const int kPacketSizeSamples = kSampleRateHz / 100;
|
| int16_t audio[kPacketSizeSamples] = {0};
|
| uint8_t encoded[kPacketSizeSamples];
|
| @@ -140,16 +142,17 @@ TEST(RentACodecTest, ExternalEncoder) {
|
| // Change to internal encoder.
|
| CodecInst codec_inst = kDefaultCodecInst;
|
| codec_inst.pacsize = kPacketSizeSamples;
|
| - AudioEncoder* enc = rac.RentEncoder(codec_inst);
|
| - ASSERT_TRUE(enc);
|
| - EXPECT_EQ(enc, rac.RentEncoderStack(enc, ¶m));
|
| + param.speech_encoder = rac.RentEncoder(codec_inst);
|
| + ASSERT_TRUE(param.speech_encoder);
|
| + EXPECT_EQ(param.speech_encoder, rac.RentEncoderStack(¶m));
|
|
|
| // Don't expect any more calls to the external encoder.
|
| info = rac.GetEncoderStack()->Encode(1, audio, arraysize(encoded), encoded);
|
| external_encoder.Mark("B");
|
|
|
| // Change back to external encoder again.
|
| - EXPECT_EQ(&external_encoder, rac.RentEncoderStack(&external_encoder, ¶m));
|
| + param.speech_encoder = &external_encoder;
|
| + EXPECT_EQ(&external_encoder, rac.RentEncoderStack(¶m));
|
| info = rac.GetEncoderStack()->Encode(2, audio, arraysize(encoded), encoded);
|
| EXPECT_EQ(2u, info.encoded_timestamp);
|
| }
|
| @@ -173,13 +176,15 @@ void TestCngAndRedResetSpeechEncoder(bool use_cng, bool use_red) {
|
| }
|
|
|
| RentACodec::StackParameters param1, param2;
|
| + param1.speech_encoder = &speech_encoder;
|
| + param2.speech_encoder = &speech_encoder;
|
| param2.use_cng = use_cng;
|
| param2.use_red = use_red;
|
| speech_encoder.Mark("disabled");
|
| RentACodec rac;
|
| - rac.RentEncoderStack(&speech_encoder, ¶m1);
|
| + rac.RentEncoderStack(¶m1);
|
| speech_encoder.Mark("enabled");
|
| - rac.RentEncoderStack(&speech_encoder, ¶m2);
|
| + rac.RentEncoderStack(¶m2);
|
| }
|
|
|
| TEST(RentACodecTest, CngResetsSpeechEncoder) {
|
| @@ -205,5 +210,13 @@ TEST(RentACodecTest, RentEncoderError) {
|
| EXPECT_FALSE(rent_a_codec.RentEncoder(codec_inst));
|
| }
|
|
|
| +#if GTEST_HAS_DEATH_TEST && !defined(WEBRTC_ANDROID)
|
| +TEST(RentACodecTest, RentEncoderStackWithoutSpeechEncoder) {
|
| + RentACodec::StackParameters sp;
|
| + EXPECT_EQ(nullptr, sp.speech_encoder);
|
| + EXPECT_DEATH(RentACodec().RentEncoderStack(&sp), "");
|
| +}
|
| +#endif
|
| +
|
| } // namespace acm2
|
| } // namespace webrtc
|
|
|