124 Commits

Author SHA1 Message Date
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
andrew@webrtc.org
755b04a06e Add RMS computation for the RTP level indicator.
- Compute RMS over a packet's worth of audio to be sent in Channel, rather than the captured audio in TransmitMixer.
- We now use the entire packet rather than the last 10 ms frame.
- Restore functionality to LevelEstimator.
- Fix a bug in the splitting filter.
- Fix a number of bugs in process_test related to a poorly named
  AudioFrame member.
- Update the unittest protobuf and float reference output.
- Add audioproc unittests.
- Reenable voe_extended_tests, and add a real function test.
- Use correct minimum level of 127.

TEST=audioproc_unittest, audioproc, voe_extended_test, voe_auto_test

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@950 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-15 16:57:56 +00:00
andrew@webrtc.org
0db7dc6e18 Add file-playing channels to voe_cmd_test.
Fix file reading and writing.

TEST=voe_cmd_test

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@938 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-13 01:34:05 +00:00
andrew@webrtc.org
cd8243807e Unpack the full set of audioproc data.
Review URL: http://webrtc-codereview.appspot.com/276004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@937 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-11 19:13:36 +00:00
andrew@webrtc.org
c4f129f97c Improve the mixing saturation protection scheme.
A single participant is not processed at all. With multiple
participants, we divide-by-2 as before when mixing. Afterwards,
the mixed signal is limited by the AGC to -7 dBFS and then doubled to
restore the original level.

This preserves the level while guaranteeing good saturation protection.

Add a test to voe_auto_test. Hijack and improve the existing mixing test
for this.

TEST=voe_auto_test, voe_cmd_test

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@920 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-10 03:41:22 +00:00
andrew@webrtc.org
4b13fc9c09 Add delay modification to process_test.
Review URL: http://webrtc-codereview.appspot.com/266007

git-svn-id: http://webrtc.googlecode.com/svn/trunk@916 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-09 19:27:11 +00:00
andrew@webrtc.org
89088b963e Fix the path to protoc.gypi.
It was mistakenly pointing to the trunk/build rather than the
trunk/src/build copy, causing the Chrome build to fail.

TEST=./build/gyp_chromium in Chrome

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@883 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-03 20:43:45 +00:00
andrew@webrtc.org
18ee6ec8e9 Use __inline in NS-fixed.
The use of "inline" was failing to build on Windows.

BUG=
TEST=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@860 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-01 17:07:46 +00:00
andrew@webrtc.org
3119ecfec8 Fix audioproc build errors on Windows.
BUG=
TEST=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@859 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-11-01 17:00:18 +00:00
andrew@webrtc.org
cb18121990 Add an unpacker tool for audioproc debug files.
- It only unpacks audio data at the moment.
- Also switch to Chrome's protoc.gypi for protobuf targets. This reduces
  the complexity of our targets.

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@817 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-10-26 00:27:17 +00:00
kma@webrtc.org
ca325ececd Corrected a linux build error introduced in issue 246005.
Review URL: http://webrtc-codereview.appspot.com/246008

git-svn-id: http://webrtc.googlecode.com/svn/trunk@809 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-10-25 02:36:09 +00:00
kma@webrtc.org
913644b92d For commiting changes in CL 277002, due to file structure changes introduced during
the review of the code.
Review URL: http://webrtc-codereview.appspot.com/246005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@805 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-10-24 21:36:33 +00:00
bjornv@webrtc.org
4c636764b7 Updated the AEC delay logging to output values in ms. PB output updated.
Review URL: http://webrtc-codereview.appspot.com/223003

git-svn-id: http://webrtc.googlecode.com/svn/trunk@770 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-10-19 08:47:40 +00:00
andrew@webrtc.org
4d5d5c1267 Reorganize the audio_processing source.
- Remove main and source directories.
- Change .gyp, .gypi and Android.mk files correspondingly. No other
  source changes.

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@767 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-10-19 01:40:33 +00:00
kjellander@webrtc.org
61f07c3184 I have made a small fix so it will execute properly from the default working directory location (trunk), finding its resource files.
The ApmTest.Process test is still failing and needs to be resolved.

BUG=
TEST=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@761 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-10-18 06:54:58 +00:00
kma@webrtc.org
af57de006a Some code style changes in audio_processing/ns/main/source/ by Astyle,
with a little manual modification.
Review URL: http://webrtc-codereview.appspot.com/201002

git-svn-id: http://webrtc.googlecode.com/svn/trunk@698 4adac7df-926f-26a2-2b94-8c16560cd09d
2011-10-05 23:36:01 +00:00