Commit Graph

149 Commits

Author SHA1 Message Date
4b60c73e74 Hook up libjingle WebRtcVoiceEngine to Call API for combined A/V BWE.
BUG=4574,3109
R=pbos@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9150}
2015-05-07 12:07:46 +00:00
ccfc93913c Reinterpret AudioOption delay_agnostic_aec to override HW-AEC
This CL will change the behavior when enabling Delay Agnostic AEC through the media constraint (and AudioOption delay_agnostic_aec)

FROM
 Use DA-AEC instead of AECM if there is no HW-AEC
TO
 Use DA-AEC even if there is a HW-AEC

Before this change the user will not really know if the Delay Agnostic AEC is running or not, so it is more intuitive if the option overrides the built-in one if the user has asked for it.

BUG=4472
TESTED=locally with a modified AppRTCDemo app
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9147}
2015-05-07 05:43:23 +00:00
7c027b64ae Enable more Clang warnings for talk/
BUG=4242
R=andresp@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9053}
2015-04-22 11:21:10 +00:00
1d83f1e89f talk/media/webrtc/webrtcvoiceengine: Delay Agnostic AEC should not override HW-AEC
In https://webrtc-codereview.appspot.com/48699004/ I made the audio option delay_agnostic_aec override HW-AEC if such exists. That is not an expected behavior and is fixed in this CL.

In addition we now check if EnableBuiltInAEC() was successful before disabling the SW-AEC. This revealed a bug in that return value, also fixed here.

BUG=4472
R=henrika@webrtc.org, perkj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8936}
2015-04-07 13:25:52 +00:00
ef88309a6e Cleanup: Forward declare AudioFrame type in voiceprocess.h
No need to include this header since the API is just taking a pointer to
it.

BUG=1092
TEST=./webrtc/build/gyp_webrtc && ninja -C out/Debug
R=tommi@webrtc.org

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

Patch from Thiago Farina <tfarina@chromium.org>.

Cr-Commit-Position: refs/heads/master@{#8928}
2015-04-06 10:36:41 +00:00
7100dcd317 Adding "usedtx" as Opus codec parameter.
This is according to https://tools.ietf.org/html/draft-spittka-payload-rtp-opus-03

Specifically,

usedtx: specifies if the decoder prefers the use of DTX. values are 1 and 0. If no value is specified, usedtx is assumed to be 0.

BUG=1014
R=juberti@webrtc.org, tina.legrand@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8872}
2015-03-27 04:06:35 +00:00
5225dd8180 If audio ptime is negotiated in SDP, then we would set the audio codec with negotiated packet size if it's allowed. If the negotiated packet size is not supported by the working codec, then we would use the next smallest size.
BUG=4289
TEST=Manual/Auto Test
R=juberti@webrtc.org, tina.legrand@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8863}
2015-03-25 23:39:33 +00:00
bf395c1fc0 Add WebRTC Media Constraint to force using Delay Agnostic AEC on Android
If built-in Echo Cancellation is available on a device it is automatically enabled. The reason is that it in most cases performs better than the WebRTC software echo control for mobile. The drawback is that we can not develop, test and rollout the delay agnostic AEC (DA-AEC) on Android as for desktops.

This CL includes
- adding a media constraint to enable/disable DA-AEC.
- automatically turning on echo cancellation if DA-AEC is enabled.
- a fix in the AEC that enables delay estimation when DA-AEC is enabled, but delay metrics is disabled.
- sets the Config struct ReportedDelay, which controls DA-AEC internally in the AEC.

The test code to verify that it works in AppRTCDemo can be found here:
https://webrtc-codereview.appspot.com/50479004/

BUG=4472
TESTED=locally on N7, N6, Android One
R=glaznev@webrtc.org, perkj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8861}
2015-03-25 21:46:10 +00:00
eebcab5ce9 rtc::Buffer: Rename length to size, for conformance with the STL
And add a constructor for creating an uninitialized Buffer of a
specified size.

