18 Commits

Author SHA1 Message Date
andrew@webrtc.org
40ee3d07ed Consolidate audio conversion from Channel and TransmitMixer.
Replace the two versions with a single DownConvertToCodecFormat. As
mentioned in comments, this could be further consolidated with
RemixAndResample but we should write a full audio converter class in
that case.

Along the way:
- Fix the bug present in Channel::Demultiplex with mono input and a
stereo codec.
- Remove the 32 kHz max from the OnDataAvailable path. This avoids a
48 -> 32 -> 48 conversion when VoE is passed 48 kHz audio; instead we
get a straight pass-through to ACM. The 32 kHz conversion is still
needed in the RecordedDataIsAvailable path until APM natively supports
48 kHz.
- Merge resampler improvements from ACM1 to ACM2. This allows ACM to
handle 44.1 kHz audio passed to VoE and was originally done here:
https://webrtc-codereview.appspot.com/1590004
- Reuse the RemixAndResample unit tests for DownConvertToCodecFormat.
- Remove unused functions from utility.cc.

BUG=3155,3000,b/12867572
TESTED=voe_cmd_test using both the OnDataAvailable and
RecordedDataIsAvailable paths, with a captured audio format of all
combinations of {44.1,48} kHz and {1,2} channels, running through all
codecs, and finally using both ACM1 and ACM2.

R=henrika@webrtc.org, turaj@webrtc.org, xians@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5843 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-03 21:56:01 +00:00
fischman@webrtc.org
a789f3720a VoiceEngine(iOS & Android): removed NOT_SUPPORTED
Also:
- removed underflow of a uint32 creating crazy-large delay values
- removed always-fail AudioDeviceIPhone::MicrophoneIsAvailable() impl (see
  bug 3132)
- removed unnecessary exclusion of features from iOS & Android builds

BUG=2050,3132
R=andrew@webrtc.org, niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5820 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-01 00:16:35 +00:00
andrew@webrtc.org
6c264cc92e Clean up AudioProcessing defaults and errors.
- Remove unneeded #defines and switch the remainder to consts.
- All AudioProcessing components are disabled by default, so remove
explicit disables.
- AudioProcessing uses a rational 16 kHz mono default, so no need to
explictly initialize.
- Add assert(false) to real-time errors which should not occur.

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

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4924 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-04 17:54:09 +00:00
andrew@webrtc.org
eda189be14 Remove redundant STR_CASE_CMP macro definitions.
R=minyue@webrtc.org, turaj@webrtc.org, xians@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4711 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-09 17:50:10 +00:00
pbos@webrtc.org
676ff1ed89 Ref-counted rewrite of ChannelManager.
The complexity of the last ChannelManager and potentially usage of it as well caused race conditions and deadlocks in loopback voe_auto_test. This ref-counted solution takes no long-term locks, uses less locks overall and is significantly easier to understand.

ScopedChannel has been split up into a ChannelOwner with a reference to a channel and an Iterator over ChannelManager. Previous code was really used for both things. ChannelOwner is used as a shared pointer to a channel object, while an Iterator should work as expected.

BUG=2081
R=tommi@webrtc.org, xians@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4502 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-07 17:57:36 +00:00
pbos@webrtc.org
d900e8bea8 Proper spacing for end-of-namespace comments.
BUG=
R=mflodman@webrtc.org, tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4293 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-03 15:12:26 +00:00
andrew@webrtc.org
0851df8d60 Remove unneeded *_NOT_SUPPORTED from VoEAudioProcessing.
* Remove ANDROID_NOT_SUPPORTED from a bunch of echo metrics calls
where it actually is supported.
* No error to call GetTypingDetectionStatus.
* Consolidate typing detection disablement to reduce boilerplate.

R=niklas.enbom@webrtc.org, xians@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4247 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-19 17:03:47 +00:00
pbos@webrtc.org
956aa7e087 Include files from webrtc/.. paths in voice_engine/
BUG=1662
R=henrikg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4079 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-21 13:52:32 +00:00
pbos@webrtc.org
9213521ea9 Remove const for plain data types in voice_engine/
BUG=1644
R=henrikg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4018 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-14 08:31:39 +00:00
solenberg@webrtc.org
a442d4d983 Removed all code enclosed in WEBRTC_SRTP #ifdefs, and the unsupported VoE SRTP APIs. Test stubs are left in place as we still have the (De)RegisterExternalEncryption() APIs, although they are currently untested.
Today I had to figure out this code was legacy. Now next person doesn't have to.

BUG=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3738 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-03-28 09:14:36 +00:00
andrew@webrtc.org
1b31c78e5f Remove VoE's default call in Trace::SetLevelFilter.
This is an application level setting. Applying it here has the potential to override the application's preferences.

BUG=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3727 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-03-26 14:09:48 +00:00
andrew@webrtc.org
f0a90c37c4 Expose the capture-side AudioProcessing object and allow it to be injected.
* Clean up the configuration code, including removing most of the weird defines.
* Add a unit test.

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3605 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-03-05 01:12:49 +00:00
andrew@webrtc.org
1e7ed7afe9 Use LOG_F interface for unsupported functions.
This will provide the function name in the log.

BUG=b/8115521
TESTED=enabled ANDROID_NOT_SUPPORTED on Linux and observed log lines as expected

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3474 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-02-05 21:23:39 +00:00
andrew@webrtc.org
4a6f62d4dc Remove (in practice) the voice engine channel limit.
There's really no reason for this limit. I've bumped it to a
practically unreachable ceiling, with a TODO for removing it
entirely.

TBR=henrika
BUG=b/8122300

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3459 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-02-01 23:42:44 +00:00
niklas.enbom@webrtc.org
218c542c0b Make VoE handle longer delays
Review URL: https://webrtc-codereview.appspot.com/1047004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3385 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-17 22:25:49 +00:00
andrew@webrtc.org
00c7c4315b Replace voice engine utility functions with system wrapper variants.
SLEEP -> SleepMs
GET_TIME_IN_MS -> TickTime::MillisecondTimestamp

These could cause unused function errors on some compilers.

BUG=1228

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3326 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-02 16:06:39 +00:00
leozwang@webrtc.org
d5fbdc8e52 Increase number of channels that can be supported on Android
BUG=
TEST=local
Review URL: https://webrtc-codereview.appspot.com/967005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3090 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-11-13 21:30:34 +00:00
andrew@webrtc.org
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