Commit Graph

274 Commits

Author SHA1 Message Date
4b049fcabe Remove developing code in ns_core
This defines were hardcoded and the code inside of the ifdefs was never used.

BUG=webrtc:3763
R=bjornv@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7153 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-11 11:19:56 +00:00
8dd60cc855 audio_processing_unittests: Enabled ApmTest.Process for all platforms but Android
During porting some neon optimizations to sse2 the ApmTest.Process failed despite bit exact outputs. The reason is that with float data between component, as to previously truncating to int, we get small deviations in logged metrics. This affected a noise probability to a small fraction, which is not a particular bug.

This CL change the comparison from EXPECT_EQ() to EXPECT_NEAR() which then as a result makes the test run on Mac and Windows as well.

For int values a deviation of 1 is acceptable, which would include any rounding errors.
For float values a deviation of 0.0005 is chosen by looking at current test stats for the affected platforms/optimizations.

BUG=114
TESTED=locally on linux with and without sse2 optimizations and trybots
R=aluebs@webrtc.org, andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7149 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-11 08:36:35 +00:00
87ff9c8efa Fix up configs applying to GN build.
The audio_processing target didn't have the build configs applying to it which led to some logging errors.

TBR=kjellander

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7125 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-09 23:34:56 +00:00
641bda6f9c Initialize ChannelBuffer's memory to avoid uninitialized reads.
Removed the zero out memset in this change:
https://review.webrtc.org/24469004/

assuming it was unneeded. Dr. Memory taught me that assupmtion was
invalid. linux_memcheck try runs might have caught this, if they
weren't flaking out on unrelated stuff.

TBR=claguna@google.com

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7113 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-08 23:11:44 +00:00
17454f79dc Add ctors to ChannelBuffer to enable copying on construction.
Also:
- Fix the constness of some parameters.
- Add more const overloads.
- Use DCHECK in place of assert.
- Removed an unnecessary memset.

R=claguna@google.com

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7107 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-08 20:27:04 +00:00
37c39f3784 audio_processing: Removed use of macro WEBRTC_SPL_UMUL_16_16
The macro replaced is a trivial multiplication after explicit casts to uint16_t and uint32_t. This CL replaces its use with "*" and adds explicit casts if necessary.

Affected components:
* AECMobile
* AGC
* Noise Suppression (fixed point version)

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7101 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-08 11:21:56 +00:00
6d08ca6379 GN: Prefix WebRTC specific variables with "rtc_"
BUG=3441
TESTED=Trybots + Running GN in a Chromium checkout with
src/third_party/webrtc symlinked to the WebRTC checkout
with this CL applied, both with the default GN settings
and using: --args="os=\"android\" cpu_arch=\"arm\""

R=brettw@chromium.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7095 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-07 17:36:10 +00:00
c2c4117477 common_audio: Replaced WEBRTC_SPL_LSHIFT_U32 with << in audio_processing
Affected components:
* AECMobile
  - Added a help function since the same operation was performed several times.
* Auto Gain Control
* Noise Suppression (fixed point)

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7076 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-05 06:01:53 +00:00
021e76fd39 Add support for WAV output in audioproc
The default output is a WAV file, except if the --pcm_output flag is set.

BUG=webrtc:3359
R=bjornv@webrtc.org, kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7069 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-04 18:12:00 +00:00
bac072667b Use the sample rate as a temporary solution to unpack aecdumps with wrong sizes
The sizes saved in the aecdumps were always the input length, and this is not necessarily true when there is a change in sample rate. But the sample rates dumped are correct, so we can calculate the sizes from them knowing that we use 10ms chunks.

BUG=webrtc:3359
R=bjornv@webrtc.org, kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7039 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-03 13:39:01 +00:00
74cf916924 Fix issues in audioproc for float aecdumps
* The right buffer size is used to dump to file when the output sample rate is different from the input one.
* The percentage of processed chunks is calculated correctly when float data available.

