Commit Graph

33701 Commits

Author SHA1 Message Date
157371643d Enforce thread invoke policy for invokes to itself
Bug: None
Change-Id: Ic4a80973bd0901f69c66ecabd3c135566f4ef247
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219629
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34119}
2021-05-25 18:14:43 +00:00
4fbc3fc59e Move SendPacketUpdates* tests to rtp_sender_egress_unittest.
These should be the last of the testis from rtp_sender_unittest.cc that
should be moved and refactored to just test RtpSenderEgress.

Bug: webrtc:11340
Change-Id: Id09d7bbade608dd7194dcd8843d4f2887842a372
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220140
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34118}
2021-05-25 15:25:30 +00:00
fade919bb1 Partial revert: "Use unordered map in RtpDemuxer"
While the savings were positive in Media Servers, there was a regression
in some scenarios (crbug.com/webrtc/12718) so let's revert it.

This partially reverts commit 553fd3220b7b1a476af6759b27b3a274677d21e3.

Bug: webrtc:12718
Change-Id: If9252fd996ffc5efd7609eb4c7c0e7f001893676
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220103
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34117}
2021-05-25 15:16:00 +00:00
238da9a57e Remove obsolete SendPacketMatches* tests from rtp_sender_egress_unittest.
These tests were likely made back when PacketRouter was iterating over
the RTP modules to find the correct to send on. Now that this is just
a DCHECK, it's already implicitly covered by other tests that actually
test the respective packet type functionality. Let's thus just remove
these old tests.

Bug: webrtc:11340
Change-Id: I244ca7e365378f4e48a601464b5df0e1d07732be
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219621
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34116}
2021-05-25 12:57:35 +00:00
552169c7db Refactor RtpPacketCounter tests and move to rtp_sender_egress_unittest.
Bug: webrtc:11340
Change-Id: Ifdcb3d99113502fb5bebf1fc3ea5253a141d313b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219790
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34115}
2021-05-25 12:55:45 +00:00
af0dff0c7d dcsctp: start SCTP_DUMP on a new line
for consistency with usrsctp_dumppacket which prefixes its output with a newline.
This makes the packets easier to grep and process with text2pcap.

BUG=webrtc:12614

Change-Id: I67bc2e0026250b21b030daf967ebc697640f2d7e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220102
Reviewed-by: Victor Boivie <boivie@webrtc.org>
Commit-Queue: Philipp Hancke <phancke@nvidia.com>
Cr-Commit-Position: refs/heads/master@{#34114}
2021-05-25 12:43:55 +00:00
2ab4764b9e Clean-up for calculation of upper bandwidth limit.
Follow-up for https://webrtc-review.googlesource.com/c/src/+/219696.

Bug: webrtc:12306
Change-Id: I94861f87e83216d8e92ff09e0f2ce39fd672d9f8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220100
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34113}
2021-05-25 10:56:19 +00:00
81e13d3d6e Roll chromium_revision 2826799ea1..1b27d646a6 (885837:886225)
Change log: 2826799ea1..1b27d646a6
Full diff: 2826799ea1..1b27d646a6

Changed dependencies
* src/base: 0ee65b122a..d26844a7c8
* src/build: 1cf931db34..de91a1ebf8
* src/ios: 5ead6b825c..25276fd892
* src/testing: ada074d45e..0519f53328
* src/third_party: 2f7883d4d1..0746065687
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/cde766ee8a..53102de187
* src/third_party/depot_tools: 6097a92db0..7fc02e848a
* src/third_party/freetype/src: 2468e59af1..5f485339be
* src/third_party/perfetto: 84f640ce02..e2a0b3126e
* src/tools: 08f3a48d95..7a2715d3bd
* src/tools/luci-go: git_revision:ff0c02e960b17be5a8d02c13afc28373f236a860..git_revision:03ef3f6285cef3766c18a5c7b8cc8c0069eaa2ed
* src/tools/luci-go: git_revision:ff0c02e960b17be5a8d02c13afc28373f236a860..git_revision:03ef3f6285cef3766c18a5c7b8cc8c0069eaa2ed
* src/tools/luci-go: git_revision:ff0c02e960b17be5a8d02c13afc28373f236a860..git_revision:03ef3f6285cef3766c18a5c7b8cc8c0069eaa2ed
DEPS diff: 2826799ea1..1b27d646a6/DEPS

