1587 Commits

Author SHA1 Message Date
Di Wu
2b99708175 [Stats] Re-structure inbound stream stats verification in test
Follow up https://webrtc-review.googlesource.com/c/src/+/210340, |RTCReceivedRtpStreamStats| is the new parent of |RTCInboundRtpStreamStats| and |RTCRemoteInboundRtpStreamStats| so the verification structure in test should change accrodingly.

Bug: webrtc:12532
Change-Id: I0e7a832de2bb60ec68fb963a8846f6b15fdc30a2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/214082
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Di Wu <meetwudi@gmail.com>
Cr-Commit-Position: refs/heads/master@{#33642}
2021-04-07 17:56:16 +00:00
Tomas Gunnarsson
d69e0709c8 Set/clear the data channel pointers on the network thread
Bug: webrtc:9987
Change-Id: I8fa1b675a54729a26ee55926c6f27bb59981d379
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/213665
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33640}
2021-04-07 15:33:55 +00:00
Tomas Gunnarsson
2001dc39db Remove unnecessary thread hop for reporting transport stats
Bug: webrtc:12637
Change-Id: If00df716d30ac1db5faa83d2859f7c9787ad0ae9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/213662
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33637}
2021-04-07 12:57:35 +00:00
Tomas Gunnarsson
6cd508196a Remove ForTesting methods from BaseChannel
The testing code prevents the production code from protecting the
member variables properly. The convenience methods for testing
purposes, can be located with the testing code.

Bug: none
Change-Id: Ieda248a199db84336dfafbd66c93c35508ab2582
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/213661
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33635}
2021-04-07 11:52:05 +00:00
Tomas Gunnarsson
d9a51b05da Remove unnecessary calls to BaseChannel::SetRtpTransport
Also updating SocketOptionsMergedOnSetTransport test code to make the
call to SetRtpTransport from the right context.

Bug: webrtc:12636
Change-Id: I343851bcf8ac663d7559128d12447a9a742786f0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/213660
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33633}
2021-04-07 10:39:04 +00:00
Tommi
fe041643b4 Add utility to count the number of blocking thread invokes.
This is useful to understand how often we block in certain parts of the
api and track improvements/regressions.

There are two macros, both are only active for RTC_DCHECK_IS_ON builds:

* RTC_LOG_THREAD_BLOCK_COUNT()
Example:
  void MyClass::MyFunction() {
    RTC_LOG_THREAD_BLOCK_COUNT();
    thread_->Invoke<void>([this](){ DoStuff(); });
  }

When executing this function during a test, the output could be:

  (my_file.cc:2): Blocking MyFunction: total=1 (actual=1, would=0)

The words 'actual' and 'would' reflect whether an actual thread switch
was made, or if in the case of a test using the same thread for more
than one role (e.g. signaling, worker, network are all the same thread)
that an actual thread switch did not occur but it would have occurred
in the case of having dedicated threads. The 'total' count is the sum.

* RTC_DCHECK_BLOCK_COUNT_NO_MORE_THAN(x)
Example:
  void MyClass::MyFunction() {
    RTC_LOG_THREAD_BLOCK_COUNT();
    thread_->Invoke<void>([this](){ DoStuff(); });
    thread_->Invoke<void>([this](){ MoreStuff(); });
    RTC_DCHECK_BLOCK_COUNT_NO_MORE_THAN(1);
  }

When a function is known to have blocking calls and we want to not
regress from the currently known number of blocking calls, we can use
this macro to state that at a certain point in a function, below
where RTC_LOG_THREAD_BLOCK_COUNT() is called, there must have occurred
no more than |x| (total) blocking calls. If more occur, a DCHECK will
hit and print out what the actual number of calls was:

# Fatal error in: my_file.cc, line 5
# last system error: 60
# Check failed: blocked_call_count_printer.GetTotalBlockedCallCount() <= 1 (2 vs. 1)

Bug: webrtc:12649
Change-Id: Ibac4f85f00b89680601dba54a651eac95a0f45d3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/213782
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33632}
2021-04-07 10:02:41 +00:00
Eldar Rello
950d6b9b2a Add rollback for send encodings
Bug: chromium:1188398
Change-Id: I9491426cd4a3983c7065f18af3c843d498eeafe1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/214121
Commit-Queue: Eldar Rello <elrello@microsoft.com>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33630}
2021-04-06 21:02:19 +00:00
Philipp Hancke
006206dda9 rtx-time implementation
provides an implementation of the rtx-time parameter from
  https://tools.ietf.org/html/rfc4588#section-8