BUG=webrtc:3359
R=bjornv@webrtc.org, kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7036 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-03 11:05:01 +00:00
48f2568d89 audio_processing/nsx: Bug fix that could cause divide by zero
In the fixed point version of the Noise Suppression. At one place we subtract a value in the wrong Q-domain, which later may cause a divide by zero. Going through the floating point code that particular variable should be zero if this happens, which is what the old code tried to accomplish, but in an awkward way.

The bug has been there since development, so the likelihood of actually get a divide by zero is very small.

BUG=chromium:407812
R=ljubomir.papuga@gmail.com, tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7035 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-03 07:58:37 +00:00
841f58f64c Unpacking aecdumps generates wav files
BUG=webrtc:3359
R=andrew@webrtc.org, bjornv@webrtc.org, kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7018 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-02 07:51:51 +00:00
524b8f7304 GN: Implement voice engine, common audio, audio coding and audio processing
NOTICE: Assembly offsets generation for audio processing will
not be ported to GN and the process of removing them is tracked
in https://code.google.com/p/webrtc/issues/detail?id=3580.

The GN files are based upon the GYP files as of r7009.

BUG=3441
TESTED=Passing builds with:
gn gen out/Default --args="build_with_chromium=false" && ninja -C out/Default
gn gen out/Default --args="build_with_chromium=false is_debug=true" && ninja -C out/Default
gn gen out/Default --args="build_with_chromium=false aec_debug_dump=true" && ninja -C out/Default
gn gen out/Default --args="build_with_chromium=false aec_untrusted_delay_for_testing=true" && ninja -C out/Default
gn gen out/Default --args="build_with_chromium=false prefer_fixed_point=true" && ninja -C out/Default
gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" is_clang=false" && ninja -C out/Default
gn gen out/Default --args="build_with_chromium=false os=\"android\" cpu_arch=\"arm\" arm_version=7 is_clang=false" && ninja -C out/Default

I don't know how to setup the mips toolchain to test the following, but it's out of scope for the GN effort for now:
gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=0" && ninja -C out/Default
gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=1" && ninja -C out/Default
gn gen out/Default --args="build_with_chromium=false cpu_arch=\"mipsel\" mips_dsp_rev=2" && ninja -C out/Default

Compilation of Chromium's 'all' target with src/third_party/webrtc
symlinked to the WebRTC checkout with this CL applied, both
with the default GN settings and using
--args="is_debug=false os=\"android\" cpu_arch=\"arm\""

R=andrew@webrtc.org, brettw@chromium.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7012 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-31 20:32:53 +00:00
a22485eaf0 MIPS optimizations for AEC audio processing module
Added new optimizations for MIPS that were removed in r6797.
For more information about this see https://code.google.com/p/webrtc/source/detail?r=6797

R=andrew@webrtc.org, djordje.pesut@imgtec.com

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

Patch from Ljubomir Papuga <ljubomir.papuga@mips.com>.

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7010 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-29 17:51:28 +00:00
af7fdfcde8 Add LTO support for Android Chromium.
This is to add support for a Link-Time Optimizations experiment in Android Chromium. As it is disabled by default, it won't change anything for most configurations.
BUG=chromium:407544
R=andrew@webrtc.org, tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7009 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-29 17:41:13 +00:00
df9fef6638 common_audio: Removed macro WEBRTC_SPL_DIV
The macro has no built-in divide by zero check. The only thing that is done is casting to int32_t.
In addition a bug was discovered where it was supposed to do a division with rounding, but instead did a division with truncation + addition by 2. This is corrected in this CL.

BUG=3348,3353
TESTED=locally on Linux
R=kwiberg@webrtc.org, tina.legrand@webrtc.org, turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6998 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-28 12:57:32 +00:00
59a1b1b928 Fix the different samples per channel in aecdump
BUG=webrtc:3359
R=bjornv@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6996 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-28 10:43:09 +00:00
4f71e22bf9 Refactoring common_audio/signal_processing: Remove macro WEBRTC_SPL_UDIV
This macro is a direct use of the division operator without checking for division by zero. Hence, it is dangerous to use.
This CL replaces the macro with '/' at place.

