| Index: webrtc/api/audio_codecs/builtin_audio_encoder_factory.cc
|
| diff --git a/webrtc/api/audio_codecs/builtin_audio_encoder_factory.cc b/webrtc/api/audio_codecs/builtin_audio_encoder_factory.cc
|
| index bb57a5f48ab7ffab74e12d246fdd6df4c9c5dee1..ae1bf4b306d83f3a3e7c34f40b86361be6311d3b 100644
|
| --- a/webrtc/api/audio_codecs/builtin_audio_encoder_factory.cc
|
| +++ b/webrtc/api/audio_codecs/builtin_audio_encoder_factory.cc
|
| @@ -10,12 +10,74 @@
|
|
|
| #include "webrtc/api/audio_codecs/builtin_audio_encoder_factory.h"
|
|
|
| -#include "webrtc/modules/audio_coding/codecs/builtin_audio_encoder_factory_internal.h"
|
| +#include <memory>
|
| +#include <vector>
|
| +
|
| +#include "webrtc/api/audio_codecs/L16/audio_encoder_L16.h"
|
| +#include "webrtc/api/audio_codecs/audio_encoder_factory_template.h"
|
| +#include "webrtc/api/audio_codecs/g711/audio_encoder_g711.h"
|
| +#if WEBRTC_USE_BUILTIN_G722
|
| +#include "webrtc/api/audio_codecs/g722/audio_encoder_g722.h" // nogncheck
|
| +#endif
|
| +#if WEBRTC_USE_BUILTIN_ILBC
|
| +#include "webrtc/api/audio_codecs/ilbc/audio_encoder_ilbc.h" // nogncheck
|
| +#endif
|
| +#if WEBRTC_USE_BUILTIN_ISAC_FIX
|
| +#include "webrtc/api/audio_codecs/isac/audio_encoder_isac_fix.h" // nogncheck
|
| +#elif WEBRTC_USE_BUILTIN_ISAC_FLOAT
|
| +#include "webrtc/api/audio_codecs/isac/audio_encoder_isac_float.h" // nogncheck
|
| +#endif
|
| +#if WEBRTC_USE_BUILTIN_OPUS
|
| +#include "webrtc/api/audio_codecs/opus/audio_encoder_opus.h" // nogncheck
|
| +#endif
|
|
|
| namespace webrtc {
|
|
|
| +namespace {
|
| +
|
| +// Modify an audio encoder 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 AppendSupportedEncoders(std::vector<AudioCodecSpec>* specs) {
|
| + // Don't advertise support for anything.
|
| + }
|
| + static AudioCodecInfo QueryAudioEncoder(const Config& config) {
|
| + return T::QueryAudioEncoder(config);
|
| + }
|
| + static std::unique_ptr<AudioEncoder> MakeAudioEncoder(const Config& config,
|
| + int payload_type) {
|
| + return T::MakeAudioEncoder(config, payload_type);
|
| + }
|
| +};
|
| +
|
| +} // namespace
|
| +
|
| rtc::scoped_refptr<AudioEncoderFactory> CreateBuiltinAudioEncoderFactory() {
|
| - return CreateBuiltinAudioEncoderFactoryInternal();
|
| + return CreateAudioEncoderFactory<
|
| +
|
| +#if WEBRTC_USE_BUILTIN_OPUS
|
| + AudioEncoderOpus,
|
| +#endif
|
| +
|
| +#if WEBRTC_USE_BUILTIN_ISAC_FIX
|
| + AudioEncoderIsacFix,
|
| +#elif WEBRTC_USE_BUILTIN_ISAC_FLOAT
|
| + AudioEncoderIsacFloat,
|
| +#endif
|
| +
|
| +#if WEBRTC_USE_BUILTIN_G722
|
| + AudioEncoderG722,
|
| +#endif
|
| +
|
| +#if WEBRTC_USE_BUILTIN_ILBC
|
| + AudioEncoderIlbc,
|
| +#endif
|
| +
|
| + AudioEncoderG711, NotAdvertised<AudioEncoderL16>>();
|
| }
|
|
|
| } // namespace webrtc
|
|
|