267 Commits

Author SHA1 Message Date
Mirko Bonadei
75df7282eb Revert "Break up rtc_event_log_api to solve circular dependencies."
This reverts commit 001546da953275c7a39eb220592b440c9b47d756.

Reason for revert: breaks downstream projects.

Original change's description:
> Break up rtc_event_log_api to solve circular dependencies.
> 
> The original rtc_event_log_api is refactored to a pure API target plus
> multiple targets coupled with WebRTC implementations.
> 
> Bug: None
> Change-Id: Iab9eee3f7bf4228c52d94a5f26fc39bb99b5033f
> Reviewed-on: https://webrtc-review.googlesource.com/43247
> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
> Reviewed-by: Björn Terelius <terelius@webrtc.org>
> Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> Commit-Queue: Qingsi Wang <qingsi@google.com>
> Cr-Commit-Position: refs/heads/master@{#21811}

TBR=phoglund@webrtc.org,deadbeef@webrtc.org,terelius@webrtc.org,stefan@webrtc.org,pthatcher@google.com,pthatcher@webrtc.org,qingsi@google.com

Change-Id: I82540eac176c4abfb7e50dc51671585b32a1bace
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: None
Reviewed-on: https://webrtc-review.googlesource.com/46581
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21823}
2018-01-31 09:39:44 +00:00
Anders Carlsson
dd8c16574e Enable building WebRTC without built-in software codecs
This CL adds a GN build flag to include builtin software codecs
(enabled by default).

When setting the flag to false, libvpx can also be excluded. The
benefit is that the resulting binary is smaller.

Replaces https://webrtc-review.googlesource.com/c/src/+/29203

Bug: webrtc:7925
Change-Id: Id330ea8a43169e449ee139eca18e4557cc932e10
Reviewed-on: https://webrtc-review.googlesource.com/36340
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21818}
2018-01-31 08:33:59 +00:00
Zhi Huang
3518e7bea4 Add the rejected TransportInfo when creating an answer.
Previously, if a media section is rejected by the answerer, the TransportInfo
of that section will not be added to the answer but when answer SDP is
deserialized by the offerer, the rejected TransportInfo will be added.

This CL fixes this inconsistency by adding the TransportInfo of all the m=
sections including the rejected ones.

Bug: webrtc:8818
Change-Id: I3b163245979c4ac4df31db39262e499f1c4901c4
Reviewed-on: https://webrtc-review.googlesource.com/46380
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Zhi Huang <zhihuang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21815}
2018-01-30 23:07:28 +00:00
Harald Alvestrand
76d295231a Don't crash when sender info has been discarded by lower layers.
This happens when pc.close() is called.
As a stopgap measure, we return zeroes instead, leading to stats
being omitted.

Bug: chromium:807174
Change-Id: I36f342adcd038822afb75d8593de808591eb9c4b
Reviewed-on: https://webrtc-review.googlesource.com/46161
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21813}
2018-01-30 18:04:06 +00:00
Qingsi Wang
001546da95 Break up rtc_event_log_api to solve circular dependencies.
The original rtc_event_log_api is refactored to a pure API target plus
multiple targets coupled with WebRTC implementations.

