NetEq: Use a BuiltinAudioDecoderFactory to create decoders
Later steps in the refactoring will have the factory injected from the
outside rather than owned by NetEq.
BUG=webrtc:5801
Review-Url: https://codereview.webrtc.org/1928293002
Cr-Commit-Position: refs/heads/master@{#12604}
diff --git a/webrtc/modules/audio_coding/neteq/decoder_database.h b/webrtc/modules/audio_coding/neteq/decoder_database.h
index ec8a5d6..3a40e08 100644
--- a/webrtc/modules/audio_coding/neteq/decoder_database.h
+++ b/webrtc/modules/audio_coding/neteq/decoder_database.h
@@ -17,6 +17,8 @@
#include "webrtc/base/constructormagic.h"
#include "webrtc/common_types.h" // NULL
+#include "webrtc/modules/audio_coding/codecs/audio_decoder_factory.h"
+#include "webrtc/modules/audio_coding/codecs/audio_format.h"
#include "webrtc/modules/audio_coding/codecs/cng/webrtc_cng.h"
#include "webrtc/modules/audio_coding/neteq/audio_decoder_impl.h"
#include "webrtc/modules/audio_coding/neteq/packet.h"
@@ -47,7 +49,7 @@
~DecoderInfo();
// Get the AudioDecoder object, creating it first if necessary.
- AudioDecoder* GetDecoder();
+ AudioDecoder* GetDecoder(AudioDecoderFactory* factory);
// Delete the AudioDecoder object, unless it's external. (This means we can
// always recreate it later if we need it.)
@@ -59,6 +61,7 @@
AudioDecoder* const external_decoder;
private:
+ const rtc::Optional<SdpAudioFormat> audio_format_;
std::unique_ptr<AudioDecoder> decoder_;
};
@@ -66,7 +69,7 @@
// only 7 bits).
static const uint8_t kRtpPayloadTypeError = 0xFF;
- DecoderDatabase();
+ DecoderDatabase(std::unique_ptr<AudioDecoderFactory> decoder_factory);
virtual ~DecoderDatabase();
@@ -157,6 +160,7 @@
int active_decoder_type_;
int active_cng_decoder_type_;
std::unique_ptr<ComfortNoiseDecoder> active_cng_decoder_;
+ const std::unique_ptr<AudioDecoderFactory> decoder_factory_;
RTC_DISALLOW_COPY_AND_ASSIGN(DecoderDatabase);
};