that determines the maximum time a receiver waits for a frame
before sending a PLI.

BUG=webrtc:12420

Change-Id: Iff20d92c806989cd4d56fe330d105b3dd127ed24
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/201400
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33627}
2021-04-06 13:42:31 +00:00
Tomas Gunnarsson
45de8b376b Remove has_transport check from ReadyToUseRemoteCandidate.
It turns out that this check always returns 'true' and is
also not safe to do from this thread.

Bug: webrtc:12635
Change-Id: Iebc0097042020707678f3a1ad9c912b227a4257c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/213600
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33626}
2021-04-06 11:27:01 +00:00
Tommi
653bab6790 Simplify DtlsTransport state.
Make a few more members const, remove members that aren't used,
set max ssl version number on construction and remove setter.

Bug: none
Change-Id: I6c1a7cabf1e795e027f1bc53b994517e9aef0e93
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/213780
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33622}
2021-04-03 17:21:41 +00:00
Tomas Gunnarsson
2efb8a5ec6 Invalidate weak pointers in SdpOfferAnswerHandler::Close().
This stops pending internal callbacks from performing unnecessary
operations when closed.

Also update tests pc tests to call Close().
This will allow PeerConnection to be able to expect the
normal path to be that IsClosed() be true in the dtor
once all 'normal' paths do that

Bug: webrtc:12633
Change-Id: I3882bedf200feda0d04594adeb0fdac85bfef652
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/213426
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33617}
2021-04-01 21:33:52 +00:00
Tomas Gunnarsson
95d2f478e9 Call ChannelManager aec dump methods on the worker thread.
Before, the calls went through the signaling thread and
blocked while the operation completed on the worker.

Bug: webrtc:12601
Change-Id: I58991fa98a55d0fa9304a68bd85bb269f1f123d2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/212619
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33615}
2021-04-01 17:33:48 +00:00
Tomas Gunnarsson
0b5ec183b5 Simplify ChannelManager initialization.
* A ChannelManager instance is now created via ChannelManager::Create()
* Initialization is performed inside Create(), RAII.
* All member variables in CM are now either const or RTC_GUARDED_BY
  the worker thread.
* Removed dead code (initialization and capturing states are gone).
* ChannelManager now requires construction/destruction on worker thread.
  - one fewer threads that its aware of.
* media_engine_ pointer removed from ConnectionContext.
* Thread policy changes moved from ChannelManager to ConnectionContext.

These changes will make a few other issues easier to fix, so tagging
those bugs with this CL.

Bug: webrtc:12601, webrtc:11988, webrtc:11992, webrtc:11994
Change-Id: I3284cf0a08c773e628af4124e8f52e9faddbe57a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/212617
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33614}
2021-04-01 17:13:09 +00:00
Tomas Gunnarsson
97a387d7f3 Make PeerConnection::session_id_ const and readable from any thread.
Going forward, we'll need to read this value from other threads than
signaling, so I've moved the initialization into the constructor.

Bug: none
Change-Id: I56b00d38c86788cbab9a2055719074ea48f4750f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/213185
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33613}
2021-04-01 16:44:48 +00:00
Tomas Gunnarsson
b620e2d3ec Update ChannelManagerTest suite to use separate threads.
Before the tests were using the current thread for three roles,
signaling, worker and network.

Also, removing redundant test and unnecessary setters for test.

Bug: none
Change-Id: Id132b6290b78765dc075ede9483dd2d12b201130
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/212615
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33612}
2021-04-01 10:52:58 +00:00
Tomas Gunnarsson
3278a71343 Delete unused method SdpOfferAnswerHandler::GetTransportName.
Bug: none
Change-Id: Ib6ef3c161b0d9e210d65200c4bff10f4582200bf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/213186
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33611}
2021-04-01 10:36:47 +00:00
Mirko Bonadei
5a40b37105 Revert "Use the new DNS resolver API in PeerConnection"
This reverts commit acf8ccb3c9f001b0ed749aca52b2d436d66f9586.

Reason for revert: Speculative revert for https://ci.chromium.org/ui/p/chromium/builders/try/win10_chromium_x64_rel_ng/b8851745102358680592/overview.

Original change's description:
> Use the new DNS resolver API in PeerConnection
>
> Bug: webrtc:12598
> Change-Id: I5a14058e7f28c993ed927749df7357c715ba83fb
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/212961
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#33561}

