Commit Graph

27776 Commits

Author SHA1 Message Date
686be20b45 Fix ICE connection in datagram_transport.
Connect ICE state changes to datagram transport regardless of bypass mode.

ICE states were connected to datagram transport only in bypass mode. As a result, if we received datagram state change notification before ICE state change notification, the state was not propagated.

TODO: We need fake datagram transport implementation/test so that we could unit test such failures without relying on downstream projects.

Bug: webrtc:9719
Change-Id: I5a180676e0d05f707b2a43d07e8c04fb10985027
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138982
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Commit-Queue: Anton Sukhanov <sukhanov@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28094}
2019-05-28 23:49:29 +00:00
44bd71cc44 Create a composite implementation of RtpTransportInternal.
This will be used to multiplex multiple transports during SDP
negotiation.  When the offerer watns to support multiple RTP transports,
it will combine them into a singla CompositeRtpTransport.

CompositeRtpTransport can receive from any of the offered transports
while waiting for an answer to arrive.

The choice of which transport is used to send must be driven by the SDP
answer.  If a provisional answer arrives, the composite can be set to
send using the chosen transport, while maintaining other transports in
case the peer changes its mind.  When the final answer arrives, the
composite will be deleted and replaced with the chosen transport.

Bug: webrtc:9719
Change-Id: Ib8cea77ef202f37086723bfa2c71e2aa5995a912
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138281
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Anton Sukhanov <sukhanov@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28093}
2019-05-28 23:18:49 +00:00
64e97cf4dc Roll chromium_revision 09fae7ef1b..9b60f86c15 (663849:663961)
Change log: 09fae7ef1b..9b60f86c15
Full diff: 09fae7ef1b..9b60f86c15

Changed dependencies
* src/build: f8a20881dd..c93f946980
* src/ios: 82c755e0de..25f8d26e51
* src/testing: 63de520331..b14a9a2b64
* src/third_party: 731cf1f7d6..374b68de06
* src/third_party/depot_tools: 778c7f117a..c5b8a73247
* src/tools: 99662dd029..b4c34ff93d
DEPS diff: 09fae7ef1b..9b60f86c15/DEPS

No update to Clang.

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: I9fbc4b78608b683f5765f3cd973af6b5825338b6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138962
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#28092}
2019-05-28 22:29:51 +00:00
f94e3d9f7f Roll chromium_revision 9809faf8ca..09fae7ef1b (663719:663849)
Change log: 9809faf8ca..09fae7ef1b
Full diff: 9809faf8ca..09fae7ef1b

Changed dependencies
* src/base: 1865b18ee8..4156e5da2f
* src/build: 011ae59d8a..f8a20881dd
* src/ios: b15a1e2b70..82c755e0de
* src/testing: fa0d6f7c8a..63de520331
* src/third_party: db247b76fa..731cf1f7d6
* src/third_party/depot_tools: 26af0d34d2..778c7f117a
* src/tools: 9c2351d4ec..99662dd029
DEPS diff: 9809faf8ca..09fae7ef1b/DEPS

No update to Clang.

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: I6b8e973e050ef996c601fcf0e2a1276f3e40e8d5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138960
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#28091}
2019-05-28 20:02:01 +00:00
ce33b6a4cf Implement QualityLimitationReasonTracker and expose "reason".
This CL implements the logic behind qualityLimitationReason[1] and
qualityLimitationDurations[2]

This CL also exposes qualityLimitationReason in the standard getStats()
API, but does not expose qualityLimitationDurations because that is
blocked on supporting the "record<>" type in RTCStatsMember[3].

[1] https://w3c.github.io/webrtc-stats/#dom-rtcoutboundrtpstreamstats-qualitylimitationreason
[2] https://w3c.github.io/webrtc-stats/#dom-rtcoutboundrtpstreamstats-qualitylimitationdurations
[3] https://crbug.com/webrtc/10685

TBR=stefan@webrtc.org

Bug: webrtc:10451, webrtc:10686
Change-Id: Ifff0be4ddd64eaec23d59c02af99fdbb1feb3841
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138825
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28090}
2019-05-28 16:23:55 +00:00
07fc398ca8 Roll chromium_revision 13f6824c51..9809faf8ca (663612:663719)
Change log: 13f6824c51..9809faf8ca
Full diff: 13f6824c51..9809faf8ca

