Chromium Code Reviews| Index: webrtc/modules/audio_processing/aecm/echo_control_mobile.c |
| diff --git a/webrtc/modules/audio_processing/aecm/echo_control_mobile.c b/webrtc/modules/audio_processing/aecm/echo_control_mobile.c |
| index 83781e97fed039652af8398c1ebbfa9f2aeceeea..26ade5756144159ac4aabb1b83d967fc2fc26801 100644 |
| --- a/webrtc/modules/audio_processing/aecm/echo_control_mobile.c |
| +++ b/webrtc/modules/audio_processing/aecm/echo_control_mobile.c |
| @@ -68,8 +68,6 @@ typedef struct |
| // Structures |
| RingBuffer *farendBuf; |
| - int lastError; |
| - |
| AecmCore* aecmCore; |
| } AecMobile; |
| @@ -100,7 +98,6 @@ void* WebRtcAecm_Create() { |
| } |
| aecm->initFlag = 0; |
| - aecm->lastError = 0; |
| #ifdef AEC_DEBUG |
| aecm->aecmCore->farFile = fopen("aecFar.pcm","wb"); |
| @@ -151,16 +148,14 @@ int32_t WebRtcAecm_Init(void *aecmInst, int32_t sampFreq) |
| if (sampFreq != 8000 && sampFreq != 16000) |
| { |
| - aecm->lastError = AECM_BAD_PARAMETER_ERROR; |
| - return -1; |
| + return AECM_BAD_PARAMETER_ERROR; |
| } |
| aecm->sampFreq = sampFreq; |
| // Initialize AECM core |
| if (WebRtcAecm_InitCore(aecm->aecmCore, aecm->sampFreq) == -1) |
| { |
| - aecm->lastError = AECM_UNSPECIFIED_ERROR; |
| - return -1; |
| + return AECM_UNSPECIFIED_ERROR; |
| } |
| // Initialize farend buffer |
| @@ -191,51 +186,52 @@ int32_t WebRtcAecm_Init(void *aecmInst, int32_t sampFreq) |
| if (WebRtcAecm_set_config(aecm, aecConfig) == -1) |
| { |
| - aecm->lastError = AECM_UNSPECIFIED_ERROR; |
| - return -1; |
| + return AECM_UNSPECIFIED_ERROR; |
| } |
| return 0; |
| } |
| -int32_t WebRtcAecm_BufferFarend(void *aecmInst, const int16_t *farend, |
| - size_t nrOfSamples) |
| -{ |
| +// Returns any error that is caused when buffering the |
| +// farend signal. |
| +int32_t WebRtcAecm_GetBufferFarendError(void *aecmInst, const int16_t *farend, |
| + size_t nrOfSamples) { |
| AecMobile* aecm = aecmInst; |
| - int32_t retVal = 0; |
| - if (aecm == NULL) |
| - { |
| - return -1; |
| - } |
| + if (aecm == NULL) |
| + return -1; |
| - if (farend == NULL) |
| - { |
| - aecm->lastError = AECM_NULL_POINTER_ERROR; |
| - return -1; |
| - } |
| + if (farend == NULL) |
| + return AECM_NULL_POINTER_ERROR; |
| - if (aecm->initFlag != kInitCheck) |
| - { |
| - aecm->lastError = AECM_UNINITIALIZED_ERROR; |
| - return -1; |
| - } |
| + if (aecm->initFlag != kInitCheck) |
| + return AECM_UNINITIALIZED_ERROR; |
| - if (nrOfSamples != 80 && nrOfSamples != 160) |
| - { |
| - aecm->lastError = AECM_BAD_PARAMETER_ERROR; |
| - return -1; |
| - } |
| + if (nrOfSamples != 80 && nrOfSamples != 160) |
| + return AECM_BAD_PARAMETER_ERROR; |
| - // TODO: Is this really a good idea? |
| - if (!aecm->ECstartup) |
| - { |
| - WebRtcAecm_DelayComp(aecm); |
| - } |
| + return 0; |
| +} |
| - WebRtc_WriteBuffer(aecm->farendBuf, farend, nrOfSamples); |
| - return retVal; |
| +int32_t WebRtcAecm_BufferFarend(void *aecmInst, const int16_t *farend, |
| + size_t nrOfSamples) { |
| + AecMobile* aecm = aecmInst; |
| + |
| + int32_t err = WebRtcAecm_GetBufferFarendError(aecmInst, farend, nrOfSamples); |
|
hlundin-webrtc
2015/10/14 14:34:49
const
peah-webrtc
2015/10/14 17:57:36
Done.
|
| + |
| + if (err != 0) |
| + return err; |
| + |
| + // TODO(unknown): Is this really a good idea? |
| + if (!aecm->ECstartup) |
| + { |
| + WebRtcAecm_DelayComp(aecm); |
| + } |
| + |
| + WebRtc_WriteBuffer(aecm->farendBuf, farend, nrOfSamples); |
| + |
| + return 0; |
| } |
| int32_t WebRtcAecm_Process(void *aecmInst, const int16_t *nearendNoisy, |
| @@ -259,38 +255,32 @@ int32_t WebRtcAecm_Process(void *aecmInst, const int16_t *nearendNoisy, |
| if (nearendNoisy == NULL) |
| { |
| - aecm->lastError = AECM_NULL_POINTER_ERROR; |
| - return -1; |
| + return AECM_NULL_POINTER_ERROR; |
| } |
| if (out == NULL) |
| { |
| - aecm->lastError = AECM_NULL_POINTER_ERROR; |
| - return -1; |
| + return AECM_NULL_POINTER_ERROR; |
| } |
| if (aecm->initFlag != kInitCheck) |
| { |
| - aecm->lastError = AECM_UNINITIALIZED_ERROR; |
| - return -1; |
| + return AECM_UNINITIALIZED_ERROR; |
| } |
| if (nrOfSamples != 80 && nrOfSamples != 160) |
| { |
| - aecm->lastError = AECM_BAD_PARAMETER_ERROR; |
| - return -1; |
| + return AECM_BAD_PARAMETER_ERROR; |
| } |
| if (msInSndCardBuf < 0) |
| { |
| msInSndCardBuf = 0; |
| - aecm->lastError = AECM_BAD_PARAMETER_WARNING; |
| - retVal = -1; |
| + retVal = AECM_BAD_PARAMETER_WARNING; |
| } else if (msInSndCardBuf > 500) |
| { |
| msInSndCardBuf = 500; |
| - aecm->lastError = AECM_BAD_PARAMETER_WARNING; |
| - retVal = -1; |
| + retVal = AECM_BAD_PARAMETER_WARNING; |
| } |
| msInSndCardBuf += 10; |
| aecm->msInSndCardBuf = msInSndCardBuf; |
| @@ -453,21 +443,18 @@ int32_t WebRtcAecm_set_config(void *aecmInst, AecmConfig config) |
| if (aecm->initFlag != kInitCheck) |
| { |
| - aecm->lastError = AECM_UNINITIALIZED_ERROR; |
| - return -1; |
| + return AECM_UNINITIALIZED_ERROR; |
| } |
| if (config.cngMode != AecmFalse && config.cngMode != AecmTrue) |
| { |
| - aecm->lastError = AECM_BAD_PARAMETER_ERROR; |
| - return -1; |
| + return AECM_BAD_PARAMETER_ERROR; |
| } |
| aecm->aecmCore->cngMode = config.cngMode; |
| if (config.echoMode < 0 || config.echoMode > 4) |
| { |
| - aecm->lastError = AECM_BAD_PARAMETER_ERROR; |
| - return -1; |
| + return AECM_BAD_PARAMETER_ERROR; |
| } |
| aecm->echoMode = config.echoMode; |
| @@ -524,33 +511,6 @@ int32_t WebRtcAecm_set_config(void *aecmInst, AecmConfig config) |
| return 0; |
| } |
| -int32_t WebRtcAecm_get_config(void *aecmInst, AecmConfig *config) |
|
hlundin-webrtc
2015/10/14 14:34:49
Why is this function deleted?
peah-webrtc
2015/10/14 17:57:36
I removed it as it was not used anywhere. It is ba
hlundin-webrtc
2015/10/20 13:01:54
OK. So it is slightly out-of-scope for this CL. Bu
peah-webrtc
2015/10/26 09:02:17
Acknowledged.
|
| -{ |
| - AecMobile* aecm = aecmInst; |
| - |
| - if (aecm == NULL) |
| - { |
| - return -1; |
| - } |
| - |
| - if (config == NULL) |
| - { |
| - aecm->lastError = AECM_NULL_POINTER_ERROR; |
| - return -1; |
| - } |
| - |
| - if (aecm->initFlag != kInitCheck) |
| - { |
| - aecm->lastError = AECM_UNINITIALIZED_ERROR; |
| - return -1; |
| - } |
| - |
| - config->cngMode = aecm->aecmCore->cngMode; |
| - config->echoMode = aecm->echoMode; |
| - |
| - return 0; |
| -} |
| - |
| int32_t WebRtcAecm_InitEchoPath(void* aecmInst, |
| const void* echo_path, |
| size_t size_bytes) |
| @@ -562,19 +522,16 @@ int32_t WebRtcAecm_InitEchoPath(void* aecmInst, |
| return -1; |
| } |
| if (echo_path == NULL) { |
| - aecm->lastError = AECM_NULL_POINTER_ERROR; |
| - return -1; |
| + return AECM_NULL_POINTER_ERROR; |
| } |
| if (size_bytes != WebRtcAecm_echo_path_size_bytes()) |
| { |
| // Input channel size does not match the size of AECM |
| - aecm->lastError = AECM_BAD_PARAMETER_ERROR; |
| - return -1; |
| + return AECM_BAD_PARAMETER_ERROR; |
| } |
| if (aecm->initFlag != kInitCheck) |
| { |
| - aecm->lastError = AECM_UNINITIALIZED_ERROR; |
| - return -1; |
| + return AECM_UNINITIALIZED_ERROR; |
| } |
| WebRtcAecm_InitEchoPathCore(aecm->aecmCore, echo_path_ptr); |
| @@ -593,19 +550,16 @@ int32_t WebRtcAecm_GetEchoPath(void* aecmInst, |
| return -1; |
| } |
| if (echo_path == NULL) { |
| - aecm->lastError = AECM_NULL_POINTER_ERROR; |
| - return -1; |
| + return AECM_NULL_POINTER_ERROR; |
| } |
| if (size_bytes != WebRtcAecm_echo_path_size_bytes()) |
| { |
| // Input channel size does not match the size of AECM |
| - aecm->lastError = AECM_BAD_PARAMETER_ERROR; |
| - return -1; |
| + return AECM_BAD_PARAMETER_ERROR; |
| } |
| if (aecm->initFlag != kInitCheck) |
| { |
| - aecm->lastError = AECM_UNINITIALIZED_ERROR; |
| - return -1; |
| + return AECM_UNINITIALIZED_ERROR; |
| } |
| memcpy(echo_path_ptr, aecm->aecmCore->channelStored, size_bytes); |
| @@ -617,17 +571,6 @@ size_t WebRtcAecm_echo_path_size_bytes() |
| return (PART_LEN1 * sizeof(int16_t)); |
| } |
| -int32_t WebRtcAecm_get_error_code(void *aecmInst) |
| -{ |
| - AecMobile* aecm = aecmInst; |
| - |
| - if (aecm == NULL) |
| - { |
| - return -1; |
| - } |
| - |
| - return aecm->lastError; |
| -} |
| static int WebRtcAecm_EstBufDelay(AecMobile* aecm, short msInSndCardBuf) { |
| short delayNew, nSampSndCard; |