165 Commits

Author SHA1 Message Date
andrew@webrtc.org
5f23d64cf2 Set the stream delay to zero if too low.
- Return a stream warning instead of an error.
- Add a few delay offset tests.

BUG=
TEST=audioproc_unittest

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2316 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-05-29 21:14:06 +00:00
kma@webrtc.org
0d321da7e1 Refactored ARM specific code in Noise Suppression. Bit exact.
Review URL: https://webrtc-codereview.appspot.com/459006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2303 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-05-26 01:05:27 +00:00
leozwang@webrtc.org
1755a57cbc Check return result of fwrite, [APM]
Description:
This cl added checking return result of fwrite which makes it compile
on ChromeOS/ARM.

BUG=issue:541
TEST=Build on all platforms
Review URL: https://webrtc-codereview.appspot.com/583009

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2302 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-05-25 19:20:35 +00:00
andrew@webrtc.org
9dc45dad1b Move trunk/test/data -> trunk/data
BUG=
TEST=all trybot test failures passed locally

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2280 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-05-23 15:39:01 +00:00
leozwang@webrtc.org
ada5db4e75 Enable aecm neon optimized code in android build
Description:
This CL is a follow up of http://review.webrtc.org/575008/ and r2241.
Because of r2243, r2241 is messed up and reverted, I'm going to commit it again.
This is exact same to the last patch in 575008, just want to inform you and have
your double check before I commit it.

The original description
This cl enables cpu detection and aecm optimized code in android build.

BUG=
TEST=build on all platforms
Review URL: https://webrtc-codereview.appspot.com/568006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2259 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-05-18 16:48:45 +00:00
kjellander@webrtc.org
7e4a72a78a Revert 2241 - Enable aecm neon optimized code in android build
Description:
This cl enables cpu detection and aecm optimized code in android build.

BUG=
TEST=build on all platforms
Review URL: https://webrtc-codereview.appspot.com/575008

TBR=leozwang@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/566013

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2249 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-05-16 11:49:45 +00:00
leozwang@webrtc.org
fe742200d5 Enable aecm neon optimized code in android build
Description:
This cl enables cpu detection and aecm optimized code in android build.

BUG=
TEST=build on all platforms
Review URL: https://webrtc-codereview.appspot.com/575008

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2241 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-05-15 16:11:24 +00:00
bjornv@webrtc.org
61d0745e86 Resolve coverity warnings.
14050, 14051, 14243, 14314

In APM:
- Uninitialized variable initialized.
- NULL pointer sanity checks corrected.

Tested with trybots and audioproc_unittest.

BUG=None
TEST=None

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2229 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-05-11 07:51:44 +00:00
bjornv@webrtc.org
cd54e56d72 Delay estimation performance test.
Added a test to verify estimation performance. Tested with audioproc_unittest and trybots.

BUG=issue435
TEST=None

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2209 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-05-10 07:41:23 +00:00
leozwang@webrtc.org
f5fe1000de Enable cpu auto detection and ns optimized code on android
BUG=
TEST=
Review URL: https://webrtc-codereview.appspot.com/547006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2195 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-05-08 15:20:02 +00:00
andrew@webrtc.org
07bf9a07f5 Add test to verify identical input channels result in identical output channels.
BUG=issue411
TEST=audioproc_unittest, trybots

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2182 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-05-05 00:32:00 +00:00
andrew@webrtc.org
63a509858d Rename AudioFrame members.
BUG=
TEST=trybots

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2164 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-05-02 23:56:37 +00:00
andrew@webrtc.org
ecac9b721e Add tests for downmixing and no processing.
BUG=issue419
TEST=audioproc_unittest

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2154 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-05-02 00:04:10 +00:00
andrew@webrtc.org
369166a179 Add API for disabling the high pass filter.
BUG=issue419
TEST=manually with voe_cmd_test

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2105 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-04-24 18:38:03 +00:00
bjornv@webrtc.org
bcde776340 Changed Delay Estimator create call
Unit tests updated and runs.
Change made w.r.t. issue 441.