(I intend to follow up with more Buffer changes, but since it's rather
widely used, the rename is quite noisy and works better as a separate
CL.)

R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8841}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8841 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-24 09:20:19 +00:00
3f11823a1a Disables SW AEC when built-in AEC is enabled
As of r7849 the built-in AEC on devicing supporting it is enabled by default.
Unfortunately, the SW AEC (AECM) was not disabled, hence running on top of the built-in one. This is not necessary. In fact it reduce double talk performance significantly.

BUG=4431
TESTED=manually
R=henrika@webrtc.org, mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8735}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8735 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-16 14:22:17 +00:00
14665ff7d4 Roll chromium_revision e144d30..6fdb142 (318658:318841) + remove OVERRIDE macro
Clang version changed 223108:230914
Details: e144d30..6fdb142/tools/clang/scripts/update.sh

Removes the OVERRIDE macro defined in:
* webrtc/base/common.h
* webrtc/typedefs.h

The majority of the source changes were done by running this in src/:
perl -0pi -e "s/virtual\s([^({;]*(\([^({;]*\)[^({;]*))(OVERRIDE|override)/\1override/sg" `find {talk,webrtc} -name "*.h"  -o -name "*.cc*" -o -name "*.mm*"`

which converted all:
virtual Foo() OVERRIDE
functions to:
Foo() override

Then I manually edited:
* talk/media/webrtc/fakewebrtccommon.h
* webrtc/test/fake_common.h

Remaining uses of OVERRIDE was fixed by search+replace.

Manual edits were done to fix virtual destructors that were
overriding inherited ones.

Finally a build error related to the pure virtual definitions of
Read, Write and Rewind in common_types.h required a bit of
refactoring in:
* webrtc/common_types.cc
* webrtc/common_types.h
* webrtc/system_wrappers/interface/file_wrapper.h
* webrtc/system_wrappers/source/file_impl.cc

This roll should make it possible for us to finally re-enable deadlock
detection for TSan on the buildbots.

BUG=4106
R=pbos@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8596}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8596 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-04 13:04:54 +00:00
d324546ced Misc. cleanup split out of https://webrtc-codereview.appspot.com/37699004/ :
* Move constants into the files/functions that use them
* Declare variables in the narrowest scope possible
* Use correct (expected, actual) order for gtest macros
* Remove unused functions
* Untabify
* 80-column limit
* Avoid C-style casts
* Prefer true typed constants to "enum hack" constants
* Print size_t using the right format macro
* Shorten and simplify code
* Other random cleanup bits and style fixes

BUG=none
TEST=none
R=henrik.lundin@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8467}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8467 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-23 21:29:45 +00:00
c0bd7be0df Adding two new stats to VoiceReceiverInfo
There have been requests of two new stats namely

speech_expand_rate and secondary_decoded_rate.

BUG=3867
R=henrik.lundin@webrtc.org, henrika@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8415}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8415 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-18 15:24:39 +00:00
f9b5c1b3d0 Removing CELT.
CELT is not supported in WebRTC/Libjingle. There are a few left-over in our code base. They are cleaned up in this CL.

BUG=
R=pbos@webrtc.org, tina.legrand@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8385}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8385 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-17 12:37:14 +00:00
ff689be3c0 Use std::min and std::max instead of self-defined functions such as rtc::_min/_max.
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8347}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8347 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-12 11:55:32 +00:00
62f6e75673 Refactoring WebRTC Java/JNI audio recording in C++ and Java.
This is a big refactoring of the existing C++/JNI/Java support for audio recording in native WebRTC:

- Removes unused code and old WEBRTC logging macros
- Now uses optimal sample rate and buffer size in Java AudioRecord (used hard-coded sample rate before)
- Makes code more inline with the implementation in Chrome
- Adds helper methods for JNI handling to improve readability
- Changes the threading model (high-prio audio thread now lives in Java-land and C++ only works as proxy)
- Adds basic thread checks
- Removes all locks in C++ land
- Removes all locks in Java
- Improves construction/destruction
- Additional cleanup

