Commit Graph

100 Commits

Author SHA1 Message Date
be4ab99a53 Disabling RealFFTTest.RealAndComplexMatch and AudioProcessingTest.Formats as they currently are broken with gcc 4.8.
BUG=3370
R=bjornv@webrtc.org, kjellander@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6197 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-20 12:42:01 +00:00
21299d4e00 Remove the use of AudioFrame::energy_ from AudioProcessing and VoE.
We want to remove energy_ entirely as we've seen that carrying around
this potentially invalid value is dangerous.

Results in the removal of AudioBuffer::is_muted(). This wasn't used in
practice any longer, after the level calculation moved directly to
channel.cc

Instead, now use ProcessMuted() in channel.cc, to shortcut the level
computation when the signal is muted.

BUG=3315
TESTED=Muting the channel in voe_cmd_test results in rms=127.
R=bjornv@webrtc.org, kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6159 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-14 19:00:59 +00:00
8f69330310 Replace scoped_array<T> with scoped_ptr<T[]>.
scoped_array is deprecated. This was done using a Chromium clang tool:
http://src.chromium.org/viewvc/chrome/trunk/src/tools/clang/rewrite_scoped_ar...

except for the few not-built-on-Linux files which were updated manually.

TESTED=trybots
BUG=2515
R=niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5985 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-25 23:10:28 +00:00
103657b484 Add keyboard channel support to AudioBuffer.
Also use local aliases for AudioBuffers for brevity.

BUG=2894
R=aluebs@webrtc.org, bjornv@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5973 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-24 18:28:56 +00:00
f26c9e8369 Use unique filenames in AudioProcessingTests for parallelization.
TBR=bjornv
TESTED="gtest-parallel -w 32 --gtest_filter=*AudioProcessingTests*
out/Debug/modules_unittests" passes.

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5968 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-24 03:46:46 +00:00
ddbb8a2c24 Support arbitrary input/output rates and downmixing in AudioProcessing.
Select "processing" rates based on the input and output sampling rates.
Resample the input streams to those rates, and if necessary to the
output rate.

- Remove deprecated stream format APIs.
- Remove deprecated device sample rate APIs.
- Add a ChannelBuffer class to help manage deinterleaved channels.
- Clean up the splitting filter state.
- Add a unit test which verifies the output against known-working
native format output.

BUG=2894
R=aluebs@webrtc.org, bjornv@webrtc.org, xians@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5959 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-22 21:00:04 +00:00
1092ea0192 Add format specification to output file names
This change facilitates running ApmTest.VerifyDebugDumpInt and
ApmTest.VerifyDebugDumpFloat in parallel, since they are not writing
to the same files any longer.

R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5829 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-02 07:46:49 +00:00
b13a7d5b1c Don't disable experimental AGC in audioproc.
R=aluebs@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5798 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-27 00:11:11 +00:00
a8b97373d5 Add tests and modify tools for new float deinterleaved interface.
- Add an Initialize() overload to allow specification of format
parameters. This is mainly useful for testing, but could be used in
the cases where a consumer knows the format before the streams arrive.
- Add a reverse_sample_rate_hz_ parameter to prepare for mismatched
capture and render rates. There is no functional change as it is
currently constrained to match the capture rate.
- Fix a bug in the float dump: we need to use add_ rather than set_.
- Add a debug dump test for both int and float interfaces.
- Enable unpacking of float dumps.
- Enable audioproc to read float dumps.
- Move more shared functionality to test_utils.h, and generally tidy up
a bit by consolidating repeated code.

BUG=2894
TESTED=Verified that the output produced by the float debug dump test is
correct. Processed the resulting debug dump file with audioproc and
ensured that we get identical output. (This is crucial, as we need to
be able to exactly reproduce online results offline.)

R=aluebs@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5676 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-10 22:26:12 +00:00
3e0b60f465 Switch to correct interpretation of int and float input data in audio_processing_unittest
BUG=N/A
TESTED=trybots
TBR=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5642 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-05 00:18:53 +00:00
17e40641b3 Add a deinterleaved float interface to AudioProcessing.
This is mainly to support the native audio format in Chrome. Although
this implementation just moves the float->int conversion under the hood,
we will transition AudioProcessing towards supporting this format
throughout.

- Add a test which verifies we get identical output with the float and
int interfaces.
- The float and int wrappers are tasked with conversion to the
AudioBuffer format. A new shared Process/Analyze method does most of
the work.
- Add a new field to the debug.proto to hold deinterleaved data.
- Add helpers to audio_utils.cc, and start using numeric_limits.
- Note that there was no performance difference between numeric_limits
and a literal value when measured on Linux using gcc or clang.

