It doesn't work, and only complicates the Soong conversion (since it
can't even be tested). It shouldn't be that hard to reimplement in Soong
if we ever fix it.
Test: mmma external/webrtc
Change-Id: Ia5a23a6b7fb1ee17f7d9633016eb8ff73435b448
* We should enable those warnings after fixing the upstream source code.
Bug: 64487164
Test: build with WITH_TIDY=1
Change-Id: I306b4eb26fc8729f21cab4d5b82c9e3b59d8db3e
Native tests are not moved. Tests include:
webrtc_apm_process_test
webrtc_isac_test
webrtc_apm_unit_test
Test: mma -j
Test: m -j -k BOARD_VNDK_VERSION=current has no errors for webrtc
Bug: 62489821
Merged-In: I013303de263866cbf368f3f89327c5357f9cecdb
Change-Id: I013303de263866cbf368f3f89327c5357f9cecdb
(cherry picked from commit 8df7e85368569b7cd0afc1ce231b8b3a0ab49333)
* git merge 04cb763
* See all upstream changes since the previous merge in branch aosp/upstream-master: git diff cb3f9bd..04cb763
* Modify webrtc/.gitignore to keep *.mk files.
* Removed old files from *.mk files:
- thread.cc
- thread_posix.cc
* Add new files to *.mk files:
- event_tracer.cc
* Android relevant upstream changes:
- Make Beamforming dynamically settable for Android platform builds
- Remove additional channel constraints when Beamforming is enabled in AudioProcessing
- Use an explicit identifier in Config
Change-Id: I384a4e8f6982c31c5bc70eef521bb2d90800b9a4
Changes after "git merge cb3f9bd"
* git mv old Android.mk from src/ to webrtc/
* Remove old unused files in src/*.
* Modify webrtc/.gitignore to keep *.mk files.
* Copy old files from master, lost in auto-merge.
src/modules/audio_processing/test/unit_test.cc
src/modules/audio_coding/codecs/isac/fix/test/{Android.mk,kenny.c}
to webrtc, but most of the old test code do not compile with new
webrtc API and are commented out.
* Move src/modules/audio_processing/test/android/apmtest/jni/*.mk to
webrtc/... but the Android.mk files does not work.
Commented out its build target.
* Changes to Android.mk files:
* Change references of src/ to webrtc/.
* Fix include path
* Fix source file list, remove old non-existing files,
add new source files to resolve link errors.
* Add new Android.mk files to build some new static libraries
to link into current Android webrtc .so files.
* Remove unnecessary LOCAL_SHARED_LIBRARIES in Android.mk files
that build static libraries.
* Remove old unnecessary clang workarounds like
-Wno-tautological-pointer-compare
-no-integrated-as
* Fix include path of debug.pb.h in some source files.
* Add -DWEBRTC_POSIX in android-webrtc.mk
* Manually merge Android specific changes in
src/typedefs.h to webrtc/typedefs.h
* Fix trivial syntax error in scoped_ptr.h, calling static_assert.
* Use -std=c++0x in webrtc/system_wrappers/source/Android.mk
* #undef getchaar in spreadsort.hpp
* Verified and not to carry old Android hacks from src/... to webrtc/...
src/system_wrappers/source/android/cpu-features.c
src/modules/interface/module.h
src/modules/audio_coding/codecs/isac/fix/source/filters_neon.c
src/system_wrappers/source/trace_posix.cc
src/typedefs.h
More pathes from Alex Luebs:
* Use new unit test kenny.cc.
Delete old kenny.cc.
Comment out unessential code in kenny.cc to fix link error for now.
* Replace old unit test files with new ones in
webrtc/modules/audio_processing/Android.mk.
Delete old audio_processing/test/unit_test.cc.
* Fix compilation errors in
webrtc/modules/audio_processing/test/audio_processing_unittest.cc
Change-Id: I7bbf776eeb9dcfa21a82dd1f2dec378235cbbc3e
This includes changes like:
* Attempt to break lines at better positions
* Use "override" in more places, don't use "virtual" with it
* Use {} where the body is more than one line
* Make declaration and definition arg names match
* Eliminate unused code
* EXPECT_EQ(expected, actual) (but use (actual, expected) for e.g. _GT)
* Correct #include order
* Use anonymous namespaces in preference to "static" for file-scoping
* Eliminate unnecessary casts
* Update reference code in comments of ARM assembly sources to match actual current C code
* Fix indenting to be more style-guide compliant
* Use arraysize() in more places
* Use bool instead of int for "boolean" values (0/1)
* Shorten and simplify code
* Spaces around operators
* 80 column limit
* Use const more consistently
* Space goes after '*' in type name, not before
* Remove unnecessary return values
* Use "(var == const)", not "(const == var)"
* Spelling
* Prefer true, typed constants to "enum hack" constants
* Avoid "virtual" on non-overridden functions
* ASSERT(x == y) -> ASSERT_EQ(y, x)
BUG=none
R=andrew@webrtc.org, asapersson@webrtc.org, henrika@webrtc.org, juberti@webrtc.org, kjellander@webrtc.org, kwiberg@webrtc.org
Review URL: https://codereview.webrtc.org/1172163004
Cr-Commit-Position: refs/heads/master@{#9420}
This makes a variety of small changes to synchronize bits of code using different types, remove useless code or casts, and add explicit casts in some places previously doing implicit ones. For example:
* Change a few type declarations to better match how the majority of code uses those objects.
* Eliminate "< 0" check for unsigned values.
* Replace "(float)sin(x)", where |x| is also a float, with "sinf(x)", and similar.
* Add casts to uint32_t in many places timestamps were used and the existing code stored signed values into the unsigned objects.
* Remove downcasts when the results would be passed to a larger type, e.g. calling "foo((int16_t)x)" with an int |x| when foo() takes an int instead of an int16_t.
* Similarly, add casts when passing a larger type to a function taking a smaller one.
* Add casts to int16_t when doing something like "int16_t = int16_t + int16_t" as the "+" operation would implicitly upconvert to int, and similar.
* Use "false" instead of "0" for setting a bool.
* Shift a few temp types when doing a multi-stage calculation involving typecasts, so as to put the most logical/semantically correct type possible into the temps. For example, when doing "int foo = int + int; size_t bar = (size_t)foo + size_t;", we might change |foo| to a size_t and move the cast if it makes more sense for |foo| to be represented as a size_t.
BUG=none
R=andrew@webrtc.org, asapersson@webrtc.org, henrika@webrtc.org, juberti@webrtc.org, kwiberg@webrtc.org
TBR=andrew, asapersson, henrika
Review URL: https://codereview.webrtc.org/1168753002
Cr-Commit-Position: refs/heads/master@{#9419}
This makes some behaviorally-invariant changes to make certain code that
currently only works correctly with signed types work safely regardless of the
signedness of the types in question. This is preparation for a future change
that will convert a variety of types to size_t.
There are also some formatting changes (e.g. converting "enum hack" usage to real consts) to make it simpler to just change "int" to "size_t" in the future to change the types of those constants.
BUG=none
R=andrew@webrtc.org, juberti@webrtc.org, kwiberg@webrtc.org
TBR=ajm
Review URL: https://codereview.webrtc.org/1174813003
Cr-Commit-Position: refs/heads/master@{#9413}
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}
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}
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
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
The macro is in C defined as
#define WEBRTC_SPL_MUL_16_16(a, b) ((int32_t) (((int16_t)(a)) * ((int16_t)(b))))
(For definition on ARMv7 and MIPS, see common_audio/signal_processing/include/spl_inl_armv7.h and common_audio/signal_processing/include/spl_inl_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)
BUG=3348, 3353
TESTED=locally on Mac and trybots
R=kwiberg@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/35619004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8024 4adac7df-926f-26a2-2b94-8c16560cd09d
The modification only uses the unique part of the analysis_update
function. Pass byte to byte conformance test on both ARMv7 and AArch64,
and the single function performance is similar with original assembly
version on different platforms. If not specified, the code is compiled
by GCC 4.6. The result is the "X version / C version" ratio, and the
less is better.
| run 100k times | cortex-a7 | cortex-a9 | cortex-a15 |
| use C as the base on each | (1.2Ghz) | (1.0Ghz) | (1.7Ghz) |
| CPU target | | | |
|----------------------------+-----------+-----------+------------|
| Neon asm | 15.61% | 20.15% | 14.89% |
| Neon inline asm (LLVM 3.4) | 25.98% | 33.96% | 18.18% |
| Neon intrinsics (GCC 4.6) | 22.06% | 27.01% | 19.24% |
| Neon intrinsics (GCC 4.8) | 17.28% | 18.23% | 18.55% |
| Neon intrinsics (LLVM 3.4) | 21.02% | 19.98% | 16.76% |
BUG=
R=andrew@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/28849004
Patch from Zhongwei Yao <zhongwei.yao@arm.com>.
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7596 4adac7df-926f-26a2-2b94-8c16560cd09d
The modification only uses the unique part of the synthesis_update
function. Pass byte to byte conformance test both on ARMv7 and ARMv8,
and the single function performance is similar with original assembly
version on different platforms (if not specified, the code is compiled
by GCC 4.6):
| run 100k times | cortex-a7 | cortex-a9 | cortex-a15 |
| use C as the base | (1.2Ghz) | (1.0Ghz) | (1.7Ghz) |
| (the smaller the better) | | | |
|----------------------------+-----------+-----------+------------|
| C | 100% | 100% | 100% |
| Neon asm | 15.93% | 17.01% | 12.50% |
| Neon inline asm | 27.74% | 31.41% | 14.64% |
| Neon intrinsics (GCC 4.8) | 17.84% | 14.10% | 13.84% |
| Neon intrinsics (LLVM 3.4) | 16.63% | 14.01% | 12.98% |
BUG=3580
R=andrew@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/23159004
Patch from Zhongwei Yao <zhongwei.yao@arm.com>.
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7586 4adac7df-926f-26a2-2b94-8c16560cd09d
The average speech probability for the higher band is multiplied by the quotient of the process and analyze powers, to avoid thinking that suppressed echo is speech. In order to do this both magnitudes, alanyze and process, needed to be stored. This also was used to calculate different previous STSA estimates for analyze and process.
This CL was tested on two long team member recordings (bjornv and kwiberg) and the noisiest (5) recordings from the QA set.
BUG=webrtc:3763
R=andrew@webrtc.org, bjornv@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/23799004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7437 4adac7df-926f-26a2-2b94-8c16560cd09d
The implementation of WEBRTC_SPL_RSHIFT_W16 is simply >>. This CL removes the macro usage in audio_processing and signal_processing.
Affected components:
* aecm
* agc
* nsx
Indirectly affecting (through signal_processing changes)
* codecs/cng
* codecs/isac/fix
* codecs/isac/main
BUG=3348,3353
TESTED=locally on Linux and trybots
R=kwiberg@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/28699005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7432 4adac7df-926f-26a2-2b94-8c16560cd09d
> Remove the different block lengths in ns_core
>
> This CL has bit-exact output.
>
> What it does:
> * Remove the blockLen10Ms, as it is hardcoded to be equal to blockLen.
> * This makes outLen to be always zero, so it can be removed too.
> * It also avoids the need to have an outBuf, because it is not used, so it is also removed
> * Replaced blockLen10Ms by blockLen everywhere, since they were hardcoded to be equal.
> * We don't need to check if outLen is zero, because it always is, so it was removed.
> * Of course, the outBuf needs no initial set or copying around, because it is not used.
>
> BUG=webrtc:3811
> R=bjornv@webrtc.org, kwiberg@webrtc.org
>
> Review URL: https://webrtc-codereview.appspot.com/30539004TBR=aluebs@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/26629004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7306 4adac7df-926f-26a2-2b94-8c16560cd09d
This CL has bit-exact output.
What it does:
* Remove the blockLen10Ms, as it is hardcoded to be equal to blockLen.
* This makes outLen to be always zero, so it can be removed too.
* It also avoids the need to have an outBuf, because it is not used, so it is also removed
* Replaced blockLen10Ms by blockLen everywhere, since they were hardcoded to be equal.
* We don't need to check if outLen is zero, because it always is, so it was removed.
* Of course, the outBuf needs no initial set or copying around, because it is not used.
BUG=webrtc:3811
R=bjornv@webrtc.org, kwiberg@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/30539004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7297 4adac7df-926f-26a2-2b94-8c16560cd09d