BUG=3348,3353
TESTED=locally on linux and trybots
R=kwiberg@webrtc.org, tina.legrand@webrtc.org, turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6976 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-26 10:25:10 +00:00
047a46f8b4 Remove Android.mk build files.
These files are generally not maintained and break, some contain files
that don't exist anymore and do not build anymore. If we need to add
some of these back we should really set up a bot for them.

R=andrew@webrtc.org, glaznev@webrtc.org, henrike@webrtc.org
BUG=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6974 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-26 08:48:51 +00:00
926707b167 Refactoring common_audio: Replace trivial multiplication macro
This multiplication macro literally use the '*' operator, so there is no need for it.

BUG=3348,3353
TESTED=locally on linux and trybots
R=kwiberg@webrtc.org, tina.legrand@webrtc.org, turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6964 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-25 11:42:42 +00:00
6e71d17bc9 Refactoring common_audio/signal_processing: Replaces trivial macros
The macros WEBRTC_SPL_ADD_SAT_W16 and WEBRTC_SPL_ADD_SAT_W32 make direct use of the corresponding functions WebRtcSpl_AddSatW16() and WebRtcSpl_AddSatW32().
This CL replaces these macros in the code.

BUG=3348,3353
TESTED=locally on linux and trybots
R=kwiberg@webrtc.org, tina.legrand@webrtc.org, turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6960 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-25 07:44:52 +00:00
584cd8da4b Fix WEBRTC_AEC_DEBUG_DUMP (broken by int16->float conversion)
And in the process, make it dump WAV files instead of raw PCM.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6959 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-25 06:26:04 +00:00
add54ad770 Convert nsx_core_neon.S to unified syntax.
That way, it builds with both gcc and clang's integrated assembler.
No intentional behavior change.

BUG=chromium:124610
R=andrew@webrtc.org, johannkoenig@google.com

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6945 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-21 02:23:26 +00:00
71d9572e9c Minor bug fix and cosmetic changes in AEC MIPS optimizations.
Minor bug fix in WebRtcAec_FilterAdaptation_mips, which did not manifest with
gcc 4.7.2, but it did with version 4.9.0. While there, also made some cosmetic
changes to comply with Chromium coding style.

R=andrew@webrtc.org

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6931 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-19 15:42:50 +00:00
a1ad844229 Precompute the AEC FFT tables, rather than initializing at run-time.
These global arrays are shared amongst all AEC instances, and were at
serious risk of data races. A Chromium TSAN bot recently caught this.

Also move the function pointer selection for optimization to
create-time. (Ideally this would only be done once.)

BUG=chromium:404133,1503
R=bjornv@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6922 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-18 19:02:51 +00:00
d798095a37 replace inline assembly WebRtcNsx_PrepareSpectrumNeon by intrinsics.
The modification only uses the unique part of the spectrum (as is done for the C and asm code). It passes
byte to byte conformance test, and the single function performance
(if not specified, the code is compiled by GCC 4.6) on different
platforms:

| run 100k times             | cortex-a7 | cortex-a9 | cortex-a15 |
| use C as the base on each  |  (1.2Ghz) |  (1.0Ghz) |   (1.7Ghz) |
| CPU target                 |           |           |            |
|----------------------------+-----------+-----------+------------|
| C                          |      100% |      100% |       100% |
| Neon asm                   |       18% |       14% |        19% |
| Neon inline asm            |       31% |       25% |        27% |
| Neon intrinsic (GCC 4.6)   |       33% |       27% |        42% |
| Neon intrinscis (GCC 4.8)  |       17% |       14% |        19% |
| Neon intrinsics (LLVM 3.3) |       15% |       13% |        18% |

BUG=
R=andrew@webrtc.org

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

Patch from Joe Yu <joe.yu@arm.com>.

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6920 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-18 17:46:45 +00:00
820f8e9ca7 modules/audio_processing: Moves declaration of kDelayDiffOffsetSamples
audio_processing did not compile when aec_untrusted_delay_for_testing=1 was set. The constant kDelayDiffOffsetSamples was declared only for Mac when WEBRTC_UNTRUSTED_DELAY was automatically turned on.

