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

Side by Side Diff: webrtc/common_audio/resampler/sinusoidal_linear_chirp_source.h

Issue 1230503003: Update a ton of audio code to use size_t more correctly and in general reduce (Closed) Base URL: https://chromium.googlesource.com/external/webrtc@master
Patch Set: Resync Created 5 years, 3 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) 2013 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2013 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
11 // Modified from the Chromium original here: 11 // Modified from the Chromium original here:
12 // src/media/base/sinc_resampler_unittest.cc 12 // src/media/base/sinc_resampler_unittest.cc
13 13
14 #ifndef WEBRTC_COMMON_AUDIO_RESAMPLER_SINUSOIDAL_LINEAR_CHIRP_SOURCE_H_ 14 #ifndef WEBRTC_COMMON_AUDIO_RESAMPLER_SINUSOIDAL_LINEAR_CHIRP_SOURCE_H_
15 #define WEBRTC_COMMON_AUDIO_RESAMPLER_SINUSOIDAL_LINEAR_CHIRP_SOURCE_H_ 15 #define WEBRTC_COMMON_AUDIO_RESAMPLER_SINUSOIDAL_LINEAR_CHIRP_SOURCE_H_
16 16
17 #include "webrtc/base/constructormagic.h" 17 #include "webrtc/base/constructormagic.h"
18 #include "webrtc/common_audio/resampler/sinc_resampler.h" 18 #include "webrtc/common_audio/resampler/sinc_resampler.h"
19 19
20 namespace webrtc { 20 namespace webrtc {
21 21
22 // Fake audio source for testing the resampler. Generates a sinusoidal linear 22 // Fake audio source for testing the resampler. Generates a sinusoidal linear
23 // chirp (http://en.wikipedia.org/wiki/Chirp) which can be tuned to stress the 23 // chirp (http://en.wikipedia.org/wiki/Chirp) which can be tuned to stress the
24 // resampler for the specific sample rate conversion being used. 24 // resampler for the specific sample rate conversion being used.
25 class SinusoidalLinearChirpSource : public SincResamplerCallback { 25 class SinusoidalLinearChirpSource : public SincResamplerCallback {
26 public: 26 public:
27 // |delay_samples| can be used to insert a fractional sample delay into the 27 // |delay_samples| can be used to insert a fractional sample delay into the
28 // source. It will produce zeros until non-negative time is reached. 28 // source. It will produce zeros until non-negative time is reached.
29 SinusoidalLinearChirpSource(int sample_rate, int samples, 29 SinusoidalLinearChirpSource(int sample_rate, size_t samples,
30 double max_frequency, double delay_samples); 30 double max_frequency, double delay_samples);
31 31
32 virtual ~SinusoidalLinearChirpSource() {} 32 virtual ~SinusoidalLinearChirpSource() {}
33 33
34 void Run(int frames, float* destination) override; 34 void Run(size_t frames, float* destination) override;
35 35
36 double Frequency(int position); 36 double Frequency(size_t position);
37 37
38 private: 38 private:
39 enum { 39 enum {
40 kMinFrequency = 5 40 kMinFrequency = 5
41 }; 41 };
42 42
43 int sample_rate_; 43 int sample_rate_;
44 int total_samples_; 44 size_t total_samples_;
45 double max_frequency_; 45 double max_frequency_;
46 double k_; 46 double k_;
47 int current_index_; 47 size_t current_index_;
48 double delay_samples_; 48 double delay_samples_;
49 49
50 DISALLOW_COPY_AND_ASSIGN(SinusoidalLinearChirpSource); 50 DISALLOW_COPY_AND_ASSIGN(SinusoidalLinearChirpSource);
51 }; 51 };
52 52
53 } // namespace webrtc 53 } // namespace webrtc
54 54
55 #endif // WEBRTC_COMMON_AUDIO_RESAMPLER_SINUSOIDAL_LINEAR_CHIRP_SOURCE_H_ 55 #endif // WEBRTC_COMMON_AUDIO_RESAMPLER_SINUSOIDAL_LINEAR_CHIRP_SOURCE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698