No update to Clang.

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

Change-Id: Ic8dadfaac07170c30e8346d7c69ea07d16e8addf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220120
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@{#34112}
2021-05-25 10:28:20 +00:00
36005afeb4 Refactor and improve RtpSender packet history test.
This CL refactors RtpSenderTest.SendPacketHandlesRetransmissionHistory,
moves some testing to rtp_ender_egress_unittest and adds test coverage
for a few cases.

Bug: webrtc:11340
Change-Id: Ic225d2af43c3926f69fe3ea45f41b18c29b8b4fd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219796
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34111}
2021-05-25 09:53:27 +00:00
02c0295a98 Remove obsolete DCHECK in RtpPacket::CopyHeaderFrom
This check was important when header bytes were copied from source
packet to destination, but current implementation (new line 123) slices
the source packet, making capacity of the destination packet irrelevant.

Bug: b/189015462
Change-Id: I7e649cb7dfc6ba0fbe989c943e6515ab0da05fef
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219695
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34110}
2021-05-25 09:42:27 +00:00
6396b48b18 Avoid modifying BWE internal state on reception of REMB feedback.
Instead, cap the final bandwidth estimate by the last received cap. This allows fast rampup after a REMB cap is lifted.

Bug: webrtc:12306
Change-Id: Ia99707134ce145275460524b3e46923876fdf62f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219696
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34109}
2021-05-25 09:03:23 +00:00
c09c58134a dcsctp: Limit the size of generated SACK chunks
Today, there is no actual limit on how large a SACK chunk can be. And
having limits is good to be able to stay within the MTU.

This commit adds a limit to the number of reported duplicate TSNs as
well as the number of reported gap-ack-blocks in a SACK chunk. These
limits are never expected to be reached in a real-life situation.

Bug: webrtc:12614
Change-Id: Ib2c143714a214cd3d961e8a52dac26a04b909b80
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219464
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34108}
2021-05-25 07:56:56 +00:00
e4adedc0cd Update WebRTC code version (2021-05-25T04:03:57).
TBR=webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com,mbonadei@webrtc.org

Bug: None
Change-Id: Iad4f59e0ddb603d4f29206cd5b6378a90bf5a51c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220061
Reviewed-by: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#34107}
2021-05-25 05:06:51 +00:00
41a111d5b9 Switch to av_packet_alloc()
ffmpeg is going to be hiding the implementation of AVPacket, so we can't
allocate them on the stack anymore. av_init_packet is marked deprecated
on TOT ffmpeg, so remove its use everywhere in favor of av_packet_alloc
and av_packet_free.

Bug: chromium:1211508
Change-Id: I154311071123110dd749c71dec1ec2a0452b3908
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/217780
Commit-Queue: Ted Meyer <tmathmeyer@google.com>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34106}
2021-05-24 23:33:08 +00:00
0f506780aa Remove usage of TOOLKIT_GTK define.
This is not defined anywhere, including chromium.

Bug: None
Change-Id: If5e89880570a80dd5720e48ebaefb0eb2c37fab3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/215360
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Commit-Queue: Jamie Walch <jamiewalch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#34105}
2021-05-24 21:50:27 +00:00
816134a8aa Reland "Fix race between enabled() and set_enabled() in VideoTrack."
This reverts commit 096ad02c02b4bc6c046282b8793ef84d041dd0d8.

Reason for revert: Including a fix for the test issue.

