Line data Source code
1 : /*
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 :
11 : #include "webrtc/modules/audio_coding/neteq/audio_decoder_impl.h"
12 :
13 : #include <assert.h>
14 :
15 : #include "webrtc/base/checks.h"
16 : #include "webrtc/modules/audio_coding/codecs/g711/audio_decoder_pcm.h"
17 : #ifdef WEBRTC_CODEC_G722
18 : #include "webrtc/modules/audio_coding/codecs/g722/audio_decoder_g722.h"
19 : #endif
20 : #ifdef WEBRTC_CODEC_ILBC
21 : #include "webrtc/modules/audio_coding/codecs/ilbc/audio_decoder_ilbc.h"
22 : #endif
23 : #ifdef WEBRTC_CODEC_ISACFX
24 : #include "webrtc/modules/audio_coding/codecs/isac/fix/include/audio_decoder_isacfix.h"
25 : #include "webrtc/modules/audio_coding/codecs/isac/fix/include/audio_encoder_isacfix.h"
26 : #endif
27 : #ifdef WEBRTC_CODEC_ISAC
28 : #include "webrtc/modules/audio_coding/codecs/isac/main/include/audio_decoder_isac.h"
29 : #include "webrtc/modules/audio_coding/codecs/isac/main/include/audio_encoder_isac.h"
30 : #endif
31 : #ifdef WEBRTC_CODEC_OPUS
32 : #include "webrtc/modules/audio_coding/codecs/opus/audio_decoder_opus.h"
33 : #endif
34 : #include "webrtc/modules/audio_coding/codecs/pcm16b/audio_decoder_pcm16b.h"
35 :
36 : namespace webrtc {
37 :
38 0 : bool CodecSupported(NetEqDecoder codec_type) {
39 0 : switch (codec_type) {
40 : case NetEqDecoder::kDecoderPCMu:
41 : case NetEqDecoder::kDecoderPCMa:
42 : case NetEqDecoder::kDecoderPCMu_2ch:
43 : case NetEqDecoder::kDecoderPCMa_2ch:
44 : #ifdef WEBRTC_CODEC_ILBC
45 : case NetEqDecoder::kDecoderILBC:
46 : #endif
47 : #if defined(WEBRTC_CODEC_ISACFX) || defined(WEBRTC_CODEC_ISAC)
48 : case NetEqDecoder::kDecoderISAC:
49 : #endif
50 : #ifdef WEBRTC_CODEC_ISAC
51 : case NetEqDecoder::kDecoderISACswb:
52 : #endif
53 : 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:
62 : #ifdef WEBRTC_CODEC_G722
63 : case NetEqDecoder::kDecoderG722:
64 : case NetEqDecoder::kDecoderG722_2ch:
65 : #endif
66 : #ifdef WEBRTC_CODEC_OPUS
67 : case NetEqDecoder::kDecoderOpus:
68 : case NetEqDecoder::kDecoderOpus_2ch:
69 : #endif
70 : case NetEqDecoder::kDecoderRED:
71 : case NetEqDecoder::kDecoderAVT:
72 : case NetEqDecoder::kDecoderAVT16kHz:
73 : case NetEqDecoder::kDecoderAVT32kHz:
74 : case NetEqDecoder::kDecoderAVT48kHz:
75 : case NetEqDecoder::kDecoderCNGnb:
76 : case NetEqDecoder::kDecoderCNGwb:
77 : case NetEqDecoder::kDecoderCNGswb32kHz:
78 : case NetEqDecoder::kDecoderCNGswb48kHz:
79 : case NetEqDecoder::kDecoderArbitrary: {
80 0 : return true;
81 : }
82 : default: {
83 0 : return false;
84 : }
85 : }
86 : }
87 :
88 : } // namespace webrtc
|