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>>(); |
ossu
2017/08/22 12:29:16
Neat!
Not advertising L16 in our builtin factory
kwiberg-webrtc
2017/08/22 12:40:35
Yes, I realized that this behavior was probably or
|
} |
} // namespace webrtc |