Original change's description:
> Revert "Fix race between enabled() and set_enabled() in VideoTrack."
>
> This reverts commit 5ffefe9d2d743c66f8a8bcbc5ad9662a3138840a.
>
> Reason for revert: Breaks Chromium Android browser tests on fyi bots.
>
> Original change's description:
> > Fix race between enabled() and set_enabled() in VideoTrack.
> >
> > Along the way I introduced VideoSourceBaseGuarded, which is equivalent
> > to VideoSourceBase except that it applies thread checks. I found that
> > it's easy to use VideoSourceBase incorrectly and in fact there appear
> > to be tests that do this.
> >
> > I made the source object const in VideoTrack, as it already was in
> > AudioTrack, and that allowed for making the GetSource() accessors
> > bypass the proxy thread hop and give the caller direct access.
> >
> > Bug: webrtc:12773, b/188139639, webrtc:12780
> > Change-Id: I022175c4239a1306ef54059c131d81411d5124fe
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219160
> > Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> > Reviewed-by: Andrey Logvin <landrey@webrtc.org>
> > Commit-Queue: Tommi <tommi@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#34096}
>
> TBR=mbonadei@webrtc.org,tommi@webrtc.org,landrey@webrtc.org,webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com
>
> Change-Id: I16323d459c76eb6a87cc602a0048f6ee01c81626
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:12773
> Bug: b/188139639
> Bug: webrtc:12780
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219637
> Reviewed-by: Evan Shrubsole <eshr@google.com>
> Commit-Queue: Evan Shrubsole <eshr@google.com>
> Cr-Commit-Position: refs/heads/master@{#34101}

# Not skipping CQ checks because this is a reland.

Bug: webrtc:12773
Bug: b/188139639
Bug: webrtc:12780
Change-Id: Ib35fe15a6c43de8f286d60aff02b19df1ab76925
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219639
Reviewed-by: Tommi <tommi@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Andrey Logvin <landrey@webrtc.org>
Reviewed-by: Evan Shrubsole <eshr@google.com>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34104}
2021-05-24 16:17:35 +00:00
2f3c5e6752 Skip WindowCapturerTest.Capture on macOS.
Bug: webrtc:12801
Change-Id: I543313f3c304b694cc50bff5a6344f1c6d944c8d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219635
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Joe Downing <joedow@chromium.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34103}
2021-05-24 14:57:59 +00:00
ae0d117d51 Implement the mixer-to-client per CSRC audio level extension (RFC 6465).
This is loosely based on the similar implementation in gecko.

Bug: webrtc:9965
Change-Id: I5203a05e1c34ca6f97bd1b143790f95ff245e340
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219791
Reviewed-by: Tommi <tommi@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Doudou Kisabaka <doudouk@google.com>
Cr-Commit-Position: refs/heads/master@{#34102}
2021-05-24 14:11:28 +00:00
096ad02c02 Revert "Fix race between enabled() and set_enabled() in VideoTrack."
This reverts commit 5ffefe9d2d743c66f8a8bcbc5ad9662a3138840a.

Reason for revert: Breaks Chromium Android browser tests on fyi bots.

Original change's description:
> Fix race between enabled() and set_enabled() in VideoTrack.
>
> Along the way I introduced VideoSourceBaseGuarded, which is equivalent
> to VideoSourceBase except that it applies thread checks. I found that
> it's easy to use VideoSourceBase incorrectly and in fact there appear
> to be tests that do this.
>
> I made the source object const in VideoTrack, as it already was in
> AudioTrack, and that allowed for making the GetSource() accessors
> bypass the proxy thread hop and give the caller direct access.
>
> Bug: webrtc:12773, b/188139639, webrtc:12780
> Change-Id: I022175c4239a1306ef54059c131d81411d5124fe
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219160
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Reviewed-by: Andrey Logvin <landrey@webrtc.org>
> Commit-Queue: Tommi <tommi@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#34096}

TBR=mbonadei@webrtc.org,tommi@webrtc.org,landrey@webrtc.org,webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com

Change-Id: I16323d459c76eb6a87cc602a0048f6ee01c81626
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:12773
Bug: b/188139639
Bug: webrtc:12780
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219637
Reviewed-by: Evan Shrubsole <eshr@google.com>
Commit-Queue: Evan Shrubsole <eshr@google.com>
Cr-Commit-Position: refs/heads/master@{#34101}
2021-05-24 14:06:19 +00:00
2fa4774067 Revert "Deprecate microsecond timestamps in RTC event log."
This reverts commit e6ee8fab7eac915b2b6abc9b71b6d33ad086f3d1.

Reason for revert: Breaks downstream test

Original change's description:
> Deprecate microsecond timestamps in RTC event log.
>
> (Microsecond timestamps are only used in the legacy wire-format,
> and the clocks only have microsecond resolution on some platforms.)
>
> Also convert structs on the parsing side to use a Timestamp instead
> of a uint64_t to represent the log time.
>
> Bug: webrtc:11933
> Change-Id: Ide5a0217d99f13f2e243115b163f13e0525648c7
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219467
> Commit-Queue: Björn Terelius <terelius@webrtc.org>
> Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#34097}

TBR=terelius@webrtc.org,srte@webrtc.org,crodbro@webrtc.org,webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com

Change-Id: I478c9a4a1664b984891c4fcfc78f0ce9a51fe4c0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:11933
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219636
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34100}
2021-05-24 13:11:10 +00:00
cf497890f3 Refactor some retransmission tests.
This simplifies some tests and removes dependency on RtpSenderEgress
for those tests in rtp_sender_unittest.

Bug: webrtc:11340
Change-Id: I37489875947b0ac48a1742d2e9945510ee002f99
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219624
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34099}
2021-05-24 13:10:05 +00:00
006815eed0 Add temp peer_connection_interface include rtc_base/event.h
This fixes the WebRTC roll in Chrome, which was failing because the
//third_party/nearby library was transively including Chromes //base/check
via WebRTC overrides by including
api/peer_connection_interface.h
which included api/proxy.h
which included rtc_base/event.h
which was overrided in webrtc_overrides.