Tested using AppRTCDemo and WebRTCDemo APKs on N6, N5, N7, Samsung Galaxy S4 and
Samsung Galaxy S4 mini (which uses 44.1kHz as native sample rate).

BUG=NONE
R=magjed@webrtc.org, perkj@webrtc.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8325}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8325 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-11 08:39:19 +00:00
8cf9bdb3fa Remove USE_WEBRTC_DEV_BRANCH.
talk/ and webrtc/ are hosted in the same repository and it no longer
makes sense to support building talk/ without the corresponding webrtc/
catalog.

R=bjornv@webrtc.org, juberti@webrtc.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#8291}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8291 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-09 10:17:12 +00:00
cc64a9cc4f voice_engine: Updates GetEcDelayMetrics() w.r.t. new metric
As of r8230 (https://webrtc-codereview.appspot.com/39739004/) a new Echo Delay Metric was added calculating the fraction of poor values that may cause the AEC to fail. There are currently two methods for GetDelayMetrics() in webrtc::AutioProcessing and one is deprecated.

This CL updates
- GetEcDelayMetrics()
- voe_auto_test
- talk/media/(fake)webrtcvoiceengine

BUG=N/A
TESTED=locally and trybots
R=pbos@webrtc.org, tina.legrand@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8251}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8251 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-05 12:53:24 +00:00
a954c07ee1 AppRTCDemo (Android): built-in AEC should be enabled if device supports it and in combination with Java-based audio layer
BUG=4034
R=andrew@webrtc.org, perkj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7849 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-09 16:22:09 +00:00
4591fbd09f Use size_t more consistently for packet/payload lengths.
See design doc at https://docs.google.com/a/chromium.org/document/d/1I6nmE9D_BmCY-IoV6MDPY2V6WYpEI-dg2apWXTfZyUI/edit?usp=sharing for more information.

This CL was reviewed and approved in pieces in the following CLs:
https://webrtc-codereview.appspot.com/24209004/
https://webrtc-codereview.appspot.com/24229004/
https://webrtc-codereview.appspot.com/24259004/
https://webrtc-codereview.appspot.com/25109004/
https://webrtc-codereview.appspot.com/26099004/
https://webrtc-codereview.appspot.com/27069004/
https://webrtc-codereview.appspot.com/27969004/
https://webrtc-codereview.appspot.com/27989004/
https://webrtc-codereview.appspot.com/29009004/
https://webrtc-codereview.appspot.com/30929004/
https://webrtc-codereview.appspot.com/30939004/
https://webrtc-codereview.appspot.com/31999004/
Committing as TBR to the original reviewers.

BUG=chromium:81439
TEST=none
TBR=pthatcher,henrik.lundin,tina.legrand,stefan,tkchin,glaznev,kjellander,perkj,mflodman,henrika,asapersson,niklas.enbom

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7726 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-20 22:28:14 +00:00
4ef22d1d29 Setting Opus FEC as default
BUG=3986
R=mflodman@webrtc.org, tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7710 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-17 09:26:39 +00:00
8038d42749 Follow-up fixes for G722
This CL addresses post-commit comments on r7662. See
https://webrtc-codereview.appspot.com/27089004/#ps40001.

BUG=3951
R=pthatcher@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7677 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-11 08:38:24 +00:00
f85dbce041 Reapply "Advertise G722 as 8 kHz rather than 16 kHz""
This reverts r7653 and relands r7645. The reason for the original revert was that G722 disappeared from the SDP offer. This is now fixed. Also, a unit test was updated compared with the original change.

BUG=3951
TBR=pthatcher@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7662 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-07 12:25:00 +00:00
dced5d7835 Revert "Advertise G722 as 8 kHz rather than 16 kHz"
This reverts r7645.

