Audio processing: Feed each processing step its choice of int or float data
Each audio processing step is given a pointer to an AudioBuffer, where it can read and write int data. This patch adds corresponding AudioBuffer methods to read and write float data; the buffer will automatically convert the stored data between int and float as necessary. This patch also modifies the echo cancellation step to make use of the new methods (it was already using floats internally; now it doesn't have to convert from and to ints anymore). (The reference data to the ApmTest.Process test had to be modified slightly; this is because the echo canceller no longer unnecessarily converts float data to int and then immediately back to float for each iteration in the loop in EchoCancellationImpl::ProcessCaptureAudio.) BUG= R=aluebs@webrtc.org, andrew@webrtc.org Review URL: https://webrtc-codereview.appspot.com/18399005 git-svn-id: http://webrtc.googlecode.com/svn/trunk@6138 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
@ -133,9 +133,9 @@ int32_t WebRtcAec_BufferFarend(void* aecInst,
|
||||
* Inputs Description
|
||||
* -------------------------------------------------------------------
|
||||
* void* aecInst Pointer to the AEC instance
|
||||
* int16_t* nearend In buffer containing one frame of
|
||||
* float* nearend In buffer containing one frame of
|
||||
* nearend+echo signal for L band
|
||||
* int16_t* nearendH In buffer containing one frame of
|
||||
* float* nearendH In buffer containing one frame of
|
||||
* nearend+echo signal for H band
|
||||
* int16_t nrOfSamples Number of samples in nearend buffer
|
||||
* int16_t msInSndCardBuf Delay estimate for sound card and
|
||||
@ -146,18 +146,18 @@ int32_t WebRtcAec_BufferFarend(void* aecInst,
|
||||
*
|
||||
* Outputs Description
|
||||
* -------------------------------------------------------------------
|
||||
* int16_t* out Out buffer, one frame of processed nearend
|
||||
* float* out Out buffer, one frame of processed nearend
|
||||
* for L band
|
||||
* int16_t* outH Out buffer, one frame of processed nearend
|
||||
* float* outH Out buffer, one frame of processed nearend
|
||||
* for H band
|
||||
* int32_t return 0: OK
|
||||
* -1: error
|
||||
*/
|
||||
int32_t WebRtcAec_Process(void* aecInst,
|
||||
const int16_t* nearend,
|
||||
const int16_t* nearendH,
|
||||
int16_t* out,
|
||||
int16_t* outH,
|
||||
const float* nearend,
|
||||
const float* nearendH,
|
||||
float* out,
|
||||
float* outH,
|
||||
int16_t nrOfSamples,
|
||||
int16_t msInSndCardBuf,
|
||||
int32_t skew);
|
||||
|
Reference in New Issue
Block a user