This override contains an include to base/check.h.

Adding a temporary dependency on event.h fixes this for now. This can be
removed once https://crbug.com/1212611 is fixed.

Bug: None
Change-Id: Id372e0737664d4a94ade0f75ae5fcf21f3db929f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219630
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Evan Shrubsole <eshr@google.com>
Cr-Commit-Position: refs/heads/master@{#34098}
2021-05-24 12:35:15 +00:00
e6ee8fab7e Deprecate microsecond timestamps in RTC event log.
(Microsecond timestamps are only used in the legacy wire-format,
and the clocks only have microsecond resolution on some platforms.)

Also convert structs on the parsing side to use a Timestamp instead
of a uint64_t to represent the log time.

Bug: webrtc:11933
Change-Id: Ide5a0217d99f13f2e243115b163f13e0525648c7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219467
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34097}
2021-05-24 11:39:02 +00:00
5ffefe9d2d Fix race between enabled() and set_enabled() in VideoTrack.
Along the way I introduced VideoSourceBaseGuarded, which is equivalent
to VideoSourceBase except that it applies thread checks. I found that
it's easy to use VideoSourceBase incorrectly and in fact there appear
to be tests that do this.

I made the source object const in VideoTrack, as it already was in
AudioTrack, and that allowed for making the GetSource() accessors
bypass the proxy thread hop and give the caller direct access.

Bug: webrtc:12773, b/188139639, webrtc:12780
Change-Id: I022175c4239a1306ef54059c131d81411d5124fe
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219160
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Andrey Logvin <landrey@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34096}
2021-05-24 09:13:56 +00:00
13e585196e Update WebRTC code version (2021-05-24T04:02:02).
TBR=webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com,mbonadei@webrtc.org

Bug: None
Change-Id: Icbfdc4714e777bd52f272e6b22814ee5e6f93d3c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219813
Reviewed-by: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#34095}
2021-05-24 04:59:35 +00:00
f3d71c2ed7 Roll chromium_revision 70eb2d0977..2826799ea1 (885736:885837)
Change log: 70eb2d0977..2826799ea1
Full diff: 70eb2d0977..2826799ea1

Changed dependencies
* src/base: 39fbd6c4ef..0ee65b122a
* src/build: cd5b955866..1cf931db34
* src/ios: 0fb2f7fd7a..5ead6b825c
* src/testing: 474b6eea53..ada074d45e
* src/third_party: 41dcbf2ada..2f7883d4d1
* src/tools: a691a16bb8..08f3a48d95
DEPS diff: 70eb2d0977..2826799ea1/DEPS

No update to Clang.

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