Changed dependencies
* src/base: 990ed0ba30..1865b18ee8
* src/build: 6f7f77b438..011ae59d8a
* src/ios: 6aa708d74a..b15a1e2b70
* src/third_party: 2f300fe244..db247b76fa
* src/tools: 165f0d6066..9c2351d4ec
DEPS diff: 13f6824c51..9809faf8ca/DEPS

Clang version changed 342571e8d6eb1afb151ae1103431798e3d24054f:67510fac36d27b2e22c7cd955fc167136b737b93
Details: 13f6824c51..9809faf8ca/tools/clang/scripts/update.py

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: I4dc0754b914f392219318a658f3d983e3fa42081
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138923
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#28089}
2019-05-28 14:55:05 +00:00
787f4b2a71 Fix text logging of ALR detector experiment settings.
Bug: None
Change-Id: I580528dee5492eb7e3458d114218de4c315804bf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138900
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28088}
2019-05-28 14:35:37 +00:00
0b97e177e1 Cleanup of CongestionWindowDownlinkDelay trial.
Bug: webrtc:9883
Change-Id: If77fdad610149c01d72891d4a9f61b61006b21ce
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138827
Reviewed-by: Ying Wang <yinwa@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28087}
2019-05-28 14:16:44 +00:00
9ab520e24b Reland "Avoid encrypting empty audio packet."
This is a reland of b0ac94307e1787f83de2b9a2dc3b58309ea8654b

Original change's description:
> Avoid encrypting empty audio packet.
> 
> Bug: b/132861665
> Change-Id: I161ba8697ae88857927f27fa6d3914b7201fdeab
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/137049
> Commit-Queue: Minyue Li <minyue@webrtc.org>
> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#28006}

Bug: b/132861665
Change-Id: Ia9be25116c7d10fee847ee25c484e6422be24b31
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138218
Commit-Queue: Minyue Li <minyue@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28086}
2019-05-28 12:30:07 +00:00
9a57350c6b Use ';' to escape '/' characters in path to dumped received video stream
Currently used ':' is bad because it prevents from specifying absolute
path on windows (e.g. "C:\directory").

Now to specify path on windows, it can be passed unchanged in field trial:
"WebRTC-DecoderDataDumpDirectory/C:\path\on\windows/"

On linux ';' has to be used instead of '/':
"WebRTC-DecoderDataDumpDirectory/;path;on;linux/"

Bug: none
Change-Id: Ia46c94bdfab95385618dde4fd3f2857e9ddf2d1c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138832
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28085}
2019-05-28 11:43:39 +00:00
4ffed7ca67 Add field trial for selecting potentially useful packets as padding.
Currently, the packet in the history that most closely matches the bit
budget between two PacedSender::Process() calls is selected to be
retransmitted. This usually means that the smallest packet in the
history is selected over and over.

With this new field trial, we ignore the size constraint (since you're
sending padding, you obviously have some bandwidth to spare) and
instead prefer packets that have the fewest transmission times first,
and after that we prefer new packets over older ones. This way, in
case of available bandwidth but small loss, these padding packets have
a greater chance of actually being useful to the receiver.

Bug: webrtc:8975
Change-Id: I15a69231f44bfbefcb9ab38dd7886b966e3af6fe
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135954
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28084}
2019-05-28 11:22:19 +00:00
a33a86061f Deprecate functions returning cricket::DataContentDescription.
Due to internal code, deprecating the class itself is difficult.
It will be deleted at the same time as the functions.

Bug: webrtc:10597
Change-Id: Iac775377c459318e074818abc05f1505c9190bd3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138823
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28083}
2019-05-28 10:42:49 +00:00
f2e9cab383 Fix BWE simulation graph in event log visualization
The simulation currently doesn't set the transport sequence number before inserting
the packets into the send time history. This means that send times can't be looked up
when receiving feedback, essentially disabling BWE simulation.

Bug: None
Change-Id: I3f2789324eb81f784dd5a6c5a5a770767236a3fc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138826
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28082}
2019-05-28 10:40:29 +00:00
ca2c43042b Allow both LNTF to coexist with NACKs and key frame requests
LNTF (loss notifications) are no longer mutually exclusive with
NACK and key frames; a receiver may send both, and the sender would
be allowed to choose which to regard.

