Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(174)

Side by Side Diff: webrtc/modules/audio_coding/neteq/preemptive_expand.h

Issue 1228843002: Update audio code to use size_t more correctly, (Closed) Base URL: https://chromium.googlesource.com/external/webrtc@master
Patch Set: Review comments Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 14 matching lines...) Expand all
25 25
26 // This class implements the PreemptiveExpand operation. Most of the work is 26 // This class implements the PreemptiveExpand operation. Most of the work is
27 // done in the base class TimeStretch, which is shared with the Accelerate 27 // done in the base class TimeStretch, which is shared with the Accelerate
28 // operation. In the PreemptiveExpand class, the operations that are specific to 28 // operation. In the PreemptiveExpand class, the operations that are specific to
29 // PreemptiveExpand are implemented. 29 // PreemptiveExpand are implemented.
30 class PreemptiveExpand : public TimeStretch { 30 class PreemptiveExpand : public TimeStretch {
31 public: 31 public:
32 PreemptiveExpand(int sample_rate_hz, 32 PreemptiveExpand(int sample_rate_hz,
33 size_t num_channels, 33 size_t num_channels,
34 const BackgroundNoise& background_noise, 34 const BackgroundNoise& background_noise,
35 int overlap_samples) 35 size_t overlap_samples)
36 : TimeStretch(sample_rate_hz, num_channels, background_noise), 36 : TimeStretch(sample_rate_hz, num_channels, background_noise),
37 old_data_length_per_channel_(-1), 37 old_data_length_per_channel_(0),
38 overlap_samples_(overlap_samples) { 38 overlap_samples_(overlap_samples) {
39 } 39 }
40 40
41 // This method performs the actual PreemptiveExpand operation. The samples are 41 // This method performs the actual PreemptiveExpand operation. The samples are
42 // read from |input|, of length |input_length| elements, and are written to 42 // read from |input|, of length |input_length| elements, and are written to
43 // |output|. The number of samples added through time-stretching is 43 // |output|. The number of samples added through time-stretching is
44 // is provided in the output |length_change_samples|. The method returns 44 // is provided in the output |length_change_samples|. The method returns
45 // the outcome of the operation as an enumerator value. 45 // the outcome of the operation as an enumerator value.
46 ReturnCodes Process(const int16_t *pw16_decoded, 46 ReturnCodes Process(const int16_t *pw16_decoded,
47 int len, 47 size_t len,
48 int old_data_len, 48 size_t old_data_len,
49 AudioMultiVector* output, 49 AudioMultiVector* output,
50 int16_t* length_change_samples); 50 size_t* length_change_samples);
51 51
52 protected: 52 protected:
53 // Sets the parameters |best_correlation| and |peak_index| to suitable 53 // Sets the parameters |best_correlation| and |peak_index| to suitable
54 // values when the signal contains no active speech. 54 // values when the signal contains no active speech.
55 void SetParametersForPassiveSpeech(size_t input_length, 55 void SetParametersForPassiveSpeech(size_t input_length,
56 int16_t* best_correlation, 56 int16_t* best_correlation,
57 int* peak_index) const override; 57 size_t* peak_index) const override;
58 58
59 // Checks the criteria for performing the time-stretching operation and, 59 // Checks the criteria for performing the time-stretching operation and,
60 // if possible, performs the time-stretching. 60 // if possible, performs the time-stretching.
61 ReturnCodes CheckCriteriaAndStretch(const int16_t* input, 61 ReturnCodes CheckCriteriaAndStretch(const int16_t* input,
62 size_t input_length, 62 size_t input_length,
63 size_t peak_index, 63 size_t peak_index,
64 int16_t best_correlation, 64 int16_t best_correlation,
65 bool active_speech, 65 bool active_speech,
66 bool /*fast_mode*/, 66 bool /*fast_mode*/,
67 AudioMultiVector* output) const override; 67 AudioMultiVector* output) const override;
68 68
69 private: 69 private:
70 int old_data_length_per_channel_; 70 size_t old_data_length_per_channel_;
71 int overlap_samples_; 71 size_t overlap_samples_;
72 72
73 DISALLOW_COPY_AND_ASSIGN(PreemptiveExpand); 73 DISALLOW_COPY_AND_ASSIGN(PreemptiveExpand);
74 }; 74 };
75 75
76 struct PreemptiveExpandFactory { 76 struct PreemptiveExpandFactory {
77 PreemptiveExpandFactory() {} 77 PreemptiveExpandFactory() {}
78 virtual ~PreemptiveExpandFactory() {} 78 virtual ~PreemptiveExpandFactory() {}
79 79
80 virtual PreemptiveExpand* Create( 80 virtual PreemptiveExpand* Create(
81 int sample_rate_hz, 81 int sample_rate_hz,
82 size_t num_channels, 82 size_t num_channels,
83 const BackgroundNoise& background_noise, 83 const BackgroundNoise& background_noise,
84 int overlap_samples) const; 84 size_t overlap_samples) const;
85 }; 85 };
86 86
87 } // namespace webrtc 87 } // namespace webrtc
88 #endif // WEBRTC_MODULES_AUDIO_CODING_NETEQ_PREEMPTIVE_EXPAND_H_ 88 #endif // WEBRTC_MODULES_AUDIO_CODING_NETEQ_PREEMPTIVE_EXPAND_H_
OLDNEW
« no previous file with comments | « webrtc/modules/audio_coding/neteq/post_decode_vad.cc ('k') | webrtc/modules/audio_coding/neteq/preemptive_expand.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698