Moving the declaration outside the ifdef makes it build with the flag on for any platform.

BUG=3673
TESTED=locally and trybots
R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6866 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-11 15:39:00 +00:00
96d8b0e69f Revert 6860 "SSE2 version of SubbandCoherence()"
> SSE2 version of SubbandCoherence()
> 
> The performance gain on a x86 laptop (Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz)
> reported by audioproc is ~3.3%
> 
> The output is bit exact.
> 
> R=bjornv@webrtc.org, cd@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/18779004
> 
> Patch from Scott LaVarnway <slavarnw@gmail.com>.

TBR=bjornv@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6861 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-11 12:09:13 +00:00
0db82f337f SSE2 version of SubbandCoherence()
The performance gain on a x86 laptop (Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz)
reported by audioproc is ~3.3%

The output is bit exact.

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

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

Patch from Scott LaVarnway <slavarnw@gmail.com>.

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6860 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-11 10:38:31 +00:00
fdbe1442c5 Use C functions in aec for MIPS
With GCC 4.9, the MIPS NDK toolchain has been changed to only support 16 spregs by default - the even-numbered ones. This has been changed to support the R6 MIPS architecture. While the old behaviour could be restored by adding "-modd-spreg", this would come with a performance hit because the kernel would emulate odd-numbered spregs and missing R2 instructions.
As a result of this change, the functions removed in this CL no longer compile as there are no longer enough spregs for the compiler to assign. So we are removing these functions and they will use the C implementation until the MIPS code is rewritten.

R=andrew@webrtc.org, ljubomir.papuga@gmail.com, pasko@chromium.org

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

Patch from Fabrice de Gans-Riberi <fdegans@chromium.org>.

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6797 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-29 14:39:10 +00:00
e364ac902f AudioBuffer: Optimize const accesses to arrays that autoconvert int16<->float
Specifically, when someone asks for a const pointer to the int16
version of the array, there's no need to invalidate the float version
of that array, and vice versa. (But obviously, invalidation still has
to happen when someone asks for a non-const pointer.)

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6725 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-18 07:50:29 +00:00
c145668dc8 Reduce runtime of RingBufferTest by a factor of 100.
This test was needlessly long.

TBR=pbos

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6724 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-17 23:16:44 +00:00
4065988108 Remove unused ExperimentalNS API in AudioProcessing
R=andrew@webrtc.org, kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6718 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-17 11:32:09 +00:00
2b6bc8d84f AudioBuffer: Eliminate the SplitChannelBuffer class
It's just a container for two IFChannelBuffers, and doesn't earn its
keep. The main problem is that the number of methods it needs that
just forward calls to either of its two IFChannelBuffers was already
large, and was about to grow.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6717 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-17 09:46:37 +00:00
2561d52460 Simplify AudioBuffer::mixed_low_pass_data API
R=andrew@webrtc.org, kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6715 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-17 08:27:39 +00:00
af93fc08a1 AudioBuffer: Let ChannelBuffer handle bounds checking of channel parameter
R=aluebs@webrtc.org, minyue@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6714 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-17 08:18:33 +00:00
e8ea33ccb1 nrsh1 is written before tmp321 is read, so needs to be earlyclobber
Otherwise, the compiler is allowed to put them in the same register
under the assumption that all inputs are read before any
(non-earlyclobber) output is written, which in this case would result
in nrsh2 being corrupted.

BUG=3439
R=aluebs@webrtc.org, ljubomir.papuga@gmail.com

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6700 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-16 08:26:48 +00:00
eec6ecdb1e Landing pkasting's webrtc fixes for MSVC level 4 warnings in WebRTC.
---

Fixes for re-enabling more MSVC level 4 warnings: webrtc/ edition

This contains fixes for the following sorts of issues:
* Possibly-uninitialized local variable
* Signedness mismatch
* Assignment inside conditional

