863 Commits

Author SHA1 Message Date
Zeke Chin
786dbdcc38 Rename targets to use lower case format.
It makes writing a build script for merging libraries
across architectures easier. See talk/build/build_ios_libs.sh.

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

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

Cr-Commit-Position: refs/heads/master@{#9412}
2015-06-10 20:45:12 +00:00
Bjorn Volcker
9345e86551 audio_processing: Create now returns a pointer to the object
Affects
* NS
* AGC
* AEC

BUG=441
TESTED=locally on Linux and trybots
R=kwiberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9411}
2015-06-10 19:43:46 +00:00
henrika
a2c79405b4 Ensures that modules_unittests runs on iOS
BUG=4752
R=tkchin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#9408}
2015-06-10 11:24:58 +00:00
Henrik Lundin
441f634731 Re-land r9378 "Rename APM Config DelayCorrection to ExtendedFilter"
(This reverts commit 3fbf3f8841b5460503fb646eaedcb063620434a8.)

The original submission was reverted because it broke the Chrome build. This is fixed in patch set 2 of this change by keeping the old MediaConstraintsInterface string kExperimentalEchoCancellation. It will be removed once the Chrome code has been updated.

Original description:
"We use this Config struct for enabling/disabling Extended filter mode in AEC. This change renames it to ExtendedFilter for readability reasons. The corresponding media constraint is also renamed to kExtendedFilterEchoCancellation.

The old Config is kept in parallel with the new during a transition period. This is to avoid problems with API breakages. During this period, if any of the two Configs are enabled, the extended filter mode is engaged in APM. That is, the two Configs are combined with an "OR" operation.

This change also renames experimental_aec in AudioOptions to extended_filter_aec."

BUG=webrtc:4696
R=bjornv@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9401}
2015-06-09 14:03:23 +00:00
Henrik Lundin
3fbf3f8841 Revert r9378 "Rename APM Config DelayCorrection to ExtendedFilter"
This reverts commit 5f4b7e2873864c61e2ad6d88679dcd5d321bfd16, since it
broke some of the build bots.

BUG=4696
TBR=bjornv@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9380}
2015-06-05 09:04:20 +00:00
Henrik Lundin
5f4b7e2873 Rename APM Config DelayCorrection to ExtendedFilter
We use this Config struct for enabling/disabling Extended filter mode
in AEC. This change renames it to ExtendedFilter for readability
reasons. The corresponding media constraint is also renamed to
kExtendedFilterEchoCancellation.

The old Config is kept in parallel with the new during a transition
period. This is to avoid problems with API breakages. During this
period, if any of the two Configs are enabled, the extended filter
mode is engaged in APM. That is, the two Configs are combined with an
"OR" operation.

This change also renames experimental_aec in AudioOptions to extended_filter_aec.

BUG=4696
R=bjornv@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9378}
2015-06-05 07:55:40 +00:00
Bjorn Volcker
7dbc076f34 audio_processing/aec: Turn SignalBasedDelayCorrection to after 15 seconds
The delay agnostic AEC uses a signal based delay correction method to adjust buffer synchronization between loudspeaker and microphone. On Mac in particular we have seen deviations in UMA stats that point towards an echo already at startup. This is likely due to an early and incorrect correction based on poor audio data.
By waiting 15 seconds before we turn on the ability to correct we can avoid a majority of these.
The reported delay values are in general accurate enough and relying on them in the beginning is fine. The value 15 seconds is chosen because we have seen from UMA data that a significant amount of calls tend to end before 15 seconds when being in the UseDelayAgnosticAEC Finch experiment.

We turn this "feature" on for all platforms but Android, where the reported system delays are inaccurate and we want to take action as soon as possible.
In addition, the set of "good" delay values has been increased from 25% to 75% of the filter length.

BUG=webrtc:3504
R=henrik.lundin@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9376}
2015-06-05 07:40:45 +00:00
Andrew MacDonald
645299d4e0 Add frequency smoothing to postfilter.
Reduces musical noise with minimal impact on interferer suppression.

This also unifies the treatment of "mean bins". The "end" bin is now
inclusive in the mean range as with the "start" bin.

Corrects interpretation of quantile.

BUG=chromium:490477
R=aluebs@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9317}
2015-05-28 20:10:32 +00:00
Bjorn Volcker
a743794d06 audio_processing/aecm: Create() now returns a pointer to the object
Changed Create() to return a pointer to the object rather than an error message, which is in line with how objects should be created.