Bug: None
Change-Id: Iab9eee3f7bf4228c52d94a5f26fc39bb99b5033f
Reviewed-on: https://webrtc-review.googlesource.com/43247
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Qingsi Wang <qingsi@google.com>
Cr-Commit-Position: refs/heads/master@{#21811}
2018-01-30 17:54:06 +00:00
Niels Möller
f120cba82d Delete AudioMonitor and related code.
Bug: webrtc:8760
Change-Id: I0b11ec66b0f2576f52866864ba046191034a4d2d
Reviewed-on: https://webrtc-review.googlesource.com/39003
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Noah Richards <noahric@chromium.org>
Cr-Commit-Position: refs/heads/master@{#21801}
2018-01-30 09:48:29 +00:00
Zhi Huang
70b820fefe Implemented the GetRemoteAudioSSLCertificate method.
This method returns the DTLS SSL certificate chain associated with the
audio transport on the remote side. This will become populated once the
DTLS connection with the peer has been completed.

TBR=deadbeef@webrtc.org

Bug: webrtc:8800
Change-Id: Ib90ccb3463415e798c17c187c5bdbfc4da26f11f
Reviewed-on: https://webrtc-review.googlesource.com/44140
Commit-Queue: Zhi Huang <zhihuang@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21785}
2018-01-27 23:48:36 +00:00
Steve Anton
22da89f502 Implement legacy offer_to_receive options for Unified Plan
This implements the WebRTC specification for handling
the legacy offer options offer_to_receive_audio and
offer_to_receive_video. They are not implemented for CreateAnswer.

With Unified Plan semantics, clients should switch to the
RtpTransceiver API for ensuring the correct media sections are
offered.

Bug: webrtc:7600
Change-Id: I6ced00b86b165a352bd0ca3d64b48fadcfd12235
Reviewed-on: https://webrtc-review.googlesource.com/41341
Reviewed-by: Peter Thatcher <pthatcher@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21784}
2018-01-27 02:20:29 +00:00
Steve Anton
74255ffb39 Add PeerConnection interop integration tests
These tests verify the behavior between Plan B and
Unified Plan PeerConnections.

Bug: webrtc:7600
Change-Id: Ic41a0e692d32cde6fe7719ada2dbffd4281c008c
Reviewed-on: https://webrtc-review.googlesource.com/43244
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21782}
2018-01-26 23:24:49 +00:00
Taylor Brandstetter
94d8ccec4c Revert "Parameterize PeerConnection signaling tests for Unified Plan"
This reverts commit 65c0a60302202189c37af91fca6abf092f022b1c.

Reason for revert: Breaking downstream test which was calling CreateAnswer in stable state. Will reland after fixing test.

Original change's description:
> Parameterize PeerConnection signaling tests for Unified Plan
> 
> This also changes the behavior of CreateAnswer to fail unless
> the signaling state is kHaveRemoteOffer or kHaveLocalPranswer,
> as per the WebRTC specification.
> 
> Bug: webrtc:8765
> Change-Id: I60ac67cd92b17fcbff964afc14d049481e816a28
> Reviewed-on: https://webrtc-review.googlesource.com/41042
> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
> Commit-Queue: Steve Anton <steveanton@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#21779}

TBR=steveanton@webrtc.org,deadbeef@webrtc.org,pthatcher@webrtc.org

Change-Id: I90eacadb217353a7e098826563f5aeaaced52452
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8765
Reviewed-on: https://webrtc-review.googlesource.com/44581
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21781}
2018-01-26 22:44:30 +00:00
Steve Anton
65c0a60302 Parameterize PeerConnection signaling tests for Unified Plan
This also changes the behavior of CreateAnswer to fail unless
the signaling state is kHaveRemoteOffer or kHaveLocalPranswer,
as per the WebRTC specification.

Bug: webrtc:8765
Change-Id: I60ac67cd92b17fcbff964afc14d049481e816a28
Reviewed-on: https://webrtc-review.googlesource.com/41042
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21779}
2018-01-26 21:06:52 +00:00
Steve Anton
3871f6f9d4 Rewrite StatsCollector tests to use a fake PeerConnection
This removes use of the MockPeerConnection and replaces it with a fake
implementation of PeerConnection tailored to the needs of
StatsCollector and (soon) RTCStatsCollector.

The stats collector tests really care about the PeerConnection only so
much as to set up scenarios to test the StatsCollector with. Since each
scenario (e.g., adding a track) affects the results of multiple methods
(e.g., voice_channel and SessionStats), the tests were needing to
manually configure these dependent operations which was tedious, error
prone and difficult to change. The new fake lets the tests express the
scenario more concisely (e.g., AddVoiceChannel) while filling in all
the affected methods on the PeerConnection automatically. Furthermore,
this can be expanded to use with the RTCStatsCollector and to cover
more scenarios in the future.

Bug: webrtc:8764
Change-Id: I195074174684256543f7cdc27c3834e5ff0b4702
Reviewed-on: https://webrtc-review.googlesource.com/43521
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Peter Thatcher <pthatcher@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21778}
2018-01-26 19:40:02 +00:00
Mirko Bonadei
65ce31158f Removing useless dependencies on //testing/gmock.
If a WebRTC build target requires gmock it has to include
test/gmock.h and just depend on //test:test_support.

