Commit Graph

22 Commits

Author SHA1 Message Date
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
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
56e4a05053 Remove ProcessingComponent's dependence on AudioProcessingImpl.
- Move needed accessors to AudioProcessing.
- Inject the crit directly as a dependency.
- Remove the now unneeded EchoCancellationImplWrapper.

BUG=2894
R=aluebs@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5620 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-27 22:23:17 +00:00
f92aaff104 AudioProcessing is not a Module.
Remove Module as the base class of AudioProcessing. The inherited
methods were all no-ops.

TBR=bjornv

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5556 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-15 04:22:49 +00:00
17342e5092 Add a method to inform AudioProcessing that its output will be muted.
R=turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5538 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-12 22:28:31 +00:00
75dd2885c5 Add an interface for accepting keypress signals to AudioProcessing.
R=aluebs@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5529 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-11 20:52:30 +00:00
54744918ef Update AudioProcessing::Create docs.
TBR=bjornv

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5488 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-05 06:30:29 +00:00
c7c7a531f3 Add Config struct for experimental AGC.
Disable in the audio mixer.

TBR=aluebs,bjornv
BUG=2844

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5454 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-29 04:57:25 +00:00
e84978f3d8 Add a Config parameter to AudioProcessing::Create().
Also add a parameter-less version; the (int) version is deprecated and
should be removed.

TBR=aluebs,bjornv
BUG=2844

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5431 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-25 02:09:06 +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
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
0b72f5863b Add experimental noise suppression dummy API.
Add this flag to the voe_cmd_test.

R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5134 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-19 15:17:51 +00:00
6b1e21924a Move the Config DelayCorrection struct to audio_processing.h.
TBR=bjornv

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4849 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-25 23:46:20 +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
9162080527 Fix some chromium-style warnings in webrtc/modules/audio_processing/
BUG=163
R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4472 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-02 11:44:11 +00:00
61e596fc49 Add a Config class interface to AudioProcessing for passing options.
Pass the Config down to all AudioProcessing components.

Also add an EchoCancellationImplWrapper to optionally create different
EchoCancellationImpls.

BUG=2117
TBR=turaj@webrtc.org
TESTED=git try

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4400 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-25 18:28:29 +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
d72b3d6c81 Fix cpplint errors in audio_processing.h
TBR=leozwang@webrtc.org
BUG=1114

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3108 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-11-15 21:46:06 +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
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