BUG=441
R=kwiberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9315}
2015-05-28 13:58:53 +00:00
Peter Boström
23c2e55479 Remove remaining .mk files.
These files are not supported, kept up to date or likely to build
anymore.

BUG=
R=glaznev@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9303}
2015-05-28 09:05:11 +00:00
Andrew MacDonald
b444b3f0ff Redirect logs to stderr in audioproc_f.
Notably, this displays logs from the AGC.

Also add a "time per chunk" field to the perf output.

R=aluebs@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9302}
2015-05-28 00:26:12 +00:00
Bjorn Volcker
de4703c5d1 Refactor common_audio/vad: Create now returns the handle directly instead of an error code
Changed the WebRtcVad_Create() function to the more conventional format of returning the handle directly instead of an error code to take care of.
In addition NULL was changed to nullptr in the files where it applied.

Affected components:
* AGC
* VAD
* NetEQ

BUG=441, 3347
TESTED=locally on Linux and trybots
R=kwiberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9291}
2015-05-27 05:23:11 +00:00
Henrik Kjellander
57e5fd2e60 PRESUBMIT: Improve PyLint check and add GN format check.
Add pylintrc file based on
https://code.google.com/p/chromium/codesearch#chromium/src/tools/perf/pylintrc
bit tightened up quite a bit (the one in depot_tools is far
more relaxed).

Remove a few excluded directories from pylint check and fixed/
suppressed all warnings generated.

Add GN format check + formatted all GN files using 'gn format'.
Cleanup redundant rules in tools/PRESUBMIT.py

TESTED=Ran 'git cl presubmit -vv', fixed the PyLint violations.
Ran it again with a modification in webrtc/build/webrtc.gni, formatted
all the GN files and ran it again.

R=henrika@webrtc.org, phoglund@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9274}
2015-05-25 10:55:50 +00:00
Alejandro Luebs
477487410a Enable AudioProcessing48kHzSupport by default
Because of the Finch experiment, this will not affect Chrome's behaviour at all.
The SNRs in AudioProcessingTest.Formats were only increased to the next multiple of 5.

BUG=webrtc:3146
R=andrew@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9263}
2015-05-22 18:59:59 +00:00
Brave Yao
1a07a1e825 Solve data race in Pulse audio implementation.
BUG=3056, 1320
TEST=AutoTest

Mainly add threadchecker and remove unnecessary lock.
And some more styling working.
- audio_device_pulse_linux.cc: wrap lines longer than 80 chars. And add '.' to some comments around. Not do it to all places.
- audio_mixer_manager_pulse_linux.cc: Here I adopt some chromium practice. We use to do many things to the failure of pulse operation, which causes most of the data race issue. In chromium, if we failed to call any pulse function, we just fail it w/o use the previous results. Here I did same. Please check if it's good.

R=bjornv@webrtc.org, henrika@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9243}
2015-05-21 04:42:24 +00:00
Alejandro Luebs
05c760533f Add resampling support in AudioBuffer::DeinterleaveFrom
It is necessary for adding 48kHz support to the AudioProcessing::AnalyzeReverseStream int interface (It was not necessary for 32kHz since in that case the splitting filter is more efficient).

BUG=webrtc:3146
R=andrew@webrtc.org, bjornv@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9241}
2015-05-20 21:39:17 +00:00
André Susano Pinto
664cdafb8a Replace assert() with static_assert() if the condition is evaluatable at
compile time.

The condition of static_assert() is evaluated at compile time which is safer and
more efficient.

Note that static_assert() requires C++11.

The changes were generated by the misc-static-assert ClangTidy check by alexfh@google.com

R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9231}
2015-05-20 09:11:02 +00:00
Andrew MacDonald
cb7f8ce2df Clear ARM NEON flag
Merge WEBRTC_ARCH_ARM64_NEON and WEBRTC_ARCH_ARM_NEON into one
WEBRTC_HAS_NEON.
Replace WEBRTC_DETECT_ARM_NEON by WEBRTC_DETECT_NEON.
Replace WEBRTC_ARCH_ARM by WEBRTC_ARCH_ARM64 for arm64 cpu.

BUG=4002
R=andrew@webrtc.org, jridges@masque.com, kjellander@webrtc.org

Change-Id: I870a4d0682b80633b671c9aab733153f6d95a980

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