Unfortunately //testtest_support was a leaky abstraction because it
wasn't propagating the correct -I compiler flag. To make everything
work, all the targets that use gmock started also to depend on
//testing/gmock (even if they were not including any gmock header
directly).

This CL makes //testtest_support propagate the include path up in the
dependency chain so it is possible to remove unused dependencies.

Note: all_dependent_configs should probably be used in the original
gmock target. There is an ongoing discussion about it. This CL solves
the problem on WebRTC side and it is forward compatible.

TBR=phoglund@webrtc.org

Bug: webrtc:8603
Change-Id: If08daf2ce9a6431a6e881a236743b4ec33b59ea7
Reviewed-on: https://webrtc-review.googlesource.com/44340
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21776}
2018-01-26 13:34:12 +00:00
Zach Stein
ba37b4b075 Change return type of RtpSenderInterface::SetParameters from bool to RTCError
Note that RTCErrorTypes are mapped to the following DOMException names:
INTERNAL_ERROR -> OperationError
UNSUPPORTED_PARAMETER -> OperationError
INVALID_STATE -> InvalidStateError
INVALID_MODIFICATION -> InvalidModificationError
INVALID_RANGE -> RangeError

Bug: webrtc:8772
Change-Id: I44e3fe2456b007b8fb227d37d74b07ba226a19e4
Reviewed-on: https://webrtc-review.googlesource.com/37141
Commit-Queue: Zach Stein <zstein@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21766}
2018-01-25 19:06:04 +00:00
Steve Anton
191c39f307 Parameterize PeerConnection end to end tests for Unified Plan
Bug: webrtc:8765
Change-Id: If4b797be7876a7680e99c698631c29b412f7a455
Reviewed-on: https://webrtc-review.googlesource.com/41540
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21755}
2018-01-25 04:03:18 +00:00
Steve Anton
ad7bffccd1 Parameterize PeerConnection media tests for Unified Plan
Bug: webrtc:8765
Change-Id: I9bcd053c3e5f6524576f8da9f818de82fcd1836d
Reviewed-on: https://webrtc-review.googlesource.com/41020
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21754}
2018-01-25 01:34:46 +00:00
Steve Anton
be5e208b3e Add FakePeerConnectionBase
This provides an intermediate class for defining default, null
implementations of all the PeerConnectionInterface/
PeerConnectionInternal methods. Specific fake PeerConnections then can
inherit from this and only override the methods pertaining to the
scenarios it will be used in.

Bug: webrtc:8764
Change-Id: I7614303b5673747244053b54b839e58aada43d10
Reviewed-on: https://webrtc-review.googlesource.com/43245
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21752}
2018-01-25 01:04:06 +00:00
Steve Anton
46d926a388 Parameterize PeerConnection ICE tests for Unified Plan
Bug: webrtc:8765
Change-Id: Ic2e6bcd7c474ef26b61242ee3f42aefa95f0d8a1
Reviewed-on: https://webrtc-review.googlesource.com/40504
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21751}
2018-01-25 00:27:12 +00:00
Steve Anton
2d8609c77e Move internal PeerConnection methods to PeerConnectionInternal
PeerConnectionInternal is being introduced so that it can be mocked in
tests and so that a fake can be written for it to be used by stats
tests.

Bug: webrtc:8764
Change-Id: I375d12ce352523e8ac584402685a7870bc399fac
Reviewed-on: https://webrtc-review.googlesource.com/43202
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21747}
2018-01-24 17:24:29 +00:00
Harald Alvestrand
194939b8ca Added UMA counters for SDES vs DTLS key agreement
This is required to figure out when we can deprecate and remove
SDES.

Bug: chromium:804275
Change-Id: Ie234e6b3c8f5de8e78dda8d755d955caa61b7aa7
Reviewed-on: https://webrtc-review.googlesource.com/43340
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21746}
2018-01-24 16:09:59 +00:00
Harald Alvestrand
b8e1201020 Generate track stats when SSRC=0
This will generate an all-zeroes track stat when the sender
has not yet been connected (SSRC has not been assigned).

