149 Commits

Author SHA1 Message Date
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
pwestin@webrtc.org
c450a19669 Removed Version function from all modules.
TBR=henrik_a
Review URL: http://webrtc-codereview.appspot.com/329023

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1330 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-01-04 15:00:12 +00:00
bjornv@webrtc.org
80d28b22b9 Changed to new ring buffer in AECM.
Replaced the old ring buffer in AECM with the new one. Also removed the old one from ring_buffer.
Changes are bit exact according to audioproc_unittest fixed.

TEST=audioproc_unittest
Review URL: http://webrtc-codereview.appspot.com/331022

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1327 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-01-04 09:55:09 +00:00
bjornv@webrtc.org
70adcd46b2 Delay estimator improvements.
Robustness improvements to the delay estimator used in AECM and AEC. In AEC only for logging. Faster convergence.

TEST=audioproc_unittest + offline file tests.

output_data_fixed.pb updated despite unverified changes in r1112.
Review URL: http://webrtc-codereview.appspot.com/337006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1306 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-29 14:51:21 +00:00
andrew@webrtc.org
6d6a43d6e3 Use char as ring-buffer data type.
- Avoids a bunch of char* casts.
- Use enum type rather than char.

TEST=audioproc_unittest on Linux (float and fixed), build on Windows

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1303 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-28 22:40:15 +00:00
bjornv@webrtc.org
267d0133ff Fixed pointer operations on void.
This should fix the error on Win where pointer arithmetics are done on void pointers. Type cast to char to interpret a size.
Review URL: http://webrtc-codereview.appspot.com/329019

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1300 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-28 10:26:17 +00:00
bjornv@webrtc.org
7270a6bcc2 Merged apm-buffer branch [r1293] back to trunk.
This CL includes a larger structural change in how we handle buffers in AEC. We now perform FFT at once and move within blocks to compensate for system delays.

TEST=audioproc_unittest(float and fix), voe_auto_test
Review URL: http://webrtc-codereview.appspot.com/335012

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1299 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-28 08:44:17 +00:00
pwestin@webrtc.org
f4d3b9d5a1 Cleaned up leaky symbols in NS.
Review URL: http://webrtc-codereview.appspot.com/337001

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1288 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-22 12:33:08 +00:00
andrew@webrtc.org
5ae19de3ec Fix error in RtpDump::Start due to r1156.
- r1156 fixed a check on the _text member of FileWrapper. Turns out this
  was incompatibile with the RTP dumps, which want to write both binary
  and text data. Writing text data to a file open as "b" isn't actually
  an error, so I simply removed the check.
- Also cleans up the interface, most notably removing all WebRtc types.

TEST=vie_auto_test

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1175 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-13 22:59:33 +00:00
kma@webrtc.org
4a8b1eaf6e In NS, replaced a divide calculatoin by shifting, and thus saved the MIPS by 5%(ARMv7) and 10%(ARMv7-Neon). Bit is not exact with the original. Quality is similar.
Review URL: http://webrtc-codereview.appspot.com/298004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1112 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-06 18:04:48 +00:00
andrew@webrtc.org
c9cc3750cf Add missing system_wrappers dependency.
TBR=kma@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1097 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-03 20:51:20 +00:00
kma@webrtc.org
b59c031660 For Android ARMv7 platforms, added a feature of dynamically detecting the existence of Neon,
and when it's present, switch to some functions optimized for Neon at run time.
Review URL: http://webrtc-codereview.appspot.com/268002

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1096 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-03 18:34:50 +00:00
andrew@webrtc.org
ae7017d588 Fix missing dependency in audioproc.
TBR=bjornv@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1095 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-03 01:43:29 +00:00
andrew@webrtc.org
7bf2646e4d Make protobuf use optional.
- By default, disable the AudioProcessing protobuf usage in the Chromium
  build. The standalone build is unaffected.
- Add a test for the AudioProcessing debug dumps.

TEST=audioproc_unittest

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1094 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-03 00:03:31 +00:00
bjornv@webrtc.org
132feb1270 Made tables static.
In this CL global tables have been moved to where they are actually used. If for some reason they need to be available in a larger scope we can add them again at that point.
Review URL: http://webrtc-codereview.appspot.com/303002

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1075 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-12-01 15:40:50 +00:00
andrew@webrtc.org
1e91693fe2 Move stream_delay check to ProcessStream().
- was_stream_delay_set_ was being incorrectly reset in
AnalyzeReverseStream().
- Added tests to catch this case.

BUG=
TEST=audioproc_unittest

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1054 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-29 18:28:57 +00:00
bjornv@webrtc.org
4b80eb4fcd Name change resampler.c/h to aec_resampler.c/h.
To avoid possible conflict with resampler in common_audio.
Review URL: http://webrtc-codereview.appspot.com/296006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1046 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-29 08:44:01 +00:00