Commit Graph

150 Commits

Author SHA1 Message Date
dd5d804efb Disable all protobuf dependent targets when enable_protobuf=0.
BUG=3045
TESTED=builds now when enable_protobuf=0 and modules_unittests still
includes ApmTest.* when enable_protobuf=1.

R=bjornv@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/9879004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5690 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-13 00:57:52 +00:00
12acd6ea8c Reorder includes in audio_processing_impl_unittest.
TBR=aluebs

Review URL: https://webrtc-codereview.appspot.com/9779005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5680 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-11 16:55:14 +00:00
a8b97373d5 Add tests and modify tools for new float deinterleaved interface.
- Add an Initialize() overload to allow specification of format
parameters. This is mainly useful for testing, but could be used in
the cases where a consumer knows the format before the streams arrive.
- Add a reverse_sample_rate_hz_ parameter to prepare for mismatched
capture and render rates. There is no functional change as it is
currently constrained to match the capture rate.
- Fix a bug in the float dump: we need to use add_ rather than set_.
- Add a debug dump test for both int and float interfaces.
- Enable unpacking of float dumps.
- Enable audioproc to read float dumps.
- Move more shared functionality to test_utils.h, and generally tidy up
a bit by consolidating repeated code.

BUG=2894
TESTED=Verified that the output produced by the float debug dump test is
correct. Processed the resulting debug dump file with audioproc and
ensured that we get identical output. (This is crucial, as we need to
be able to exactly reproduce online results offline.)

R=aluebs@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/9489004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5676 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-10 22:26:12 +00:00
3e0b60f465 Switch to correct interpretation of int and float input data in audio_processing_unittest
BUG=N/A
TESTED=trybots
TBR=andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/9379004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5642 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-05 00:18:53 +00:00
17e40641b3 Add a deinterleaved float interface to AudioProcessing.
This is mainly to support the native audio format in Chrome. Although
this implementation just moves the float->int conversion under the hood,
we will transition AudioProcessing towards supporting this format
throughout.

- Add a test which verifies we get identical output with the float and
int interfaces.
- The float and int wrappers are tasked with conversion to the
AudioBuffer format. A new shared Process/Analyze method does most of
the work.
- Add a new field to the debug.proto to hold deinterleaved data.
- Add helpers to audio_utils.cc, and start using numeric_limits.
- Note that there was no performance difference between numeric_limits
and a literal value when measured on Linux using gcc or clang.

BUG=2894
R=aluebs@webrtc.org, bjornv@webrtc.org, henrikg@webrtc.org, tommi@webrtc.org, turaj@webrtc.org, xians@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/9179004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5641 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-04 20:58:13 +00:00
0117d1c48c Fix compilation errors under clang 3.5.
Enables building tip-of-tree clang which introduces new warnings that
cause compilation errors in our code base (-Werror).

BUG=
R=andrew@webrtc.org, stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/9319004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5630 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-03 16:47:03 +00:00
56e4a05053 Remove ProcessingComponent's dependence on AudioProcessingImpl.
- Move needed accessors to AudioProcessing.
- Inject the crit directly as a dependency.
- Remove the now unneeded EchoCancellationImplWrapper.

BUG=2894
R=aluebs@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/9199004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5620 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-27 22:23:17 +00:00
bc1d22461b Add experimental noise suppression flag to audioproc test
R=andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/8889004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5608 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-25 16:50:22 +00:00
33af96c5c2 Removed unused mock methods in audio_processing
TESTED=trybots,modules_unittests
R=andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/8999005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5597 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-21 23:56:05 +00:00
c0907eff42 MIPS optimizations for AEC audio processing module
The resulting output streams obtained by testing with audioproc test application
are bit-exact with generic C code output streams.

Performance gain achieved:
- mips32 ~ 17%
- mips32r2 ~ 20%
- mipsdsp & mipsdspr2 ~ 21%

R=andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/7359004

Patch from Ljubomir Papuga <lpapuga@mips.com>.

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5591 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-21 00:13:31 +00:00
d617a44a4f Add an AlignedFreeDeleter and remove scoped_ptr_malloc.
- Transition scoped_ptr_mallocs to scoped_ptr.
- AlignedFreeDeleter matches Chromium's version.

TESTED=try bots
R=turaj@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/8969005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5587 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-20 21:08:36 +00:00
27c6980239 Move the volume quantization workaround from VoE to AGC.
Voice engine shouldn't really have to manage this. Instead, have AGC
keep track of the last input volume, so that it can avoid getting stuck
under coarsely quantized conditions.

