This Cl includes
* A getter for echo_state * Style changes, such as changes to int where appropriate TEST=audioproc_unittest, trybots BUG=None Review URL: https://webrtc-codereview.appspot.com/1093011 git-svn-id: http://webrtc.googlecode.com/svn/trunk@3522 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
parent
325f625137
commit
21a2fc902d
@ -716,6 +716,11 @@ int WebRtcAec_GetDelayMetricsCore(aec_t* self, int* median, int* std) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int WebRtcAec_echo_state(aec_t* self) {
|
||||||
|
assert(self != NULL);
|
||||||
|
return self->echoState;
|
||||||
|
}
|
||||||
|
|
||||||
static void ProcessBlock(aec_t* aec) {
|
static void ProcessBlock(aec_t* aec) {
|
||||||
int i;
|
int i;
|
||||||
float d[PART_LEN], y[PART_LEN], e[PART_LEN], dH[PART_LEN];
|
float d[PART_LEN], y[PART_LEN], e[PART_LEN], dH[PART_LEN];
|
||||||
|
@ -185,5 +185,7 @@ int WebRtcAec_MoveFarReadPtr(aec_t* aec, int elements);
|
|||||||
// Calculates the median and standard deviation among the delay estimates
|
// Calculates the median and standard deviation among the delay estimates
|
||||||
// collected since the last call to this function.
|
// collected since the last call to this function.
|
||||||
int WebRtcAec_GetDelayMetricsCore(aec_t* self, int* median, int* std);
|
int WebRtcAec_GetDelayMetricsCore(aec_t* self, int* median, int* std);
|
||||||
|
// Returns the echo state (1: echo, 0: no echo).
|
||||||
|
int WebRtcAec_echo_state(aec_t* self);
|
||||||
|
|
||||||
#endif // WEBRTC_MODULES_AUDIO_PROCESSING_AEC_MAIN_SOURCE_AEC_CORE_H_
|
#endif // WEBRTC_MODULES_AUDIO_PROCESSING_AEC_MAIN_SOURCE_AEC_CORE_H_
|
||||||
|
@ -609,27 +609,24 @@ WebRtc_Word32 WebRtcAec_get_config(void *aecInst, AecConfig *config)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
WebRtc_Word32 WebRtcAec_get_echo_status(void *aecInst, WebRtc_Word16 *status)
|
int WebRtcAec_get_echo_status(void* handle, int* status) {
|
||||||
{
|
aecpc_t* self = (aecpc_t*)handle;
|
||||||
aecpc_t *aecpc = aecInst;
|
|
||||||
|
|
||||||
if (aecpc == NULL) {
|
if (handle == NULL ) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
if (status == NULL ) {
|
||||||
|
self->lastError = AEC_NULL_POINTER_ERROR;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if (self->initFlag != initCheck) {
|
||||||
|
self->lastError = AEC_UNINITIALIZED_ERROR;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
if (status == NULL) {
|
*status = WebRtcAec_echo_state(self->aec);
|
||||||
aecpc->lastError = AEC_NULL_POINTER_ERROR;
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (aecpc->initFlag != initCheck) {
|
return 0;
|
||||||
aecpc->lastError = AEC_UNINITIALIZED_ERROR;
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
*status = aecpc->aec->echoState;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
WebRtc_Word32 WebRtcAec_GetMetrics(void *aecInst, AecMetrics *metrics)
|
WebRtc_Word32 WebRtcAec_GetMetrics(void *aecInst, AecMetrics *metrics)
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
#ifndef WEBRTC_MODULES_AUDIO_PROCESSING_AEC_INCLUDE_ECHO_CANCELLATION_H_
|
#ifndef WEBRTC_MODULES_AUDIO_PROCESSING_AEC_INCLUDE_ECHO_CANCELLATION_H_
|
||||||
#define WEBRTC_MODULES_AUDIO_PROCESSING_AEC_INCLUDE_ECHO_CANCELLATION_H_
|
#define WEBRTC_MODULES_AUDIO_PROCESSING_AEC_INCLUDE_ECHO_CANCELLATION_H_
|
||||||
|
|
||||||
#include "typedefs.h"
|
#include "webrtc/typedefs.h"
|
||||||
|
|
||||||
// Errors
|
// Errors
|
||||||
#define AEC_UNSPECIFIED_ERROR 12000
|
#define AEC_UNSPECIFIED_ERROR 12000
|
||||||
@ -199,16 +199,16 @@ WebRtc_Word32 WebRtcAec_get_config(void *aecInst, AecConfig *config);
|
|||||||
*
|
*
|
||||||
* Inputs Description
|
* Inputs Description
|
||||||
* -------------------------------------------------------------------
|
* -------------------------------------------------------------------
|
||||||
* void *aecInst Pointer to the AEC instance
|
* void *handle Pointer to the AEC instance
|
||||||
*
|
*
|
||||||
* Outputs Description
|
* Outputs Description
|
||||||
* -------------------------------------------------------------------
|
* -------------------------------------------------------------------
|
||||||
* WebRtc_Word16 *status 0: Almost certainly nearend single-talk
|
* int *status 0: Almost certainly nearend single-talk
|
||||||
* 1: Might not be neared single-talk
|
* 1: Might not be neared single-talk
|
||||||
* WebRtc_Word32 return 0: OK
|
* int return 0: OK
|
||||||
* -1: error
|
* -1: error
|
||||||
*/
|
*/
|
||||||
WebRtc_Word32 WebRtcAec_get_echo_status(void *aecInst, WebRtc_Word16 *status);
|
int WebRtcAec_get_echo_status(void* handle, int* status);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Gets the current echo metrics for the session.
|
* Gets the current echo metrics for the session.
|
||||||
|
@ -8,16 +8,16 @@
|
|||||||
* be found in the AUTHORS file in the root of the source tree.
|
* be found in the AUTHORS file in the root of the source tree.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "echo_cancellation_impl.h"
|
#include "webrtc/modules/audio_processing/echo_cancellation_impl.h"
|
||||||
|
|
||||||
#include <cassert>
|
#include <assert.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include "critical_section_wrapper.h"
|
#include "webrtc/modules/audio_processing/audio_buffer.h"
|
||||||
#include "echo_cancellation.h"
|
#include "webrtc/modules/audio_processing/audio_processing_impl.h"
|
||||||
|
#include "webrtc/system_wrappers/interface/critical_section_wrapper.h"
|
||||||
|
|
||||||
#include "audio_processing_impl.h"
|
#include "webrtc/modules/audio_processing/aec/include/echo_cancellation.h"
|
||||||
#include "audio_buffer.h"
|
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
@ -141,7 +141,7 @@ int EchoCancellationImpl::ProcessCaptureAudio(AudioBuffer* audio) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
WebRtc_Word16 status = 0;
|
int status = 0;
|
||||||
err = WebRtcAec_get_echo_status(my_handle, &status);
|
err = WebRtcAec_get_echo_status(my_handle, &status);
|
||||||
if (err != apm_->kNoError) {
|
if (err != apm_->kNoError) {
|
||||||
return GetHandleError(my_handle);
|
return GetHandleError(my_handle);
|
||||||
|
Loading…
Reference in New Issue
Block a user