# Not skipping CQ checks because original CL landed > 1 day ago.

TBR=hta@webrtc.org

Bug: webrtc:12598
Change-Id: Idc9853cb569849c49052f9cbd865614710fff979
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/213188
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33591}
2021-03-30 08:37:01 +00:00
Harald Alvestrand
acf8ccb3c9 Use the new DNS resolver API in PeerConnection
Bug: webrtc:12598
Change-Id: I5a14058e7f28c993ed927749df7357c715ba83fb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/212961
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33561}
2021-03-25 11:28:41 +00:00
Niels Möller
236e36c25f Delete AsyncInvoker usage in DataChannelController
Tasks access this via WeakPtrFactory.

Bug: webrtc:12339
Change-Id: I0aaeffd4bed59a6abfadf995286644c24c1fd716
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/212721
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33560}
2021-03-25 11:00:51 +00:00
Di Wu
ef036cdff2 [Stats] Cleanup obsolete stats - isRemote & deleted
Deleting obsolete stats. Spec: https://www.w3.org/TR/webrtc-stats/

1. RTCInbound/OutboundRtpStats.isRemote: No longer useful with remote stream stats
2. RTCIceCandidateStats.deleted: This field was obsoleted because if the ICE candidate is deleted it no longer appears in getStats()

I also marked as many other obsoleted stats possible according to spec. I am not as confident to delete them but feel free to comment to let me know if anything is off / can be deleted.

Bug: webrtc:12583
Change-Id: I688d0076270f85caa86256349753e5f0e0a44931
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/211781
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33549}
2021-03-24 10:49:34 +00:00
Alessio Bazzica
5cf8c2c501 Fix unspecified time origin for lastPacketReceivedTimestamp
`RTCInboundRtpStreamStats.lastPacketReceivedTimestamp` must be a time
value in milliseconds with Unix epoch as time origin (see
bugs.webrtc.org/12605#c4).

This change fixes both audio and video `RTCInboundRtpStreamStats` stats.

Tested: verified from chrome://webrtc-internals during an appr.tc call

Bug: webrtc:12605
Change-Id: I68157fcf01a5933f3d4e5d3918b4a9d3fbd64f16
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/212865
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33547}
2021-03-24 09:36:41 +00:00
Alessio Bazzica
f7b1b95f11 Add RTCRemoteOutboundRtpStreamStats for audio streams
Changes:
- adding the `RTCRemoteOutboundRtpStreamStats` dictionary (see [1])
- collection of remote outbound stats (only for audio streams)
- adding `remote_id` to the inbound stats and set with the ID of the
  corresponding remote outbound stats only if the latter are available
- unit tests

[1] https://www.w3.org/TR/webrtc-stats/#dom-rtcremoteoutboundrtpstreamstats

Tested: verified from chrome://webrtc-internals during an appr.tc call

Bug: webrtc:12529
Change-Id: Ide91dc04a3c387ba439618a9c6b64a95994a1940
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/211042
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33545}
2021-03-23 18:44:12 +00:00
Henrik Boström
2f71b61a34 Make sure "remote-inbound-rtp.jitter" and "packetsLost" is exposed to JS
In refactoring CL https://webrtc-review.googlesource.com/c/src/+/210340,
the RTCRemoteInboundRtpStreamStats hierarchy was updated to inherit from
RTCReceivedRtpStreamStats but we forgot to update the
WEBRTC_RTCSTATS_IMPL() macro to say that RTCReceivedRtpStreamStats is
the parent. As a consequence, RTCReceivedRtpStreamStats's members
(jitter and packetsLost) were not included when iterating over all
members of RTCRemoteInboundRtpStreamStats, which means these two merics
stopped being exposed to JavaScript in Chromium.

There is sadly no way to safe-guard against this, but the fix is simple.

TBR=hta@webrtc.org,meetwudi@gmail.com

Bug: webrtc:12532
Change-Id: I0179dad6eaa592ee36cfe48978f2fc22133b8f45
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/212866
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33543}
2021-03-23 15:27:46 +00:00
Philipp Hancke
a9ba450339 stats: add address as alias for ip
this was renamed in https://github.com/w3c/webrtc-pc/issues/1913 and https://github.com/w3c/webrtc-stats/pull/381

Spec: https://w3c.github.io/webrtc-stats/#dom-rtcicecandidatestats-address

