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 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
99 // Instructs NetEq to deliver 10 ms of audio data. The data is written to | 99 // Instructs NetEq to deliver 10 ms of audio data. The data is written to |
100 // |output_audio|, which can hold (at least) |max_length| elements. | 100 // |output_audio|, which can hold (at least) |max_length| elements. |
101 // The number of channels that were written to the output is provided in | 101 // The number of channels that were written to the output is provided in |
102 // the output variable |num_channels|, and each channel contains | 102 // the output variable |num_channels|, and each channel contains |
103 // |samples_per_channel| elements. If more than one channel is written, | 103 // |samples_per_channel| elements. If more than one channel is written, |
104 // the samples are interleaved. | 104 // the samples are interleaved. |
105 // The speech type is written to |type|, if |type| is not NULL. | 105 // The speech type is written to |type|, if |type| is not NULL. |
106 // Returns kOK on success, or kFail in case of an error. | 106 // Returns kOK on success, or kFail in case of an error. |
107 int GetAudio(size_t max_length, | 107 int GetAudio(size_t max_length, |
108 int16_t* output_audio, | 108 int16_t* output_audio, |
109 int* samples_per_channel, | 109 size_t* samples_per_channel, |
110 int* num_channels, | 110 int* num_channels, |
111 NetEqOutputType* type) override; | 111 NetEqOutputType* type) override; |
112 | 112 |
113 // Associates |rtp_payload_type| with |codec| and stores the information in | 113 // Associates |rtp_payload_type| with |codec| and stores the information in |
114 // the codec database. Returns kOK on success, kFail on failure. | 114 // the codec database. Returns kOK on success, kFail on failure. |
115 int RegisterPayloadType(enum NetEqDecoder codec, | 115 int RegisterPayloadType(enum NetEqDecoder codec, |
116 uint8_t rtp_payload_type) override; | 116 uint8_t rtp_payload_type) override; |
117 | 117 |
118 // Provides an externally created decoder object |decoder| to insert in the | 118 // Provides an externally created decoder object |decoder| to insert in the |
119 // decoder database. The decoder implements a decoder of type |codec| and | 119 // decoder database. The decoder implements a decoder of type |codec| and |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
218 EXCLUSIVE_LOCKS_REQUIRED(crit_sect_); | 218 EXCLUSIVE_LOCKS_REQUIRED(crit_sect_); |
219 | 219 |
220 // Delivers 10 ms of audio data. The data is written to |output|, which can | 220 // Delivers 10 ms of audio data. The data is written to |output|, which can |
221 // hold (at least) |max_length| elements. The number of channels that were | 221 // hold (at least) |max_length| elements. The number of channels that were |
222 // written to the output is provided in the output variable |num_channels|, | 222 // written to the output is provided in the output variable |num_channels|, |
223 // and each channel contains |samples_per_channel| elements. If more than one | 223 // and each channel contains |samples_per_channel| elements. If more than one |
224 // channel is written, the samples are interleaved. | 224 // channel is written, the samples are interleaved. |
225 // Returns 0 on success, otherwise an error code. | 225 // Returns 0 on success, otherwise an error code. |
226 int GetAudioInternal(size_t max_length, | 226 int GetAudioInternal(size_t max_length, |
227 int16_t* output, | 227 int16_t* output, |
228 int* samples_per_channel, | 228 size_t* samples_per_channel, |
229 int* num_channels) EXCLUSIVE_LOCKS_REQUIRED(crit_sect_); | 229 int* num_channels) EXCLUSIVE_LOCKS_REQUIRED(crit_sect_); |
230 | 230 |
231 // Provides a decision to the GetAudioInternal method. The decision what to | 231 // Provides a decision to the GetAudioInternal method. The decision what to |
232 // do is written to |operation|. Packets to decode are written to | 232 // do is written to |operation|. Packets to decode are written to |
233 // |packet_list|, and a DTMF event to play is written to |dtmf_event|. When | 233 // |packet_list|, and a DTMF event to play is written to |dtmf_event|. When |
234 // DTMF should be played, |play_dtmf| is set to true by the method. | 234 // DTMF should be played, |play_dtmf| is set to true by the method. |
235 // Returns 0 on success, otherwise an error code. | 235 // Returns 0 on success, otherwise an error code. |
236 int GetDecision(Operations* operation, | 236 int GetDecision(Operations* operation, |
237 PacketList* packet_list, | 237 PacketList* packet_list, |
238 DtmfEvent* dtmf_event, | 238 DtmfEvent* dtmf_event, |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
311 | 311 |
312 // Overdub DTMF on top of |output|. | 312 // Overdub DTMF on top of |output|. |
313 int DtmfOverdub(const DtmfEvent& dtmf_event, | 313 int DtmfOverdub(const DtmfEvent& dtmf_event, |
314 size_t num_channels, | 314 size_t num_channels, |
315 int16_t* output) const EXCLUSIVE_LOCKS_REQUIRED(crit_sect_); | 315 int16_t* output) const EXCLUSIVE_LOCKS_REQUIRED(crit_sect_); |
316 | 316 |
317 // Extracts packets from |packet_buffer_| to produce at least | 317 // Extracts packets from |packet_buffer_| to produce at least |
318 // |required_samples| samples. The packets are inserted into |packet_list|. | 318 // |required_samples| samples. The packets are inserted into |packet_list|. |
319 // Returns the number of samples that the packets in the list will produce, or | 319 // Returns the number of samples that the packets in the list will produce, or |
320 // -1 in case of an error. | 320 // -1 in case of an error. |
321 int ExtractPackets(int required_samples, PacketList* packet_list) | 321 int ExtractPackets(size_t required_samples, PacketList* packet_list) |
322 EXCLUSIVE_LOCKS_REQUIRED(crit_sect_); | 322 EXCLUSIVE_LOCKS_REQUIRED(crit_sect_); |
323 | 323 |
324 // Resets various variables and objects to new values based on the sample rate | 324 // Resets various variables and objects to new values based on the sample rate |
325 // |fs_hz| and |channels| number audio channels. | 325 // |fs_hz| and |channels| number audio channels. |
326 void SetSampleRateAndChannels(int fs_hz, size_t channels) | 326 void SetSampleRateAndChannels(int fs_hz, size_t channels) |
327 EXCLUSIVE_LOCKS_REQUIRED(crit_sect_); | 327 EXCLUSIVE_LOCKS_REQUIRED(crit_sect_); |
328 | 328 |
329 // Returns the output type for the audio produced by the latest call to | 329 // Returns the output type for the audio produced by the latest call to |
330 // GetAudio(). | 330 // GetAudio(). |
331 NetEqOutputType LastOutputType() EXCLUSIVE_LOCKS_REQUIRED(crit_sect_); | 331 NetEqOutputType LastOutputType() EXCLUSIVE_LOCKS_REQUIRED(crit_sect_); |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
367 rtc::scoped_ptr<Expand> expand_ GUARDED_BY(crit_sect_); | 367 rtc::scoped_ptr<Expand> expand_ GUARDED_BY(crit_sect_); |
368 rtc::scoped_ptr<Normal> normal_ GUARDED_BY(crit_sect_); | 368 rtc::scoped_ptr<Normal> normal_ GUARDED_BY(crit_sect_); |
369 rtc::scoped_ptr<Merge> merge_ GUARDED_BY(crit_sect_); | 369 rtc::scoped_ptr<Merge> merge_ GUARDED_BY(crit_sect_); |
370 rtc::scoped_ptr<Accelerate> accelerate_ GUARDED_BY(crit_sect_); | 370 rtc::scoped_ptr<Accelerate> accelerate_ GUARDED_BY(crit_sect_); |
371 rtc::scoped_ptr<PreemptiveExpand> preemptive_expand_ GUARDED_BY(crit_sect_); | 371 rtc::scoped_ptr<PreemptiveExpand> preemptive_expand_ GUARDED_BY(crit_sect_); |
372 RandomVector random_vector_ GUARDED_BY(crit_sect_); | 372 RandomVector random_vector_ GUARDED_BY(crit_sect_); |
373 rtc::scoped_ptr<ComfortNoise> comfort_noise_ GUARDED_BY(crit_sect_); | 373 rtc::scoped_ptr<ComfortNoise> comfort_noise_ GUARDED_BY(crit_sect_); |
374 Rtcp rtcp_ GUARDED_BY(crit_sect_); | 374 Rtcp rtcp_ GUARDED_BY(crit_sect_); |
375 StatisticsCalculator stats_ GUARDED_BY(crit_sect_); | 375 StatisticsCalculator stats_ GUARDED_BY(crit_sect_); |
376 int fs_hz_ GUARDED_BY(crit_sect_); | 376 int fs_hz_ GUARDED_BY(crit_sect_); |
377 int fs_mult_ GUARDED_BY(crit_sect_); | 377 size_t fs_mult_ GUARDED_BY(crit_sect_); |
hlundin-webrtc
2015/08/10 11:30:01
Not this one.
| |
378 int output_size_samples_ GUARDED_BY(crit_sect_); | 378 size_t output_size_samples_ GUARDED_BY(crit_sect_); |
379 int decoder_frame_length_ GUARDED_BY(crit_sect_); | 379 size_t decoder_frame_length_ GUARDED_BY(crit_sect_); |
380 Modes last_mode_ GUARDED_BY(crit_sect_); | 380 Modes last_mode_ GUARDED_BY(crit_sect_); |
381 rtc::scoped_ptr<int16_t[]> mute_factor_array_ GUARDED_BY(crit_sect_); | 381 rtc::scoped_ptr<int16_t[]> mute_factor_array_ GUARDED_BY(crit_sect_); |
382 size_t decoded_buffer_length_ GUARDED_BY(crit_sect_); | 382 size_t decoded_buffer_length_ GUARDED_BY(crit_sect_); |
383 rtc::scoped_ptr<int16_t[]> decoded_buffer_ GUARDED_BY(crit_sect_); | 383 rtc::scoped_ptr<int16_t[]> decoded_buffer_ GUARDED_BY(crit_sect_); |
384 uint32_t playout_timestamp_ GUARDED_BY(crit_sect_); | 384 uint32_t playout_timestamp_ GUARDED_BY(crit_sect_); |
385 bool new_codec_ GUARDED_BY(crit_sect_); | 385 bool new_codec_ GUARDED_BY(crit_sect_); |
386 uint32_t timestamp_ GUARDED_BY(crit_sect_); | 386 uint32_t timestamp_ GUARDED_BY(crit_sect_); |
387 bool reset_decoder_ GUARDED_BY(crit_sect_); | 387 bool reset_decoder_ GUARDED_BY(crit_sect_); |
388 uint8_t current_rtp_payload_type_ GUARDED_BY(crit_sect_); | 388 uint8_t current_rtp_payload_type_ GUARDED_BY(crit_sect_); |
389 uint8_t current_cng_rtp_payload_type_ GUARDED_BY(crit_sect_); | 389 uint8_t current_cng_rtp_payload_type_ GUARDED_BY(crit_sect_); |
(...skipping 14 matching lines...) Expand all Loading... | |
404 // module is designed to compensate for this. | 404 // module is designed to compensate for this. |
405 int decoded_packet_sequence_number_ GUARDED_BY(crit_sect_); | 405 int decoded_packet_sequence_number_ GUARDED_BY(crit_sect_); |
406 uint32_t decoded_packet_timestamp_ GUARDED_BY(crit_sect_); | 406 uint32_t decoded_packet_timestamp_ GUARDED_BY(crit_sect_); |
407 | 407 |
408 private: | 408 private: |
409 DISALLOW_COPY_AND_ASSIGN(NetEqImpl); | 409 DISALLOW_COPY_AND_ASSIGN(NetEqImpl); |
410 }; | 410 }; |
411 | 411 |
412 } // namespace webrtc | 412 } // namespace webrtc |
413 #endif // WEBRTC_MODULES_AUDIO_CODING_NETEQ_NETEQ_IMPL_H_ | 413 #endif // WEBRTC_MODULES_AUDIO_CODING_NETEQ_NETEQ_IMPL_H_ |
OLD | NEW |