From a1eb9c7e9b0cf38cf228550be25d42c7caa8fcc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20M=C3=B6ller?= Date: Fri, 7 Dec 2018 15:24:42 +0100 Subject: [PATCH] Convert NetEq tests to not use RegisterExternalDecoder. This change converts all tests but CodecInternalCng and DecodingErrorDuringInternalCng, which depend on the obsolete Decode method. Bug: webrtc:10080 Change-Id: I34b068b3aa7139ed24bd63b417a5adcfc1de7922 Reviewed-on: https://webrtc-review.googlesource.com/c/113506 Reviewed-by: Henrik Lundin Reviewed-by: Karl Wiberg Commit-Queue: Niels Moller Cr-Commit-Position: refs/heads/master@{#25946} --- .../audio_coding/neteq/neteq_impl_unittest.cc | 53 ++++++++++--------- test/audio_decoder_proxy_factory.h | 4 ++ 2 files changed, 32 insertions(+), 25 deletions(-) diff --git a/modules/audio_coding/neteq/neteq_impl_unittest.cc b/modules/audio_coding/neteq/neteq_impl_unittest.cc index 055efa0f27..b509cec3b1 100644 --- a/modules/audio_coding/neteq/neteq_impl_unittest.cc +++ b/modules/audio_coding/neteq/neteq_impl_unittest.cc @@ -504,7 +504,7 @@ TEST_F(NetEqImplTest, VerifyTimestampPropagation) { CreateInstance(decoder_factory); EXPECT_TRUE(neteq_->RegisterPayloadType(kPayloadType, - SdpAudioFormat("l16", 8000, 1))); + SdpAudioFormat("L16", 8000, 1))); // Insert one packet. EXPECT_EQ(NetEq::kOK, @@ -549,7 +549,11 @@ TEST_F(NetEqImplTest, VerifyTimestampPropagation) { TEST_F(NetEqImplTest, ReorderedPacket) { UseNoMocks(); - CreateInstance(); + // Create a mock decoder object. + MockAudioDecoder mock_decoder; + + CreateInstance( + new rtc::RefCountedObject(&mock_decoder)); const uint8_t kPayloadType = 17; // Just an arbitrary number. const uint32_t kReceiveTime = 17; // Value doesn't matter for this test. @@ -564,8 +568,6 @@ TEST_F(NetEqImplTest, ReorderedPacket) { rtp_header.timestamp = 0x12345678; rtp_header.ssrc = 0x87654321; - // Create a mock decoder object. - MockAudioDecoder mock_decoder; EXPECT_CALL(mock_decoder, Reset()).WillRepeatedly(Return()); EXPECT_CALL(mock_decoder, SampleRateHz()) .WillRepeatedly(Return(kSampleRateHz)); @@ -583,9 +585,8 @@ TEST_F(NetEqImplTest, ReorderedPacket) { dummy_output + kPayloadLengthSamples), SetArgPointee<4>(AudioDecoder::kSpeech), Return(rtc::checked_cast(kPayloadLengthSamples)))); - EXPECT_EQ(NetEq::kOK, neteq_->RegisterExternalDecoder( - &mock_decoder, NetEqDecoder::kDecoderPCM16B, - "dummy name", kPayloadType)); + EXPECT_TRUE(neteq_->RegisterPayloadType(kPayloadType, + SdpAudioFormat("L16", 8000, 1))); // Insert one packet. EXPECT_EQ(NetEq::kOK, @@ -842,7 +843,10 @@ TEST_F(NetEqImplTest, CodecInternalCng) { TEST_F(NetEqImplTest, UnsupportedDecoder) { UseNoMocks(); - CreateInstance(); + ::testing::NiceMock decoder; + + CreateInstance( + new rtc::RefCountedObject(&decoder)); static const size_t kNetEqMaxFrameSize = 5760; // 120 ms @ 48 kHz. static const size_t kChannels = 2; @@ -861,8 +865,6 @@ TEST_F(NetEqImplTest, UnsupportedDecoder) { rtp_header.timestamp = 0x12345678; rtp_header.ssrc = 0x87654321; - ::testing::NiceMock decoder; - const uint8_t kFirstPayloadValue = 1; const uint8_t kSecondPayloadValue = 2; @@ -894,9 +896,8 @@ TEST_F(NetEqImplTest, UnsupportedDecoder) { EXPECT_CALL(decoder, Channels()) .WillRepeatedly(Return(kChannels)); - EXPECT_EQ(NetEq::kOK, neteq_->RegisterExternalDecoder( - &decoder, NetEqDecoder::kDecoderPCM16B, - "dummy name", kPayloadType)); + EXPECT_TRUE(neteq_->RegisterPayloadType(kPayloadType, + SdpAudioFormat("L16", 8000, 1))); // Insert one packet. payload[0] = kFirstPayloadValue; // This will make Decode() fail. @@ -973,7 +974,11 @@ TEST_F(NetEqImplTest, FloodBufferAndGetNetworkStats) { TEST_F(NetEqImplTest, DecodedPayloadTooShort) { UseNoMocks(); - CreateInstance(); + // Create a mock decoder object. + MockAudioDecoder mock_decoder; + + CreateInstance( + new rtc::RefCountedObject(&mock_decoder)); const uint8_t kPayloadType = 17; // Just an arbitrary number. const uint32_t kReceiveTime = 17; // Value doesn't matter for this test. @@ -988,8 +993,6 @@ TEST_F(NetEqImplTest, DecodedPayloadTooShort) { rtp_header.timestamp = 0x12345678; rtp_header.ssrc = 0x87654321; - // Create a mock decoder object. - MockAudioDecoder mock_decoder; EXPECT_CALL(mock_decoder, Reset()).WillRepeatedly(Return()); EXPECT_CALL(mock_decoder, SampleRateHz()) .WillRepeatedly(Return(kSampleRateHz)); @@ -1009,9 +1012,8 @@ TEST_F(NetEqImplTest, DecodedPayloadTooShort) { dummy_output + kPayloadLengthSamples - 5), SetArgPointee<4>(AudioDecoder::kSpeech), Return(rtc::checked_cast(kPayloadLengthSamples - 5)))); - EXPECT_EQ(NetEq::kOK, neteq_->RegisterExternalDecoder( - &mock_decoder, NetEqDecoder::kDecoderPCM16B, - "dummy name", kPayloadType)); + EXPECT_TRUE(neteq_->RegisterPayloadType(kPayloadType, + SdpAudioFormat("L16", 8000, 1))); // Insert one packet. EXPECT_EQ(NetEq::kOK, @@ -1034,7 +1036,11 @@ TEST_F(NetEqImplTest, DecodedPayloadTooShort) { // This test checks the behavior of NetEq when audio decoder fails. TEST_F(NetEqImplTest, DecodingError) { UseNoMocks(); - CreateInstance(); + // Create a mock decoder object. + MockAudioDecoder mock_decoder; + + CreateInstance( + new rtc::RefCountedObject(&mock_decoder)); const uint8_t kPayloadType = 17; // Just an arbitrary number. const uint32_t kReceiveTime = 17; // Value doesn't matter for this test. @@ -1055,8 +1061,6 @@ TEST_F(NetEqImplTest, DecodingError) { rtp_header.timestamp = 0x12345678; rtp_header.ssrc = 0x87654321; - // Create a mock decoder object. - MockAudioDecoder mock_decoder; EXPECT_CALL(mock_decoder, Reset()).WillRepeatedly(Return()); EXPECT_CALL(mock_decoder, SampleRateHz()) .WillRepeatedly(Return(kSampleRateHz)); @@ -1102,9 +1106,8 @@ TEST_F(NetEqImplTest, DecodingError) { Return(rtc::checked_cast(kFrameLengthSamples)))); } - EXPECT_EQ(NetEq::kOK, neteq_->RegisterExternalDecoder( - &mock_decoder, NetEqDecoder::kDecoderPCM16B, - "dummy name", kPayloadType)); + EXPECT_TRUE(neteq_->RegisterPayloadType(kPayloadType, + SdpAudioFormat("L16", 8000, 1))); // Insert packets. for (int i = 0; i < 6; ++i) { diff --git a/test/audio_decoder_proxy_factory.h b/test/audio_decoder_proxy_factory.h index fe7f63f113..af08581d17 100644 --- a/test/audio_decoder_proxy_factory.h +++ b/test/audio_decoder_proxy_factory.h @@ -59,6 +59,10 @@ class AudioDecoderProxyFactory : public AudioDecoderFactory { return decoder_->ParsePayload(std::move(payload), timestamp); } + bool HasDecodePlc() const override { return decoder_->HasDecodePlc(); } + + int ErrorCode() override { return decoder_->ErrorCode(); } + void Reset() override { decoder_->Reset(); } int SampleRateHz() const override { return decoder_->SampleRateHz(); }