OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 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 | 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 | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
86 : AudioDecoderPcmA(), channels_(channels) { | 86 : AudioDecoderPcmA(), channels_(channels) { |
87 assert(channels > 0); | 87 assert(channels > 0); |
88 } | 88 } |
89 size_t Channels() const override; | 89 size_t Channels() const override; |
90 | 90 |
91 private: | 91 private: |
92 const size_t channels_; | 92 const size_t channels_; |
93 DISALLOW_COPY_AND_ASSIGN(AudioDecoderPcmAMultiCh); | 93 DISALLOW_COPY_AND_ASSIGN(AudioDecoderPcmAMultiCh); |
94 }; | 94 }; |
95 | 95 |
96 #ifdef WEBRTC_CODEC_PCM16 | |
97 // This class handles all four types (i.e., sample rates) of PCM16B codecs. | 96 // This class handles all four types (i.e., sample rates) of PCM16B codecs. |
98 // The type is specified in the constructor parameter |type|. | 97 // The type is specified in the constructor parameter |type|. |
99 class AudioDecoderPcm16B : public AudioDecoder { | 98 class AudioDecoderPcm16B : public AudioDecoder { |
100 public: | 99 public: |
101 AudioDecoderPcm16B(); | 100 AudioDecoderPcm16B(); |
102 void Reset() override; | 101 void Reset() override; |
103 int PacketDuration(const uint8_t* encoded, size_t encoded_len) const override; | 102 int PacketDuration(const uint8_t* encoded, size_t encoded_len) const override; |
104 size_t Channels() const override; | 103 size_t Channels() const override; |
105 | 104 |
106 protected: | 105 protected: |
(...skipping 12 matching lines...) Expand all Loading... |
119 // of channels is derived from the type. | 118 // of channels is derived from the type. |
120 class AudioDecoderPcm16BMultiCh : public AudioDecoderPcm16B { | 119 class AudioDecoderPcm16BMultiCh : public AudioDecoderPcm16B { |
121 public: | 120 public: |
122 explicit AudioDecoderPcm16BMultiCh(size_t num_channels); | 121 explicit AudioDecoderPcm16BMultiCh(size_t num_channels); |
123 size_t Channels() const override; | 122 size_t Channels() const override; |
124 | 123 |
125 private: | 124 private: |
126 const size_t channels_; | 125 const size_t channels_; |
127 DISALLOW_COPY_AND_ASSIGN(AudioDecoderPcm16BMultiCh); | 126 DISALLOW_COPY_AND_ASSIGN(AudioDecoderPcm16BMultiCh); |
128 }; | 127 }; |
129 #endif | |
130 | 128 |
131 #ifdef WEBRTC_CODEC_ILBC | 129 #ifdef WEBRTC_CODEC_ILBC |
132 class AudioDecoderIlbc : public AudioDecoder { | 130 class AudioDecoderIlbc : public AudioDecoder { |
133 public: | 131 public: |
134 AudioDecoderIlbc(); | 132 AudioDecoderIlbc(); |
135 ~AudioDecoderIlbc() override; | 133 ~AudioDecoderIlbc() override; |
136 bool HasDecodePlc() const override; | 134 bool HasDecodePlc() const override; |
137 size_t DecodePlc(size_t num_frames, int16_t* decoded) override; | 135 size_t DecodePlc(size_t num_frames, int16_t* decoded) override; |
138 void Reset() override; | 136 void Reset() override; |
139 size_t Channels() const override; | 137 size_t Channels() const override; |
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
272 // Returns the sample rate for |codec_type|. | 270 // Returns the sample rate for |codec_type|. |
273 int CodecSampleRateHz(NetEqDecoder codec_type); | 271 int CodecSampleRateHz(NetEqDecoder codec_type); |
274 | 272 |
275 // Creates an AudioDecoder object of type |codec_type|. Returns NULL for for | 273 // Creates an AudioDecoder object of type |codec_type|. Returns NULL for for |
276 // unsupported codecs, and when creating an AudioDecoder is not applicable | 274 // unsupported codecs, and when creating an AudioDecoder is not applicable |
277 // (e.g., for RED and DTMF/AVT types). | 275 // (e.g., for RED and DTMF/AVT types). |
278 AudioDecoder* CreateAudioDecoder(NetEqDecoder codec_type); | 276 AudioDecoder* CreateAudioDecoder(NetEqDecoder codec_type); |
279 | 277 |
280 } // namespace webrtc | 278 } // namespace webrtc |
281 #endif // WEBRTC_MODULES_AUDIO_CODING_NETEQ_AUDIO_DECODER_IMPL_H_ | 279 #endif // WEBRTC_MODULES_AUDIO_CODING_NETEQ_AUDIO_DECODER_IMPL_H_ |
OLD | NEW |