611 Commits

Author SHA1 Message Date
peah
58cf5f14ec Changed order of events when synthesizing a call.
This is needed when synthesizing a call based on
48 kHz audio files as otherwise an error is
generated about the wrong sample rate is generated.
That error is in turned caused by the sample rate
being changed from the default 16 kHz
at the first Capture API call event.

BUG=

Review URL: https://codereview.webrtc.org/1698243003

Cr-Commit-Position: refs/heads/master@{#11635}
2016-02-16 15:26:25 +00:00
peah
be61562bfb Moved the GainControlForNewAGC class to be a separate file.
Apart from being motivated in order to make the source files shorter
this is needed when separating the APM submodules structs into
separate files.

BUG=

Review URL: https://codereview.webrtc.org/1678813002

Cr-Commit-Position: refs/heads/master@{#11611}
2016-02-14 00:40:53 +00:00
aluebs
73e2373af2 Fix negative shift exponent in WPDTree
BUG=webrtc:5510

Review URL: https://codereview.webrtc.org/1685993003

Cr-Commit-Position: refs/heads/master@{#11585}
2016-02-11 19:03:04 +00:00
Alejandro Luebs
66d2481106 Fix division by zero errors in IntelligibilityEnhancer
BUG=webrtc:5509
R=henrik.lundin@webrtc.org

Review URL: https://codereview.webrtc.org/1686333002 .

Cr-Commit-Position: refs/heads/master@{#11584}
2016-02-11 18:37:23 +00:00
Alejandro Luebs
42d8aa77d8 Fix IntelligibilityEnhancerTest.TestRenderUpdate test
TBR=henrik.lundin@webrtc.org

Review URL: https://codereview.webrtc.org/1685293002 .

Cr-Commit-Position: refs/heads/master@{#11561}
2016-02-11 00:10:37 +00:00
aluebs
c466badd86 Using the NS noise estimate for the IE
Review URL: https://codereview.webrtc.org/1672343002

Cr-Commit-Position: refs/heads/master@{#11559}
2016-02-10 20:03:05 +00:00
jbauch
541f1869ca Cleanup temporary files created by tests.
This CL removes some temporary files created by OptionsFileTest and
TransientFileUtilsTest.

BUG=

Review URL: https://codereview.webrtc.org/1688553002

Cr-Commit-Position: refs/heads/master@{#11554}
2016-02-10 17:10:00 +00:00
peah
1147b75b52 Moved buffering of farend into the EchoSubtraction method.
This makes sense since the buffered data is only used by
the echo subtraction method. Furthermore, it simplifies the
upcoming modifications to the echo subtraction method since
the way the buffering is done can then be specific for the
echo subtraction implementation used.

The change is bitexact and this was verified using a fairly
extensive bitexactness suite.

BUG=

Review URL: https://codereview.webrtc.org/1639773002

Cr-Commit-Position: refs/heads/master@{#11547}
2016-02-10 11:55:38 +00:00
Alejandro Luebs
fa639f0bb3 Surface the noise estimate of the NS to be used by other components
R=henrik.lundin@webrtc.org, turaj@webrtc.org

Review URL: https://codereview.webrtc.org/1654443004 .

Cr-Commit-Position: refs/heads/master@{#11541}
2016-02-09 19:24:51 +00:00
kjellander
78ddd733b0 Update path for audioproc_debug proto output.
This will make it align with protoc tools that use the relative
path from the project root to the files in the output path.
Having this, no hacks will need to be applied downstream.

TBR=henrik.lundin@webrtc.org
NOTRY=True

Review URL: https://codereview.webrtc.org/1673263002

Cr-Commit-Position: refs/heads/master@{#11540}
2016-02-09 16:13:16 +00:00
peah
48fa27136a Made implicit casts in the echo canceller explicit.
BUG=

Review URL: https://codereview.webrtc.org/1671613004

Cr-Commit-Position: refs/heads/master@{#11501}
2016-02-05 11:16:27 +00:00
kjellander
988d31eb9b Move gtest_prod_util.h out of webrtc/test tree.
This is needed because the target is defined in webrtc/common.gyp
and its current location crosses package boundaries when generating
projects for some build systems.

NOTRY=True

Review URL: https://codereview.webrtc.org/1665603003

Cr-Commit-Position: refs/heads/master@{#11496}
2016-02-05 08:23:57 +00:00
conceptgenesis
3f70562bbb Fix WebRtc ninja x86 build using Visual Studio 2015 (set GYP_MSVS_VERSION=2015).
Visual Studio 2015 balks at the implicit truncation of values. Easily fixed with an explicit cast.

Fixed redefinition of CLOCKS_PER_SEC when using Visual Studio 2015 and the Windows 10 SDK. CLOCKS_PER_SEC is also defined in "<WIN10 SDK DIR>\include\10.0.10240.0\ucrt\time.h" and also has the value of 1000

Hiding snprintf definition if building with Visual Studio 2015

Fixed C4573 compiler complaint in audio_processing_impl_locking_unittest.cc.

BUG=webrtc:5183

Review URL: https://codereview.webrtc.org/1412653006

Cr-Commit-Position: refs/heads/master@{#11434}
2016-01-30 22:40:52 +00:00
peah
ff63ed2888 Format changes achieved by running
clang-format -i -style=Chromium

BUG=

Review URL: https://codereview.webrtc.org/1639283002

Cr-Commit-Position: refs/heads/master@{#11427}
2016-01-29 15:46:18 +00:00
tommi
533a4e4882 Switch critical section locks out for atomic operations
BUG=chromium:581029

Review URL: https://codereview.webrtc.org/1635563002

Cr-Commit-Position: refs/heads/master@{#11413}
2016-01-28 10:44:16 +00:00
minyue
691b8369ff Using buffered signal to calculate the level of echo cancellation.
The level of the error signal after linear echo cancellation was based on non-buffered signal while that of the near-end and far-end signal based on buffered signal. This discrepancy made the comparison of them unfair.

This CL is to make calculating the error level rely on the same buffering.

BUG=

Review URL: https://codereview.webrtc.org/1510873004

Cr-Commit-Position: refs/heads/master@{#11408}
2016-01-27 23:44:59 +00:00
pbos
5ad935cb56 Remove mutable from rtc::CriticalSection members.
rtc::CriticalSection is now lockable from const methods and no longer
need to remain mutable.

BUG=
R=tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1613643004

Cr-Commit-Position: refs/heads/master@{#11367}
2016-01-25 11:52:53 +00:00
minyue
9846845da6 Calculate audio levels in AEC in time domain.
In AEC, audio levels are calculated in frequency domain. This makes the calculation dependent on FFT. We now make the calculation performed in time domain. The complexity is the same, but the dependence on FFT is removed.

BUG=

Review URL: https://codereview.webrtc.org/1542573002

Cr-Commit-Position: refs/heads/master@{#11357}
2016-01-22 13:46:47 +00:00
ivoc
d66b44d565 Reland "Added option to specify a maximum file size when recording an AEC dump.", commit ae2c5ad12afc8cc29fe9c59dea432b697b871a87.
The revert of the original CL was commit 36d4c545007129446e551c45c17b25377dce89a4.
Original review: https://codereview.webrtc.org/1413483003/

The original CL changes a function on audio_processing.h that is used by Chrome, this CL adds back the old function.

TBR=glaznev@webrtc.org, henrik.lundin@webrtc.org, solenberg@google.com, henrikg@webrtc.org, perkj@webrtc.org
BUG=webrtc:4741
Committed: https://crrev.com/f4f5cb09277d5ef6aeac8341e5f54a055867803a
Cr-Commit-Position: refs/heads/master@{#11093}

Review URL: https://codereview.webrtc.org/1540103002

Cr-Commit-Position: refs/heads/master@{#11267}
2016-01-15 11:06:41 +00:00
aluebs
688e308a35 Re-land: "Use an explicit identifier in Config"
This let's us use them to configure them when using WebRTC as an external library. One use case where this is necessary is in the Android OS.

Original CL: https://codereview.webrtc.org/1538643004/

TBR=tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1589573004

Cr-Commit-Position: refs/heads/master@{#11248}
2016-01-14 12:32:51 +00:00
tommi
fca54f41ad Revert of Use an explicit identifier in Config (patchset #4 id:60001 of https://codereview.webrtc.org/1538643004/ )
Reason for revert:
Reverting due to problem with roll:

/b/build/slave/linux/build/src/buildtools/linux64/gn gen //out/Release '--args=ffmpeg_branding="Chrome" proprietary_codecs=true is_debug=false is_component_build=false use_goma=true goma_dir="/b/build/goma" symbol_level=1 dcheck_always_on=true' --check --runtime-deps-list-file=/b/build/slave/linux/build/src/out/Release/runtime_deps
  -> returned 1
ERROR at //third_party/webrtc/BUILD.gn:245:18: Item not found
    configs -= [ "//build/config/clang:find_bad_constructs" ]
                 ^-----------------------------------------
You were trying to remove "//build/config/clang:find_bad_constructs"
from the list but it wasn't there.
GN gen failed: 1
step returned non-zero exit code: 1
@@@STEP_FAILURE@@@

Original issue's description:
> Use an explicit identifier in Config
>
> This let's us use them to configure them when using WebRTC as an external library. One use case where this is necessary is in the Android OS.
>
> Committed: https://crrev.com/25249d92d3cf105bcc7b684c8924ccdbc9afcb93
> Cr-Commit-Position: refs/heads/master@{#11231}

TBR=henrik.lundin@webrtc.org,stefan@webrtc.org,tommi@chromium.org,aluebs@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.webrtc.org/1586563003

Cr-Commit-Position: refs/heads/master@{#11239}
2016-01-13 16:12:07 +00:00
aluebs
25249d92d3 Use an explicit identifier in Config
This let's us use them to configure them when using WebRTC as an external library. One use case where this is necessary is in the Android OS.

Review URL: https://codereview.webrtc.org/1538643004

Cr-Commit-Position: refs/heads/master@{#11231}
2016-01-13 02:50:31 +00:00
Peter Kasting
6955870806 Convert channel counts to size_t.
IIRC, this was originally requested by ajm during review of the other size_t conversions I did over the past year, and I agreed it made sense, but wanted to do it separately since those changes were already gargantuan.

BUG=chromium:81439
TEST=none
R=henrik.lundin@webrtc.org, henrika@webrtc.org, kjellander@webrtc.org, minyue@webrtc.org, perkj@webrtc.org, solenberg@webrtc.org, stefan@webrtc.org, tina.legrand@webrtc.org

Review URL: https://codereview.webrtc.org/1316523002 .

Cr-Commit-Position: refs/heads/master@{#11229}
2016-01-13 00:26:55 +00:00
aluebs
b2328d11dc Remove additional channel constraints when Beamforming is enabled in AudioProcessing
The general constraints on number of channels for AudioProcessing is:
num_in_channels == num_out_channels || num_out_channels == 1

When Beamforming is enabled and additional constraint was added forcing:
num_out_channels == 1

This artificial constraint was removed by adding upmixing support in CopyTo, since it was already supported for the AudioFrame interface using InterleaveTo.

Review URL: https://codereview.webrtc.org/1571013002

Cr-Commit-Position: refs/heads/master@{#11215}
2016-01-12 04:32:32 +00:00
aluebs
2a34688f86 Make Beamforming dynamically settable for Android platform builds
Review URL: https://codereview.webrtc.org/1563493005

Cr-Commit-Position: refs/heads/master@{#11213}
2016-01-12 02:04:33 +00:00
pkasting
25702cb162 Misc. small cleanups.
* Better param names
* Avoid using negative values for (bogus) placeholder channel counts (mostly in tests).  Since channels will be changing to size_t, negative values will be illegal; it's sufficient to use 0 in these cases.
* Use arraysize()
* Use size_t for counting frames, samples, blocks, buffers, and bytes -- most of these are already size_t in most places, this just fixes some stragglers
* reinterpret_cast<int64_t>(void*) is not necessarily safe; use uintptr_t instead
* Remove unnecessary code, e.g. dead code, needlessly long/repetitive code, or function overrides that exactly match the base definition
* Fix indenting
* Use uint32_t for timestamps (matching how it's already a uint32_t in most places)
* Spelling
* RTC_CHECK_EQ(expected, actual)
* Rewrap
* Use .empty()
* Be more pedantic about matching int/int32_t/
* Remove pointless consts on input parameters to functions
* Add missing sanity checks

All this was found in the course of constructing https://codereview.webrtc.org/1316523002/ , and is being landed separately first.

BUG=none
TEST=none

Review URL: https://codereview.webrtc.org/1534193008

Cr-Commit-Position: refs/heads/master@{#11191}
2016-01-08 21:50:32 +00:00
Peter Boström
e2976c87f7 Remove DISABLED_ON_ macros.
Macro incorrectly displays DISABLED_ON_ANDROID in test names for
parameterized tests under --gtest_list_tests, causing tests to be
disabled on all platforms since they contain the DISABLED_ prefix rather
than their expanded variants.

This expands the macro variants to inline if they're disabled or not,
and removes building some tests under configurations where they should
fail, instead of building them but disabling them by default.

The change also removes gtest_disable.h as an unused include from many
other files.

BUG=webrtc:5387, webrtc:5400
R=kjellander@webrtc.org, phoglund@webrtc.org
TBR=henrik.lundin@webrtc.org

Review URL: https://codereview.webrtc.org/1547343002 .

Cr-Commit-Position: refs/heads/master@{#11150}
2016-01-04 21:44:16 +00:00
asapersson
53805324c0 Rename RTC_HISTOGRAM_* macros to RTC_HISTOGRAM_*_SPARSE_* to indicate that these are for infrequent updates.
This implementation will be replaced by a faster one and sparse will be removed.

BUG=webrtc:5283

Review URL: https://codereview.webrtc.org/1530913002

Cr-Commit-Position: refs/heads/master@{#11099}
2015-12-21 09:46:25 +00:00
peah
9fca7e18c3 A unittest that reports the statistics for the duration of an APM stream processing API call.
BUG=webrtc:5099

Committed: https://crrev.com/880896ab0976bbf86a6753d0c900c70e51f421cb
Cr-Commit-Position: refs/heads/master@{#10786}

Review URL: https://codereview.webrtc.org/1436553004

Cr-Commit-Position: refs/heads/master@{#11098}
2015-12-21 07:13:46 +00:00
ivoc
a4df27b671 Revert of Reland "Added option to specify a maximum file size when recording an AEC dump." (patchset #2 id:20001 of https://codereview.webrtc.org/1541633002/ )
Reason for revert:
Compile error on Android needs to be fixed before relanding.

Original issue's description:
> Reland "Added option to specify a maximum file size when recording an AEC dump.", commit ae2c5ad12afc8cc29fe9c59dea432b697b871a87.
>
> The revert of the original CL was commit 36d4c545007129446e551c45c17b25377dce89a4.
> Original review: https://codereview.webrtc.org/1413483003/
>
> The original CL changes a function on audio_processing.h that is used by Chrome, this CL adds back the old function.
>
> NOTRY=true
> TBR=glaznev@webrtc.org, henrik.lundin@webrtc.org, solenberg@google.com, henrikg@webrtc.org, perkj@webrtc.org
> BUG=webrtc:4741
>
> Committed: https://crrev.com/f4f5cb09277d5ef6aeac8341e5f54a055867803a
> Cr-Commit-Position: refs/heads/master@{#11093}

TBR=glaznev@webrtc.org,henrik.lundin@webrtc.org,solenberg@google.com,henrikg@webrtc.org,perkj@webrtc.org,kwiberg@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:4741

Review URL: https://codereview.webrtc.org/1537213002

Cr-Commit-Position: refs/heads/master@{#11094}
2015-12-19 18:14:18 +00:00
ivoc
f4f5cb0927 Reland "Added option to specify a maximum file size when recording an AEC dump.", commit ae2c5ad12afc8cc29fe9c59dea432b697b871a87.
The revert of the original CL was commit 36d4c545007129446e551c45c17b25377dce89a4.
Original review: https://codereview.webrtc.org/1413483003/

The original CL changes a function on audio_processing.h that is used by Chrome, this CL adds back the old function.

NOTRY=true
TBR=glaznev@webrtc.org, henrik.lundin@webrtc.org, solenberg@google.com, henrikg@webrtc.org, perkj@webrtc.org
BUG=webrtc:4741

Review URL: https://codereview.webrtc.org/1541633002

Cr-Commit-Position: refs/heads/master@{#11093}
2015-12-19 18:02:39 +00:00
minyue
92594a30ce Moving FFT on farend signal to where it is used in AEC (bit exact).
Currently, FFT is performance when AEC buffers farend signal. This has some drawbacks
1. memory inefficiency: two ring buffers are needed;
2. computation inefficiency: if ringbuffer gets wrapped around, some FFT computation will be wasted;
3. accessibility: the main AEC function looses accessibility to the time-domain signal.

Therefore, this CL tries to buffer time domain data, which is buffered any way if a debugging macro is defined, and calculate the FFTs where they are actually used.

BUG=

Review URL: https://codereview.webrtc.org/1512573003

Cr-Commit-Position: refs/heads/master@{#11091}
2015-12-18 23:31:19 +00:00
ivoc
36d4c54500 Revert of Added option to specify a maximum file size when recording an AEC dump. (patchset #5 id:120001 of https://codereview.webrtc.org/1413483003/ )
Reason for revert:
Breaks Chrome-FYI bots because of a change in the StartDebugRecording function in audio_processing.h, that is called from Chrome.

Original issue's description:
> Added option to specify a maximum file size when recording an AEC dump.
>
> For applications with a strict filesize limit for debug files,
> I added an option to specify a maximum filesize for AEC dumps. An
> existing unit test is extended to check that the feature works as
> advertised.
>
> BUG=webrtc:4741
> TBR=glaznev@webrtc.org
>
> Committed: https://crrev.com/ae2c5ad12afc8cc29fe9c59dea432b697b871a87
> Cr-Commit-Position: refs/heads/master@{#11081}

TBR=pthatcher@webrtc.org,henrik.lundin@webrtc.org,henrikg@webrtc.org,solenberg@webrtc.org,andrew@webrtc.org,kwiberg@webrtc.org,perkj@webrtc.org,glaznev@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:4741

Review URL: https://codereview.webrtc.org/1533913004

Cr-Commit-Position: refs/heads/master@{#11087}
2015-12-18 16:05:21 +00:00
ivoc
ae2c5ad12a Added option to specify a maximum file size when recording an AEC dump.
For applications with a strict filesize limit for debug files,
I added an option to specify a maximum filesize for AEC dumps. An
existing unit test is extended to check that the feature works as
advertised.

BUG=webrtc:4741
TBR=glaznev@webrtc.org

Review URL: https://codereview.webrtc.org/1413483003

Cr-Commit-Position: refs/heads/master@{#11081}
2015-12-18 11:53:42 +00:00
peah
369f828bfe Adding trace events for the APM render and capture stream processing functions.
BUG=webrtc:5099

Review URL: https://codereview.webrtc.org/1536613002

Cr-Commit-Position: refs/heads/master@{#11069}
2015-12-17 14:42:42 +00:00
kwiberg
0eb15ed7b8 Don't call the Pass methods of rtc::Buffer, rtc::scoped_ptr, and rtc::ScopedVector
We can now use std::move instead!

This CL leaves the Pass methods in place; a follow-up CL will add deprecation annotations to them.

Review URL: https://codereview.webrtc.org/1460043002

Cr-Commit-Position: refs/heads/master@{#11064}
2015-12-17 11:04:24 +00:00
peah
0bc176b99b Further refactored the echo suppressor code:
-Extended the InverseFft function to be more generally
 applicable.
-Included the previous external extra scaling into the
 preexisting InverseFft call.
-Moved the updating of aec->delayEstCtr to where it is
 actually used.
-Refactored the output production and comfort noise
 addition using the InverseFft function.
-Removed the if-statements checking the value of the
 constant flagHbandCn as any value different from 1 would
 crash the program. Also removed the constant

The changes have been tested for bitexactness.

BUG=webrtc:5201

Review URL: https://codereview.webrtc.org/1492343002

Cr-Commit-Position: refs/heads/master@{#11054}
2015-12-16 16:11:24 +00:00
peah
99b1a32146 Retyped the frequency estimate of the comfort noise for the higher band to harmonize the AEC code.
-Changed the type for the frequency estimate of the comfort noise for the
 higher band to be a two dimensional float array instead of a complex_t array.
 This makes sense since all the other frequency estimate (apart from the
 coherence) use this format and doing this change allows bundling the
 IFFT operations into using the InverseFFT method.
-Moved the memset of the frequency estimate of the comfort noise to where it is used and made it conditional so that it is only performed when used.
-Harmonized the if-statements for when the frequency estimate of the comfort noise is computed in the different optimized ComfortNoise computation methods.

The changes have been tested for bitexactness.

BUG=webrtc:5201

Review URL: https://codereview.webrtc.org/1494133002

Cr-Commit-Position: refs/heads/master@{#11050}
2015-12-16 14:07:33 +00:00
solenberg
a29386c26d Make VoiceDetection not a ProcessingComponent (bit exact).
BUG=webrtc:5354

Review URL: https://codereview.webrtc.org/1494593004

Cr-Commit-Position: refs/heads/master@{#11047}
2015-12-16 11:31:16 +00:00
peah
66085beef8 Bugfix that fixes the error where the audio processing module is called
using the wrong sample rate for the render signal.

The CL is basically a partial revert of the related changes done on
output_mixer.cc in the CL https://codereview.webrtc.org/1234463003.

The CL also reverts the removal of the input_sample_rate_hz() method
that was removed as part of the CL
https://codereview.webrtc.org/1379123002 (as it was at that point
no longer used).

It should be noted that this CL turns off the effect of the
IntelligibilityEnhancer when the AudioFrame AudioProcessing APIs are
used. While it may be possible to solve that by adding upsampling after
the API call, that  approach was discarded due to that:
-That would add extra processing in the echo path, leading to possible
AEC performance reduction.
-That would add extra complexity for the mobile case.
-That would only patch the intelligibility enhancer operation as the
proper way to do such an operation is within APM.
-The intelligibility enhancer is not active by default anywhere.

BUG=webrtc:5237

Review URL: https://codereview.webrtc.org/1525173002

Cr-Commit-Position: refs/heads/master@{#11045}
2015-12-16 10:02:26 +00:00
solenberg
29e2f9385b Fix NoiseSuppression initialization behavior. This was changed when removing the ProcessingComponent inheritance in https://codereview.webrtc.org/1507683006/.
BUG=webrtc:5298

Review URL: https://codereview.webrtc.org/1523323002

Cr-Commit-Position: refs/heads/master@{#11043}
2015-12-16 09:18:23 +00:00
solenberg
c1316a1e51 Fix HPF initialization behavior. This was changed when removing the ProcessingComponent inheritance in https://codereview.webrtc.org/1490333004/.
BUG=webrtc:5298

Review URL: https://codereview.webrtc.org/1525983003

Cr-Commit-Position: refs/heads/master@{#11038}
2015-12-16 00:07:32 +00:00
solenberg
949028fbf1 Make LevelEstimation not a ProcessingComponent.
BUG=webrtc:5355

Review URL: https://codereview.webrtc.org/1523483002

Cr-Commit-Position: refs/heads/master@{#11033}
2015-12-15 19:39:49 +00:00
solenberg
82ccfcf5ca Remove unused and rarely used LOG_ macros.
BUG=

Review URL: https://codereview.webrtc.org/1522053002

Cr-Commit-Position: refs/heads/master@{#11014}
2015-12-14 16:22:21 +00:00
terelius
84e78f9102 Rewrote the PRNG using an xorshift* algorithm and moved the files from test/ to base/.
Created a simple unit test for the new random number generator. (It mostly tests
that the generated numbers are consistent with the intended distribution, e.g. uniform.
It is not a comprehensive test of the quality of the random numbers.)

Several assertions in OveruseDetectorTest seem to depend on the exact sequence of random numbers. I updated those numbers to work with the new PRNG.

Compute the standard deviation of the expected result in TestReorderFilter instead of passing an uncertainty parameter.

BUG=webrtc:5177

Review URL: https://codereview.webrtc.org/1457023002

Cr-Commit-Position: refs/heads/master@{#10965}
2015-12-10 09:51:02 +00:00
peah
48bf2382d9 Some further minor bitexact APM echo suppressor refactoring
-Moved memsets to where their variables are used.
-Removed redundant.
-Changed a pointer scalar to be accessed in pointer notation rather than
 in array notation.

The change has been tested for bitexactness.

BUG=webrtc:5201

Review URL: https://codereview.webrtc.org/1494473006

Cr-Commit-Position: refs/heads/master@{#10963}
2015-12-10 05:24:56 +00:00
peah
b14f00113e Some minor (bitexact) AEC echo suppressor refactoring
-Moved filter reset from the echo suppression
 into the echo subtraction code where it belongs
 (the echo subtractor should own its filter reset).
-Moved the selection between using the microphone sinal and
 the echo subtractor output down to the lowest level in the
 EchoSuppression function. This makes sense as that selection
 was very hidden in an unrelated sub-sub-function call and
 as the selection is critical for what the AEC outputs.

The changes have been tested for bitexactness.

BUG=webrtc:5201

Review URL: https://codereview.webrtc.org/1499573003

Cr-Commit-Position: refs/heads/master@{#10956}
2015-12-09 19:07:27 +00:00
peah
afeb43897a Moved code into the lowest level of EchoSuppression
to simplify future refactoring and development.

In more detail:
1) Moved the updating of eBuf from the EchoSubtraction method
   to the EchoSuppression method as it is only used in the latter.
2) Moved the computation of efw and dfw from the SubbandCoherence method
   as those are actually the analysis filterbank computation that is not
   directly related to the coherence.
3) As a consequence of 2) 3 functions needed to be replaced by the
   generic function pointer scheme used in WebRTCAec as they have
   optimized versions for SSE2 and NEON (which before were local to each
   of the aec_core*.c files.

Motivation:
Apart from making sense from a logical point of view, the changes will
a) Allow eBuf stored in half the size on the state.
b) Allow simpler switching between using the the microphone signal
   and echo subtractor output in the echo suppressor.
c) Allow further refactoring that move all the changes to eBuf to one method
   (currently those are happening in at least 4 different methods.

Drawbacks:
i) dfw is moved to EchoSuppression which increases the stack usage for that
 method. This will, however, be improved once further refactoring can be done.

The changes have been tested for bitexactness on Linux using a quite extensive dataset.

BUG=webrtc:5201

Review URL: https://codereview.webrtc.org/1494563002

Cr-Commit-Position: refs/heads/master@{#10954}
2015-12-09 16:50:29 +00:00
solenberg
5e465c33ca Make NoiseSuppression not a processing component (bit exact).
BUG=webrtc:5298

patch from issue 1490333004 at patchset 1 (http://crrev.com/1490333004#ps1)

Review URL: https://codereview.webrtc.org/1507683006

Cr-Commit-Position: refs/heads/master@{#10944}
2015-12-08 21:22:35 +00:00
solenberg
70f9903e57 Make HighPassFilter not a ProcessingComponent anymore (bit exact).
BUG=webrtc:5298

Review URL: https://codereview.webrtc.org/1490333004

Cr-Commit-Position: refs/heads/master@{#10939}
2015-12-08 19:07:38 +00:00