Cr-Commit-Position: refs/heads/master@{#9228}
2015-05-20 05:20:04 +00:00
Alejandro Luebs
8db8069660 Change high frequency correction range
From 6kHz-6.5kHz to 3kHz-5kHz. Previous range had unreliable mask values, letting high frequencies from all directions through. The new range is wider and lower, which results in better estimates.

R=andrew@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9213}
2015-05-19 01:19:39 +00:00
Peter Boström
fade1790a7 Remove leaking aecdump testfiles.
Also removes tracing to file in ApmTest because it leads to remaining
files.

BUG=4258
R=bjornv@webrtc.org, kjellander@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9175}
2015-05-12 08:44:03 +00:00
Andrew MacDonald
cb05b72eb2 Add WAV and arbitrary geometry support to nlbf test.
This adds functionality from audioproc_float. The geometry parsing code
is now shared from test_utils.h. I removed the "mic_spacing" flag from
audioproc_float because it's a redundancy that I suspect isn't very
useful.

Includes a cleanup of the audio_processing test utils. They're now
packaged in targets, with the protobuf-using ones split out to avoid
requiring users to depend on protobufs.

pcm_utils is no longer needed and removed.

The primary motivation for this CL is that AudioProcessing currently
doesn't support more than two channels and we'd like a way to pass
more channels to the beamformer.

R=aluebs@webrtc.org, mgraczyk@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#9157}
2015-05-08 05:17:58 +00:00
Bjorn Volcker
1ff218fac3 audio_processing/aec: Do not scale target delay at startup when on Android
When running AEC in extended_filter mode there is no startup phase to evaluate the reported system delay values.
Instead we simply use the first value and scale by two to avoid over compensating when synchronizing render and capture.
We don't need to be too accurate since we have extended the filter length.

On Android we use fixed (measured) reported delay values.
There is no need to be extra conservative here, because that is already built-in in the measured value.
In fact, the difference between devices is large and with such an extra conservative approach the true delay can not be caught by the filter length.
With this change we can improve performance on some devices.

BUG=4472
TESTED=offline on recordings from various devices
R=kwiberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9144}
2015-05-06 10:08:50 +00:00
Bjorn Volcker
532531b656 audio_processing/delay_estimator: Always update robust validation statistics
The delay estimator has a robust_validation mode used to deliver more stable delay etimates. The cost is increased reaction time when we have a delay jump.
This mode can be turned on and off on the fly, but statistics are not updated while disabled. This makes the estimator unreliable if it is enabled on the fly.

This CL makes sure the update is always done.

BUG=4472
R=kwiberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9143}
2015-05-06 09:58:09 +00:00
Bjorn Volcker
40a6d593d2 audio_processing/tests: Adds a flag to unpack input data to text file
For quick and easy aecdump verifiation storing data as text speeds up the issue tracking process, since anyone can simply view values like mic volume.

BUG=4609
TESTED=verified unpacking an aecdump with flag --txt stores that data in text files
R=kwiberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9142}
2015-05-06 08:51:47 +00:00
Bjorn Volcker
3cfa756f37 audio_processing/aec: Fixes an incorrect sampling rate multiplier when processing in 48 kHz
In AEC a fixed fft size is used, but processing can in the lower band be in either 8 or 16 kHz.
Therefore we need a multiplier/rate factor to, for example, map frequency bands in Hz to frequency bins.

The multiplier/rate factor can only be either 1 or 2, but when 48 kHz support was added it was assigned 3.

BUG=crbug.com/482424
R=aluebs@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9117}
2015-04-29 18:22:50 +00:00
Bjorn Volcker
beb9798ab4 audio_processing: Fixed incorrect usage of SetExtraOptions() in offline tool
The way SetExtraOptions() is used today only applies for any one configuration change. The correct way is to set it after all flags have been scanned.

The prefered way to solve this is to use gflags and scan once, followed by applying the configuration when creating audio_processing. This is what is done in the new test tool audioproc_float.cc, but there are still some things left to do before we can replace this one.

BUG=N/A
TESTED=locally
R=kwiberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9097}
2015-04-28 11:52:30 +00:00
Alejandro Luebs
5a92aa8440 Add 3-band filter-bank implementation
The implementation is a FIR filter bank with DCT modulation, similar to the proposed in "Multirate Signal Processing for Communication Systems" by Fredric J Harris.
The lowpass filter prototype has these characteristics:
* Passband ripple = 0.3dB
* Passband frequency = 0.147 (7kHz at 48kHz)
* Stopband attenuation = 40dB
* Stopband frequency = 0.192 (9.2kHz at 48kHz)
* Delay = 24 samples (500us at 48kHz)
* Linear phase