Bug: webrtc:10336
Change-Id: I1ae7d972f9f47b07fe2f493bb31c1916456d6a3a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138828
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28081}
2019-05-28 08:23:08 +00:00
3a072de0d2 Roll chromium_revision 60cc82f9b7..13f6824c51 (663509:663612)
Change log: 60cc82f9b7..13f6824c51
Full diff: 60cc82f9b7..13f6824c51

Changed dependencies
* src/base: e34acbc60c..990ed0ba30
* src/build: 323d12f978..6f7f77b438
* src/ios: 823f58ee81..6aa708d74a
* src/testing: 9f14178c61..fa0d6f7c8a
* src/third_party: 0a5d09d1d0..2f300fe244
* src/tools: 5264b01658..165f0d6066
DEPS diff: 60cc82f9b7..13f6824c51/DEPS

No update to Clang.

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: I0af44c6eca10401414334ce9756ba064bace51e9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138841
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#28080}
2019-05-27 23:08:13 +00:00
8b27910cbc Include downlink delay into congestion window size.
Change-Id: I33db0c8134b6b3181a7b3abcf32a622a89ff3ab4

Bug: webrtc:10688
Change-Id: I33db0c8134b6b3181a7b3abcf32a622a89ff3ab4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138275
Commit-Queue: Ying Wang <yinwa@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28079}
2019-05-27 16:07:19 +00:00
2370242acf Enable flex fec support in PC quality test framework
Bug: webrtc:10138, webrtc:10683
Change-Id: I9235fef99d3ea857f10234fdd82e8468480f71a1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138822
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28078}
2019-05-27 14:48:48 +00:00
36bc4f810d Add thread guards to cricket::P2PTransportChannel.
This gives assurance that we're not calling any function in
cricket::P2PTransportChannel off-thread.

Bug: none
Change-Id: I21d4e496cf5f301ab85abbd53a5abd4f5068ec39
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138271
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28077}
2019-05-27 14:34:43 +00:00
2e8d78ce42 Allow overriding subsets of probing field trials
The probe configuration is currently a single field trial. To allow
multiple experiments with non-overlapping subsets of these keys I've
added a few extra keys that override different subsets of the config.

Bug: webrtc:10394
Change-Id: I54ffd1105129794fcdae4cce314910acaa4074af
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138274
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Jonas Olsson <jonasolsson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28076}
2019-05-27 13:43:45 +00:00
6019d43a11 Removes using imports from flexfec_receiver.
The imports of Packet, ReceivedPacket from ForwardErrorCorrection::
collides with other usages of the names introduced in a followup CL.

Bug: webrtc:9883
Change-Id: Ib042c9091ad8e350cbdf01b837af09c820dbff33
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138279
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28075}
2019-05-27 13:08:04 +00:00
126f2b37ac AudioEncoderOpus: Add support for 16 kHz input sample rate
In addition to the 48 kHz that we've always used.

Bug: webrtc:10631
Change-Id: I5e4f6600e39a463d20d3988db098c7e38281f4a0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138264
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28074}
2019-05-27 13:01:04 +00:00
883eefc59e Implement RTCRemoteInboundRtpStreamStats for both audio and video.
This implements the essentials of RTCRemoteInboundRtpStreamStats. This
includes:
- ssrc
- transportId
- codecId
- packetsLost
- jitter
- localId
- roundTripTime
https://w3c.github.io/webrtc-stats/#remoteinboundrtpstats-dict*

The following members are not implemented because they require more
work...
- From RTCReceivedRtpStreamStats: packetsReceived, packetsDiscarded,
  packetsRepaired, burstPacketsLost, burstPacketsDiscarded,
  burstLossCount, burstDiscardCount, burstLossRate, burstDiscardRate,
  gapLossRate and gapDiscardRate.
- From RTCRemoteInboundRtpStreamStats: fractionLost.