Bug: webrtc:8673
Change-Id: Id59e6941bc87eba6bb33b4d2a8fd808d985052c7
Reviewed-on: https://webrtc-review.googlesource.com/43080
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21734}
2018-01-23 16:15:58 +00:00
Niels Möller
6daa278156 Move MediaConfig to its own header file and target.
To eliminate circular dependencies, we need to eliminate the include
of media/base/mediachannel.h from api/peerconnectioninterface.h.

MediaConfig is one of the types the PeerConnection api depends on,
since it's part of PeerConnectionInterface::RTCConfiguration. It's
formally a public member, but the intention is that applications should use
accessor mehtods on RTCConfiguration and never access the contents of
MediaConfig directly.

Bug: webrtc:7504
Change-Id: Idfab6f69132d6b90d1628fa4543a393e22db79ac
Reviewed-on: https://webrtc-review.googlesource.com/41260
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@google.com>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21731}
2018-01-23 11:02:16 +00:00
Niels Möller
1d7ecd29c7 Rename a few MediaConfig::Video flags for consistency.
enable_cpu_overuse_detection --> enable_cpu_adaptation
  disable_prerenderer_smoothing --> enable_prerenderer_smoothing

where the latter also gets opposite meaning.

Bug: none
Change-Id: Ic10de0871a87e86a899aefa72ecb7e46fcdeaa65
Reviewed-on: https://webrtc-review.googlesource.com/40280
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21726}
2018-01-22 17:32:58 +00:00
Steve Anton
dbf9d03204 Parameterize PeerConnection data channel tests for Unified Plan
Bug: webrtc:8765
Change-Id: Ifac06b2f36230adb093169af0a88dda5463a1216
Reviewed-on: https://webrtc-review.googlesource.com/40503
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21704}
2018-01-20 00:50:53 +00:00
Steve Anton
71182f4ded Parameterize PeerConnection crypto tests for Unified Plan
Bug: webrtc:8765
Change-Id: I7ece0ecb38f033d31428bde0ff592000f8934024
Reviewed-on: https://webrtc-review.googlesource.com/40502
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21703}
2018-01-19 23:28:53 +00:00
Steve Anton
7464fca9f3 Parameterize PeerConnection BUNDLE tests for Unified Plan
Bug: webrtc:8765
Change-Id: I825a3e31af3b0fb4acf50b08b5c4f0ad6e8820e2
Reviewed-on: https://webrtc-review.googlesource.com/40500
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21701}
2018-01-19 20:32:23 +00:00
Taylor Brandstetter
215fda713e Make PeerConnection take reference to UMA observer.
It's reference counted, yet we aren't taking a reference to it for some
reason. This could be causing it to be dereferenced after deletion in
some cases in chromium.

Bug: chromium:798251
Change-Id: I0b91451e38ed611d2ea8a477f1e7db482a790f79
Reviewed-on: https://webrtc-review.googlesource.com/37283
Reviewed-by: Peter Thatcher <pthatcher@webrtc.org>
Commit-Queue: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21684}
2018-01-18 20:07:58 +00:00
Patrik Höglund
42805f36e3 Revert "Remove nogncheck and add proper dependencies."
This reverts commit 9b045fa316665fadff25147761fb9a6052db0ccc.

Reason for revert: Pulls opus into data channel only WebRTC

Original change's description:
> Remove nogncheck and add proper dependencies.
> 
> Bug: webrtc:8733
> Change-Id: I7c16f808a07d5f31a6d2a2e62c84b439e835bce1
> Reviewed-on: https://webrtc-review.googlesource.com/40160
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#21680}

TBR=phoglund@webrtc.org,hta@webrtc.org

Change-Id: Ice7c3f062c8b112933bde75008e15deb97a48aae
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8733
Reviewed-on: https://webrtc-review.googlesource.com/41000
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21683}
2018-01-18 19:15:49 +00:00
Steve Anton
d367921eb1 Configure media flow correctly with Unified Plan
This also changes RtpReceiver and RemoteAudioSource to have two-step
initialization, since in Unified Plan RtpReceivers are created much
earlier than in Plan B.