This filter bank does not satisfy perfect reconstruction. The SNR after analysis and synthesis (with no processing in between) is approximately 9.5dB depending on the input signal after compensating for the delay.

The performance on my workstation of AudioProcessing (with AGC and NS enabled) on a 413s recording compared to previous versions is as follows:
* Input signal has 32kHz sample rate: 3.01s
* Resampling 48kHz to 32kHz: 3.56s
* Today's temporary filter bank: 5.67s
* This filter-bank: 4.62s

BUG=webrtc:3146
R=andrew@webrtc.org, bjornv@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9090}
2015-04-27 18:34:16 +00:00
Bjorn Volcker
fb49451014 Disables mic bump-up level if not built with chromium
In http://chromegw.corp.google.com/viewvc/chrome-internal?view=rev&revision=61016 a feature to bump up low input audio levels to a fixed value of 33%. In https://webrtc-codereview.appspot.com/43109004/ a configuration to choose an arbitrary level was added, but still using 33% as default.
The original bump-up feature was added to fix audio issues in chrome, but affected also non-chrome users. This CL disables the feature for non-chrome applications.

Note that the default value is set to 0, but any value up to 12 will do. Zero was selected because it is more clear that the feature is turned off.

BUG=4529
R=andrew@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9048}
2015-04-22 04:39:47 +00:00
Henrik Kjellander
f2497cf517 Fix unknown option '-msse2' warning
R=andrew@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9016}
2015-04-16 06:57:12 +00:00
Alejandro Luebs
5d22c006eb Add performance tests flag to audioproc_float
R=andrew@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9012}
2015-04-15 18:26:34 +00:00
Bjorn Volcker
adc46c4cf7 audio_processing/agc: Adds config to set minimum microphone volume at startup
The AGC is currently bumping up the mic volume to 33% at startup if it is below that level. This is to avoid getting stuck in a poor state from which the AGC can not move, simply a too low input audio level. For some users, 33% is instead too loud.

This CL gives the user the possibility to set that level at create time.
- Extends the Config ExperimentalAgc with a startup_mic_volume for the user to set if desired. Note that the bump up does not apply to the legacy AGC and the "regular" AGC is controlled by ExperimentalAgc.
- Without any actions, the same default value as previously is used.
- In addition I removed a return value from InitializeExperimentalAgc() and InitializeTransient()

This has been tested by building Chromium on Mac and verify through apprtc that
1) startup_mic_volume = 128 bumps up to 50%.
2) startup_mic_volume = 500 (out of range) bumps up to 100%.
3) startup_mic_volume = 0 bumps up to 4%, the AGC min level.

BUG=4529
TESTED=locally
R=andrew@webrtc.org, kwiberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9004}
2015-04-15 09:42:35 +00:00
Bjorn Volcker
0f911d71a7 Refactor audio_processing/nsx: Removed usage of macro WEBRTC_SPL_MEMCPY_W16
The macro assumes int16_t pointers, but there is no check for it.

BUG=3348,3353
TESTED=locally on Linux and trybots
R=kwiberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8987}
2015-04-13 13:45:07 +00:00
Bjorn Volcker
f6a99e63b6 Refactor audio_processing: Free functions return void
There is no point in returning an error when Free() fails. In fact it can only happen if we have a null pointer as object. There is further no place where the return value is used.

Affected components are
- aec
- aecm
- agc
- ns

BUG=441
R=kwiberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8966}
2015-04-10 05:56:59 +00:00
Richard Coles
d417c93c10 Remove android_webview_build conditions.
Now that android_webview_build is no longer supported, remove build
conditionals referencing it and also remove the extra level of
indirection used to reference the cpufeatures target.

BUG=chromium:440793
R=henrika@webrtc.org

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

Patch from Richard Coles <torne@chromium.org>.

Cr-Commit-Position: refs/heads/master@{#8963}
2015-04-09 15:36:13 +00:00
Andrew MacDonald
2c9c83d7ec Remove non-functional asynchronous resampling mode.
A few other cleanups, most notably using a sane parameter to specify the
number of channels.

BUG=chromium:469814
R=tina.legrand@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8894}
2015-03-30 17:08:28 +00:00
Bjorn Volcker
424694ce79 audio_processing/agc: Put entire method set_output_will_be_muted() under lock
Setting the member value output_will_be_muted_ in set_output_will_be_muted() was done before the lock.
This caused a data race.