Bug: webrtc:10455, webrtc:10456
Change-Id: If2ab0da7105d8c93bba58e14aa93bd22ffe57f1d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138067
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28073}
2019-05-27 12:45:22 +00:00
6e436d1cc0 [audio] Plumbing of ReportBlockData from RTCPReceiver to MediaSenderInfo
This is part of implementing RTCRemoteInboundRtpStreamStats. The CL was
split up into smaller pieces for reviewability. Spec:
https://w3c.github.io/webrtc-stats/#dom-rtcremoteinboundrtpstreamstats

In [1], ReportBlockData was implemented and tested.
This CL adds the plumbing to make it available in MediaSenderInfo for
audio streams, but the code is not wired up to make use of these stats.

In follow-up CL [2], ReportBlockData will be used to implement
RTCRemoteInboundRtpStreamStats. The follow-up CL will add integration
tests exercising the full code path.

[1] https://webrtc-review.googlesource.com/c/src/+/136584
[2] https://webrtc-review.googlesource.com/c/src/+/138067

Bug: webrtc:10455
Change-Id: Id8940090cc9c121e8f06ccdb068a22ce24c07092
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138066
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28072}
2019-05-27 12:40:22 +00:00
87e3f9d116 [video] Plumbing of ReportBlockData from RTCPReceiver to MediaSenderInfo
This is part of implementing RTCRemoteInboundRtpStreamStats. The CL was
split up into smaller pieces for reviewability. Spec:
https://w3c.github.io/webrtc-stats/#dom-rtcremoteinboundrtpstreamstats

In [1], ReportBlockData was implemented and tested.
This CL adds the plumbing to make it available in MediaSenderInfo for
video streams, but the code is not wired up to make use of these stats.

In follow-up CL [2], ReportBlockData will be used to implement
RTCRemoteInboundRtpStreamStats. The follow-up CL will add integration
tests exercising the full code path.

[1] https://webrtc-review.googlesource.com/c/src/+/136584
[2] https://webrtc-review.googlesource.com/c/src/+/138067

Bug: webrtc:10456
Change-Id: Icd20452cb4b4908203b28ae9d9f52c25693cf91d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138065
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28071}
2019-05-27 12:21:17 +00:00
e0eb325d0d AudioEncoderOpusImpl: Remove unused static methods
Bug: webrtc:10631
Change-Id: I17583ff04f461a281c4ab0ad9322506431c9cade
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138074
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28070}
2019-05-27 12:02:38 +00:00
87da109df5 Make ReceiveStatisticsImpl::SetMaxReorderingThreshold apply per ssrc
Bug: webrtc:10669
Change-Id: I9fec43fefe301b1e05eaea774a1453c93c4cc106
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138202
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28069}
2019-05-27 10:53:04 +00:00
ad44b75a7c Roll chromium_revision e1ec78e27e..60cc82f9b7 (663034:663509)
Change log: e1ec78e27e..60cc82f9b7
Full diff: e1ec78e27e..60cc82f9b7

Changed dependencies
* src/base: 8e5cc6374c..e34acbc60c
* src/build: 912c7b060f..323d12f978
* src/ios: 3af8884c08..823f58ee81
* src/testing: 98c1282560..9f14178c61
* src/third_party: 6bd5381759..0a5d09d1d0
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/441284b3fb..a7b3312467
* src/third_party/depot_tools: 54434e7e1d..26af0d34d2
* src/tools: 7cf65e88e0..5264b01658
DEPS diff: e1ec78e27e..60cc82f9b7/DEPS

Clang version changed 67510fac36d27b2e22c7cd955fc167136b737b93:342571e8d6eb1afb151ae1103431798e3d24054f
Details: e1ec78e27e..60cc82f9b7/tools/clang/scripts/update.py

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: I01e8f27414daf9e225d414443a6dba582455f2a3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138800
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#28068}
2019-05-27 10:31:27 +00:00
15baf5e609 Remove last mention of ortc from the codebase.
TBR=kwiberg@webrtc.org

No-Try: True
Bug: webrtc:9824
Change-Id: I28af4b45a69b39cdc80ea4b21fef3716ded62a72
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138269
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28067}
2019-05-25 07:28:05 +00:00
3a1b92772f Remove rtp_ and rtcp_packet_transport() from the RtpTransport interface.
RtpTransportInternal does not need to expose these.  They are only used
by tests and for setting options.  Instead, it can expose a SetRtpOption
and SetRtcpOption to set options relevant to each of its transports.