BUG=2894
R=aluebs@webrtc.org, bjornv@webrtc.org, henrikg@webrtc.org, tommi@webrtc.org, turaj@webrtc.org, xians@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5641 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-04 20:58:13 +00:00
bc1d22461b Add experimental noise suppression flag to audioproc test
R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5608 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-25 16:50:22 +00:00
27c6980239 Move the volume quantization workaround from VoE to AGC.
Voice engine shouldn't really have to manage this. Instead, have AGC
keep track of the last input volume, so that it can avoid getting stuck
under coarsely quantized conditions.

Add a test to verify the behavior.

TESTED=unittests, and observed that AGC didn't get stuck on a MacBook
where this problem can actually occur.

R=bjornv@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5571 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-18 20:24:56 +00:00
ce8e077cf0 Add a keypress field to the audioproc debug proto.
Log the value in AudioProcessing, and unpack it to a new file in the
unpacking tool.

TESTED=
- The new tool can unpack old dumps.
- The old tool can unpack new dumps (without keypress.bool).
- Unpacking a new dump from voe_cmd_test produces a keypress.bool that
appears correct when examined.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5535 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-12 15:28:30 +00:00
c9ee412070 Re-enabling audio processing tests
R=bjornv@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5473 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-03 14:41:57 +00:00
6a94734d4d Adds back set_sample_rate_hz() when Init is called in recordings.
Recordings that had a AnalyzeReverseStream() call prior to ProcessStream() where aborted due to sample rates being set upon call by ProcessStream(). That change was done in r5346.
Before we have a smarter handling on how to set sample rate automatically, this CL adds back that setting.

BUG=
TESTED=trybots, modules_unittests
R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5394 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-16 08:41:09 +00:00
8bc4fcfeb6 Temporarily disabling audio processing tests.
R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5370 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-13 09:14:47 +00:00
bbd47fc5b5 Enables robust delay validation in AEC delay logging.
* Explicitly disabled robust validation in AECM.
* Updated audio_processing_unittests for using robust delay validation in AEC.
* Updated output_data_float.pb (not needed for Android nor fixed point, since AECM is untouched).

BUG=None
TESTED=modules_unittests, trybots
R=aluebs@webrtc.org, andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5368 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-13 08:54:34 +00:00
d335094852 Init to 16 kHz in the fixed-point profile.
Fixes modules_unittests for fixed-point builds (Android).

TBR=bjornv

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5349 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-07 18:57:10 +00:00
60730cfe3c Remove the requirement to call set_sample_rate_hz and friends.
Instead have ProcessStream transparently handle changes to the stream
audio parameters (sample rate and channels). This removes two locks
per 10 ms ProcessStream call taken by VoiceEngine (four total with the
audio level indicator.)

Also, prepare future improvements by having the splitting filter take
a length parameter. This will allow it to work at different sample
rates. Remove the useless splitting_filter wrapper.

TESTED=voe_cmd_test with audio processing enabled and switching between
codecs; unit tests.

R=aluebs@webrtc.org, bjornv@webrtc.org, turaj@webrtc.org, xians@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5346 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-07 17:45:09 +00:00
f8be8df33a audio_processing_unittest: unbreak clang compilation.
BUG=2735
R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5313 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-17 23:46:39 +00:00
863b536100 Allow opening an AEC dump from an existing file handle.
This is necessary for Chromium to be able enable the dump with the sanbox enabled. It will open the file in the browser process and pass the handle to the render process.

This changes FileWrapper to deal with the case were the file handle is not managed by the wrapper.

BUG=2567
R=andrew@webrtc.org, henrika@webrtc.org, perkj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5239 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-06 16:05:17 +00:00
3d9981d58a Remove unused ThreadData struct.
TBR=bjornv

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5216 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-04 17:13:47 +00:00
d7696c4ed1 Compile-out functions only used by the bit-exact test.
Causes errors on platforms where the test is unused.

TBR=bjornv

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5207 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-03 23:39:16 +00:00
22858d4785 Add an extended filter option to audioproc.
R=bjornv@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5024 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-23 14:07:17 +00:00
3555303cb0 Roll chromium_revision 226126:228675 and fix clang warnings
By request from thakis@chromium.org, I disabled the
-Wno-unused-const-variable setting that is set in Chromium's
common.gypi so we can prepare our code for it's removal.

This required some cleanup in order to get the code to compile
with Clang having the -Wunused-const-variable warning enabled.

TEST=all trybots passing
BUG=none
R=niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4966 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-15 20:10:17 +00:00
ca764ab22d Add a parameter to audioproc for overriding the delay.
Rename the parameter for adding to the input delay to "add_delay".