Change-Id: I88d36636e6f6ec13bf5cd7f8a2a0dec233aea0de
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219960
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@{#34094}
2021-05-23 20:23:33 +00:00
93faab1b51 dcsctp: Implement Round Robin scheduler
Bug: webrtc:12793
Change-Id: I19adb292443def42ee54df67c4869b980db7b7c0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219682
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34093}
2021-05-23 17:49:52 +00:00
70cd086644 SEA: Only spawn multi-layered encoders if active layers > 1.
With this CL, SimulcastEncoderAdapter no longer configures its encoder
as multi-layered if we only have a single active layer. Instead we
create a single single-layered encoder for that one and only active
layer. When using VP8 SW encoder this means that LibvpxVp8Encoder is
configured to only prepare a single video frame which avoids the cost of
scaling down to layers that we do not send. (A multi-layered
LibvpxVp8Encoder is required to scale even layers we don't encode.)

When profiling this CL I found very small but measurable gains for
representative downscale factors of 20.1 ms of 60 s profile. This is
just 0.0335% CPU so it's not much, but skipping a downscale might be
worth a lot more if we have to map/unmap buffers or do GPU round-trips
in the future (which I have not measured).

When downscaling to factors 4 and 2 due to libyuv having a
"fast-path" for these (i.e. no adaptation active), zero difference was
found for NV12. For I420 there was small regression of 16.1 ms
(0.026% CPU) for this one edge-case. It's possible to work around this,
but considering the tiny changes we're talking about, I really don't
think it's worth the additional complexity. I'll file a bug on libyuv
about scaling factors 2+2 vs 4 and leave it at that.

Bug: webrtc:12603
Change-Id: Id462140c6a829cf6b460baae868e94243f477db3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219683
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34092}
2021-05-23 10:38:17 +00:00
bcadacdb0f Update WebRTC code version (2021-05-23T04:03:13).
TBR=webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com,mbonadei@webrtc.org

Bug: None
Change-Id: Ic6527cc53c1af1e6f83d56227c13ec47e70f0b02
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219921
Reviewed-by: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#34091}
2021-05-23 05:02:47 +00:00
2440d34075 dcsctp: Rename FCFSSendQueue to RRSendQueue
The current send queue implements SCTP_SS_FCFS as defined in
https://datatracker.ietf.org/doc/html/rfc8260#section-3.1, but that has
always been known to be a temporary solution. The end goal is to
implement a Weighted Fair Queueing Scheduler (SCTP_SS_WFQ), but that's
likely to take some time.

Meanwhile, a round robin scheduler (SCTP_SS_RR) will be used to avoid
some issues with the current scheduler, such as a single data channel
completely blocking all others if it sends a lot of messages.

In this first commit, the code has simply been renamed and is still
implementing first-come-first-served. That will be fixed in follow-up
CLS.

Bug: webrtc:12793
Change-Id: Idc03b1594551bfe1ddbe1710872814b9fdf60cc9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219684
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34090}
2021-05-22 20:56:13 +00:00
913c3af879 Update WebRTC code version (2021-05-22T04:04:00).
TBR=webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com,mbonadei@webrtc.org

Bug: None
Change-Id: I256b8dfb53eb773de94f73ba0462963e09ebc82c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219804
Reviewed-by: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#34089}
2021-05-22 05:45:15 +00:00
7ee9b6b940 Roll chromium_revision 9431bab2be..70eb2d0977 (885625:885736)
Change log: 9431bab2be..70eb2d0977
Full diff: 9431bab2be..70eb2d0977

Changed dependencies
* src/base: d4039f5bfe..39fbd6c4ef
* src/build: 0a9b467c95..cd5b955866
* src/ios: 0fef7d4af2..0fb2f7fd7a
* src/testing: 81f9956f89..474b6eea53
* src/third_party: 3c5cdd49b2..41dcbf2ada
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/88390a179e..cde766ee8a
* src/third_party/depot_tools: f0bcfdd702..6097a92db0
* src/tools: 1dd87decaa..a691a16bb8
DEPS diff: 9431bab2be..70eb2d0977/DEPS

No update to Clang.

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

Change-Id: I5f4534968dd8709bed3813f4bf5e79f683008941
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219861
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@{#34088}
2021-05-22 02:20:35 +00:00
9f6808b13c Remove cricket::DtlsTransportState.
Bug: webrtc:12762
Change-Id: I7a6535f7ce57b1d521364f3c62086377f5aebf57
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/218600
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34087}
2021-05-21 21:45:29 +00:00
e976f75c1d Roll chromium_revision e5dd2eb61e..9431bab2be (884954:885625)
Change log: e5dd2eb61e..9431bab2be
Full diff: e5dd2eb61e..9431bab2be

