| Index: webrtc/api/audio_codecs/builtin_audio_decoder_factory.cc
|
| diff --git a/webrtc/api/audio_codecs/builtin_audio_decoder_factory.cc b/webrtc/api/audio_codecs/builtin_audio_decoder_factory.cc
|
| index 9bd049b0e670b7c7d8708877a5561de4e2b81bc6..69a3e7c533d759a2e595fa8518f248591f694bfa 100644
|
| --- a/webrtc/api/audio_codecs/builtin_audio_decoder_factory.cc
|
| +++ b/webrtc/api/audio_codecs/builtin_audio_decoder_factory.cc
|
| @@ -10,12 +10,70 @@
|
|
|
| #include "webrtc/api/audio_codecs/builtin_audio_decoder_factory.h"
|
|
|
| -#include "webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory_internal.h"
|
| +#include <memory>
|
| +#include <vector>
|
| +
|
| +#include "webrtc/api/audio_codecs/L16/audio_decoder_L16.h"
|
| +#include "webrtc/api/audio_codecs/audio_decoder_factory_template.h"
|
| +#include "webrtc/api/audio_codecs/g711/audio_decoder_g711.h"
|
| +#if WEBRTC_USE_BUILTIN_G722
|
| +#include "webrtc/api/audio_codecs/g722/audio_decoder_g722.h" // nogncheck
|
| +#endif
|
| +#if WEBRTC_USE_BUILTIN_ILBC
|
| +#include "webrtc/api/audio_codecs/ilbc/audio_decoder_ilbc.h" // nogncheck
|
| +#endif
|
| +#if WEBRTC_USE_BUILTIN_ISAC_FIX
|
| +#include "webrtc/api/audio_codecs/isac/audio_decoder_isac_fix.h" // nogncheck
|
| +#elif WEBRTC_USE_BUILTIN_ISAC_FLOAT
|
| +#include "webrtc/api/audio_codecs/isac/audio_decoder_isac_float.h" // nogncheck
|
| +#endif
|
| +#if WEBRTC_USE_BUILTIN_OPUS
|
| +#include "webrtc/api/audio_codecs/opus/audio_decoder_opus.h" // nogncheck
|
| +#endif
|
|
|
| namespace webrtc {
|
|
|
| +namespace {
|
| +
|
| +// Modify an audio decoder to not advertise support for anything.
|
| +template <typename T>
|
| +struct NotAdvertised {
|
| + using Config = typename T::Config;
|
| + static rtc::Optional<Config> SdpToConfig(const SdpAudioFormat& audio_format) {
|
| + return T::SdpToConfig(audio_format);
|
| + }
|
| + static void AppendSupportedDecoders(std::vector<AudioCodecSpec>* specs) {
|
| + // Don't advertise support for anything.
|
| + }
|
| + static std::unique_ptr<AudioDecoder> MakeAudioDecoder(const Config& config) {
|
| + return T::MakeAudioDecoder(config);
|
| + }
|
| +};
|
| +
|
| +} // namespace
|
| +
|
| rtc::scoped_refptr<AudioDecoderFactory> CreateBuiltinAudioDecoderFactory() {
|
| - return CreateBuiltinAudioDecoderFactoryInternal();
|
| + return CreateAudioDecoderFactory<
|
| +
|
| +#if WEBRTC_USE_BUILTIN_OPUS
|
| + AudioDecoderOpus,
|
| +#endif
|
| +
|
| +#if WEBRTC_USE_BUILTIN_ISAC_FIX
|
| + AudioDecoderIsacFix,
|
| +#elif WEBRTC_USE_BUILTIN_ISAC_FLOAT
|
| + AudioDecoderIsacFloat,
|
| +#endif
|
| +
|
| +#if WEBRTC_USE_BUILTIN_G722
|
| + AudioDecoderG722,
|
| +#endif
|
| +
|
| +#if WEBRTC_USE_BUILTIN_ILBC
|
| + AudioDecoderIlbc,
|
| +#endif
|
| +
|
| + AudioDecoderG711, NotAdvertised<AudioDecoderL16>>();
|
| }
|
|
|
| } // namespace webrtc
|
|
|