BUG=chromium:968203

Change-Id: If75849fe1dc87ada6850e7b64aa8569e13baf0d8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/212681
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com>
Cr-Commit-Position: refs/heads/master@{#33534}
2021-03-23 06:29:10 +00:00
Alessio Bazzica
c366d51836 Fix unit for inbound RTP stat lastPacketReceivedTimestamp (s -> ms)
Both inbound RTP stats `estimatedPlayoutTimestamp` and
`lastPacketReceivedTimestamp` are surfaced to JS land as
`DOMHighResTimeStamp` - i.e., time values in milliseconds.
This CL fixes `lastPacketReceivedTimestamp` which is incorrectly
surfaced as time value in seconds.

Bug: webrtc:12605
Change-Id: I290103071cca3331d2a3066b6b6b9fcb4f4fd0af
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/212742
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33530}
2021-03-22 18:47:33 +00:00
Alessio Bazzica
049e6113a8 Add missing EXPECT_CALL for RTCStatsCollectorTest tests
Bug: webrtc:12529
Change-Id: I89e90f48ebcf5e4085c6a8403d733f416f27e6a0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/212441
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33502}
2021-03-18 12:52:42 +00:00
Niels Möller
0848994ad8 Replace AsyncInvoker with PostDelayedTask, in DtmfSender
And add thread annotations.

Bug: webrtc:12339
Change-Id: I5c945b3f5f3f6490dff3040bd26cec035b6660ff
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/212025
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Taylor <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33501}
2021-03-18 10:21:00 +00:00
Niels Möller
92430888fd Add thread annotations to FakeIceTransport
Bug: webrtc:12339
Change-Id: I29f5c910c60155cbb48c686e77b02ad3aa761fb1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/211665
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33500}
2021-03-18 09:57:00 +00:00
Rasmus Brandt
32af25b72a Disable more flaky PeerConnectionIntegrationTests on Windows
Bug: webrtc:12590, webrtc:12591
Change-Id: Id7703d6eb0c898789fa99216635578d5cf188c74
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/212085
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33490}
2021-03-17 14:54:41 +00:00
Niels Möller
e37fa19702 Delete unused class DummyDtmfObserver
There's another copy in peer_connection_integrationtest.cc, which is
used by one test.

Bug: None
Change-Id: I4f81e107767253357f8eeb83d318133b8ee86698
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/212027
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33480}
2021-03-16 12:52:25 +00:00
Harald Alvestrand
9d1e07063e Increase wait-for-lost-packet from 10 to 100 msec in MTU test
This increases the running time of the test, but seems to be needed
to avoid flakiness on Windows.

Bug: webrtc:12587
Change-Id: Id8c49910e276b2754244d977d66241e6e211c720
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/212023
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33473}
2021-03-16 07:47:25 +00:00
Harald Alvestrand
785e23be91 Drop # of video tracks in renegotiate-many-videos to 8
Bug: webrtc:12574
Change-Id: I4bd8003368c7131c63aab7b6ef1cd52b54a926e0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/212022
Reviewed-by: Taylor <deadbeef@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33471}
2021-03-16 06:29:15 +00:00
Rasmus Brandt
685be147cb Disable flaky AddMediaToConnectedBundleDoesNotRestartIce on tsan
Bug: webrtc:12538
Change-Id: I223f159904ffef5c7736a23c16a031f153c6a6da
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/211868
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33463}
2021-03-15 13:35:18 +00:00
Harald Alvestrand
7087b83d80 Test that SCTP succeeds with one MTU and fails with a lower MTU
This pair of tests will ensure that the SCTP layer's response to
MTU size changes has not been modified.

Bug: webrtc:12495
Change-Id: If9776ad399871e9f01b38715594b732e156118ff
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/211246
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33459}
2021-03-15 10:28:11 +00:00
Niels Möller
6097b0fac0 Delete use of AsyncInvoker from PeerConnectionIntegrationWrapper
Bug: webrtc:12339
Change-Id: Ie76b2f4af9953579a24e2cf3f0f8833dc0d7999c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/211354
Reviewed-by: Taylor <deadbeef@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33456}
2021-03-15 10:02:35 +00:00
Philipp Hancke
8973655f42 measure ice candidate poolsize setting for different bundle policys
The ICE candidate pool size defined in
   https://w3c.github.io/webrtc-pc/#dom-rtcconfiguration-icecandidatepoolsize
