blob: d60f4bf7d1c656931ee372990f1307821a482f2c [file] [log] [blame]
henrik.lundin@webrtc.orgd94659d2013-01-29 12:09:21 +00001/*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
henrik.lundin@webrtc.org9c55f0f2014-06-09 08:10:28 +000011#include "webrtc/modules/audio_coding/neteq/audio_decoder_impl.h"
henrik.lundin@webrtc.orgd94659d2013-01-29 12:09:21 +000012
13#include <assert.h>
henrik.lundin@webrtc.orgaaad6132013-02-01 11:49:28 +000014
kjellander@webrtc.org3c652b62015-11-18 23:07:57 +010015#include "webrtc/modules/audio_coding/codecs/g711/audio_decoder_pcm.h"
Edward Lemurc20978e2017-07-06 19:44:34 +020016#include "webrtc/rtc_base/checks.h"
henrik.lundin@webrtc.orgd94659d2013-01-29 12:09:21 +000017#ifdef WEBRTC_CODEC_G722
kjellander@webrtc.org3c652b62015-11-18 23:07:57 +010018#include "webrtc/modules/audio_coding/codecs/g722/audio_decoder_g722.h"
henrik.lundin@webrtc.orgd94659d2013-01-29 12:09:21 +000019#endif
20#ifdef WEBRTC_CODEC_ILBC
kjellander@webrtc.org3c652b62015-11-18 23:07:57 +010021#include "webrtc/modules/audio_coding/codecs/ilbc/audio_decoder_ilbc.h"
henrik.lundin@webrtc.orgd94659d2013-01-29 12:09:21 +000022#endif
23#ifdef WEBRTC_CODEC_ISACFX
kwiberg65cb70d2017-03-03 06:16:28 -080024#include "webrtc/modules/audio_coding/codecs/isac/fix/include/audio_decoder_isacfix.h" // nogncheck
25#include "webrtc/modules/audio_coding/codecs/isac/fix/include/audio_encoder_isacfix.h" // nogncheck
henrik.lundin@webrtc.orgd94659d2013-01-29 12:09:21 +000026#endif
27#ifdef WEBRTC_CODEC_ISAC
kwiberg65cb70d2017-03-03 06:16:28 -080028#include "webrtc/modules/audio_coding/codecs/isac/main/include/audio_decoder_isac.h" // nogncheck
29#include "webrtc/modules/audio_coding/codecs/isac/main/include/audio_encoder_isac.h" // nogncheck
henrik.lundin@webrtc.orgd94659d2013-01-29 12:09:21 +000030#endif
31#ifdef WEBRTC_CODEC_OPUS
kjellander@webrtc.org3c652b62015-11-18 23:07:57 +010032#include "webrtc/modules/audio_coding/codecs/opus/audio_decoder_opus.h"
henrik.lundin@webrtc.orgd94659d2013-01-29 12:09:21 +000033#endif
kjellander@webrtc.org3c652b62015-11-18 23:07:57 +010034#include "webrtc/modules/audio_coding/codecs/pcm16b/audio_decoder_pcm16b.h"
henrik.lundin@webrtc.orgd94659d2013-01-29 12:09:21 +000035
36namespace webrtc {
37
kwiberg@webrtc.orge04a93b2014-12-09 10:12:53 +000038bool CodecSupported(NetEqDecoder codec_type) {
39 switch (codec_type) {
kwibergee1879c2015-10-29 06:20:28 -070040 case NetEqDecoder::kDecoderPCMu:
41 case NetEqDecoder::kDecoderPCMa:
42 case NetEqDecoder::kDecoderPCMu_2ch:
43 case NetEqDecoder::kDecoderPCMa_2ch:
kwiberg@webrtc.orge04a93b2014-12-09 10:12:53 +000044#ifdef WEBRTC_CODEC_ILBC
kwibergee1879c2015-10-29 06:20:28 -070045 case NetEqDecoder::kDecoderILBC:
kwiberg@webrtc.orge04a93b2014-12-09 10:12:53 +000046#endif
47#if defined(WEBRTC_CODEC_ISACFX) || defined(WEBRTC_CODEC_ISAC)
kwibergee1879c2015-10-29 06:20:28 -070048 case NetEqDecoder::kDecoderISAC:
kwiberg@webrtc.orge04a93b2014-12-09 10:12:53 +000049#endif
50#ifdef WEBRTC_CODEC_ISAC
kwibergee1879c2015-10-29 06:20:28 -070051 case NetEqDecoder::kDecoderISACswb:
kwiberg@webrtc.orge04a93b2014-12-09 10:12:53 +000052#endif
kwibergee1879c2015-10-29 06:20:28 -070053 case NetEqDecoder::kDecoderPCM16B:
54 case NetEqDecoder::kDecoderPCM16Bwb:
55 case NetEqDecoder::kDecoderPCM16Bswb32kHz:
56 case NetEqDecoder::kDecoderPCM16Bswb48kHz:
57 case NetEqDecoder::kDecoderPCM16B_2ch:
58 case NetEqDecoder::kDecoderPCM16Bwb_2ch:
59 case NetEqDecoder::kDecoderPCM16Bswb32kHz_2ch:
60 case NetEqDecoder::kDecoderPCM16Bswb48kHz_2ch:
61 case NetEqDecoder::kDecoderPCM16B_5ch:
kwiberg@webrtc.orge04a93b2014-12-09 10:12:53 +000062#ifdef WEBRTC_CODEC_G722
kwibergee1879c2015-10-29 06:20:28 -070063 case NetEqDecoder::kDecoderG722:
64 case NetEqDecoder::kDecoderG722_2ch:
kwiberg@webrtc.orge04a93b2014-12-09 10:12:53 +000065#endif
kwiberg@webrtc.orge04a93b2014-12-09 10:12:53 +000066#ifdef WEBRTC_CODEC_OPUS
kwibergee1879c2015-10-29 06:20:28 -070067 case NetEqDecoder::kDecoderOpus:
68 case NetEqDecoder::kDecoderOpus_2ch:
kwiberg@webrtc.orge04a93b2014-12-09 10:12:53 +000069#endif
kwibergee1879c2015-10-29 06:20:28 -070070 case NetEqDecoder::kDecoderRED:
71 case NetEqDecoder::kDecoderAVT:
solenberg2779bab2016-11-17 04:45:19 -080072 case NetEqDecoder::kDecoderAVT16kHz:
73 case NetEqDecoder::kDecoderAVT32kHz:
74 case NetEqDecoder::kDecoderAVT48kHz:
kwibergee1879c2015-10-29 06:20:28 -070075 case NetEqDecoder::kDecoderCNGnb:
76 case NetEqDecoder::kDecoderCNGwb:
77 case NetEqDecoder::kDecoderCNGswb32kHz:
78 case NetEqDecoder::kDecoderCNGswb48kHz:
79 case NetEqDecoder::kDecoderArbitrary: {
kwiberg@webrtc.orge04a93b2014-12-09 10:12:53 +000080 return true;
81 }
82 default: {
83 return false;
84 }
85 }
86}
87
henrik.lundin@webrtc.orgd94659d2013-01-29 12:09:21 +000088} // namespace webrtc