Also updates tests to work around no longer having access to internals.

This will simplify the composite needed during negotiation of different
RTP transport types, as we no longer need to have composites of both
RtpTransport and PacketTransport.

Bug: webrtc:9719
Change-Id: I91bfa6e95b7aa384d10497f47e7d2483c2e0bef2
No-Try: True
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138282
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Anton Sukhanov <sukhanov@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28066}
2019-05-24 23:58:46 +00:00
8b096a03b4 LogToSderr by default in WebRTC tests
Printing logs to stderr helps debugging and investigating CQ failures.

Bug: webrtc:5996
Change-Id: I365ee0a0b3ff3d999f1a9a293d3c05bd75e5b999
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138187
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Anton Sukhanov <sukhanov@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28065}
2019-05-24 19:39:18 +00:00
34cd4858e3 Delete the remaining ORTC interfaces.
These are unused except in tests, and just add clutter.

Bug: webrtc:9824
Change-Id: Ica209d09850f5ff9b122ce21306aaf1bbfc7bda4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138280
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28064}
2019-05-24 18:17:37 +00:00
039a7146ab VP9 screenshare: drop base layer separately
Because of a low bitrate target, base layer has drops much more frequently
than other layers. But it reduces overall framerate, especially then
input framerate is low (5 fps).

This CL allows pre-layer drops and disables droppoing on higher spatial
layers for screenshare, solving the issue.
Additional care have to be taken then new spatial layers are enabled
dynamically to not create non-compatible with RTP references.

Bug: webrtc:10257
Change-Id: Ie056484c99a3f35ff4405ef71337dc2d034db8bb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138262
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28063}
2019-05-24 15:28:02 +00:00
d9b4f3330f Cleanup of AudioAllocationSettings flags.
Using simple IsEnabled/IsDisabled instead of the parser for Enabled/
Disabled flags to improve readability.

Bug: webrtc:9883
Change-Id: I3dbf906d49f99269f73a8ced6b3f042181228f3d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138078
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28062}
2019-05-24 14:14:08 +00:00
4c29546e15 Add test to cover bug in vp9 wrapper, triggered by field trial
This CL adds test coverage for the following fix:
https://webrtc-review.googlesource.com/c/src/+/138076

Bug: webrtc:10155, b:133399415
Change-Id: I4a680ad493f448f8565b570d09d3eb60a744325b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138260
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28061}
2019-05-24 13:47:06 +00:00
4b27648d8b Avoid the render lock in AudioProcessingImpl::ProcessStream
It seems unnecessary to lock it if not actually reinitializing.

Bug: webrtc:10205
Change-Id: Ib3292e1d640a92a7df77400aebe9583cf877f824
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/115460
Commit-Queue: Oskar Sundbom <ossu@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28060}
2019-05-24 13:24:27 +00:00
a0e9943ca6 Negotiation of LNTF controls instantiation of RTPSenderVideo::rtp_sequence_number_map_
Bug: webrtc:10662
Change-Id: I9e6b8636d915646c2a822599f5b1735494429ab9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138217
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28059}
2019-05-24 13:02:06 +00:00
0730872af2 Roll chromium_revision 8ae1a64b43..e1ec78e27e (662926:663034)
Change log: 8ae1a64b43..e1ec78e27e
Full diff: 8ae1a64b43..e1ec78e27e

Changed dependencies
* src/base: b0ebcd67fc..8e5cc6374c
* src/build: ae3ffb0405..912c7b060f
* src/third_party: 58118b386a..6bd5381759
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/63ab0c82ec..441284b3fb
* src/third_party/depot_tools: d390b317dc..54434e7e1d
* src/tools: f07fffb189..7cf65e88e0
DEPS diff: 8ae1a64b43..e1ec78e27e/DEPS

No update to Clang.

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: I0640a920a8ca2b28d7a6896357f9137599d0f481
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138241
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#28058}
2019-05-24 13:01:04 +00:00
a8cf3b7cbd Ensure CpuInfo::DetectNumberOfCores is > 0 and thread safe.
This CL adds error handling for sysconf, which can return -1 and
adds an RTC_CHECK_GT to ensure the value returned is always greater
than 0.