Changed dependencies
* src/base: d342f0198c..d4039f5bfe
* src/build: cdb2b715f2..0a9b467c95
* src/buildtools: b9af93e79f..fba2905150
* src/buildtools/third_party/libc++abi/trunk: 767de317f9..8b015a7982
* src/ios: 2d869c8a06..0fef7d4af2
* src/testing: 63cd964d09..81f9956f89
* src/third_party: ad3aad297e..3c5cdd49b2
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/7da48e9f87..88390a179e
* src/third_party/depot_tools: 51e3708841..f0bcfdd702
* src/third_party/ffmpeg: 280d5fd0df..7e1d53a09f
* src/third_party/freetype/src: ebf9e5ac71..2468e59af1
* src/third_party/perfetto: 565fc165d0..84f640ce02
* src/tools: 98b923e2d6..1dd87decaa
* src/tools/luci-go: git_revision:9cd9603def7a649cd3e29517180d6622be2fa898..git_revision:ff0c02e960b17be5a8d02c13afc28373f236a860
* src/tools/luci-go: git_revision:9cd9603def7a649cd3e29517180d6622be2fa898..git_revision:ff0c02e960b17be5a8d02c13afc28373f236a860
* src/tools/luci-go: git_revision:9cd9603def7a649cd3e29517180d6622be2fa898..git_revision:ff0c02e960b17be5a8d02c13afc28373f236a860
DEPS diff: e5dd2eb61e..9431bab2be/DEPS

No update to Clang.

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

Change-Id: Ibff7ae1eead18335a90b03da94d982276c525048
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219841
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@{#34086}
2021-05-21 20:56:39 +00:00
20f9401578 Remove GTEST_ALLOW_UNINSTANTIATED in datachannel tests
The tests are now all gated behind a singe WEBRTC_HAVE_SCTP flag,
including the invocations, so the issue of configs that vary which
tests are included should have gone away.

This CL also clears out the remains of
DataChannelIntegrationTestWithFakeClock, which is no longer used.

Bug: webrtc:12525
Change-Id: Ie0133e3e84358e9238b8e7465200f000519b8765
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219783
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34085}
2021-05-21 20:50:48 +00:00
32ee3b88ea dcsctp: Ensure RTO is always greater than RTT
The retransmission timeout (RTO) value is updated on every measured
RTT and is a function of the RTT value and its stability. In reality,
the RTT is never constant - it fluctuates, which makes the RTO become
much larger than the RTT. But for extremely stable RTTs, which we get
in simulations, the RTO value can become the same as the RTT, and that
makes expiration timers be scheduled to the RTT value, and will race
with packets that are expected to stop the expiration timer. And that
race should be avoided in simulations.

So ensuring that the RTO value is always greater, if only be a single
millisecond, will work fine in these simulations.

Bug: webrtc:12614
Change-Id: I30cf9c97e50449849ab35de52696c618d8498128
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219680
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34084}
2021-05-21 20:08:29 +00:00
cab90db24a Delete NtpOffsetMs and TimeMicrosToNtp methods.
This consolidates the querying of the Ntp time in once place, the clock.

Bug: webrtc:11327
Change-Id: I14b19c2380996571d8c67c2c186629c209787162
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219794
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Paul Hallak <phallak@google.com>
Cr-Commit-Position: refs/heads/master@{#34083}
2021-05-21 19:32:42 +00:00
46fbefa302 Convert to NTP time using the real clock.
Bug: webrtc:11327
Change-Id: I523b111c72569580b8b27d47ad648e7887bea872
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219793
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Paul Hallak <phallak@google.com>
Cr-Commit-Position: refs/heads/master@{#34082}
2021-05-21 19:29:32 +00:00
a6b0d53dc2 Delete the old flavor of RtcpTransceiverImpl::ReceivePacket
Bug: webrtc:11327
Change-Id: I612d734ebc9abc202972fb1aadcea976b06e81de
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219792
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Paul Hallak <phallak@google.com>
Cr-Commit-Position: refs/heads/master@{#34081}
2021-05-21 19:06:22 +00:00
fe3dd51f32 Use the injected clock in rtcp_transciever.
Bug: webrtc:11327
Change-Id: Idb02842f2eb679f972c0449a01a81a26ceb85827
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219789
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Paul Hallak <phallak@google.com>
Cr-Commit-Position: refs/heads/master@{#34080}
2021-05-21 17:34:33 +00:00
61a287a3cb Add accessor for UTC start time in event log
Bug: webrtc:11933
Change-Id: Id9e63dc0487d5d07ac87e319695206ee4cd627e8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219787
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34079}
2021-05-21 17:03:01 +00:00
00f6e75671 Use webrtc::Clock to query for the NTP time and to convert timestamps
to NTP.

No-Try because of lack of infra lack of capacity on macs.

No-Try: True
Bug: webrtc:11327
Change-Id: Ie0c9983031a6d37ae54b1d2381c229bee1a89e8a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/214134
Commit-Queue: Paul Hallak <phallak@google.com>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34078}
2021-05-21 14:33:00 +00:00
1cb796f03a Add performance tracing for API calls (inside api proxies).
No-Try: true
Bug: webrtc:12787
Change-Id: Ica2a997077cc76bb24a4c70e5475e491fe44f29e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219692
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34077}
2021-05-21 13:46:40 +00:00
47ed99872d Use the clock to convert absolute capture timestamps to NTP times.
This allows callers to use timestamps generated from their own clocks
without worrying about converting to webrtc time.

No-Try because of lack of infra lack of capacity on macs.

No-Try: True
Bug: webrtc:11327
Change-Id: I7b1935654a2b23cf844c7b3622ed68763ced9da5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219785
Commit-Queue: Paul Hallak <phallak@google.com>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34076}
2021-05-21 12:41:50 +00:00
edc347c4e5 Introduce (Un)SubscribeDtlsTransportState methods.
WebRTC is going to remove cricket::DtlsTransportState and switch to
webrtc::DtlsTransportState. This CL introduces a set of new methods to
allow to subscribe to DTLS transport state updates while WebRTC
internally migrates away from cricket::DtlsTransportState.