TBR=pthatcher@webrtc.org
BUG=3951

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7653 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-06 15:27:43 +00:00
1dcca4028f Advertise G722 as 8 kHz rather than 16 kHz
G722 is a 16 kHz (wideband) speech codec, but a "bug" in the RFC
has it listed as 8 kHz. This means that the codec should be
advertised as 8 kHz in SDP messages. This change fixes that.

R=juberti@google.com
TBR=pthatcher@webrtc.org
BUG=3951
TEST=Verify that the G722 is advertised as a=rtpmap:9 G722/8000, not /16000.

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7645 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-06 08:55:01 +00:00
2dc6f3154d Adapting bitrate according to maxplaybackrate for Opus.
BUG=
R=mflodman@webrtc.org, tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7575 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-31 05:33:10 +00:00
8219529b98 Cleaning up r7562-7567.
Wrongly used git svn dcommit for committing a CL.

Then two reverts were applied.

Still something needs to be cleaned.

BUG=

TBR=kjellander@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7568 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-30 08:23:54 +00:00
879fac81d1 (Auto)update libjingle 78822708-> 78823675
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7567 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-30 07:50:13 +00:00
5f73a37597 Revert 7563 "before rebase" due to wrong submission
> before rebase

TBR=minyue@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7566 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-30 07:49:58 +00:00
c673bb9f29 before rebase
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7563 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-30 07:19:57 +00:00
0b62672576 adding default rates
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7562 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-30 07:19:49 +00:00
2623695dfb Renaming bandwidth to bitrate in webrtcvoiceengine.
"bandwidth" is usually a misleading mentioning. It can mean network throughput, audio frequency contents, etc.

This is to remove the confusion inside webrtcvoiceengine

BUG=
R=juberti@webrtc.org, pbos@webrtc.org, tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7551 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-29 02:27:08 +00:00
9d446f2e16 (Auto)update libjingle 78296920-> 78342456
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7507 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-23 12:22:06 +00:00
97abeee282 (Auto)update libjingle 77263371-> 77296420
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7400 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-08 22:24:30 +00:00
6e5c78422d (Auto)update libjingle 75875619-> 75878731
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7235 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-19 06:46:37 +00:00
5d639b3ef3 (Auto)update libjingle 75141932-> 75179475
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7129 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-10 07:57:12 +00:00
1f8a23757a (Auto)update libjingle 74235596-> 74297316
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6997 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-28 10:52:44 +00:00
b4c7b09c13 (Auto)update libjingle 73927775-> 74032598
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6965 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-25 12:11:58 +00:00
0481f15f02 (Auto)update libjingle 73399579-> 73626167
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6928 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-19 14:56:59 +00:00
a09a99950e (Auto)update libjingle 73222930-> 73226398
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6891 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-13 17:26:08 +00:00
6b21b71068 (Auto)update libjingle 72205295-> 72320533
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6806 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-31 15:08:53 +00:00
d4e598d57a (Auto)update libjingle 72097588-> 72159069
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6799 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-29 17:36:52 +00:00
a8d8ad2be6 (Auto)update libjingle 71240799-> 71250251
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6705 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-16 14:23:08 +00:00
d8524348bb (Auto)update libjingle 71107853-> 71115715
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6675 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-14 20:05:09 +00:00
3ffa1f917e (Auto)update libjingle 70422491-> 70424781
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6586 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-02 19:51:26 +00:00
0bb9fac98c (Auto)update libjingle 70343444-> 70394475
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6581 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-02 11:54:09 +00:00
d8a9069080 (Auto)update libjingle 70340027-> 70343444
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6579 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-01 19:26:43 +00:00
0d15159b04 (Auto)update libjingle 69634309-> 69640360
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6512 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-20 19:02:09 +00:00
8563ef448a (Auto)update libjingle 69587333-> 69588608
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6501 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-20 00:13:01 +00:00
fbd13286dc (Auto)update libjingle 69555283-> 69567902
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6497 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-19 19:50:55 +00:00