Bug: webrtc:7600
Change-Id: Ia135d25eb8bcab22969007b3a825a5a43ce62bf4
Reviewed-on: https://webrtc-review.googlesource.com/39382
Reviewed-by: Peter Thatcher <pthatcher@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21681}
2018-01-18 19:01:38 +00:00
Patrik Höglund
9b045fa316 Remove nogncheck and add proper dependencies.
Bug: webrtc:8733
Change-Id: I7c16f808a07d5f31a6d2a2e62c84b439e835bce1
Reviewed-on: https://webrtc-review.googlesource.com/40160
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21680}
2018-01-18 18:40:48 +00:00
Ilya Nikolaevskiy
2ffe3e80db Reland Use runtime enabled features API to enable dual stream mode
This is an unchanged patch after dependency fixes in downstream projects are implemented.

Original patch was reviewed here:
https://webrtc-review.googlesource.com/c/src/+/39008

TBR=phoglund@webrtc.org,ilnik@webrtc.org,nisse@webrtc.org,philipel@webrtc.org,lliuu@webrtc.org

Change-Id: I648bbf63d34282a48cabc854615005ec65b28cb3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8287
Reviewed-on: https://webrtc-review.googlesource.com/40420
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21674}
2018-01-18 12:22:49 +00:00
Niels Möller
6539f69746 Add VideoSendStream::Config::EncoderSettings::experiment_cpu_load_estimator.
And wire it up to methods on RTCConfiguration, via MediaConfig::Video.

Bug: webrtc:8504
Change-Id: I30805ee20c11d1d2fe552eb81f16d514db0ba4a8
Reviewed-on: https://webrtc-review.googlesource.com/39786
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21670}
2018-01-18 10:42:07 +00:00
Niels Möller
e2a931886f Delete ConnectionMonitor.
Bug: webrtc:8760
Change-Id: I345659eebc04704bedd46e1b04959cd63785aa62
Reviewed-on: https://webrtc-review.googlesource.com/40201
Reviewed-by: Noah Richards <noahric@chromium.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21667}
2018-01-18 08:03:27 +00:00
Steve Anton
1532477bbd Convert PeerConnection integration tests to the track-based API
Bug: webrtc:8742
Change-Id: I4e120f4c7a635201028155486530bb4fbdae2a8b
Reviewed-on: https://webrtc-review.googlesource.com/39386
Reviewed-by: Peter Thatcher <pthatcher@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21666}
2018-01-18 02:20:41 +00:00
Lu Liu
c1094eb81d Revert "Use runtime enabled features API to enable dual stream mode"
This reverts commit 6f011dfdd413a903dcdf5a23a49109e64432326d.

Reason for revert: Broke internal builds

Original change's description:
> Use runtime enabled features API to enable dual stream mode
> 
> Bug: webrtc:8287
> Change-Id: I1a366d959a8b7f2a704baa7ea8ace64c1c398d52
> Reviewed-on: https://webrtc-review.googlesource.com/39008
> Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Philip Eliasson <philipel@webrtc.org>
> Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#21661}

TBR=phoglund@webrtc.org,ilnik@webrtc.org,nisse@webrtc.org,philipel@webrtc.org

Change-Id: I0af406066231b67dd0b8eb6808bdc3e3f77560b6
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8287
Reviewed-on: https://webrtc-review.googlesource.com/40321
Reviewed-by: Lu Liu <lliuu@webrtc.org>
Commit-Queue: Lu Liu <lliuu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21663}
2018-01-17 19:45:48 +00:00
Ilya Nikolaevskiy
6f011dfdd4 Use runtime enabled features API to enable dual stream mode
Bug: webrtc:8287
Change-Id: I1a366d959a8b7f2a704baa7ea8ace64c1c398d52
Reviewed-on: https://webrtc-review.googlesource.com/39008
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21661}
2018-01-17 16:29:37 +00:00
Fredrik Solenberg
a8b7c7f4c6 Move remaining traces of VoiceEngine
- Move files from voice_engine/ to audio/.
- Rename voice_engine/utility.* to remix_resample.* since there are no other
  utilities in those files.