On top of that CpuInfo::DetectNumberOfCores is made thread safe because
the static local variable is initialized with the right values istead
of 0.

Bug: None
Change-Id: I294684e7380b12cda55ec8d6c7a90e132dc3af85
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138210
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28057}
2019-05-24 12:59:14 +00:00
fadb1811a8 Negotiate use of RTCP loss notification feedback (LNTF)
When the LossNotifications field trial is in effect, LNTF should
be offered/accepted in the SDP message, not assumed to be configured
on both sides equally.

Bug: webrtc:10662
Change-Id: Ibd827779bd301821cbb4196857f6baebfc9e7dc2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138079
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28056}
2019-05-24 12:44:14 +00:00
815b1a6f53 Use preprocessor to strip H264 implementation.
This CL makes it more flexible and easier to include/exclude H264 code
when using other build systems because it delegates the decision to
remove the code to the preprocessor instead of GN.

This CL should be a noop, and for WebRTC/Chromium the GN param
`rtc_use_h264` will still be the only thing to change in order to
include/exclude H264.

Moving code that requires ffmpeg or h264 out of the #ifdef/#endif
part should break the build since dependencies are only added if
`rtc_use_h264=true`.

Bug: webrtc:9213
Change-Id: Ibc04edc2f6b9e51489ffe638d5be4b32959cdca0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/137430
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28055}
2019-05-24 11:33:07 +00:00
5c18a5ff5e Reland "VP9 screenshare: Don't base layers frame-rate on input frame-rate"
Reland with fixes.

If input framerate is a little unstable, using it to cap layers will
make output framerate even smaller for longer periods of time.

Also, fix screenshare_loopback test for low-fps vp9 testing.

Bug: webrtc:10257
Change-Id: Id40a780d461e6b51cb44d275b8aa5d7b348d3586
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138215
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28054}
2019-05-24 11:05:04 +00:00
479c05506e Let RtpVideoStreamReceiver implement KeyFrameRequestSender
Bug: None
Change-Id: I02c89aa169b63ddb6e9ec289c783f3e85d07841e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/130101
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28053}
2019-05-24 10:52:22 +00:00
f25df35e14 Reland "Delete STACK_ARRAY macro, and use of alloca"
This is a reland of 74b373f04a69b279e45b0792d86c594cb33d22c1

Original change's description:
> Delete STACK_ARRAY macro, and use of alloca
> 
> Refactor the few uses of STACK_ARRAY to avoid an extra copy
> on the stack.
> 
> Bug: webrtc:6424
> Change-Id: I5c8f3c0381523db0ead31207d949df9a286c76ba
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/137806
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#28038}

Bug: webrtc:6424
Change-Id: Id635ccdfae12157cbb3ab9089c5e4a9f77f742ce
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138211
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28052}
2019-05-24 09:33:06 +00:00
ce723234ba Revert "VP9 screenshare: Don't base layers frame-rate on input frame-rate"
This reverts commit eb1754c5750dfcad23ac62b47aa3aa2176ae7be2.

Reason for revert: breaks downstream projects

Original change's description:
> VP9 screenshare: Don't base layers frame-rate on input frame-rate
> 
> If input framerate is a little unstable, using it to cap layers will
> make output framerate even smaller for longer periods of time.
> 
> Also, fix screenshare_loopback test for low-fps vp9 testing.
> 
> Bug: webrtc:10257
> Change-Id: I64aa087e859ab4ab8e484c9ab7f5ac0fb18bd37d
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138204
> Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#28050}

TBR=ilnik@webrtc.org,ssilkin@webrtc.org

Change-Id: I82bfbac58249cfe0da5ff565aa97a4745fd078ff
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10257
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138213
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28051}
2019-05-24 09:31:56 +00:00
eb1754c575 VP9 screenshare: Don't base layers frame-rate on input frame-rate
If input framerate is a little unstable, using it to cap layers will
make output framerate even smaller for longer periods of time.

Also, fix screenshare_loopback test for low-fps vp9 testing.

Bug: webrtc:10257
Change-Id: I64aa087e859ab4ab8e484c9ab7f5ac0fb18bd37d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138204
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28050}
2019-05-24 09:04:51 +00:00
f3db34d060 Revert "Cleanup of video packet overhead calculation."
This reverts commit 890bc3069cbababa19b40ec02684253d60e051b2.

