Refactor NetEqDecoderPlc to use AudioDecoderProxyFactory
Bug: webrtc:10080
Change-Id: I651efc70fa020e345776c44d9510245c45f9b092
Reviewed-on: https://webrtc-review.googlesource.com/c/114547
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26067}
diff --git a/modules/audio_coding/neteq/neteq_decoder_plc_unittest.cc b/modules/audio_coding/neteq/neteq_decoder_plc_unittest.cc
index 4b0d09f..4e060ec 100644
--- a/modules/audio_coding/neteq/neteq_decoder_plc_unittest.cc
+++ b/modules/audio_coding/neteq/neteq_decoder_plc_unittest.cc
@@ -15,7 +15,6 @@
#include <vector>
#include "absl/types/optional.h"
-#include "api/audio_codecs/builtin_audio_decoder_factory.h"
#include "modules/audio_coding/codecs/pcm16b/audio_encoder_pcm16b.h"
#include "modules/audio_coding/neteq/tools/audio_checksum.h"
#include "modules/audio_coding/neteq/tools/audio_sink.h"
@@ -24,6 +23,8 @@
#include "modules/audio_coding/neteq/tools/input_audio_file.h"
#include "modules/audio_coding/neteq/tools/neteq_test.h"
#include "rtc_base/numerics/safe_conversions.h"
+#include "rtc_base/refcountedobject.h"
+#include "test/audio_decoder_proxy_factory.h"
#include "test/gtest.h"
#include "test/testsupport/fileutils.h"
@@ -175,10 +176,7 @@
webrtc::test::ResourcePath("audio_coding/testfile32kHz", "pcm"));
AudioDecoderPlc dec(std::move(input_file), kSampleRateHz);
// Masquerading as a PCM16b decoder.
- NetEqTest::ExternalDecoderInfo dec_info = {
- &dec, NetEqDecoder::kDecoderPCM16Bswb32kHz, "pcm16b_PLC"};
- NetEqTest::ExtDecoderMap external_decoders;
- external_decoders.insert(std::make_pair(kPayloadType, dec_info));
+ decoders[kPayloadType] = {NetEqDecoder::kDecoderPCM16Bswb32kHz, "pcm16b_PLC"};
// Output is simply a checksum calculator.
auto output = absl::make_unique<AudioChecksumWithOutput>(checksum);
@@ -186,9 +184,11 @@
// No callback objects.
NetEqTest::Callbacks callbacks;
- NetEqTest neteq_test(config, CreateBuiltinAudioDecoderFactory(), decoders,
- external_decoders, nullptr, std::move(lossy_input),
- std::move(output), callbacks);
+ NetEqTest::ExtDecoderMap external_decoders;
+ NetEqTest neteq_test(
+ config, new rtc::RefCountedObject<test::AudioDecoderProxyFactory>(&dec),
+ decoders, external_decoders, nullptr, std::move(lossy_input),
+ std::move(output), callbacks);
EXPECT_LE(kRunTimeMs, neteq_test.Run());
auto lifetime_stats = neteq_test.LifetimeStats();
diff --git a/test/audio_decoder_proxy_factory.h b/test/audio_decoder_proxy_factory.h
index 18988e6..fa5795b 100644
--- a/test/audio_decoder_proxy_factory.h
+++ b/test/audio_decoder_proxy_factory.h
@@ -83,6 +83,11 @@
max_decoded_bytes, decoded, speech_type);
}
+ void GeneratePlc(size_t requested_samples_per_channel,
+ rtc::BufferT<int16_t>* concealment_audio) override {
+ decoder_->GeneratePlc(requested_samples_per_channel, concealment_audio);
+ }
+
AudioDecoder* const decoder_;
};