139 Commits

Author SHA1 Message Date
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
andrew@webrtc.org
400ad6928e Fix compile warning in NS.
BUG=issue151
TEST=audioproc_unittest

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1041 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-28 21:33:42 +00:00
andrew@webrtc.org
1e39bc80dc Handle debug files from multiple AEC instances.
Review URL: http://webrtc-codereview.appspot.com/295006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1036 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-27 23:46:23 +00:00
andrew@webrtc.org
a919d3a643 Don't return a zero delay with insufficient data.
For estimating a delay over a long segment (e.g. a file) this can
throw off the estimate. Better not to add values to the AEC's histogram
until they're reliable.

BUG=
TEST=audiproc, audioproc_unittest

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1035 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-27 23:40:58 +00:00
andrew@webrtc.org
ba028a31c9 Fix sample rate printout in process_test.
TBR=bjornv

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1008 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-23 20:37:12 +00:00
andrew@webrtc.org
828af1b4b9 Add lookahead to the delay estimator.
TEST=audioproc_unittest

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@992 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-22 22:40:27 +00:00
andrew@webrtc.org
8594f7688b Add a gyp variable for AEC debug dumps.
TEST=process_test.cc

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@987 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-22 00:51:41 +00:00
kma@webrtc.org
a249f35203 Correct several makefile errors for Android build.
Review URL: http://webrtc-codereview.appspot.com/267024

git-svn-id: http://webrtc.googlecode.com/svn/trunk@986 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-21 22:16:10 +00:00
bjornv@webrtc.org
2f047ccede Removed unnecessary variable to avoid compiler error on Win.
Review URL: http://webrtc-codereview.appspot.com/267021

git-svn-id: http://webrtc.googlecode.com/svn/trunk@975 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-18 12:03:25 +00:00
bjornv@webrtc.org
6a9835d59c Delay estimator structural changes.
Improved the way we handle different data types (float vs fixed) and reduced the complexity by nearly 50%.
We now have a generic struct for both float and fixed delay estimators and a core struct for the binary spectrum based delay estimator. All wrapper codes (for both fixed and float) are gathered in delay_estimator_wrappers.*.
Moved out the far end history buffer to AEC(M).
Added a union to handle difference types when create.
Review URL: http://webrtc-codereview.appspot.com/277004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@973 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-18 08:30:34 +00:00
kjellander@webrtc.org
0403ef419f Restructuring and adding unit test targets on project level instead of in common_audio.
Review URL: http://webrtc-codereview.appspot.com/280001

git-svn-id: http://webrtc.googlecode.com/svn/trunk@959 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-17 08:35:47 +00:00