Commit Graph

11375 Commits

Author SHA1 Message Date
cc8856c9c2 Remove unused static VideoEncoder functions
BUG=None
TBR=stefan

Review-Url: https://codereview.webrtc.org/2967853002
Cr-Commit-Position: refs/heads/master@{#18891}
2017-07-04 13:03:41 +00:00
8eadead3f4 Adds support for USB audio devices in AppRTCMobile on Android.
This change extends the definition of wired headset to also include USB
devices. The effect is that audio will now be routed to USB audio devices
when used in combination with AppRTCMobile.

BUG=webrtc:7931

Review-Url: https://codereview.webrtc.org/2971613003
Cr-Commit-Position: refs/heads/master@{#18889}
2017-07-04 12:10:48 +00:00
a9521e248e Reduce send rate to 50% if overusing before we have an acknowledged bitrate.
Check TimeToReducefurther to avoid reducing too often.

BUG=webrtc:7884

Review-Url: https://codereview.webrtc.org/2954923003
Cr-Commit-Position: refs/heads/master@{#18888}
2017-07-04 11:52:58 +00:00
2c3161c86e Changed default value for the duration of the echo in echocanceller 3
BUG=webrtc:7519

Review-Url: https://codereview.webrtc.org/2971683002
Cr-Commit-Position: refs/heads/master@{#18887}
2017-07-04 11:33:11 +00:00
0d7f04daa0 Reland of Add received audio/video call duration metrics based on packets.
Original issue:
https://codereview.webrtc.org/2957073002/

Reason for reland:
Failed Android unit tests and failed Windows compile.
The tests seemed related at the time, but not after more consideration.

Tracks time between first and last audio and packets to successfully pass through Call object's DeliverRtp method, timed with packet timestamps.

BUG=webrtc:7882
TBR=stefan@webrtc.org

Review-Url: https://codereview.webrtc.org/2970793003
Cr-Commit-Position: refs/heads/master@{#18886}
2017-07-04 11:05:06 +00:00
38fecafa48 Revert of Remove webrtc/tools (patchset #1 id:1 of https://codereview.webrtc.org/2970743003/ )
Reason for revert:
This should wait until https://chromium-review.googlesource.com/c/558980/ is submitted.

Original issue's description:
> Remove webrtc/tools
>
> BUG=webrtc:7855
> TBR=kwiberg@webrtc.org
>
> Review-Url: https://codereview.webrtc.org/2970743003
> Cr-Commit-Position: refs/heads/master@{#18883}
> Committed: ed56680adb

TBR=mbonadei@webrtc.org,kwiberg@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:7855

Review-Url: https://codereview.webrtc.org/2973493002
Cr-Commit-Position: refs/heads/master@{#18885}
2017-07-04 09:02:49 +00:00
d3588cfb31 Improved low-level echo handling in echo canceller 3
This CL addresses the issue of echo leakage of low level
echoes by making the echo canceller more restrictive for
that scenario.

BUG=webrtc:7930

Review-Url: https://codereview.webrtc.org/2969943002
Cr-Commit-Position: refs/heads/master@{#18884}
2017-07-04 08:54:37 +00:00
ed56680adb Remove webrtc/tools
BUG=webrtc:7855
TBR=kwiberg@webrtc.org

Review-Url: https://codereview.webrtc.org/2970743003
Cr-Commit-Position: refs/heads/master@{#18883}
2017-07-04 08:34:47 +00:00
382f21cd9c Revert of Add received audio and video call duration metrics based on packets. (patchset #4 id:140001 of https://codereview.webrtc.org/2957073002/ )
Reason for revert:
The following, seemingly related, unit tests crash on Android32 (M Nexus5X).
org.webrtc.PeerConnectionTest#testCompleteSession
org.webrtc.PeerConnectionTest#testDataChannelOnlySession

A Windows build fails with a mysterious compile error.

Original issue's description:
> Add received audio/video call duration metrics based on packets.
>
> Tracks time between first and last audio and packets to successfully pass through Call object's DeliverRtp method, timed with packet timestamps.
>
> BUG=webrtc:7882
>
> Review-Url: https://codereview.webrtc.org/2957073002
> Cr-Commit-Position: refs/heads/master@{#18881}
> Committed: 746749237a

TBR=stefan@webrtc.org,aleloi@webrtc.org,asapersson@webrtc.org,holmer@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:7882

Review-Url: https://codereview.webrtc.org/2972613002
Cr-Commit-Position: refs/heads/master@{#18882}
2017-07-04 08:11:49 +00:00
746749237a Add received audio/video call duration metrics based on packets.
Tracks time between first and last audio and packets to successfully pass through Call object's DeliverRtp method, timed with packet timestamps.

BUG=webrtc:7882

Review-Url: https://codereview.webrtc.org/2957073002
Cr-Commit-Position: refs/heads/master@{#18881}
2017-07-04 07:19:22 +00:00
2a2b297aa6 Add underscore at end of Call members' names
BUG=None

Review-Url: https://codereview.webrtc.org/2971583002
Cr-Commit-Position: refs/heads/master@{#18880}
2017-07-03 16:25:27 +00:00
4235d78b57 Disabling flaky complexity tests for the audio processing module.
The complexity test for the audio processing module have long proven
to give false alarms of complexity regressions for which no related
changes can be identified. Attempts to address that has improved the
that, but the tests do still give false alarms.

This CL deactivates the complexity tests until a better way of
testing this is available.

BUG=chromium:713507, webrtc:5846,webrtc:6685,webrtc:7712

Review-Url: https://codereview.webrtc.org/2897403006
Cr-Commit-Position: refs/heads/master@{#18879}
2017-07-03 16:11:22 +00:00
7ab7fd66c4 Fix gmock warnings emanating from FlexfecReceiveStreamTest
BUG=None

Review-Url: https://codereview.webrtc.org/2966963002
Cr-Commit-Position: refs/heads/master@{#18878}
2017-07-03 13:57:13 +00:00
7c7796b8ec Register FlexFEC SSRC to receive RTCP on sending side.
BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2965883002
Cr-Commit-Position: refs/heads/master@{#18877}
2017-07-03 13:02:53 +00:00
48587f91f8 Changing AudioConferenceMixer logging to base/logging.h
We'd like to remove all occurrences of WEBRTC_TRACE and delete the
macro! One logging mechanism is enough.

AudioConferenceMixer is scheduled for removal and is one of the 
things tracked by bugs.webrtc.org/4690. The logging is changed to not
block webrtc:5118

NOTRY=True

Bug: webrtc:5118
Change-Id: Ibad1ae45e8af1ba5bbe253d4c693ecf9e7c422ac
Reviewed-on: https://chromium-review.googlesource.com/518172
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18876}
2017-07-03 12:35:46 +00:00
4257ab2e02 Add received interframe delay UMA metrics
BUG=webrtc:7420

Review-Url: https://codereview.webrtc.org/2966733002
Cr-Commit-Position: refs/heads/master@{#18875}
2017-07-03 08:15:58 +00:00
ad515c459b fix comment length
BUG=NONE
NOTRY=True

Review-Url: https://codereview.webrtc.org/2966743002
Cr-Commit-Position: refs/heads/master@{#18874}
2017-07-03 07:47:44 +00:00
a80c16a67c Revert "Update includes for webrtc/{base => rtc_base} rename (2/3)"
This reverts commit c3771cc4d37f5573fe53b7c7cff295a4f0f9560f.
(breaks downstream internal project)

BUG=webrtc:7634
NOTRY=True
NOPRESUBMIT=True

Review-Url: https://codereview.webrtc.org/2972463002 .
Cr-Commit-Position: refs/heads/master@{#18873}
2017-07-01 14:48:18 +00:00
dca1e09db7 Revert "Update includes for webrtc/{base => rtc_base} rename (1/3)"
This reverts commit c8fa692ec44fd6ba4fa3d085ac3161a262fc18c5.

BUG=webrtc:7634
NOTRY=True
NOPRESUBMIT=True

Review-Url: https://codereview.webrtc.org/2964773002 .
Cr-Commit-Position: refs/heads/master@{#18872}
2017-07-01 14:42:25 +00:00
c8fa692ec4 Update includes for webrtc/{base => rtc_base} rename (1/3)
I used a command like this to update the paths:
perl -pi -e "s/webrtc\/base/webrtc\/rtc_base/g" `find webrtc/rtc_base -name "*.cc" -o -name "*.h"`

The only manual edit is to add an include of webrtc/rtc_base/checks.h in
webrtc/modules/audio_device/android/opensles_common.h, which likely
was needed due to changed include paths due to 'git cl format'.

BUG=webrtc:7634
NOTRY=True
NOPRESUBMIT=True

Review-Url: https://codereview.webrtc.org/2969653002
Cr-Commit-Position: refs/heads/master@{#18871}
2017-06-30 21:02:00 +00:00
c3771cc4d3 Update includes for webrtc/{base => rtc_base} rename (2/3)
I used a command like this to update the paths:
perl -pi -e "s/webrtc\/base/webrtc\/rtc_base/g" `find webrtc/rtc_base -name "*.cc" -o -name "*.h"`

BUG=webrtc:7634
NOPRESUBMIT=True # cpplint errors that aren't caused by this CL.

Review-Url: https://codereview.webrtc.org/2969623003
Cr-Commit-Position: refs/heads/master@{#18870}
2017-06-30 20:42:44 +00:00
89c4a7e57d Wire up experiment for improved screenshare bwe.
Also adds some full stack test variants with the experiment enabled.

BUG=webrtc:7694

Review-Url: https://codereview.webrtc.org/2949553002
Cr-Commit-Position: refs/heads/master@{#18869}
2017-06-30 20:27:40 +00:00
e96c45b662 Reland "Update includes for webrtc/{base => rtc_base} rename (3/3)"
I used a command like this to update the paths:
perl -pi -e "s/webrtc\/base/webrtc\/rtc_base/g" `find webrtc/rtc_base -name "*.cc" -o -name "*.h"`

Changes since last attempt: Some system headers were moved back to their original location since on Windows compilation breaks otherwise.

BUG=webrtc:7634
NOTRY=True
NOPRESUBMIT=True
TBR=kwiberg@webrtc.org

Review-Url: https://codereview.webrtc.org/2966523003
Cr-Commit-Position: refs/heads/master@{#18868}
2017-06-30 17:45:21 +00:00
224e65939a Reland of "VideoFrameBuffer: Remove deprecated functions"
This reverts commit f1e34832b84798d7665d2aad9a5b3f33cbe5a274.

Reason for reland: Chomium code has been updated.

Original change's description:
> Revert "VideoFrameBuffer: Remove deprecated functions"
> 
> This reverts commit 428c9e218538278e6b0db42d1b734431bb432e1a.
> 
> Reason for revert: Breaks Chromium WebRTC FYI on Mac Builder. http://build.chromium.org/p/chromium.webrtc.fyi/builders/Mac%20Builder/builds/25788
> 
> Original change's description:
> > VideoFrameBuffer: Remove deprecated functions
> > 
> > Bug: webrtc:7632
> > Change-Id: I06f97bacd51f94d1f90b5286cc39e06a1697bb9b
> > Reviewed-on: https://chromium-review.googlesource.com/535479
> > Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
> > Reviewed-by: Niels Moller <nisse@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#18832}
> 
> TBR=magjed@webrtc.org,nisse@webrtc.org
> 
> Change-Id: I2e6617420746bba3e4637019d3bce03be12a4643
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:7632
> Reviewed-on: https://chromium-review.googlesource.com/555550
> Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#18834}

TBR=magjed@webrtc.org,nisse@webrtc.org

Change-Id: I41c7b31ab52ba162fd0a9ab03a4b45aecb97cb09
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:7632
Reviewed-on: https://chromium-review.googlesource.com/558244
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18867}
2017-06-30 16:39:27 +00:00
e75d96b5bd Revert of Test and fix for huge bwe drop after alr state. (patchset #13 id:320001 of https://codereview.webrtc.org/2931873002/ )
Reason for revert:
Resetting the estimate means that we need to start gathering data from scratch again. The combination of
1) DelayBasedEstimator not reacting to overuse unless there is a valid estimate of the acknowledged bitrate, and
2) AcknowledgedBitrateEstimator needing a significant amount of time/data to obtain an provide an estimate
causes poor performance in simulations/tests. It is not clear whether this will affect real networks negatively, but I suggest reverting this to be on the safe side.
See also https://bugs.chromium.org/p/webrtc/issues/detail?id=7884

Original issue's description:
> Test and fix for huge bwe drop after alr state.
>
> BUG=webrtc:7746
>
> Review-Url: https://codereview.webrtc.org/2931873002
> Cr-Commit-Position: refs/heads/master@{#18692}
> Committed: 37aa8ba616

TBR=solenberg@webrtc.org,kwiberg@webrtc.org,minyue@webrtc.org,holmer@chromium.org,philipel@webrtc.org,oprypin@webrtc.org,holmer@google.com,stefan@webrtc.org,tschumim@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:7746

Review-Url: https://codereview.webrtc.org/2964213002
Cr-Commit-Position: refs/heads/master@{#18866}
2017-06-30 15:11:44 +00:00
2d54784d89 Reland "Adding ANA config event to debug dump."
Originally review in https://chromium-review.googlesource.com/c/535554/

Reverted in https://chromium-review.googlesource.com/c/539737/ due to upstreaming failure.

BUG=webrtc:7854

Change-Id: Ie4ad6ecfaf0f6b556dc662512d0be8ce94f8a4a8
Reviewed-on: https://chromium-review.googlesource.com/541436
Commit-Queue: Minyue Li <minyue@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18865}
2017-06-30 14:32:23 +00:00
17675ceb13 Enable the injection of an APM into a peerconnection
This CL finalizes the support for allowing an external
audio processing module to be used in a peerconnection.

BUG=webrtc:7775

Review-Url: https://codereview.webrtc.org/2965703002
Cr-Commit-Position: refs/heads/master@{#18864}
2017-06-30 14:24:04 +00:00
fa8567868e Fix FecTest.FlexfecTest flakiness caused by seq. num. wraparound.
The CL in https://codereview.webrtc.org/2918333002/ enabled
FecTest.FlexfecTest and also added a sequence number offset between
the FEC packets and the media packets. This was to simulate that the
sequence numbers were generated from different spaces, i.e., that they
belong to different SSRCs.

The test does not account for sequence number wraparound, which means
that it could fail when the sequence number offset realization was large.
This CL fixes the problem by ensuring that the offset always lies in
[0, 2^15].

This CL also fixes spelling of UlpfecTest.

BUG=webrtc:7912
TESTED=ninja -C out/Debug && third_party/gtest-parallel/gtest-parallel --gtest_filter="*Flexfec*" -r 1000 out/Debug/modules_tests

Review-Url: https://codereview.webrtc.org/2966753002
Cr-Commit-Position: refs/heads/master@{#18863}
2017-06-30 14:22:15 +00:00
697a590314 Added the ability to adjust the AEC3 performance for large rooms
This CL exposes the parameter for adjusting the AEC3 performance
for large rooms.

Bug: webrtc:7519
Review-Url: https://codereview.webrtc.org/2967603002
Cr-Commit-Position: refs/heads/master@{#18862}
2017-06-30 14:06:10 +00:00
4583db4967 Enable -Wunused-function warning everywhere.
BUG=webrtc:5397
NOTRY=True

Change-Id: If4b7e8942315135f1f1b919bdefd2fd1d9be67e7
Reviewed-on: https://chromium-review.googlesource.com/544996
Reviewed-by: Oleh Prypin <oprypin@chromium.org>
Commit-Queue: Henrik Kjellander <kjellander@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18861}
2017-06-30 14:05:22 +00:00
1009cfca47 More gracefully handle rtp timestamp jumps in the rtp to ntp estimator.
BUG=webrtc:7905

Review-Url: https://codereview.webrtc.org/2963133003
Cr-Commit-Position: refs/heads/master@{#18860}
2017-06-30 13:28:13 +00:00
9addbebf42 Remove RtpDemuxer tweak for preventing multiple RSID inspections
We have a tweak preventing multiple deep-examinations of packets; packets with a given SSRC are only inspected deeply (RSID) once (only the first received packet). Once we move to many-to-one stream-to-sink associations, this becomes less useful, and is better removed.

BUG=webrtc:7135

Review-Url: https://codereview.webrtc.org/2955373002
Cr-Commit-Position: refs/heads/master@{#18859}
2017-06-30 13:26:54 +00:00
49085ef280 Improves audio-routing in combination with BT in AppRTCMobile on Android.
This CL improves (speeds up) audio routing for BT devices in AppRTCMobile.

NOTRY=TRUE
BUG=webrtc:7888

Review-Url: https://codereview.webrtc.org/2961403003
Cr-Commit-Position: refs/heads/master@{#18858}
2017-06-30 13:25:25 +00:00
0072511073 Revert "Update includes for webrtc/{base => rtc_base} rename (3/3)"
This reverts commit https://codereview.webrtc.org/2963273002/
where the git cl format breaks include order on Windows.

BUG=webrtc:7634
NOTRY=True
TBR=kwiberg@webrtc.org

Review-Url: https://codereview.webrtc.org/2962303003 .
Cr-Commit-Position: refs/heads/master@{#18857}
2017-06-30 13:14:47 +00:00
f1c5ebf829 Update includes for webrtc/{base => rtc_base} rename (3/3)
I used a command like this to update the paths:
perl -pi -e "s/webrtc\/base/webrtc\/rtc_base/g" `find webrtc/rtc_base -name "*.cc" -o -name "*.h"`

BUG=webrtc:7634
NOTRY=True
NOPRESUBMIT=True
TBR=kwiberg@webrtc.org

Review-Url: https://codereview.webrtc.org/2963273002
Cr-Commit-Position: refs/heads/master@{#18856}
2017-06-30 12:27:14 +00:00
96d74bb933 Opus implementation of the AudioDecoderFactoryTemplate API
(This got reverted because of a problem with the Opus encoder parts.
Re-landing without changes.)

BUG=webrtc:7837

Review-Url: https://codereview.webrtc.org/2950453002
Cr-Commit-Position: refs/heads/master@{#18855}
2017-06-30 12:24:56 +00:00
3aba2d1af9 Fix android video_quality_loopback_test
NOTRY=True
TBR=kjellander@webrtc.org
BUG=webrtc:7855

Review-Url: https://codereview.webrtc.org/2968683002
Cr-Commit-Position: refs/heads/master@{#18854}
2017-06-30 12:12:09 +00:00
d76b75370c Disable AudioDeviceTest.StartStopRecording on iOS
BUG=webrtc:7888
TBR=kjellander

Review-Url: https://codereview.webrtc.org/2963283002
Cr-Commit-Position: refs/heads/master@{#18853}
2017-06-30 12:08:40 +00:00
96da0115d7 Opus implementation of the AudioEncoderFactoryTemplate API
This was previously reverted, because external projects were using the
internal webrtc::AudioEncoderOpus class and broke when it was renamed.
This re-land avoids renaming it immediately, to give those projects
time to adapt. It also has to revert some of the changes I had made to the
Config struct, since that was also used by the same external projects.

BUG=webrtc:7831

Review-Url: https://codereview.webrtc.org/2948483002
Cr-Commit-Position: refs/heads/master@{#18852}
2017-06-30 11:23:22 +00:00
9aed31c24e Temporarily removed the analog gain change detection in AEC3
Due to the implementation of the analog AGC in the audio
processing module, the detection for the analog gain done in AEC3
fails on some platforms where there is no analog gain to control.

This CL removes that functionality until the AGC behavior has
been corrected.


Bug: webrtc:7910, chromium:738322
Change-Id: Ibdbe1e02252387dfd94b36ba7471f5c56ae27f48
Reviewed-on: https://chromium-review.googlesource.com/556040
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18850}
2017-06-30 10:27:56 +00:00
8f9ce1d991 Corrected the limit on the allowed API jitter in AEC3
This CL loosens the requirement on the API jitter in APM
that can be tolerated without affecting the AEC3 performance.

BUG=webrtc:7911,chromium:738323

Review-Url: https://codereview.webrtc.org/2967493004
Cr-Commit-Position: refs/heads/master@{#18849}
2017-06-30 10:13:21 +00:00
d2b63cf131 Move webrtc/{tools => rtc_tools}
Leaving compatibility script in webrtc/tools/compare_videos.py to
avoid breaking our video quality tests in Chromium.
Forwarding GN targets are left in webrtc/tools/BUILD.gn.

BUG=webrtc:7855
NOTRY=True
NOPRESUBMIT=True

Review-Url: https://codereview.webrtc.org/2965593002
Cr-Commit-Position: refs/heads/master@{#18848}
2017-06-30 10:04:59 +00:00
cb8f045d9f Fix receiving FlexFEC in video_loopback.
BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2965503006
Cr-Commit-Position: refs/heads/master@{#18847}
2017-06-30 09:34:20 +00:00
5f8b04d53a Higher logging severity for RED packets in UlpfecReceiverImpl.
As requested by holmer@ in https://codereview.webrtc.org/2918333002.

BUG=webrtc:5654
TBR=stefan@webrtc.org

Review-Url: https://codereview.webrtc.org/2965533003
Cr-Commit-Position: refs/heads/master@{#18846}
2017-06-30 08:52:24 +00:00
1129df26b0 Always ResetSenderCongestionControlObjects before RegisterEtc...
BUG=webrtc:7896

Review-Url: https://codereview.webrtc.org/2966503002
Cr-Commit-Position: refs/heads/master@{#18844}
2017-06-30 08:38:56 +00:00
88af8b4b62 Fix -Wcomment warning in webrtcsdp.cc
BUG=b/63151298
TBR=deadbeef@webrtc.org
NOTRY=True

Review-Url: https://codereview.webrtc.org/2969623002
Cr-Commit-Position: refs/heads/master@{#18843}
2017-06-30 06:19:31 +00:00
5869f50f7a Support encrypted RTP extensions (RFC 6904)
Can be enabled by setting "enable_encrypted_rtp_header_extensions" in
"crypto_options" of "PeerConnectionFactoryInterface::Options" and will
only be used if both peers support it.

BUG=webrtc:3411

Review-Url: https://codereview.webrtc.org/2761143002
Cr-Commit-Position: refs/heads/master@{#18842}
2017-06-29 19:31:36 +00:00
26afe214ad Properly export the symbols of video frame-buffer classes for link-time
Linking external ObjC / Swift apps fails when the app code is using any
of the new frame-buffer classes RTCI420Buffer, RTCMutableI420Buffer, or
RTCCVPixelBuffer. To fix, we need to add the appropriate attribute to
the classes (e.g. using the RTC_EXPORT macro).

BUG=None

Review-Url: https://codereview.webrtc.org/2961293002
Cr-Commit-Position: refs/heads/master@{#18840}
2017-06-29 16:11:10 +00:00
06b47c520d Listen for Wifi-Direct networks and include them in the network list
BUG=webrtc:7708
TBR=magjed@webrtc.org

Review-Url: https://codereview.webrtc.org/2951803003
Cr-Commit-Position: refs/heads/master@{#18839}
2017-06-29 15:57:01 +00:00
a9cc40b7d2 Allow an external audio processing module to be used in WebRTC
[This CL is a rebase of an original CL by solenberg@:
https://codereview.webrtc.org/2948763002/ which in turn was a
rebase of an original CL by peah@:
https://chromium-review.googlesource.com/c/527032/]

Allow an external audio processing module to be used in WebRTC

This CL adds support for optionally using an externally created audio
processing module in a peerconnection. The ownership is shared
between the peerconnection and the external creator of the module.

As part of this the internal ownership of the audio processing module
is moved from VoiceEngine to WebRtcVoiceEngine.

BUG=webrtc:7775

Review-Url: https://codereview.webrtc.org/2961723004
Cr-Commit-Position: refs/heads/master@{#18837}
2017-06-29 15:32:09 +00:00