is an optimization and it may be desirable to restrict the maximum amount of
the pre-gathered components or limit the usage to the max-bundle policy.

BUG=webrtc:12383

Change-Id: I24a6434fb55b4d7f4471078785712996182f394a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/209701
Reviewed-by: Justin Uberti <juberti@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com>
Cr-Commit-Position: refs/heads/master@{#33442}
2021-03-11 21:39:23 +00:00
Di Wu
fd1e9d1af4 [Stats] Add minimum RTCReceivedRtpStreamStats with jitter and packetsLost
Spec: https://www.w3.org/TR/webrtc-stats/#receivedrtpstats-dict*

    According to the spec, |RTCReceivedRtpStreamStats| is the base class for |RTCInboundRtpStreamStats| and |RTCRemoteInboundRtpStreamStats|. This structure isn't visible in JavaScript but it's important to bring it up to spec for the C++ part. This CL adds the barebone |RTCReceivedRtpStreamStats| with a bunch of TODOs for later migrations.

    This commit makes the minimum |RTCReceivedRtpStreamStats| and rebase |RTCInboundRtpStreamStats| and |RTCRemoteInboundRtpStreamStats| to use the new class as the parent class.

    This commit also moves |jitter| and |packets_lost| to |RTCReceivedRtpStreamStats|, from |RTCInboundRtpStreamStats| and |RTCRemoteInboundRtpStreamStats|. Moving these two first because they are the two that exist in both subclasses for now.

Bug: webrtc:12532
Change-Id: I0ec74fd241f16c1e1a6498b6baa621ca0489f279
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/210340
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33435}
2021-03-11 11:58:58 +00:00
Mirko Bonadei
6a55e7307b Stop inheriting from has_slots in DtlsTransport.
Bug: webrtc:11943
Change-Id: Icb6cac30ba8a10528d75e87d9ccc3508d1cfb5a9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/208940
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33412}
2021-03-10 08:40:14 +00:00
Di Wu
668dbf66ce [Stats] Populate "frames" stats for video source.
Spec: https://www.w3.org/TR/webrtc-stats/#dom-rtcvideosourcestats-frames

Wiring up the "frames" stats with the cumulative fps counter on the video source.

Tests:
./out/Default/peerconnection_unittests
./out/Default/video_engine_tests

Bug: webrtc:12499
Change-Id: I4103f56ed04cb464f5f7e70fbf2d77c25a867a68
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/208782
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33404}
2021-03-09 08:54:38 +00:00
Philipp Hancke
a113d231a6 srtp: use srtp_crypto_policy_set_from_profile_for_* from libsrtp
use the helper functions
  srtp_crypto_policy_set_from_profile_for_rtp
and
  srtp_crypto_policy_set_from_profile_for_rtcp
provided by libsrtp to initialize the rtp and rtcp policies.

BUG=None

Change-Id: Ib1560c0fc1c06d9e79c1f871b028555b3b4d66d4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/208480
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com>
Cr-Commit-Position: refs/heads/master@{#33399}
2021-03-08 10:41:29 +00:00
Harald Alvestrand
82a94125a4 Reland "Add a fuzzer test that tries to connect a PeerConnection."
This reverts commit ae44fde18854390ca7a51bcab37ef199a1555e38.

Reason for revert: Added Chromium compile guards

Original change's description:
> Revert "Add a fuzzer test that tries to connect a PeerConnection."
>
> This reverts commit c67b77eee4b08c05638a219723a9141a65015da4.
>
> Reason for revert: Breaks the libfuzzer chromium bots for WebRTC roll.
>
> Original change's description:
> > Add a fuzzer test that tries to connect a PeerConnection.
> >
> > Bug: none
> > Change-Id: I975c6a4cd5c7dfc4a7689259292ea7d443d270f7
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/209182
> > Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> > Reviewed-by: Henrik Boström <hbos@webrtc.org>
> > Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#33369}
>
> NOPRESUBMIT=true
>
> Bug: none
> Change-Id: Ib5fa809eb698c64b7c01835e8a311eaf85b19a18
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/209640
> Commit-Queue: Evan Shrubsole <eshr@google.com>
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#33380}

Bug: none
Change-Id: I07bab58f1216fb91b9b607e7ba978c28838d9411
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/210680
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33397}
2021-03-08 08:58:09 +00:00
Philipp Hancke
be66d95ab7 srtp: document rationale for srtp overhead calculation
documents why it is safe to not follow libsrtp's advice
to ensure additional SRTP_MAX_TRAILER_LEN bytes are available
when calling srtp_protect (and similar srtcp functions).