- Move test/mock_voe_channel_proxy.h to audio/.
- Removed voe_channel_id from Audio[Receive|Send]Stream::Config.
- Remove VoiceEngine* from AudioState::Config.
- Fix a few cpplint complaints which showed when moving files.

NOPRESUBMIT=true

Bug: webrtc:4690
Change-Id: Id266c822d956625c358fa5e193e6f4837164aef8
Reviewed-on: https://webrtc-review.googlesource.com/39268
Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21657}
2018-01-17 13:27:47 +00:00
Henrik Boström
91d039b37f Test creating two senders with the same track.
When https://crbug.com/webrtc/8734 is resolved this setup should be
valid and CreateOffer() and SetLocalDescription() should work, but
currently it doesn't. It probably fails because both senders are
assigned the same ID (the track ID).

EXPECT-ing the current behavior with a TODO referencing the bug.

Bug: webrtc:8734
Change-Id: If2a9cc9b0be12c39def83b0e219e1ca82dbd7d65
Reviewed-on: https://webrtc-review.googlesource.com/39041
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21654}
2018-01-17 12:49:56 +00:00
Niels Möller
0228485024 Delete MediaMonitor.
Bug: webrtc:8760
Change-Id: Ie9dd0d2836ad9c03d1cb2a64fabd664fb6045c80
Reviewed-on: https://webrtc-review.googlesource.com/39007
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Noah Richards <noahric@google.com>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21650}
2018-01-17 10:33:55 +00:00
Niels Möller
053c1f8e92 Delete unused signal VoiceChannel::SignalAudioMonitor.
Bug: webrtc:8760
Change-Id: I8353f7c2cf4dbb81dad7fb21ed7e934662b2ad4f
Reviewed-on: https://webrtc-review.googlesource.com/38862
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Noah Richards <noahric@chromium.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21648}
2018-01-17 09:10:55 +00:00
Harald Alvestrand
a3dab8440e Refactor stream stats generation
This version of stream stats will iterate over senders and
receivers and note which streams they think they know about,
rather than iterating over streams.

This means that streams mentioned in AddTrack() are also
included, and that only tracks actually attached are included
for those streams.

Bug: webrtc:8616
Change-Id: I4e704b1a47a152812f23a448cf1a6bc3af1ffafa
Reviewed-on: https://webrtc-review.googlesource.com/39262
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21609}
2018-01-14 09:35:07 +00:00
Steve Anton
47136ddaea Change RtpSenders to interact with the media channel directly
Similar to the change for RtpReceivers, this removes the BaseChannel
methods that would just proxy calls to the MediaChannel and instead
gives the MediaChannel directly to the RtpSenders to make the calls
directly.

Bug: webrtc:8587
Change-Id: Ibab98d75ff1641e902281ad9e31ffdad36caff35
Reviewed-on: https://webrtc-review.googlesource.com/38983
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21608}
2018-01-13 01:44:04 +00:00
Patrik Höglund
aaaf1cf962 Revert "Remove nogncheck and add proper dependencies."
This reverts commit eefd5439e7dfa0921d0bfcf7d59fbde40d428d39.

Reason for revert: Breaks everything, but somehow passed the trybots??

Original change's description:
> Remove nogncheck and add proper dependencies.
> 
> Bug: webrtc:8733
> Change-Id: I30224de3f9541c0c2652475c78c8889c10ec2121
> Reviewed-on: https://webrtc-review.googlesource.com/39005
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#21599}

TBR=phoglund@webrtc.org,hta@webrtc.org