BUG=Issue441
TEST=None

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2079 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-04-20 09:35:20 +00:00
bjornv@webrtc.org
4ade5506eb Delay Estimator Unit tests
This CL includes unit tests to verify correct behavior of the delay estimator used in AEC and AECM.

Tested with audioproc_unittest

BUG=
TEST=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2049 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-04-18 09:42:16 +00:00
bjornv@webrtc.org
2e729762c7 New _CreateBinaryDelayEstimator() and removed _history_size()
Changed create function to match malloc() in functionality.
Removed unused function.

Tested with audioproc_unittest

BUG=
TEST=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2048 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-04-18 08:30:29 +00:00
bjornv@webrtc.org
180f83f8e2 File name change to follow style
A unit test should end with *_unittest.* Otherwise the test itself will be evaluated for line coverage.

Tested with audioproc_unittest

BUG=
TEST=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2045 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-04-18 07:01:10 +00:00
bjornv@webrtc.org
bfda85f2ee Safe handling of invalid inputs in delay_estimator.
The delay_estimator crash on invalid create inputs when running new unit tests. This can't occur on a higher level unless corresponding enum and defines are incorrectly changed.

The create and free functions are now more like malloc() and free() in design. The complete change to that will be done in a seperate CL.

BUG=
TEST=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2027 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-04-16 07:28:29 +00:00
bjornv@webrtc.org
7056908774 System delay unit tests
Added a system delay test class. Noticed I don't need the ApmTest class at all, which simplified the implementation.

Start at patch set 3. The others are not complete.

BUG=None
TEST=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2014 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-04-12 12:13:50 +00:00
cd@webrtc.org
85b4a1b715 Special version of 'bitrv2' when len is 128:
* 5.5% AEC overall speedup for the straight C path.
* 8.6% AEC overall speedup for the SSE2 path.
Review URL: https://webrtc-codereview.appspot.com/480001

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2004 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-04-10 21:25:17 +00:00
cd@webrtc.org
70ed0a6f91 No casting and call lower precision trigonometric functions:
* 2.2% AEC overall speedup for the straight C path.
* 2.4% AEC overall speedup for the SSE2 path.
Review URL: https://webrtc-codereview.appspot.com/477002

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1989 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-04-05 00:38:55 +00:00
leozwang@webrtc.org
a3736345dd Introduced WEBRTC_ANDROID_PLATFORM_BUILD and make test app build on all platforms
BUG=
TEST=build on all platforms
Review URL: https://webrtc-codereview.appspot.com/446012

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1907 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-03-16 21:36:00 +00:00
leozwang@webrtc.org
9a85d8e3dd Remove test apps from Android.mk in APM
BUG=
TEST=build on android and pc platforms
Review URL: https://webrtc-codereview.appspot.com/448005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1905 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-03-16 18:03:18 +00:00
andrew@webrtc.org
61bf8e33c4 Flush far-end buffers when larger than system delay.
Add a helper function to manage far-end buffer moves.

BUG=issue362
TEST=manually with audioproc

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1899 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-03-15 19:04:55 +00:00
andrew@webrtc.org
6f9f817e06 Add an API to offset system delay.
Plumb it through VoiceEngine.

BUG=
TEST=voe_auto_test,audioproc_unittest

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1846 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-03-06 19:03:39 +00:00
xians@webrtc.org
8435e8e3d8 Remove the deprecated kTraceModuleCall trace from audio processing module.
Review URL: https://webrtc-codereview.appspot.com/399003

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1733 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-02-21 10:37:26 +00:00
andrew@webrtc.org
737c023e42 Properly disable sse2 source on non-x86.
BUG=
TEST=build on Linux.

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1684 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-02-14 19:57:50 +00:00
andrew@webrtc.org
75f1948b0e Restore AECM Coverity fix.
Add a test which would have caught the crash introduced by r1628.