Reason for revert: Div by zero.

Original change's description:
> Cleanup of video packet overhead calculation.
> 
> This CL updates the video packet overhead calculation to make it more
> clear. This prepares for future work on improving the accuracy of the
> calculation.
> 
> Bug: webrtc:9883
> Change-Id: I1d623a3e0de45be7b6e4a1f9e3cbe54fd2b8a45a
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138077
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#28040}

TBR=sprang@webrtc.org,srte@webrtc.org

Change-Id: Icbdfc7b9252f8f9aa8e7e97b85b04171a27935e4
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:9883
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138212
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28049}
2019-05-24 07:34:10 +00:00
4c55c8953b Roll chromium_revision 8b25075ed7..8ae1a64b43 (662811:662926)
Change log: 8b25075ed7..8ae1a64b43
Full diff: 8b25075ed7..8ae1a64b43

Changed dependencies
* src/base: 42d83ee168..b0ebcd67fc
* src/build: 1981b00027..ae3ffb0405
* src/ios: d3df50f4a7..3af8884c08
* src/testing: f4b538c584..98c1282560
* src/third_party: 6dc43cbf6e..58118b386a
* src/third_party/boringssl/src: https://boringssl.googlesource.com/boringssl.git/+log/35a5a9e7be..2e0d354690
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/37e000347c..63ab0c82ec
* src/third_party/depot_tools: 6768b27cc8..d390b317dc
* src/tools: 615afdf4e2..f07fffb189
DEPS diff: 8b25075ed7..8ae1a64b43/DEPS

No update to Clang.

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: If84559ded2d58da8c7c497406d10076c726d3798
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138191
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#28048}
2019-05-24 01:31:56 +00:00
316f3ac13b Datagram Transport Integration
- Implement datagram transport adaptor, which wraps datagram transport in DtlsTransportInternal. Datagram adaptor owns both ICE and Datagram Transports.
- Implement setup of datagram transport based on RTCConfiguration flag use_datagram_transport. This is very similar to MediaTransport setup with the exception that we create DTLS datagram adaptor.
- Propagate maximum datagram size to video encoder via MediaTransportConfig.

TODO: Currently this CL can only be tested in downstream projects. Once we add fake datagram transport, we will be able to implement unit tests similar to loopback media transport.

Bug: webrtc:9719
Change-Id: I4fa4a5725598dfee5da4f0f374269a7e289d48ed
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138100
Commit-Queue: Anton Sukhanov <sukhanov@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28047}
2019-05-23 23:36:05 +00:00
c1c0d6d8ad Roll chromium_revision b82a501520..8b25075ed7 (662691:662811)
Change log: b82a501520..8b25075ed7
Full diff: b82a501520..8b25075ed7

Changed dependencies
* src/base: 0d2946f054..42d83ee168
* src/build: 688df3073f..1981b00027
* src/buildtools: 6884242d26..0218c0f9ac
* src/ios: af3ed64652..d3df50f4a7
* src/testing: 4ccc4cac65..f4b538c584
* src/third_party: 8d3bfad760..6dc43cbf6e
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/1d6ef8a048..37e000347c
* src/third_party/depot_tools: 181e44c231..6768b27cc8
* src/tools: f93d2f3e93..615afdf4e2
DEPS diff: b82a501520..8b25075ed7/DEPS

No update to Clang.

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: I29d361d3a9d7e8dcfd0f7524fff8f423a5288728
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138186
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#28046}
2019-05-23 21:46:19 +00:00
4163317283 [PeerConnection::AddIceCandidate()] Use mid to look up contents in remote descriptions
Prior to this CL, only the mline index of an ice candidate was used to
look up contents. However, due to recent changes, it is possible that
no mline index is specified, but that only a mid is specified.
No mline index is indicated with a -1 value.

This CL makes sure the mid is used if no mline index is given.

Bug: chromium:965483
Change-Id: I8962e71acb386f7b50349802f27358ba24c11921
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138075
Commit-Queue: Guido Urdaneta <guidou@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28045}
2019-05-23 20:45:23 +00:00