Add a test to verify the behavior.

TESTED=unittests, and observed that AGC didn't get stuck on a MacBook
where this problem can actually occur.

R=bjornv@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/8729004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5571 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-18 20:24:56 +00:00
f92aaff104 AudioProcessing is not a Module.
Remove Module as the base class of AudioProcessing. The inherited
methods were all no-ops.

TBR=bjornv

Review URL: https://webrtc-codereview.appspot.com/8779004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5556 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-15 04:22:49 +00:00
38bf249049 Initialize output_will_be_muted_.
TBR=aluebs

Review URL: https://webrtc-codereview.appspot.com/8659004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5546 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-13 17:43:44 +00:00
17342e5092 Add a method to inform AudioProcessing that its output will be muted.
R=turaj@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/8559004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5538 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-12 22:28:31 +00:00
07b5950c12 Initialize key_pressed_.
Was resulting in an error on Mac Asan:
[ RUN      ] ApmTest.DebugDump
[libprotobuf FATAL ../../third_party/protobuf/src/google/protobuf/message_lite.cc:224] CHECK failed: !coded_out.HadError():

TBR=aluebs

Review URL: https://webrtc-codereview.appspot.com/8539004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5536 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-12 16:41:13 +00:00
ce8e077cf0 Add a keypress field to the audioproc debug proto.
Log the value in AudioProcessing, and unpack it to a new file in the
unpacking tool.

TESTED=
- The new tool can unpack old dumps.
- The old tool can unpack new dumps (without keypress.bool).
- Unpacking a new dump from voe_cmd_test produces a keypress.bool that
appears correct when examined.

R=aluebs@webrtc.org, bjornv@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/8509005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5535 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-12 15:28:30 +00:00
75dd2885c5 Add an interface for accepting keypress signals to AudioProcessing.
R=aluebs@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/8429004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5529 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-11 20:52:30 +00:00
82ebb463fd Use libvpx's obj_int_extract and unpack_lib_posix to generate offset header file.
This patch removes generate_asm_header.gypi and uses libvpx's obj_int_extract and
unpack_lib_posix to generate offset header files.

It make the simliar feature's implementation consistent.

R=andrew@webrtc.org, fischman@webrtc.org, fischman@chromium.org
BUG=334447

Committed: https://code.google.com/p/webrtc/source/detail?r=5517

Review URL: https://webrtc-codereview.appspot.com/7769006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5524 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-11 04:48:27 +00:00
a65abf9d3a Revert "Use libvpx's obj_int_extract and unpack_lib_posix to generate offset header file."
This reverts commit 7686f0ddda717a9e776be0e219f039f68a10f9ed.

BUG=

TBR=andrew@webrtc.org, fischman@webrtc.org,

Review URL: https://webrtc-codereview.appspot.com/8369004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5520 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-10 19:26:26 +00:00
7686f0ddda Use libvpx's obj_int_extract and unpack_lib_posix to generate offset header file.
This patch removes generate_asm_header.gypi and uses libvpx's obj_int_extract and
unpack_lib_posix to generate offset header files.

It make the simliar feature's implementation consistent.

R=andrew@webrtc.org, fischman@webrtc.org, fischman@chromium.org
BUG=334447

Review URL: https://webrtc-codereview.appspot.com/7769006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5517 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-10 17:42:34 +00:00
54744918ef Update AudioProcessing::Create docs.
TBR=bjornv

Review URL: https://webrtc-codereview.appspot.com/8039004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5488 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-05 06:30:29 +00:00
c9ee412070 Re-enabling audio processing tests
R=bjornv@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/7839004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5473 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-03 14:41:57 +00:00
c693704cc2 Move out typing detection to its own class.
This will allow an embedder to use it directly.

Adding inertia/hangover time between updates of the reported detection status to the algorithm, controlled by a parameter. That is usually desired and this way a consumer of
the class don't have to implement that. (VoiceEngine will let it be 1, which results in the same behavior as before, and keep controlling the hangover itself.)

R=andrew@webrtc.org, niklas.enbom@webrtc.org, xians@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/6219004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5462 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-30 09:50:46 +00:00
c7c7a531f3 Add Config struct for experimental AGC.
Disable in the audio mixer.

TBR=aluebs,bjornv
BUG=2844

Review URL: https://webrtc-codereview.appspot.com/7769004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5454 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-29 04:57:25 +00:00
e84978f3d8 Add a Config parameter to AudioProcessing::Create().
Also add a parameter-less version; the (int) version is deprecated and
should be removed.

