This works aims to: -More clearly separate the functionalities in the AEC. -Make the inputs and outputs to functions more clear (currently the state struct is often passed as a parameter to the functions and the functions use members of the state both as inputs and outputs, which reduces the readability of the code and makes it difficult to change/refactor. What is done in this CL: -Most of what belongs to the echo subtraction functionality has been moved to a separate function. -The NonLinearProcessing function has been renamed to EchoSuppressor which I think is more appropriate. -Part of the code was replaced by a call to the TimeToFrequency function (which was also suggested by an existing todo). -For consistency, a function FrequencyToTime doing the opposite of TimeToFrequency was added and part of the code was moved to that. -The ScaleErrorSignal function was changed to no longer have the state as an input parameter. This entailed also changing the corresponding assembly optimized files accordingly. Testing: -The changes have been tested for bitexactness on Linux using a fairly extensive test. -All the unittests pass on linux. BUG=webrtc:5201 Review URL: https://codereview.webrtc.org/1455163006 Cr-Commit-Position: refs/heads/master@{#10764}
Name: WebRTC URL: http://www.webrtc.org Version: 90 License: BSD License File: LICENSE Description: WebRTC provides real time voice and video processing functionality to enable the implementation of PeerConnection/MediaStream. Third party code used in this project is described in the file LICENSE_THIRD_PARTY.