This also contains a small number of other cleanups to nearby code. In
particular several warning-disables for MSVC are removed because they don't seem
to be necessary (either that warning is not enabled or the code does not trigger
it).

BUG=crbug.com/81439
TEST=none
R=henrika@webrtc.org, pkasting@chromium.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6667 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-11 19:09:59 +00:00
fb2e7c22a0 Document that channels are stored contiguously in AudioBuffer
R=andrew@webrtc.org, kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6661 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-11 11:40:48 +00:00
5bde66e913 audio_processing: Updates aec_core_sse2.c with changes made to aec_common.h
The change of definitions moved to aec_common.h was done in CL17839005.

BUG=3131
TBR=kwiberg@webrtc.org
TESTED=builds locally

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6648 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-10 08:09:50 +00:00
555fc78f27 Neon version of SubbandCoherence()
The performance gain on a Nexus 7 reported by audioproc is ~1.4%

The output is NOT bit exact.  Any difference seen is +-1.

BUG=3131
R=bjornv@webrtc.org, cd@webrtc.org

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

Patch from Scott LaVarnway <slavarnw@gmail.com>.

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6647 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-10 08:03:11 +00:00
ac800c8004 Neon version of rftbsub_128()
The performance gain on a Nexus 7 reported by audioproc is ~4.5%

The output is bit exact.

BUG=3131
TESTED=trybots and manually
R=bjornv@webrtc.org, cd@webrtc.org

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

Patch from Scott LaVarnway <slavarnw@gmail.com>.

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6646 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-10 07:53:13 +00:00
b753762ce6 delay_estimator: Increases test coverage and makes input spectrum const
Noticed lack in tests verifying initial state is not left if we have zero input spectra. This CL adds such a test and change input spectra to const at affected places.

BUG=N/A
TESTED=trybots and manually
R=kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6631 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-09 06:40:09 +00:00
e55641d4f7 Neon version of rftfsub_128()
The performance gain on a Nexus 7 reported by audioproc is ~3.3%

The output is bit exact.

BUG=3131
TESTED=trybots and manually on N7
R=bjornv@webrtc.org, cd@webrtc.org

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

Patch from Scott LaVarnway <slavarnw@gmail.com>.

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6628 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-08 21:12:23 +00:00
69ef9911e4 delay_estimator: Allows dynamically used history sizes
Gives the user a possibility to dynamically change the history size. The main advantage is, for example, that you now can start with a wide delay range and over time decrease the search window to lower complexity.

Adds
- two new APIs.
- and updates unit tests.
- a history_size member variable to BinaryDelayEstimator.
- two help function re-allocating buffer memory.

One thing that makes this a little complicated is that you are allowed to have multiple delay estimators with the same reference, so changing the buffer sizes at one place will automatically give you a mismatch at other places.

BUG=3532, 3504
TESTED=trybots and manually
R=aluebs@webrtc.org, kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6593 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-03 14:59:03 +00:00
224a140339 Make experimental NS API not purely virtual
Because not all subclasses will want to bother overriding these methods.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6592 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-03 13:41:39 +00:00
c0ba4392f1 common_audio: Removes macro WEBRTC_SPL_SHIFT_W16
We should avoid macros in general (see style guide). This shift macro is not a severe one, since there is a check for negativity.

BUG=3348,3353
TESTED=trybots and manually
R=kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6591 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-03 13:38:53 +00:00
38214d53db EchoCancellationImpl::ProcessRenderAudio: Use float samples directly
This patch lets EchoCancellationImpl::ProcessRenderAudio ask the given
AudioBuffer for float sample data directly, instead of asking for
int16 samples and then converting manually.

Since EchoCancellationImpl::ProcessRenderAudio takes a const
AudioBuffer*, it was necessary to add some const accessors for float
data to AudioBuffer.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6590 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-03 09:47:33 +00:00
6d21ddca5f audio_processing/aec: Refactors NonLinearProcessing to prepare for NEON optimizations
Puts functionality necessary to calculate sub-band coherences into a function.

BUG=3131
TESTED=trybots
R=kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6570 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-01 10:03:42 +00:00