BUG=None

Change-Id: I504645d21553160f06133fd8bb3ee79e178247da
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/209064
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com>
Cr-Commit-Position: refs/heads/master@{#33396}
2021-03-08 08:50:09 +00:00
Bjorn Terelius
3208bf102b Allow uninstantiated parametrized tests in data_channel_integration_tests.cc
Bug: webrtc:12525
Change-Id: I79244a3a6de29bcf77677dbc19368618116f8f9f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/209642
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33382}
2021-03-04 10:20:34 +00:00
Evan Shrubsole
ae44fde188 Revert "Add a fuzzer test that tries to connect a PeerConnection."
This reverts commit c67b77eee4b08c05638a219723a9141a65015da4.

Reason for revert: Breaks the libfuzzer chromium bots for WebRTC roll.

Original change's description:
> Add a fuzzer test that tries to connect a PeerConnection.
>
> Bug: none
> Change-Id: I975c6a4cd5c7dfc4a7689259292ea7d443d270f7
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/209182
> Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> Reviewed-by: Henrik Boström <hbos@webrtc.org>
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#33369}

NOPRESUBMIT=true

Bug: none
Change-Id: Ib5fa809eb698c64b7c01835e8a311eaf85b19a18
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/209640
Commit-Queue: Evan Shrubsole <eshr@google.com>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33380}
2021-03-04 09:42:34 +00:00
Harald Alvestrand
99bcf60a41 Check MID for illegal token characters.
Bug: webrtc:12516
Change-Id: I311dc984aa1dc8784d3ba3394676337b35cc92d9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/209360
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33370}
2021-03-03 08:55:39 +00:00
Harald Alvestrand
c67b77eee4 Add a fuzzer test that tries to connect a PeerConnection.
Bug: none
Change-Id: I975c6a4cd5c7dfc4a7689259292ea7d443d270f7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/209182
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33369}
2021-03-02 19:28:23 +00:00
Di Wu
88a51b2902 Populate "total_round_trip_time" and "round_trip_time_measurements" for remote inbound RTP streams
Spec: https://w3c.github.io/webrtc-stats/#remoteinboundrtpstats-dict*

Adding them into the stats definition as well.

Bug: webrtc:12507
Change-Id: Id467a33fe7bb256655b68819e3ce87ca9af5b25f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/209000
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33363}
2021-03-01 20:49:22 +00:00
Di Wu
86f04ad135 Populate “fractionLost” stats for remote inbound rtp streams
Tests:
./out/Default/peerconnection_unittests

Manually tested with Chromium to see the data populated

Spec: https://w3c.github.io/webrtc-stats/#remoteinboundrtpstats-dict*
Bug: webrtc:12506
Change-Id: I60ef8061fb31deab06ca5f115246ceb5a8cdc5ec
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/208960
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33361}
2021-03-01 16:48:37 +00:00
Philipp Hancke
31e06cb63d addIceCandidate: prefer ice candidate sdpMid over sdpMLineIndex
as described in JSEP
  https://tools.ietf.org/html/rfc8829#section-3.5.2.1
 If the MID field is present in a received IceCandidate, it
 MUST be used for identification; otherwise, the "m=" section
 index is used instead.

BUG=webrtc:12479

Change-Id: I688a5e59024fe8cc6a170c216c6f14536084cfb9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/208100
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com>
Cr-Commit-Position: refs/heads/master@{#33357}
2021-03-01 14:01:39 +00:00
Mirko Bonadei
9d9b8defae Reland "Rename SIGNALING and WORKER to PRIMARY and SECONDARY"
This is a reland of a37f2bd9421868e222d591d3371486a6ab939fd6

Original change's description:
> Rename SIGNALING and WORKER to PRIMARY and SECONDARY
>
> This makes the proxy macros less confusing when the secondary thread
> is sometimes the worker thread, sometimes the networking thread.
>
> Bug: none
> Change-Id: I1a8cebb82d09be44fe40e80c861bcfb47b9928e8
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/208763
> Reviewed-by: Tommi <tommi@webrtc.org>
> Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#33346}

Bug: none
Change-Id: If46a6679ac0fc947797dd7be87626ef7702faca2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/208845
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33349}
2021-02-26 10:35:22 +00:00