Reason for revert:
Memcheck buildbot detected memory leaks in the death tests. The code looks fine to me, but please investigate what causes the error and reland.
Original issue's description:
> Added first layer of the echo canceller 3 functionality.
>
> This CL adds the first layer of the echo canceller 3.
> All of the code is as it should, apart from
> block_processor.* which only contains placeholder
> functionality. (Upcoming CLs will add proper
> functionality into those files.)
>
>
>
> BUG=webrtc:6018
>
> Review-Url: https://codereview.webrtc.org/2584493002
> Cr-Commit-Position: refs/heads/master@{#15861}
> Committed: 38fd1758e9
TBR=ivoc@webrtc.org,aleloi@webrtc.org,henrik.lundin@webrtc.org,peah@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6018
Review-Url: https://codereview.webrtc.org/2603293002
Cr-Commit-Position: refs/heads/master@{#15877}
49 lines
1.6 KiB
C++
49 lines
1.6 KiB
C++
/*
|
|
* Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license
|
|
* that can be found in the LICENSE file in the root of the source
|
|
* tree. An additional intellectual property rights grant can be found
|
|
* in the file PATENTS. All contributing project authors may
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
*/
|
|
|
|
#ifndef WEBRTC_MODULES_AUDIO_PROCESSING_AEC3_ECHO_CANCELLER3_H_
|
|
#define WEBRTC_MODULES_AUDIO_PROCESSING_AEC3_ECHO_CANCELLER3_H_
|
|
|
|
#include <string>
|
|
|
|
#include "webrtc/base/constructormagic.h"
|
|
#include "webrtc/modules/audio_processing/audio_buffer.h"
|
|
|
|
namespace webrtc {
|
|
|
|
class EchoCanceller3 {
|
|
public:
|
|
EchoCanceller3(int sample_rate_hz, bool use_anti_hum_filter);
|
|
~EchoCanceller3();
|
|
// Analyzes and stores an internal copy of the split-band domain render
|
|
// signal.
|
|
bool AnalyzeRender(AudioBuffer* farend);
|
|
// Analyzes the full-band domain capture signal to detect signal saturation.
|
|
void AnalyzeCapture(AudioBuffer* capture);
|
|
// Processes the split-band domain capture signal in order to remove any echo
|
|
// present in the signal.
|
|
void ProcessCapture(AudioBuffer* capture, bool known_echo_path_change);
|
|
|
|
// Validates a config.
|
|
static bool Validate(const AudioProcessing::Config::EchoCanceller3& config);
|
|
// Dumps a config to a string.
|
|
static std::string ToString(
|
|
const AudioProcessing::Config::EchoCanceller3& config);
|
|
|
|
private:
|
|
static int instance_count_;
|
|
size_t frame_length_;
|
|
|
|
RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(EchoCanceller3);
|
|
};
|
|
} // namespace webrtc
|
|
|
|
#endif // WEBRTC_MODULES_AUDIO_PROCESSING_AEC3_ECHO_CANCELLER3_H_
|