to use for the APM. It allows simple and rapid
additions of exploratory data logpoints to use
during bug investigations and module performance
analysis.
The new data logging functionality is also in this CL
used to replace the existing data logging functionality
present in the AEC.
Additional information:
As there was an issue with that the build flag for
activating this feature was not present in all
compilation units that included the feature additional
changes were needed. A summary of the changes are
-The build files were modified to ensure that the
logging build flag always is set to either 0 or 1
for compilation units that include the feature.
-Build-time checks in the appropriate places were added
to ensure that the above is fulfilled.
-The build object was added dynamically to the AEC state
as a pointer to ensure that the size of that state is not
dependent on whether the logging build flag is set or not.
-The constructor of the AEC class needed to be modified in
order to construct the logging object. For this a destructor
was also needed.
-An unused method without any declaration was removed in
order to avoid any issues with the logging flag being set to
0 or 1.
This CL will be immediately followed with an upcoming CL
that replaces the logging in echo_cancellation.cc with the
new functionality which will ensure that the logging flag
is only used in one place within WebRTC, which in turn will
fully ensure that all compilation units that uses the feature
also have the flag properly set.
BUG=webrtc:5201, webrtc:5298
Review-Url: https://codereview.webrtc.org/1877713002
Cr-Commit-Position: refs/heads/master@{#12607}
-changed filenames to *.cc
-fixed issues with implicit casts causing build errors.
All other CL warnings were ignored as the original
code is not changed, merely moved.
BUG=webrtc:5724
NOPRESUBMIT=true
Review URL: https://codereview.webrtc.org/1857153002
Cr-Commit-Position: refs/heads/master@{#12307}
Reason for revert:
Because of down-stream dependencies, this CL needs to be reverted.
The dependencies will be resolved and then the CL will be relanded.
Original issue's description:
> Revert "Revert of Moved ring-buffer related files from common_audio to audio_processing (patchset #8 id:150001 of https://codereview.webrtc.org/1846903004/ )"
>
> This reverts commit c54aad6ae07fe2a44a65be403386bd7d7d865e5b.
>
> BUG=webrtc:5724
> NOPRESUBMIT=true
>
> Committed: https://crrev.com/8864fe5e08f8d8711612526dee9a812adfcd3be1
> Cr-Commit-Position: refs/heads/master@{#12247}
TBR=henrik.lundin@webrtc.org,ivoc@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5724
Review URL: https://codereview.webrtc.org/1855393004
Cr-Commit-Position: refs/heads/master@{#12248}
Reason for revert:
This CL caused a google3 breakage due to dependencies in Google3.
I will fix that, and reland.
Original issue's description:
> Moved ring-buffer related files from common_audio to audio_processing
>
> BUG=webrtc:5724
> NOPRESUBMIT=true
>
> Committed: https://crrev.com/711ccc8d96490f58cc3d7fd9207c19d4d881d4dc
> Cr-Commit-Position: refs/heads/master@{#12227}
TBR=ivoc@webrtc.org,henrik.lundin@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5724
Review URL: https://codereview.webrtc.org/1856323002
Cr-Commit-Position: refs/heads/master@{#12232}
Reason for revert:
This CL is dependent on the CL https://codereview.webrtc.org/1846903004/ which caused a google3 breakage due to dependencies in Google3.
I will fix that, and reland this CL.
Original issue's description:
> Moved the ringbuffer to be built using C++
>
> BUG=webrtc:5724
>
> Committed: https://crrev.com/677e5774eaf287fa02f75fd5c8ad3f9ded9ed9c4
> Cr-Commit-Position: refs/heads/master@{#12230}
TBR=ivoc@webrtc.org,henrik.lundin@webrtc.org,kwiberg@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5724
Review URL: https://codereview.webrtc.org/1858873003
Cr-Commit-Position: refs/heads/master@{#12231}
The steps involved were:
1) Change file name to .cc from .c.
2) Update the build files accordingly.
3) Remove the extern header file inclusion.
4) Change the casts in aec_resampler.cc to static_cast
and reinterpret_cast.
The changes are bitexact.
The CL will be followed with another CL where a proper (webrtc) namespace is introduced. The reason for not having it in this CL is that this was missed in the corresponding
CL that did the above for aec_core.c, ..., and if the
namespaces in all the aec_core -related files can be changed
at the same time that will simplify things.
BUG=webrtc:5201
Review URL: https://codereview.webrtc.org/1754223004
Cr-Commit-Position: refs/heads/master@{#11867}
In order for the change to be reviewable, the
move was made into two steps consisting of the
first two patches in this CL.
Step 1 (patch set 1):
-Changed file types to use .cc
-Changed buildfiles to use the new files
-Changed C code inclusion to properly match the changed
file formats (removed and added extern "C" declarations).
-Changed implicit void-> nonvoid casts that are
illegal in C++ to be explicit.
Step 2 (patch set 2):
-Changed all the warnings reported when uploading the CL.
-The warnings about formatting of the assembly optimized
code were not addressed though.
BUG=webrtc:5201
Review URL: https://codereview.webrtc.org/1713923002
Cr-Commit-Position: refs/heads/master@{#11727}
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}
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}
Replaced the wav file dumping functionality in aec_core.c with the newly added corresponding macros
Added macros for logging of AEC internal data
BUG=
Review URL: https://codereview.webrtc.org/1272403003
Cr-Commit-Position: refs/heads/master@{#9808}
Revert of original: https://codereview.webrtc.org/1187033005/
Changes in original:
- Added files to gyp and BUILD
- Made minor fixes to get everything to compile
and intelligibility_proc to run
- Added comments
- Auto-reformatting
New Changes:
- Added <numeric> header to intelligibility_enhancer.cc to address buildbot errors
- Switched to use WAV for i/o in intelligibility_proc.cc to address windows errors
- clean up
Note: Patch 1 duplicates Patch 7 of https://codereview.webrtc.org/1182323005/R=andrew@webrtc.org
Review URL: https://codereview.webrtc.org/1190733004.
Cr-Commit-Position: refs/heads/master@{#9486}
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}
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}
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
Mostly, it's about moving constructors and descructors to the .cc
files, so that they won't be inlined everywhere.
The reason this CL is so big is that a lot of code was using
common_types.h without declaring a dependency on webrtc_common, which
broke the build once common_types.h started to depend on
common_types.cc.
BUG=163
R=kjellander@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/26089004
Cr-Commit-Position: refs/heads/master@{#8516}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8516 4adac7df-926f-26a2-2b94-8c16560cd09d
All *neon.S files in aecm and ns modules have been removed. We need no
assembly offset generation now.
Pass byte to byte conformance test for aecm and ns test in audioproc
between new NEON (written in intrinsics) version and C version on both
ARMv7 and ARM64.
BUG=3580
R=andrew@webrtc.org, jridges@masque.com
Change-Id: I05d43d0c04d00bead65ca8c8fda25f0a42394b2b
Review URL: https://webrtc-codereview.appspot.com/32229004
Patch from Zhongwei Yai <zhongwei.yao@arm.com>.
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7800 4adac7df-926f-26a2-2b94-8c16560cd09d
Implemented the 3 bands splitting filter bank by:
1. Upsample by 4/3.
2. Split twice into 2 bands.
3. Discard upper most band, because it is empty anyway.
A unittest was also implemented:
1. Generate a signal from presence or absence of sine waves of different frequencies.
2. Split into 3 bands and check their presence or absence.
3. Recombine the bands.
4. Calculate delay (as it is an IIR it depends on frequency).
5. Check that the cross correlation of input and output is high enough at that delay.
BUG=webrtc:3146
R=andrew@webrtc.org, bjornv@webrtc.org, kwiberg@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/31029004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7754 4adac7df-926f-26a2-2b94-8c16560cd09d