R=bjornv@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4939 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-07 16:44:32 +00:00
f3930e941c Small refactoring of AudioProcessing use in channel.cc.
- Apply consistent naming.
- Use a scoped_ptr for rx_audioproc_.
- Remove now unnecessary AudioProcessing::Destroy().

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4784 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-18 22:37:32 +00:00
a950300b0e Disables unit tests that don't work on Android for Android.
BUG=N/A
R=andrew@webrtc.org, kjellander@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4306 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-08 18:53:54 +00:00
c66aaaf921 Rename unit_test.{cc,h} under module_unittest.
Squelches the following Windows trybot warning:
warning LNK4042: object specified more than once; extras ignored

BUG=
R=andrew@webrtc.org, stefan@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4288 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-03 07:56:33 +00:00
83cebb25d7 Removes unused main function that is poluting the build.
BUG=N/A
R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4276 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-27 18:31:13 +00:00
8c34ceeef1 Include "gtest/gtest.h", not by full path, on WEBRTC_ANDROID_PLATFORM_BUILD
BUG=
TBR=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4119 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-28 09:24:03 +00:00
7fad4b8c9f Include files from webrtc/.. paths in audio_processing/
BUG=1662
R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4116 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-28 08:11:59 +00:00
dff69c56b0 Add AEC suppression level option to audioproc.
TBR=bjornv

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3927 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-30 23:01:09 +00:00
1acb3b33bc Add comfort noise disabling and routing mode selection to audioproc.
TBR=bjornv

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3907 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-26 00:39:27 +00:00
b7192b8247 WebRtc_Word32 -> int32_t in audio_processing/
BUG=314

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3809 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-10 07:50:54 +00:00
91d11b3cdd Adds new AEC API to audio_processing.
One unit test added.
Tested with audioproc_unittest and trybots

TEST=none
BUG=none

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3613 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-03-05 16:53:09 +00:00
6be1e934ad Properly error check calls to AudioProcessing.
Checks must be made with "!= 0", not "== -1". Additionally:
* Clean up the function calling into AudioProcessing.
* Remove the unused _noiseWarning.
* Make the other warnings bool.

BUG=chromium:178040

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3590 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-03-01 18:47:28 +00:00
78693fe37c Return an error when greater than 16 kHz is used with AECM.
BUG=chromium:178040

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3587 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-03-01 16:36:19 +00:00
3e10249f20 Added delay estimation test to audio processing unit tests.
The test verifies that we get proper delay metrics when inserting delayed versions of the same file to far-end and near-end.
Failure of the test has been verified through a missmatch between AEC delay buffer size and test buffer size.
Also added a missing file rewind to another test and removed some lint warnings.

TEST=audioproc_unittest, trybots
BUG=None

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3514 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-02-14 15:29:09 +00:00
00ab7cf4fd Fix perf output for audioproc and iSAC fixed-point tests
The measurement and trace entries had been mixed up in the calls to webrtc::test::PrintResult, resulting in the plotted graphs were named after the metric. The parameter names are quite confusing which probably led to this.

BUG=none
TEST=none

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3496 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-02-11 12:33:03 +00:00
ae1a58bba4 Replace AudioFrame's operator= with CopyFrom().
Enforce DISALLOW_COPY_AND_ASSIGN to catch offenders.

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3395 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-22 04:44:30 +00:00
bafdae3cfc Fix simulated analog gain in audioproc.
* It doesn't make much sense to apply at all when reading from the protobuf.
* Reduced the gain to be closer to actual mics.

BUG=1260

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3366 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-11 23:11:29 +00:00
10abe25f6d Make audioproc output files be written to output dir by default.
This makes the following files be written into the output dir instead of
the current working dir:
* out.pcm
* vad_out.dat
* ns_prob.dat

TEST=out/Debug/audioproc -aecm -ns -agc --fixed_digital --perf -pb
resources/audioproc.aecdump
All trybots passing.
BUG=none

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3302 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-12-17 18:28:07 +00:00
0e739508e0 Added buildbot benchmarking in iSAC and APM into Android platform build.
Review URL: https://webrtc-codereview.appspot.com/964022

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3247 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-12-07 15:26:28 +00:00
b43502e388 Revert 3170 - Added performance benchmarking in APM and iSAC-fix for Buildbots.
Review URL: https://webrtc-codereview.appspot.com/929022

TBR=kma@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/969009

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3172 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-11-26 23:57:38 +00:00
4cd8f1f182 Added performance benchmarking in APM and iSAC-fix for Buildbots.
Review URL: https://webrtc-codereview.appspot.com/929022

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3170 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-11-26 22:02:47 +00:00
8186534111 Only reinitialize AudioProcessing when needed.
This takes away the burden from the user, resulting in cleaner code.

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3010 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-10-27 00:28:27 +00:00
534e495df0 Qickly fixed android platform build breakage
TBR=ajm
Review URL: https://webrtc-codereview.appspot.com/920006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2966 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-10-22 21:21:52 +00:00
14b43beb7c Move src/ -> webrtc/
TBR=niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2963 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-10-22 18:19:23 +00:00