BUG=274
TEST=audioproc_unittest

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1657 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-02-09 17:16:18 +00:00
wu@webrtc.org
a8084b07e3 Revert r1628 which causes the crash of voe_auto_test.
With r1628, it's possible the second memcpy got a NULL nearendClean.

TBR=bjornv
Review URL: https://webrtc-codereview.appspot.com/390005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1643 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-02-08 17:56:39 +00:00
andrew@webrtc.org
648af7423f Clean up MapSetting().
- Add assert(false) for "impossible" cases.
- Remove tests for invalid enum values.
- Modify MapError() to look the same way.

BUG=
TEST=audioproc_unittest

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1631 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-02-08 01:57:29 +00:00
bjornv@webrtc.org
236e842bca Removed memcpy of pointer to itself, triggering Valgrind warning.
BUG=272
Review URL: https://webrtc-codereview.appspot.com/389002

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1628 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-02-07 17:22:44 +00:00
andrew@webrtc.org
daacee81b8 Use better reference files with audioproc_unittest.
The files are shorter (7 s) with one set provided for each sample rate.

Will be accompanied by the following set of files in the resource bundle:
far8_stereo.pcm
far16_stereo.pcm
far32_stereo.pcm
near8_stereo.pcm
near16_stereo.pcm
near32_stereo.pcm

BUG=114
TEST=audioproc_unittest

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1617 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-02-07 00:01:04 +00:00
mflodman@webrtc.org
a39621ee1b Disabling APM test for invalid enum values.
Review URL: https://webrtc-codereview.appspot.com/378006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1608 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-02-06 14:00:12 +00:00
mflodman@webrtc.org
ec31bc1321 Fixed APM tests.
TEST=ApmTest.*

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1607 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-02-06 12:42:45 +00:00
mflodman@webrtc.org
657b2a4965 Added return due to gcc complaints in r1604.
TBR=andrew