BUG=4477
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8877}
2015-03-27 10:30:54 +00:00
Michael Graczyk
dfa36058c9 Reparent Nonlinear beamformer under beamforming interface.
R=aluebs@webrtc.org, andrew@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8862}
2015-03-25 23:37:33 +00:00
Bjorn Volcker
bf395c1fc0 Add WebRTC Media Constraint to force using Delay Agnostic AEC on Android
If built-in Echo Cancellation is available on a device it is automatically enabled. The reason is that it in most cases performs better than the WebRTC software echo control for mobile. The drawback is that we can not develop, test and rollout the delay agnostic AEC (DA-AEC) on Android as for desktops.

This CL includes
- adding a media constraint to enable/disable DA-AEC.
- automatically turning on echo cancellation if DA-AEC is enabled.
- a fix in the AEC that enables delay estimation when DA-AEC is enabled, but delay metrics is disabled.
- sets the Config struct ReportedDelay, which controls DA-AEC internally in the AEC.

The test code to verify that it works in AppRTCDemo can be found here:
https://webrtc-codereview.appspot.com/50479004/

BUG=4472
TESTED=locally on N7, N6, Android One
R=glaznev@webrtc.org, perkj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8861}
2015-03-25 21:46:10 +00:00
andrew@webrtc.org
bd8c865f43 Remove build-time beamformer flags.
RealFourier is now unconditionally enabled since we can fall back to the
Ooura FFT. We no longer need to condition users on rtc_use_openmax_dl.

R=aluebs@webrtc.org, mgraczyk@google.com

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

Cr-Commit-Position: refs/heads/master@{#8799}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8799 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-20 00:28:42 +00:00
andrew@webrtc.org
04c50981f8 Add the Ooura FFT to RealFourier.
We are using the Ooura FFT in a few places:
- AGC
- Transient suppression
- Noise suppression

The optimized OpenMAX DL FFT is considerably faster, but currently does
not compile everywhere, notably on iOS. This change will allow us to use
Openmax when possible and otherwise fall back to Ooura.

(Unfortunately, noise suppression won't be able to take advantage of it
since it's not C++. Upgrade time?)

R=aluebs@webrtc.org, mgraczyk@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#8798}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8798 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-19 20:07:43 +00:00
mgraczyk@chromium.org
0f663de2ec Rename Beamformer to NonlinearBeamformer.
R=aluebs@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8710}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8710 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-13 00:14:18 +00:00
mgraczyk@chromium.org
e534086492 Clean up LappedTransform and Blocker.
- Remove unnecessary window member from lapped_transform.
  - Add comment indicated that Blocker does not take ownership of
    the window passed to its constructor.
  - Streamline LappedTransform constructor so members can be const.

Also use a range-based for loop in audio_processing_impl.cc for clarity.

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

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

Cr-Commit-Position: refs/heads/master@{#8708}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8708 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-12 23:24:19 +00:00
bjornv@webrtc.org
7ef8b12a3b Refactor audio_processing/ns: Removes usage of macro WEBRTC_SPL_MUL_16_16_RSFT
The macro is defined as
#define WEBRTC_SPL_MUL_16_16_RSFT(a, b, c) \
(WEBRTC_SPL_MUL_16_16(a, b) >> (c))

where the latter macro is in C defined as
#define WEBRTC_SPL_MUL_16_16(a, b) \
((int32_t) (((int16_t)(a)) * ((int16_t)(b))))
(For definitions on ARMv7 and MIPS, see common_audio/signal_processing/include/spl_inl_{armv7,mips}.h)

The replacement consists of
- avoiding casts to int16_t if inputs already are int16_t
- adding explicit cast to <type> if result is assigned to <type> (other than int or int32_t)
- minor cleanups like remove of unnecessary parentheses and style changes

BUG=3348,3353
TESTED=Locally on Mac and trybots
R=kwiberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8666}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8666 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-10 07:10:14 +00:00
bjornv@webrtc.org
b38b009d21 Refactor audio_processing/aecm: Removed usage of macro WEBRTC_SPL_MUL_16_16_RSFT
The macro is defined as
#define WEBRTC_SPL_MUL_16_16_RSFT(a, b, c) \
(WEBRTC_SPL_MUL_16_16(a, b) >> (c))

where the latter macro is in C defined as
#define WEBRTC_SPL_MUL_16_16(a, b) \
((int32_t) (((int16_t)(a)) * ((int16_t)(b))))
(For definitions on ARMv7 and MIPS, see common_audio/signal_processing/include/spl_inl_{armv7,mips}.h)

The replacement consists of
- avoiding casts to int16_t if inputs already are int16_t
- adding explicit cast to <type> if result is assigned to <type> (other than int or int32_t)
- minor cleanups like remove of unnecessary parentheses and style changes

In addition an implicit cast from int32_t to int16_t was removed, which was a bug.

BUG=3348,3353
TESTED=Locally on Mac and trybots
R=kwiberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8665}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8665 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-10 06:40:12 +00:00
bjornv@webrtc.org
1afbdc7555 Refactor audio_processing/agc: Removes usage of macro WEBRTC_SPL_MUL_16_16_RSFT
The macro is defined as
#define WEBRTC_SPL_MUL_16_16_RSFT(a, b, c) \
(WEBRTC_SPL_MUL_16_16(a, b) >> (c))

