Update a ton of audio code to use size_t more correctly and in general reduce
use of int16_t/uint16_t. This is the upshot of a recommendation by henrik.lundin and kwiberg on an original small change ( https://webrtc-codereview.appspot.com/42569004/#ps1 ) to stop using int16_t just because values could fit in it, and is similar in nature to a previous "mass change to use size_t more" ( https://webrtc-codereview.appspot.com/23129004/ ) which also needed to be split up for review but to land all at once, since, like adding "const", such changes tend to cause a lot of transitive effects. This was be reviewed and approved in pieces: https://codereview.webrtc.org/1224093003 https://codereview.webrtc.org/1224123002 https://codereview.webrtc.org/1224163002 https://codereview.webrtc.org/1225133003 https://codereview.webrtc.org/1225173002 https://codereview.webrtc.org/1227163003 https://codereview.webrtc.org/1227203003 https://codereview.webrtc.org/1227213002 https://codereview.webrtc.org/1227893002 https://codereview.webrtc.org/1228793004 https://codereview.webrtc.org/1228803003 https://codereview.webrtc.org/1228823002 https://codereview.webrtc.org/1228823003 https://codereview.webrtc.org/1228843002 https://codereview.webrtc.org/1230693002 https://codereview.webrtc.org/1231713002 The change is being landed as TBR to all the folks who reviewed the above. BUG=chromium:81439 TEST=none R=andrew@webrtc.org, pbos@webrtc.org TBR=aluebs, andrew, asapersson, henrika, hlundin, jan.skoglund, kwiberg, minyue, pbos, pthatcher Review URL: https://codereview.webrtc.org/1230503003 . Cr-Commit-Position: refs/heads/master@{#9768}
This commit is contained in:
@ -46,11 +46,11 @@ class Merge {
|
||||
// de-interleaving |input|. The values in |external_mute_factor_array| (Q14)
|
||||
// will be used to scale the audio, and is updated in the process. The array
|
||||
// must have |num_channels_| elements.
|
||||
virtual int Process(int16_t* input, size_t input_length,
|
||||
int16_t* external_mute_factor_array,
|
||||
AudioMultiVector* output);
|
||||
virtual size_t Process(int16_t* input, size_t input_length,
|
||||
int16_t* external_mute_factor_array,
|
||||
AudioMultiVector* output);
|
||||
|
||||
virtual int RequiredFutureSamples();
|
||||
virtual size_t RequiredFutureSamples();
|
||||
|
||||
protected:
|
||||
const int fs_hz_;
|
||||
@ -58,38 +58,38 @@ class Merge {
|
||||
|
||||
private:
|
||||
static const int kMaxSampleRate = 48000;
|
||||
static const int kExpandDownsampLength = 100;
|
||||
static const int kInputDownsampLength = 40;
|
||||
static const int kMaxCorrelationLength = 60;
|
||||
static const size_t kExpandDownsampLength = 100;
|
||||
static const size_t kInputDownsampLength = 40;
|
||||
static const size_t kMaxCorrelationLength = 60;
|
||||
|
||||
// Calls |expand_| to get more expansion data to merge with. The data is
|
||||
// written to |expanded_signal_|. Returns the length of the expanded data,
|
||||
// while |expand_period| will be the number of samples in one expansion period
|
||||
// (typically one pitch period). The value of |old_length| will be the number
|
||||
// of samples that were taken from the |sync_buffer_|.
|
||||
int GetExpandedSignal(int* old_length, int* expand_period);
|
||||
size_t GetExpandedSignal(size_t* old_length, size_t* expand_period);
|
||||
|
||||
// Analyzes |input| and |expanded_signal| to find maximum values. Returns
|
||||
// a muting factor (Q14) to be used on the new data.
|
||||
int16_t SignalScaling(const int16_t* input, int input_length,
|
||||
int16_t SignalScaling(const int16_t* input, size_t input_length,
|
||||
const int16_t* expanded_signal,
|
||||
int16_t* expanded_max, int16_t* input_max) const;
|
||||
|
||||
// Downsamples |input| (|input_length| samples) and |expanded_signal| to
|
||||
// 4 kHz sample rate. The downsampled signals are written to
|
||||
// |input_downsampled_| and |expanded_downsampled_|, respectively.
|
||||
void Downsample(const int16_t* input, int input_length,
|
||||
const int16_t* expanded_signal, int expanded_length);
|
||||
void Downsample(const int16_t* input, size_t input_length,
|
||||
const int16_t* expanded_signal, size_t expanded_length);
|
||||
|
||||
// Calculates cross-correlation between |input_downsampled_| and
|
||||
// |expanded_downsampled_|, and finds the correlation maximum. The maximizing
|
||||
// lag is returned.
|
||||
int16_t CorrelateAndPeakSearch(int16_t expanded_max, int16_t input_max,
|
||||
int start_position, int input_length,
|
||||
int expand_period) const;
|
||||
size_t CorrelateAndPeakSearch(int16_t expanded_max, int16_t input_max,
|
||||
size_t start_position, size_t input_length,
|
||||
size_t expand_period) const;
|
||||
|
||||
const int fs_mult_; // fs_hz_ / 8000.
|
||||
const int timestamps_per_call_;
|
||||
const size_t timestamps_per_call_;
|
||||
Expand* expand_;
|
||||
SyncBuffer* sync_buffer_;
|
||||
int16_t expanded_downsampled_[kExpandDownsampLength];
|
||||
|
||||
Reference in New Issue
Block a user