TBR=aluebs,bjornv
BUG=2844

Review URL: https://webrtc-codereview.appspot.com/7609004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5431 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-25 02:09:06 +00:00
754de528b7 Fix array declarations in aec_rdft.h.
Was causing warnings in Chromium such as:
warning C4742: 'rdft_wk2i' has different alignment in
'webrtc\modules\audio_processing\aec\aec_rdft_sse2.c' and
'webrtc\modules\audio_processing\aec\aec_rdft.c': 4 and 16

BUG=chromium:336620
R=cduvivier@google.com

Review URL: https://webrtc-codereview.appspot.com/7489004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5419 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-23 20:55:14 +00:00
6a94734d4d Adds back set_sample_rate_hz() when Init is called in recordings.
Recordings that had a AnalyzeReverseStream() call prior to ProcessStream() where aborted due to sample rates being set upon call by ProcessStream(). That change was done in r5346.
Before we have a smarter handling on how to set sample rate automatically, this CL adds back that setting.

BUG=
TESTED=trybots, modules_unittests
R=andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/7189004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5394 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-16 08:41:09 +00:00
ea9392d5eb MIPS optimizations for NS audio processing module
R=andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/4139006

Patch from Ljubomir Papuga <lpapuga@mips.com>.

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5393 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-16 07:22:01 +00:00
8bc4fcfeb6 Temporarily disabling audio processing tests.
R=andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/6889005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5370 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-13 09:14:47 +00:00
bbd47fc5b5 Enables robust delay validation in AEC delay logging.
* Explicitly disabled robust validation in AECM.
* Updated audio_processing_unittests for using robust delay validation in AEC.
* Updated output_data_float.pb (not needed for Android nor fixed point, since AECM is untouched).

BUG=None
TESTED=modules_unittests, trybots
R=aluebs@webrtc.org, andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/6879004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5368 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-13 08:54:34 +00:00
fa8d534e09 Delay Estimator: Adds unittests for robust validation.
In addition to unittests a cast losing constness was corrected.
The tests added are:
1. Adjusting allowed_offset when robust validation is disabled should have no impact.
2. For noise free signals there should be no difference between robust validation or not.
3. Robust validation acts faster during startup.

BUG=None
TESTED=modules_unittests, trybots
R=aluebs@webrtc.org, andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/6789004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5361 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-10 07:42:07 +00:00
bccd53de57 Delay Estimator: Converts a constant into a configurable parameter.
The parameter is used in the robust validation scheme, which will be turned on in a separate CL.

* Setter and getter for allowed delay offset.
* Updated unittests.

BUG=None
TESTED=modules_unittests, trybots
R=aluebs@webrtc.org, andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/6669004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5351 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-08 08:18:15 +00:00
d335094852 Init to 16 kHz in the fixed-point profile.
Fixes modules_unittests for fixed-point builds (Android).

TBR=bjornv

Review URL: https://webrtc-codereview.appspot.com/6709004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5349 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-07 18:57:10 +00:00
b6541ca3a1 Ensure capture_levels_ is sized correctly at init time.
Fixes failing voe_auto_test and audioproc_perf.

TBR=bjornv

Review URL: https://webrtc-codereview.appspot.com/6699004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5348 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-07 18:36:10 +00:00
60730cfe3c Remove the requirement to call set_sample_rate_hz and friends.
Instead have ProcessStream transparently handle changes to the stream
audio parameters (sample rate and channels). This removes two locks
per 10 ms ProcessStream call taken by VoiceEngine (four total with the
audio level indicator.)

Also, prepare future improvements by having the splitting filter take
a length parameter. This will allow it to work at different sample
rates. Remove the useless splitting_filter wrapper.

TESTED=voe_cmd_test with audio processing enabled and switching between
codecs; unit tests.

R=aluebs@webrtc.org, bjornv@webrtc.org, turaj@webrtc.org, xians@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/3949004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5346 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-07 17:45:09 +00:00
a89d17d5b7 Delay Estimator: robust_validation should be stored over a reset
BUG=None
TESTED=modules_unittests, trybots
R=aluebs@webrtc.org, andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/5959004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5337 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-02 07:07:04 +00:00
f8be8df33a audio_processing_unittest: unbreak clang compilation.
BUG=2735
R=andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/6069004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5313 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-17 23:46:39 +00:00
1e7d61270c Simplification of histogram normalization in delay estimator.
- Replaces a for loop with a single element update to save complexity. No regression in performance seen on set of recordings.
- Removes UpdatesMadeUponChange() and put code straight into ProcessBinarySpectrum().