where the latter macro is in C defined as
#define WEBRTC_SPL_MUL_16_16(a, b) \
((int32_t) (((int16_t)(a)) * ((int16_t)(b))))
(For definitions on ARMv7 and MIPS, see common_audio/signal_processing/include/spl_inl_{armv7,mips}.h)

The replacement consists of
- avoiding casts to int16_t if inputs already are int16_t
- adding explicit cast to <type> if result is assigned to <type> (other than int or int32_t)
- minor cleanups like remove of unnecessary parentheses and style changes

BUG=3348,3353
TESTED=locally on Mac and trybots
R=kwiberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8664}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8664 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-10 06:38:16 +00:00
aluebs@webrtc.org
1d88394bcb Add support for arbitrary array geometries in Beamformer
R=andrew@webrtc.org, mgraczyk@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#8621}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8621 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-05 20:39:20 +00:00
bjornv@webrtc.org
d7a212e8b9 audio_processing/aec: Increased delay metrics aggregation window to five seconds
The known clients (GetStats and UMA histogram in Chrome) use at least 5 second aggregation window. There is no particular value in calculating the metrics more often.

The CL also includes a small refactoring moving a declaration inside an if statement.

BUG=2994
TEST=N/A
R=kwiberg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8619}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8619 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-05 16:14:58 +00:00
kjellander@webrtc.org
14665ff7d4 Roll chromium_revision e144d30..6fdb142 (318658:318841) + remove OVERRIDE macro
Clang version changed 223108:230914
Details: e144d30..6fdb142/tools/clang/scripts/update.sh

Removes the OVERRIDE macro defined in:
* webrtc/base/common.h
* webrtc/typedefs.h

The majority of the source changes were done by running this in src/:
perl -0pi -e "s/virtual\s([^({;]*(\([^({;]*\)[^({;]*))(OVERRIDE|override)/\1override/sg" `find {talk,webrtc} -name "*.h"  -o -name "*.cc*" -o -name "*.mm*"`

which converted all:
virtual Foo() OVERRIDE
functions to:
Foo() override

Then I manually edited:
* talk/media/webrtc/fakewebrtccommon.h
* webrtc/test/fake_common.h

Remaining uses of OVERRIDE was fixed by search+replace.

Manual edits were done to fix virtual destructors that were
overriding inherited ones.

Finally a build error related to the pure virtual definitions of
Read, Write and Rewind in common_types.h required a bit of
refactoring in:
* webrtc/common_types.cc
* webrtc/common_types.h
* webrtc/system_wrappers/interface/file_wrapper.h
* webrtc/system_wrappers/source/file_impl.cc

This roll should make it possible for us to finally re-enable deadlock
detection for TSan on the buildbots.

BUG=4106
R=pbos@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8596}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8596 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-04 13:04:54 +00:00
kjellander@webrtc.org
6dab6d700d Let Chromium declare the mips_dsp_rev build variable.
In https://codereview.chromium.org/883253003, the mips_dsp_rev
build variable is added to Chromium's GYP and GN build files. Remove
the declarations of mips_dsp_rev from WebRTC's GYP and GN build files.

Replace mips_fpu with mips_float_abi and remove the compiler flags that
are already set by Chromium.

The main review of this was done in https://webrtc-codereview.appspot.com/39779004
but since that CL wasn't created with the right base URL, I made
this in order to be able to run WebRTC trybots properly.

BUG=446234
TBR=wtc@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#8590}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8590 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-04 09:51:17 +00:00
aluebs@webrtc.org
c9ce07ed87 Add Config option to enable 48kHz support in AudioProcessing
BUG=webrtc:3146
R=andrew@webrtc.org, bjornv@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8563}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8563 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-02 20:07:51 +00:00