No-Try: True
Bug: webrtc:12762
Change-Id: I79cf48e2f7122cc76fde6e4fd1541382fd096d53
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/218607
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34075}
2021-05-21 10:56:44 +00:00
95f1e5192c Do not attempt setting the absolute capture time extension if we don't
get a timestamp.

Also, use -1 to signify an unset timestamp. This is what other callers
do: https://source.chromium.org/chromium/chromium/src/+/main:third_party/webrtc/modules/audio_coding/acm2/audio_coding_module.cc;l=306;drc=bbe4aed2302dc763935496b80a5cefb6a42d912d

No-Try because of lack of infra lack of capacity on macs.

No-Try: True
Bug: webrtc:11327
Change-Id: Ide0c0633579b6b2be3eea9912b13f858760de0ad
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219781
Commit-Queue: Paul Hallak <phallak@google.com>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34074}
2021-05-21 10:55:15 +00:00
2491dbdf0b Make Clock::ConvertTimestampToNtpTime pure virtual
No-Try because of lack of infra lack of capacity on macs.

No-Try: True
Bug: webrtc:11327
Change-Id: I9296bb92fdd62800da3ddd80789164c80350577d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219782
Commit-Queue: Paul Hallak <phallak@google.com>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34073}
2021-05-21 09:55:14 +00:00
e93fe6c532 Enable Chromium to stop including api/proxy.h indirectly.
This change prepares for a later change in Chromium that makes it
stop depending on headers exposed by WebRTC that require inclusion of
api/proxy.h.

No-Try because of lack of infra lack of capacity on macs.

No-Try: True
Bug: webrtc:12787
Change-Id: I628424fe49e873027595b80336be2b821c22245e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219688
Commit-Queue: Markus Handell <handellm@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34072}
2021-05-21 09:35:35 +00:00
b59e9045bf Add the ability to convert a timestamp to NTP time.
The timestamps returned by the clocks do not have an epoch. Each clock
should be able to convert a timestamp it returns to an NTP time.
The default implementation for querying for an NTP time is converting
the current timestamp.

This is favored over returning the offset between the relative and the
NTP time because there is a field trial that makes the real clock revert
to using system dependent methods for getting the NTP time.

Bug: webrtc:11327
Change-Id: Ia139b2744b407cae94420bf9112212ec577efb16
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219687
Reviewed-by: Minyue Li <minyue@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Paul Hallak <phallak@google.com>
Cr-Commit-Position: refs/heads/master@{#34071}
2021-05-21 04:34:11 +00:00
0cff39137b Start with a BeginLog event in event log encoder unittest
Also rename encoding_ to encoding_type_

Bug: webrtc:11933
Change-Id: If4848199b96e9de612695dfe7ec52266ccd80bd3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219285
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34070}
2021-05-20 17:44:30 +00:00