Change-Id: I1c987a82cd284bb4bb6bbedf661ddbab62d5290b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8733
Reviewed-on: https://webrtc-review.googlesource.com/39300
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21600}
2018-01-12 12:48:13 +00:00
Patrik Höglund
eefd5439e7 Remove nogncheck and add proper dependencies.
Bug: webrtc:8733
Change-Id: I30224de3f9541c0c2652475c78c8889c10ec2121
Reviewed-on: https://webrtc-review.googlesource.com/39005
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21599}
2018-01-12 12:20:32 +00:00
Mirko Bonadei
75baa498fa Stop using public_deps in media/.
Bug: webrtc:8603
Change-Id: I7a6dad323ac298dc784feb5aa1fdc2ae5876cb5c
No-Try: True
Reviewed-on: https://webrtc-review.googlesource.com/33180
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21591}
2018-01-12 08:15:01 +00:00
Harald Alvestrand
c72af93cff Reland "Move stats ID generation from SSRC to local ID"
This is a reland of e357a4dd4e3b015f8281813f246de793589bd537
Original change's description:
> Move stats ID generation from SSRC to local ID
>
> This generates stats IDs for Track stats (which
> represents stats on the attachment of a track to
> a PeerConnection) from being SSRC-based to being
> based on an ID that is allocated when connecting the
> track to the PC.
>
> This is a prerequisite to generating stats before
> the PeerConnection is connected.
>
> Bug: webrtc:8673
> Change-Id: I82f6e521646b0c92b3af4dffb2cdee75e6dc10d4
> Reviewed-on: https://webrtc-review.googlesource.com/38360
> Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
> Reviewed-by: Henrik Boström <hbos@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#21582}

TBR=solenberg@webrtc.org

Bug: webrtc:8673
Change-Id: I610302efc5393919569b77e3b59aa3384a9b88a5
Reviewed-on: https://webrtc-review.googlesource.com/38842
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21589}
2018-01-11 18:04:22 +00:00
Erik Språng
c0092c372e Revert "Move stats ID generation from SSRC to local ID"
This reverts commit e357a4dd4e3b015f8281813f246de793589bd537.

Reason for revert: Looks like it's breaking some downstream projects.

Original change's description:
> Move stats ID generation from SSRC to local ID
> 
> This generates stats IDs for Track stats (which
> represents stats on the attachment of a track to
> a PeerConnection) from being SSRC-based to being
> based on an ID that is allocated when connecting the
> track to the PC.
> 
> This is a prerequisite to generating stats before
> the PeerConnection is connected.
> 
> Bug: webrtc:8673
> Change-Id: I82f6e521646b0c92b3af4dffb2cdee75e6dc10d4
> Reviewed-on: https://webrtc-review.googlesource.com/38360
> Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
> Reviewed-by: Henrik Boström <hbos@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#21582}

TBR=solenberg@webrtc.org,hbos@webrtc.org,hta@webrtc.org

Change-Id: I621c10236c02be01d82f4660168f0323b85e24af
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8673
Reviewed-on: https://webrtc-review.googlesource.com/38681
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21586}
2018-01-11 15:16:42 +00:00
Mirko Bonadei
34814c728f Stop using public_deps in api/.
Bug: webrtc:8603
Change-Id: I12f91365fa9a3ed12be1a9658999b6f6aad7e5e3
No-Try: True
Reviewed-on: https://webrtc-review.googlesource.com/33220
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21584}
2018-01-11 14:50:11 +00:00
Harald Alvestrand
e357a4dd4e Move stats ID generation from SSRC to local ID
This generates stats IDs for Track stats (which
represents stats on the attachment of a track to
a PeerConnection) from being SSRC-based to being
based on an ID that is allocated when connecting the
track to the PC.

This is a prerequisite to generating stats before
the PeerConnection is connected.

Bug: webrtc:8673
Change-Id: I82f6e521646b0c92b3af4dffb2cdee75e6dc10d4
Reviewed-on: https://webrtc-review.googlesource.com/38360
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21582}
2018-01-11 14:23:11 +00:00
Steve Anton
ef65ef1811 Fire OnAddTrack when Unified Plan is enabled
When Unified Plan semantics are set, PeerConnection will fire OnAddTrack
according to the WebRTC spec. OnRemoveTrack will never be fired and will
be deprecated in the future.

Bug: webrtc:7600
Change-Id: Idfaada65b795b5fb9fe4844cff036d52ea90da17
Reviewed-on: https://webrtc-review.googlesource.com/38122
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21564}
2018-01-11 01:43:00 +00:00