TEST=Bulid with clang version 3.1 (trunk 148911) and gcc.

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1606 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-02-06 11:06:01 +00:00
mflodman@webrtc.org
c80d9d9361 Removed default cases causing clang errors, -Wcovered-switch-default.
BUG=
TEST=Bulid with clang version 3.1 (trunk 148911)

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1604 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-02-06 10:11:25 +00:00
kma@webrtc.org
727a0a03a1 Fixed a bug in assembly code in aecm_core.c (hasn't caused a problem yet).
Did apm unit test. Bit exact.
Review URL: https://webrtc-codereview.appspot.com/366010

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1583 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-02-01 00:05:22 +00:00
andrew@webrtc.org
293d22b39b Add a new macro for bit-exact audioproc tests.
Enable bit-exact test for all fixed-point configs.

BUG=114
TEST=audioproc_unittest on all platforms.

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1575 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-01-30 22:04:26 +00:00
andrew@webrtc.org
40654039cd Use pointer-based CriticalSectionScoped().
The reference-based constructor is deprecated.

BUG=185
TEST=audioproc_unittest

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1573 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-01-30 20:51:15 +00:00
bjornv@webrtc.org
0c6f931420 Removed versions in module/audio_processing and common_audio/vad.
Affected vad_unittest only.
In addition changed to correct header guards.
Review URL: https://webrtc-codereview.appspot.com/367019

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1567 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-01-30 09:39:08 +00:00
andrew@webrtc.org
b9d7d934de Rename interface/ to include/ in audio_processing.
BUG=none
TEST=build on Linux.

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1552 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-01-25 19:21:13 +00:00
bjornv@webrtc.org
f4b77fd722 VAD refactor: Mode changed to "int".
As part of style this CL includes changing the input aggressiveness mode from int16_t to int. No other style changes made.
Impact on:
- Audio Processing: Changed return value on MapSetting().
- Function test in audio_conference_mixer already uses int. No action.
- NetEq: Function pointer changes and input parameter changes in SetVADMode() and SetVADModeInternal().
- Audio Coding: Uses enum ACMVADMode which is type independent.
- VAD: Two unit tests.

TESTS=vad_unittests, neteq_unittests, audioproc_unittest
Review URL: https://webrtc-codereview.appspot.com/373001

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1544 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-01-25 12:40:00 +00:00
andrew@webrtc.org
f5d8c3bc3b Fix audioproc_unittest on Windows.
On Windows, files have to be closed before they can be removed.

TBR=bjornv
BUG=none
TEST=audioproc_unittest on Windows.

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1541 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-01-24 21:35:39 +00:00
andrew@webrtc.org
e2ed5baf47 Enable audioproc_unittest on all platforms.
But, for the time being, limit the bit-exact test to 64-bit Linux debug.

TEST=build and run all configs on Linux, and standard configs on Win and Mac.

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1500 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-01-20 19:06:38 +00:00
bjornv@webrtc.org
12cccddc63 NS-SWB: Actived SWB processing at once, i.e., no startup phase.
Performance verified on a few 32 kHz files.
BUG=
TEST=audioproc, audioproc_unittest

Updated output_data_float.pb
Changes in SWB tests (3, 6, 9 and 12) as

Running test 3 of 12...
src/modules/audio_processing/test/unit_test.cc:1182: Failure
Value of: max_output_average
  Actual: 1363
Expected: test->max_output_average()
Which is: 1386

Running test 6 of 12...
src/modules/audio_processing/test/unit_test.cc:1182: Failure
Value of: max_output_average
  Actual: 2070
Expected: test->max_output_average()
Which is: 2109

Running test 9 of 12...
src/modules/audio_processing/test/unit_test.cc:1182: Failure
Value of: max_output_average
  Actual: 1314
Expected: test->max_output_average()
Which is: 1336

Running test 12 of 12...
src/modules/audio_processing/test/unit_test.cc:1182: Failure
Value of: max_output_average
  Actual: 2049
Expected: test->max_output_average()
Which is: 2085
Review URL: https://webrtc-codereview.appspot.com/344013

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1465 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-01-19 08:56:38 +00:00
andrew@webrtc.org
c8d012fb32 Use -msse2 for SSE2 optimized code.
When targeting 32-bit Linux, we need to pass -msse2 to gcc to compile
SSE2 intrinsics. However, -msse2 also gives gcc license to automatically
generate SSE2 instructions wherever it pleases. This will crash our code
on processors without SSE2 support.

This change breaks the files with SSE2 intrinsics into separate targets,
such that we can limit the scope of -msse2 to where it's needed.

We no longer need to employ the WEBRTC_USE_SSE2 define; the build system
decides when SSE2 is supported and compiles the appropriate files.

TBR=bjornv@webrtc.org
TEST=audioproc (performance testing), audioproc_unittest, video_processing_unittests, build on Linux (targeting ia32/x64, with disable_sse2==0/1), Mac, Windows

Review URL: http://webrtc-codereview.appspot.com/352008

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1425 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-01-13 19:43:09 +00:00
kma@webrtc.org
746f9e31c0 Changed build settings for ARMv5 in Android.
I found some issues in building ARMv5 with ICM. This CL includes fixes,
and a design change which now will exclude any NEON libraries unless 
the build is for dynamic detection or for Neon specifically.
Review URL: http://webrtc-codereview.appspot.com/330021

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1335 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-01-04 17:47:57 +00:00
andrew@webrtc.org
d77a6614fa Consts can't be used as C array size initializers.
(Unless you happen to be using clang...)

TBR=bjornv@webrtc.org
TEST=build on gcc

Review URL: http://webrtc-codereview.appspot.com/333029

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1333 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-01-04 16:22:24 +00:00
andrew@webrtc.org
3905b0c45d Protect against divide-by-zeros in AGC.
TEST=audioproc_unittest

Review URL: http://webrtc-codereview.appspot.com/333024

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1331 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-01-04 15:47:20 +00:00