BUG=None
TESTED=module_unittest, trybots, verified manually on set of recordings.
R=aluebs@webrtc.org, andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/5929004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5298 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-16 13:37:28 +00:00
5c64508b03 Adds robust validation functionality to the delay estimator
Evaluated over a 51 recordings:
False positives went from 4.4% to 0.7%
Missed detections unchanged at 0.8%
No increase in complexity, but need to re-evaluate that.

TESTED=trybots, unittests, verified against Matlab implementation
BUG=None
R=aluebs@webrtc.org, andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/5419004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5296 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-16 10:57:53 +00:00
917306d3fd Change uses of the obsolete armv7 setting to arm_version==7.
BUG=http://crbug.com/234135
R=andrew@webrtc.org, fischman@webrtc.org, kjellander@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/5369004

Patch from Mostyn Bramley-Moore <mostynb@opera.com>.

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5250 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-10 09:26:07 +00:00
8d0ca7f5d2 Add new method to MockAudioProcessing.
TBR=henrikg

Review URL: https://webrtc-codereview.appspot.com/5279004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5241 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-06 17:52:27 +00:00
863b536100 Allow opening an AEC dump from an existing file handle.
This is necessary for Chromium to be able enable the dump with the sanbox enabled. It will open the file in the browser process and pass the handle to the render process.

This changes FileWrapper to deal with the case were the file handle is not managed by the wrapper.

BUG=2567
R=andrew@webrtc.org, henrika@webrtc.org, perkj@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/4649004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5239 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-06 16:05:17 +00:00
3d9981d58a Remove unused ThreadData struct.
TBR=bjornv

Review URL: https://webrtc-codereview.appspot.com/4949004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5216 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-04 17:13:47 +00:00
d7696c4ed1 Compile-out functions only used by the bit-exact test.
Causes errors on platforms where the test is unused.

TBR=bjornv

Review URL: https://webrtc-codereview.appspot.com/4869004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5207 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-03 23:39:16 +00:00
bd41a84694 This CL adds an API to enable robust validation of delay estimates.
Added is
- a member variable for turning robust validation on and off.
- API to enable/disable feature.
- API to check if enabled.
- unit tests for these APIs.

Not added is
- the actual functionality (separate CL), hence turning feature on/off has no impact currently.
- calls in AEC and AEC, where the delay estimator is used. This is also done in a separate CL when we know if it should be turned on in both components.

TESTED=trybots, module_unittest
BUG=
R=aluebs@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/4609005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5191 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-28 14:58:35 +00:00
d1a1c353ac Recommit CL5184
TBR=aluebs@webrtc.org
BUG=

Review URL: https://webrtc-codereview.appspot.com/4599004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5187 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-28 11:45:05 +00:00
82eb3a690e Revert 5184 "Small refactoring change in delay_estimator."
> Small refactoring change in delay_estimator.
> 
> This CL produce the bit exact output and is a preparing step for an upcoming robust validation scheme.
> 
> TESTED=trybots, module_unittest
> BUG=None
> R=aluebs@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/4549004

TBR=bjornv@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/4589004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5185 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-28 09:44:47 +00:00
eea079a376 Small refactoring change in delay_estimator.
This CL produce the bit exact output and is a preparing step for an upcoming robust validation scheme.

TESTED=trybots, module_unittest
BUG=None
R=aluebs@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/4549004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5184 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-28 07:59:04 +00:00
b0ed8f8a08 Don't reset the AEC filter in extended mode.
I don't believe I've witnessed this "feature" ever provide a benefit,
and have now collected some evidence of its harm when using the
extended filter mode. It can cause erroneous resets in two cases:

1. Some preprocessing noise suppression is enabled in the system (i.e.
"audio enhancements") that push the noise floor very low, possibly to
zero. If the filter is non-zero this condition can be triggered very
easily, and erroneously.

2. Non-zero energy in the filter before the peak impulse response can
cause a slight (and harmless) "pre-echo" in the error signal. This
becomes more significant as the peak is set further back in the filter.
This effect can cause needless resets during echo onsets.

In short, this isn't a great criterion for filter reset and has the
potential to cause serious harm. Ideally we would remove it entirely,
but in the interests of safety, can start with the extended mode.

BUG=1261
R=aluebs@webrtc.org, bjornv@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/3959004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5159 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-22 06:39:42 +00:00