Commit Graph

33417 Commits

Author SHA1 Message Date
c9716e0c71 Roll chromium_revision 720eb67ae3..e6f2129c2e (877779:877905)
Change log: 720eb67ae3..e6f2129c2e
Full diff: 720eb67ae3..e6f2129c2e

Changed dependencies
* src/base: c232239735..29514e89f9
* src/build: 8cc6617045..2d95b4abc3
* src/ios: b8a2db9627..61a54baae2
* src/testing: 206bdd6798..d384301a1d
* src/third_party: 2c60ded257..40011882ff
* src/third_party/android_deps/libs/org_jetbrains_kotlin_kotlin_stdlib: version:2@1.4.30.cr0..version:2@1.4.32.cr0
* src/third_party/android_deps/libs/org_jetbrains_kotlin_kotlin_stdlib_common: version:2@1.4.30.cr0..version:2@1.4.32.cr0
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/bbfed50cf9..ed0183e21a
* src/third_party/perfetto: 52fefceb29..21d255cb25
* src/tools: 24c68e0d20..0e154484a2
Added dependencies
* src/third_party/android_deps/libs/org_jetbrains_kotlinx_kotlinx_coroutines_core_jvm
* src/third_party/android_deps/libs/org_jetbrains_kotlinx_kotlinx_coroutines_android
DEPS diff: 720eb67ae3..e6f2129c2e/DEPS

No update to Clang.

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

Change-Id: I5671701bfd242e02170ea8e0fa1b5280d92dd928
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216821
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@{#33885}
2021-04-30 14:27:39 +00:00
dab3ce8f29 Reland "Removed VideoDecoderFactory::LegacyCreateVideoDecoder and VideoReceiveStream::Config::stream_id."
This reverts commit 49c293f03d8f593aa3aca282577fcb14daa63207.

Reason for revert: Downstream updated

Original change's description:
> Revert "Removed VideoDecoderFactory::LegacyCreateVideoDecoder and VideoReceiveStream::Config::stream_id."
>
> This reverts commit 4ba1044bae750ab8ee47b359c21f672386b7c3cd.
>
> Reason for revert: Downstream projects require some updates.
>
> Original change's description:
> > Removed VideoDecoderFactory::LegacyCreateVideoDecoder and VideoReceiveStream::Config::stream_id.
> > 
> > Bug: webrtc:9106
> > Change-Id: I7fa84095732c33d136a9354ae4f09266cffcf877
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/180020
> > Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
> > Commit-Queue: Philip Eliasson <philipel@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#31793}
>
> TBR=henrika@webrtc.org,magjed@webrtc.org,philipel@webrtc.org,mflodman@webrtc.org
>
> Change-Id: I8c980266334cc9871b9076713da3c4df8f73f8ce
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:9106
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/180344
> Reviewed-by: Philip Eliasson <philipel@webrtc.org>
> Commit-Queue: Philip Eliasson <philipel@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#31794}

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

Bug: webrtc:9106
Change-Id: I52923c0f3952832c50a7d73b466775b8c5d541cb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216329
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33884}
2021-04-30 11:40:38 +00:00
924a2751e0 Revert "Ensure method which updates UI is called in main thread"
This reverts commit 0365c99474fd812283842f650cc090b957d73ef2.

Reason for revert: Breaks downstream project.

Original change's description:
> Ensure method which updates UI is called in main thread
>
> Bug: None
> Change-Id: I52d6871e7852e15ef8404377ed37ea894aedae5a
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216500
> Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
> Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#33881}

TBR=mbonadei@webrtc.org,kthelgason@webrtc.org,kthelgason@google.com,webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com,aidenluo.me@gmail.com

Change-Id: I22e04cefd3766fc9118baaa3bb3464ff03b9bad3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: None
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216684
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33883}
2021-04-30 09:26:03 +00:00
3fb51d2783 Reland "Expose AV1 encoder&decoder from Android SDK."
This is a reland of fedd5029c584e9dc1352434b62a30cd8af2889d8

Original change's description:
> Expose AV1 encoder&decoder from Android SDK.
>
> Bug: None
> Change-Id: Ie32be36da498d4bed2a3cf51aa6abc8838e42da1
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/212024
> Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
> Commit-Queue: Yura Yaroshevich <yura.yaroshevich@gmail.com>
> Cr-Commit-Position: refs/heads/master@{#33743}

Bug: None
Change-Id: Ibfc7b860bd2314cf997444c7ab0d94d2b186e576
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/215586
Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
Commit-Queue: Yura Yaroshevich <yura.yaroshevich@gmail.com>
Cr-Commit-Position: refs/heads/master@{#33882}
2021-04-30 09:12:11 +00:00
0365c99474 Ensure method which updates UI is called in main thread
Bug: None
Change-Id: I52d6871e7852e15ef8404377ed37ea894aedae5a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216500
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33881}
2021-04-30 07:45:02 +00:00
acfd71c662 Update WebRTC code version (2021-04-30T04:04:51).
TBR=webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com,mbonadei@webrtc.org

Bug: None
Change-Id: I64e3a76074285ee68c6aa96598a1def267cf2b5d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216820
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@{#33880}
2021-04-30 05:29:37 +00:00
da83f65db3 Roll chromium_revision 794da9798a..720eb67ae3 (877664:877779)
Change log: 794da9798a..720eb67ae3
Full diff: 794da9798a..720eb67ae3

Changed dependencies
* src/base: b55d1110c2..c232239735
* src/build: 5d7a2fb65e..8cc6617045
* src/buildtools: 5dbd89c9d9..5da6005cc9
* src/buildtools/linux64: git_revision:dba01723a441c358d843a575cb7720d54ddcdf92..git_revision:6771ce569fb4803dad7a427aa2e2c23e960b917e
* src/buildtools/mac: git_revision:dba01723a441c358d843a575cb7720d54ddcdf92..git_revision:6771ce569fb4803dad7a427aa2e2c23e960b917e
* src/buildtools/win: git_revision:dba01723a441c358d843a575cb7720d54ddcdf92..git_revision:6771ce569fb4803dad7a427aa2e2c23e960b917e
* src/ios: 0ef3b39c74..b8a2db9627
* src/testing: 3a8c282ee0..206bdd6798
* src/third_party: 6e47611385..2c60ded257
* src/third_party/depot_tools: 3a56ba9d9c..0d1afc9729
* src/third_party/perfetto: 3c17caaf95..52fefceb29
* src/tools: 9d09c4ae6e..24c68e0d20
DEPS diff: 794da9798a..720eb67ae3/DEPS

No update to Clang.

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

Change-Id: Id105278fa67f4f19666f748a33ef507b42879fb6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216800
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@{#33879}
2021-04-30 04:56:21 +00:00
2e81fc2863 Roll chromium_revision 5954b85f34..794da9798a (877544:877664)
Change log: 5954b85f34..794da9798a
Full diff: 5954b85f34..794da9798a

Changed dependencies
* src/base: 2d7025bff0..b55d1110c2
* src/ios: 07d4b83f84..0ef3b39c74
* src/testing: bb0cb73182..3a8c282ee0
* src/third_party: 392c32b18c..6e47611385
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/1b8cf3bcf9..bbfed50cf9
* src/third_party/perfetto: a6c4cea7f7..3c17caaf95
* src/tools: 2d8757a32a..9d09c4ae6e
DEPS diff: 5954b85f34..794da9798a/DEPS

No update to Clang.

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

Change-Id: I779d264da96cb8c6169a787c423868e465558f6a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216720
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@{#33878}
2021-04-29 22:35:10 +00:00
cc49311969 Roll chromium_revision 42f2ed2fa5..5954b85f34 (877422:877544)
Change log: 42f2ed2fa5..5954b85f34
Full diff: 42f2ed2fa5..5954b85f34

Changed dependencies
* src/base: e6728e4cbb..2d7025bff0
* src/build: 1c369f1e0d..5d7a2fb65e
* src/ios: 56aab7bebd..07d4b83f84
* src/testing: a660a95e6f..bb0cb73182
* src/third_party: 536f2d8a8e..392c32b18c
* src/third_party/perfetto: 424d889847..a6c4cea7f7
* src/tools: c4ab2cb887..2d8757a32a
DEPS diff: 42f2ed2fa5..5954b85f34/DEPS

No update to Clang.

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

Change-Id: I336a78487d604e6f4fd4f2cb748c69fe574b9e12
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216660
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@{#33877}
2021-04-29 18:30:49 +00:00
a2efd15627 AGC2 config operator= and unit tests update
Bug: webrtc:7494
Change-Id: I7957602d60658b84175a617f9c283ea44eafe57d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216260
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@google.com>
Cr-Commit-Position: refs/heads/master@{#33876}
2021-04-29 16:37:17 +00:00
d66a60597d AGC2 adaptive digital dry run mode
Add the option to run the adaptive digital controller of AGC2 without
side-effects - i.e., no gain applied.

Tested: adapation verified during a video call in chromium

Bug: webrtc:7494
Change-Id: I4776f6012907d76a17a3bca89991da97dc38657f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/215964
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33875}
2021-04-29 16:05:57 +00:00
141a4de072 datachannel: Check we transition the state properly on remote close
Existing test would only check the channel was not open instead of
checking for a proper transition to closing then closed.

Bug: webrtc:12614
Change-Id: Iab74d6252ca1411c0fe8c1ee4ca09bc6d81af90c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216388
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33874}
2021-04-29 14:14:42 +00:00
748550d6ce Provide FrameDependecyStructure for VP9 when encoder doesn't fill it
To produce suboptimal but valid DependencyDescriptor rtp header extension.

Bug: webrtc:11999
Change-Id: I78fbca4d750cc1316b1e4086fc7ae1ad90ce25f8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216328
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33873}
2021-04-29 12:28:46 +00:00
7360461532 Roll chromium_revision d6ff4261ae..42f2ed2fa5 (877299:877422)
Change log: d6ff4261ae..42f2ed2fa5
Full diff: d6ff4261ae..42f2ed2fa5

Changed dependencies
* src/base: a43bbae42b..e6728e4cbb
* src/build: 32281a3e42..1c369f1e0d
* src/ios: a35e77f74c..56aab7bebd
* src/testing: 6da587631d..a660a95e6f
* src/third_party: f3f4289301..536f2d8a8e
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/70ce64f463..1b8cf3bcf9
* src/third_party/depot_tools: 6234dd2317..3a56ba9d9c
* src/third_party/perfetto: ea617741a1..424d889847
* src/tools: 91e132667e..c4ab2cb887
DEPS diff: d6ff4261ae..42f2ed2fa5/DEPS

No update to Clang.

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

Change-Id: I7fd5f524a5f01dd7540d924cbecac92c9eb38db5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216601
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@{#33872}
2021-04-29 11:02:10 +00:00
44f161b83f Fix typo in metric.
Bug: None
Change-Id: I7905eb59b087618f466eaabad28f409297f2fac0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216396
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33871}
2021-04-29 08:46:40 +00:00
f15ece8acb Roll chromium_revision f5d2a91957..d6ff4261ae (877195:877299)
Change log: f5d2a91957..d6ff4261ae
Full diff: f5d2a91957..d6ff4261ae

Changed dependencies
* src/base: 8b13bcf596..a43bbae42b
* src/build: 0168a62663..32281a3e42
* src/buildtools/third_party/libc++abi/trunk: f6a8e55d6e..5f51521620
* src/ios: 6b3b5faddd..a35e77f74c
* src/testing: fcd9ca3d48..6da587631d
* src/third_party: 51d95c3b7a..f3f4289301
* src/third_party/perfetto: ee1e7359d1..ea617741a1
* src/tools: 5224336b0e..91e132667e
DEPS diff: f5d2a91957..d6ff4261ae/DEPS

No update to Clang.

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

Change-Id: I9479b4aaffafa0c2738a79448841953ec2b9edb6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216541
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@{#33870}
2021-04-29 00:44:45 +00:00
21509566b8 dcsctp: Add Transmission Control Block
This is merely a container of components that have their lifetime
bound to when the socket is connected. If the socket gets disconnected
or restarted, this object (and everything it holds) will be released.

Bug: webrtc:12614
Change-Id: Ibd75760b7bf7efe9c26c4eb7cee62de8bba5410c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/214340
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33869}
2021-04-28 22:45:03 +00:00
abc07c9b95 Roll chromium_revision 78988903f1..f5d2a91957 (877073:877195)
Change log: 78988903f1..f5d2a91957
Full diff: 78988903f1..f5d2a91957

Changed dependencies
* src/base: 3e6f9033a5..8b13bcf596
* src/build: 94367a1d14..0168a62663
* src/ios: 8033a5d98b..6b3b5faddd
* src/testing: 477556b701..fcd9ca3d48
* src/third_party: b702d0be43..51d95c3b7a
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/c5554ea0ab..70ce64f463
* src/third_party/depot_tools: 5ef4697af2..6234dd2317
* src/third_party/freetype/src: 270ff52f62..f631542dae
* src/third_party/perfetto: 14c4d4957d..ee1e7359d1
* src/tools: 1efa8e3154..5224336b0e
DEPS diff: 78988903f1..f5d2a91957/DEPS

No update to Clang.

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

Change-Id: I44d017b0bbe967515cb60b90a4d24f6c63e6ff9b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216520
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@{#33868}
2021-04-28 20:29:42 +00:00
816b638048 Roll chromium_revision 731551a18e..78988903f1 (876954:877073)
Change log: 731551a18e..78988903f1
Full diff: 731551a18e..78988903f1

Changed dependencies
* src/base: af3dfc8e13..3e6f9033a5
* src/ios: aee6b7f15a..8033a5d98b
* src/testing: 5f9242e282..477556b701
* src/third_party: 076295819b..b702d0be43
* src/third_party/depot_tools: b3c9edb4af..5ef4697af2
* src/third_party/libjpeg_turbo: 7b4981b650..24e310554f
* src/third_party/perfetto: e01ad9a6a8..14c4d4957d
* src/tools: 043c2982b2..1efa8e3154
DEPS diff: 731551a18e..78988903f1/DEPS

No update to Clang.

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

Change-Id: Ic8a9422011dd0f5f95d13805f8b2917099f4b33f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216442
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@{#33867}
2021-04-28 16:57:32 +00:00
bd27adb714 [InsertableStreams] Ensure encoder queue is valid in OnTransformedFrame
In RTPSenderVideoFrameTransformerDelegate::TransformFrame(), the encoder
queue might still be null when a frame queued by a previous delegate
arrives. This could happen in the context of renegotiation that results
in a codec reset. In this case, the frame should be dropped.

Bug: webrtc:12691
Change-Id: Ib738ce31738cffc7e01053dbc82237f457fc2286
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216393
Commit-Queue: Guido Urdaneta <guidou@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33866}
2021-04-28 16:46:22 +00:00
1a5f36b9b9 Make isac_fix_test an rtc_test
NOPRESUBMIT=true

Bug: None
Change-Id: Idc23110859a3a0a11c2635ac3bf74560c0b985b8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216390
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33865}
2021-04-28 15:06:11 +00:00
b2f8c1675d Use unordered_map in ReceiveStatisticsImpl
In highly loaded media servers, ReceiveStatisticsImpl's use of std::map
attributes to ~0.32% CPU. It needs to be able to iterate through the
statisticians in order when reporting, but that is considered to be rare
compared to how often they are looked up. So this commit adds a separate
sorted set for just keeping track of the SSRCs, and letting the map of
SSRC to Statisticians, be unordered.

Bug: webrtc:12689
Change-Id: I69fe41d96bca31b2e8d669b58b5c7afabceaa6a6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216385
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33864}
2021-04-28 13:28:35 +00:00
aeff995ca8 Make RTCPSenderTest test more robust to ordering
The test assumed a certain order in report blocks, which can have
changed with tasks to use unordered collections. This commit makes
the test more robust.

Bug: webrtc:12689
Change-Id: Ie0087dcb7dc955d70aa39208848bb99fd2f1750b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216386
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33863}
2021-04-28 12:41:51 +00:00
f97afd65b2 Reland "Add addr in error msg if stun sock sent with error"
This is a reland of 9ff75a6206142fbe17997bb092f8ec5485c2a084

Original change's description:
> Add addr in error msg if stun sock sent with error
>
> Before:
> ```
> (stun_port.cc:596): sendto : [0x00000041] No route to host
> ```
>
> After:
> ```
> (stun_port.cc:598): UDP send of 20 bytes to host stun1.l.google.com:19302 (74.125.200.127:19302) failed with error 65 : [0x00000041] No route to host
> ```
>
> Bug: None
> Change-Id: Ibcd487e97b37677225814562df30af66f655cddb
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/215000
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Commit-Queue: Yura Yaroshevich <yura.yaroshevich@gmail.com>
> Cr-Commit-Position: refs/heads/master@{#33694}

Bug: None
Change-Id: Ic73327b20fd08ab41f378961333dd27f0f884525
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/215926
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33862}
2021-04-28 10:50:21 +00:00
2a605b1333 Roll chromium_revision 168af17ef9..731551a18e (876831:876954)
Change log: 168af17ef9..731551a18e
Full diff: 168af17ef9..731551a18e

Changed dependencies
* src/build: 7dd4aaf8db..94367a1d14
* src/ios: 3163d51272..aee6b7f15a
* src/testing: 0c9d727362..5f9242e282
* src/third_party: 9f0789e61e..076295819b
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/ca2c40743f..c5554ea0ab
* src/third_party/depot_tools: ae1b2b19ef..b3c9edb4af
* src/third_party/libaom/source/libaom: https://aomedia.googlesource.com/aom.git/+log/6c93db7ff6..1431f93c1e
* src/tools: f7c6959b96..043c2982b2
* src/tools/luci-go: git_revision:173195137e006c3bbbd2394409e3d752f8b3c62f..git_revision:7c21dae4ffe132b3bf611dce050d268f1ef4c155
* src/tools/luci-go: git_revision:173195137e006c3bbbd2394409e3d752f8b3c62f..git_revision:7c21dae4ffe132b3bf611dce050d268f1ef4c155
* src/tools/luci-go: git_revision:173195137e006c3bbbd2394409e3d752f8b3c62f..git_revision:7c21dae4ffe132b3bf611dce050d268f1ef4c155
DEPS diff: 168af17ef9..731551a18e/DEPS

No update to Clang.

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

Change-Id: I08dd4cac9c44b507d359b58e6bc5163dd9bdb670
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216421
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@{#33861}
2021-04-28 09:08:49 +00:00
5d3bda58fd dcsctp: Add timer safeguards and sanity checks
Ensuring that timer durations never go beyond a safe maximum duration
and that timer IDs are not re-used.

Bug: webrtc:12614
Change-Id: I227a2e9933da16669dc6ea0a39c570892010ba2c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/215063
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33860}
2021-04-28 06:58:29 +00:00
769629e02f Remove RTC_WARN_UNUSED_RESULT in favor of ABSL_MUST_USE_RESULT.
This header landed recently but it was not built, so this wasn't
caught.

Bug: webrtc:12336
Change-Id: Ie566d4fe22d1c9f17488ac1cf94068e606c0378b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216381
Commit-Queue: Markus Handell <handellm@webrtc.org>
Reviewed-by: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33859}
2021-04-28 06:47:48 +00:00
f8ada61773 Update WebRTC code version (2021-04-28T04:04:04).
TBR=webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com,mbonadei@webrtc.org

Bug: None
Change-Id: I4b99c56885969eda41a839887ad8e9f7963ea895
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216460
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@{#33858}
2021-04-28 05:59:07 +00:00
8d190d3ce8 Roll chromium_revision 7c4124421b..168af17ef9 (876723:876831)
Change log: 7c4124421b..168af17ef9
Full diff: 7c4124421b..168af17ef9

Changed dependencies
* src/base: 2b8f64a659..af3dfc8e13
* src/build: 743ecea201..7dd4aaf8db
* src/ios: ea8a5ef2bd..3163d51272
* src/testing: 3356e077e8..0c9d727362
* src/third_party: 1000dbba61..9f0789e61e
* src/third_party/depot_tools: 0e6b37448d..ae1b2b19ef
* src/third_party/perfetto: 36d5d47a51..e01ad9a6a8
* src/tools: c961f01b2b..f7c6959b96
DEPS diff: 7c4124421b..168af17ef9/DEPS

No update to Clang.

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

Change-Id: I6bb4e581ca6252d62d43a09b6ccd2370ba5b512c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216420
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@{#33857}
2021-04-28 00:40:56 +00:00
322f911c10 dcsctp: Add Stream Reset Handler
The Stream Reset handler handles a limited subset of RFC6525, but all
the parts necessary to implement "Closing a Data Channel", which is done
by sending an Outgoing SSN Reset Request.

There can only be a single "Stream Reconfiguration Request" on the wire
at any time, so requests are queued and sent when a previous request -
if any - finishes. Resetting a stream is an asynchronous operation and
the receiver will not perform the stream resetting until it can be done,
which is when the currently partly received message has been fully
received. And the sender will not send a request until the currently
fragmented message (on that stream) is still sent.

There are numerous callbacks to make the client know what's really
happening as these callbacks will result in Data Channel events.

Bug: webrtc:12614
Change-Id: I9fd0a94713f0c1fc384d1189f3894e87687408b7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/214131
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33856}
2021-04-27 21:08:56 +00:00
8ea855968f Roll chromium_revision 53a825af98..7c4124421b (876619:876723)
Change log: 53a825af98..7c4124421b
Full diff: 53a825af98..7c4124421b

Changed dependencies
* src/base: dccac20c72..2b8f64a659
* src/build: 47bacba564..743ecea201
* src/ios: bcbf6a4137..ea8a5ef2bd
* src/testing: 333f52ca43..3356e077e8
* src/third_party: 7a43b4d574..1000dbba61
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/0cfa2c0686..ca2c40743f
* src/third_party/depot_tools: c91f5f62e2..0e6b37448d
* src/third_party/perfetto: 7dadfe6bd3..36d5d47a51
* src/tools: 9e9adc186b..c961f01b2b
DEPS diff: 53a825af98..7c4124421b/DEPS

No update to Clang.

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

Change-Id: Iee404e42eb28738db8eb0a491fafab9968dc1bea
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216400
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@{#33855}
2021-04-27 20:33:16 +00:00
abab9c2d32 Roll chromium_revision b41cc04067..53a825af98 (876517:876619)
Change log: b41cc04067..53a825af98
Full diff: b41cc04067..53a825af98

Changed dependencies
* src/base: 44bff8ca76..dccac20c72
* src/build: f3f8763124..47bacba564
* src/ios: eefa7936f5..bcbf6a4137
* src/testing: 459ac36d44..333f52ca43
* src/third_party: 1f4896ca1d..7a43b4d574
* src/tools: 9684ce5eaa..9e9adc186b
DEPS diff: b41cc04067..53a825af98/DEPS

No update to Clang.

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

Change-Id: If6752794e77df39914e6b2b24dec2428be080274
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216224
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@{#33854}
2021-04-27 17:14:19 +00:00
99c8a80b8e Change the first-packet-received notification in Channel.
This changes the notification to a single std::function pointer
instead of being a sigslot::signal1<> collection.

Summary:

* Remove SignalFirstPacketReceived_, the last sigslot member variable.
  (still inherits from sigslot::has_slots<>)
* BaseChannel doesn't post to the signaling thread anymore. The only
  reason that remains for the signaling_thread_ variable, is for
  thread checking.
* Remove BaseChannel's reliance on MessageHandlerAutoCleanup
  (still inherits from MessageHandler)

RtpTransceiver is the consumer of this event. That class is also the
class that sits between the PC classes and the channel object, holding
a pointer to the channel and managing calls that come in on the
signaling thread, such as SetChannel. The responsibility of delivering
the first packet received on the signaling thread is now with
RtpTransceiver:

* RtpTransceiver always requires a ChannelManager instance. Previously
  this variable was sometimes set, but it's now required.
* Updated tests in rtp_transceiver_unittest.cc to include a
  ChannelManager as well as fix them to include call expectations for
  mock sender and receivers.

Bug: webrtc:11993, webrtc:11988
Change-Id: If49d6be157cd7599fa6fe3a42cd0a363464e3a74
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/215979
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33853}
2021-04-27 17:09:59 +00:00
87f7090fd9 Replace more instances of rtc::RefCountedObject with make_ref_counted.
This is essentially replacing `new rtc::RefCountedObject` with
`rtc::make_ref_counted` in many files. In a couple of places I
made minor tweaks to make things compile such as adding parenthesis
when they were missing.

Bug: webrtc:12701
Change-Id: I3828dbf3ee0eb0232f3a47067474484ac2f4aed2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/215973
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33852}
2021-04-27 17:01:59 +00:00
e644c09ff3 Update bug in TODO since the original one was separated
Bug: webrtc:11789
Change-Id: I72a04e206dd990d1e90d4b6890e583ff48da1ff9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216325
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33851}
2021-04-27 15:06:39 +00:00
0c563a42ec Use unordered_map in RTCPReceiver
In highly loaded media servers, RTCPReceiver's use of std::map
attributes to ~0.5% CPU. It's mostly ::find and the [] operator, and
they are all keyed by SSRC, which is an unordered data type. This makes
these maps suitable as unordered maps, as they have constant time
complexity for lookups.

Bug: webrtc:12689
Change-Id: I7b305e233fcbed0e452632946ab0de5ee66f8dda
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216321
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33850}
2021-04-27 14:54:59 +00:00
306b1393cb Optimize set of registered SSRCs in RTCPReceiver
In highly loaded media servers, RTCPReceiver's use of std::set
attributes to ~0.87% CPU. It's mostly ::find and the [] operator and the
assignment operator.

 * Removed locking of a mutex in `TriggerCallbacksFromRtcpPacket``
   as it copied members that were already const.
 * Switched the use of std::set for the list of registered local SSRCs
   to an absl::InlinedVector, as the set is very small and it's not
   expected that any more complicated container would be faster than a
   linear search within a cache line.

Bug: webrtc:12689
Change-Id: I734578c22eeca2d9ba89fef77ecc689b72624567
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216322
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33849}
2021-04-27 14:05:46 +00:00
723873b841 Use unordered map in RoundRobinPacketQueue
In highly loaded Media Servers, RoundRobinPacketQueue's usage of
std::map attributes to around 0.3% CPU. In profiling, it has been found
that it's the `streams_` map that is the culprit and std::map::find
being the function that is used most.

By using an unordered map, lookups should be faster. This will be
evaluated and if this commit doesn't show results, it will be reverted.

Bug: webrtc:12689
Change-Id: Ia368f1184130298cfbb9064528828435aa7a5c66
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216320
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33848}
2021-04-27 12:55:35 +00:00
a63bee55f2 Remove Mutex from BaseChannel.
There's a bit of copy/pasted code in the channel code, which is
making moving network traffic consistently over to the network thread
a bit trickier than it needs to be, so I'm also updating variable
names used in Set[Local|Remote]Content_w to be more explicitly the same
and make it clear that the code is copy/pasted (and future updates can
consolidate more of it).

Also removing some code from the video/voice media channels that's
effectively dead code (vector + registration methods that aren't needed)

Bug: webrtc:12705
Change-Id: I2e14e69fbc489a64fc1e8899aaf1cfc979fe840b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/215978
Reviewed-by: Sam Zackrisson <saza@google.com>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33847}
2021-04-27 12:46:10 +00:00
553fd3220b Use unordered_map in RtpDemuxer
The RtpDemuxer uses a number of maps, all of which can be made
unordered as they map SSRCs/MIDs/payload types/RSIDs etc - all of which
have no inherent ordering.

In busy media servers, the std::map operations can use ~0.5% CPU. After
this commit has landed, it will be evaluated and if it doesn't live up
to expected savings, it will be reverted.

Bug: webrtc:12689
Change-Id: I99e21c6b1ddb21dd9d47b0f9a891df5a2c3df59a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216243
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33846}
2021-04-27 11:38:01 +00:00
065ce9cb22 [LibvpxVp8Encoder] Allow I420A to be scaled to I420.
In Chromium, the I420ABufferInterface implementation uses the default
CropAndScale() implementation which converts to I420 in the process.

This should be OK, because we do not encode the alpha channel anyway,
so having WebRTC scaling ignore the alpha channel might even be a good
thing. Unfortunatety, an if statement in the LibvpxVp8Encoder did not
consider I420A and I420 to be the same, resulting in dropping perfectly
valid frames.

This CL fixes that by considering I420A and I420 "compatible" in a
comparison helper function. The problem only happens in this encoder,
so only this encoder needs to be fixed.

Bug: chromium:1203206
Change-Id: Iec434d4ada897c79e09914cac823148fd5b05e57
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216323
Reviewed-by: Evan Shrubsole <eshr@google.com>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33845}
2021-04-27 11:06:41 +00:00
fad23c1ff3 Roll chromium_revision 3fcf4b3884..b41cc04067 (875696:876517)
Change log: 3fcf4b3884..b41cc04067
Full diff: 3fcf4b3884..b41cc04067

Changed dependencies
* src/base: 5e6f757090..44bff8ca76
* src/build: eae219f9f1..f3f8763124
* src/buildtools/third_party/libc++abi/trunk: 2f2a4e507a..f6a8e55d6e
* src/ios: 468e1607dc..eefa7936f5
* src/testing: cbf481cd42..459ac36d44
* src/third_party: 7dabd46d8a..1f4896ca1d
* src/third_party/boringssl/src: https://boringssl.googlesource.com/boringssl.git/+log/15961379e6..354cd48f51
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/9cf09f1e1b..0cfa2c0686
* src/third_party/depot_tools: 61bf6e8d69..c91f5f62e2
* src/third_party/freetype/src: 8a459e5172..270ff52f62
* src/third_party/icu: d25bdc013c..cd9f9a9495
* src/third_party/perfetto: 7653b6f2ef..7dadfe6bd3
* src/third_party/r8: h1H8tuKYpnoPW2uwLMSaHgD_vVy9_8E6n4UZ5nwbMRkC..9JovxpDv8ZqFl60_eHo4hT-Ez0CelcMCoM9Cv5UJMz4C
* src/tools: d78b7e0049..9684ce5eaa
* src/tools/luci-go: git_revision:7ad561e001cdb13c858e065ef0bb3019aae49601..git_revision:173195137e006c3bbbd2394409e3d752f8b3c62f
* src/tools/luci-go: git_revision:7ad561e001cdb13c858e065ef0bb3019aae49601..git_revision:173195137e006c3bbbd2394409e3d752f8b3c62f
* src/tools/luci-go: git_revision:7ad561e001cdb13c858e065ef0bb3019aae49601..git_revision:173195137e006c3bbbd2394409e3d752f8b3c62f
DEPS diff: 3fcf4b3884..b41cc04067/DEPS

No update to Clang.

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

Change-Id: I91176373f1a2032597fdb8910c3340395f49295f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216301
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@{#33844}
2021-04-27 11:01:01 +00:00
c29e1f5415 Add QueryCodecSupport() to VideoEncoderFactory and VideoDecoderFactory
QueryCodecSupport() is needed in the coming work with extending
the MediaCapabilities API to WebRTC. In the API, a user can query
whether a specified media configuration is supported, power
efficient, and smooth. QueryCodecSupport() will be used to determine
if the configuration is supported and power efficient.

Bug: chromium:1187565
Change-Id: Ib1d93433a180b433f0bf60d6e871d03cebc4c0a6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/215922
Commit-Queue: Johannes Kron <kron@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33843}
2021-04-27 10:23:05 +00:00
a866228db1 dcsctp: Use third_party/crc32c for integrity check
CRC32c is used in SCTP for integrity checking, and the
third_party/crc32c library (https://github.com/google/crc32c) which has
been optimized for SSE42 and arm64 and has a much faster fallback
implementation for other architectures.

Running ./out/Release/dcsctp_benchmark
Run on (12 X 4500 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x6)
  L1 Instruction 32 KiB (x6)
  L2 Unified 1024 KiB (x6)
  L3 Unified 8448 KiB (x1)
Load Average: 11.01, 17.53, 17.11
------------------------------------------------------------------------------
Benchmark                    Time             CPU   Iterations UserCounters...
------------------------------------------------------------------------------
BM_PumpData/1              676 ns          676 ns      1034087 bytes_per_second=1.41063M/s items_per_second=1.47916M/s
BM_PumpData/8              671 ns          671 ns      1041809 bytes_per_second=11.3643M/s items_per_second=1.48955M/s
BM_PumpData/128            725 ns          725 ns       967170 bytes_per_second=168.398M/s items_per_second=1.37952M/s
BM_PumpData/512            800 ns          800 ns       873854 bytes_per_second=610.125M/s items_per_second=1.24954M/s
BM_PumpData/1024           911 ns          911 ns       775785 bytes_per_second=1072.2M/s items_per_second=1097.93k/s
BM_PumpData/2048          1988 ns         1988 ns       352444 bytes_per_second=982.409M/s items_per_second=502.993k/s
BM_PumpData/4096          3893 ns         3893 ns       179999 bytes_per_second=1003.31M/s items_per_second=256.848k/s
BM_PumpData/8192          7477 ns         7477 ns        92790 bytes_per_second=1044.88M/s items_per_second=133.745k/s
BM_PumpData/65536        97156 ns        97153 ns         7089 bytes_per_second=643.318M/s items_per_second=10.2931k/s
BM_EchoServer/1            634 ns          634 ns      1130860 bytes_per_second=1.50512M/s items_per_second=1.57823M/s
BM_EchoServer/8            614 ns          614 ns      1136372 bytes_per_second=12.4286M/s items_per_second=1.62904M/s
BM_EchoServer/128          644 ns          644 ns      1073464 bytes_per_second=189.618M/s items_per_second=1.55335M/s
BM_EchoServer/512          734 ns          734 ns       949487 bytes_per_second=665.181M/s items_per_second=1.36229M/s
BM_EchoServer/1024         836 ns          836 ns       838010 bytes_per_second=1.14046G/s items_per_second=1.19586M/s
BM_EchoServer/2048        1939 ns         1939 ns       345067 bytes_per_second=1007.27M/s items_per_second=515.724k/s
BM_EchoServer/4096        3984 ns         3983 ns       176047 bytes_per_second=980.737M/s items_per_second=251.069k/s
BM_EchoServer/8192        7486 ns         7484 ns        95780 bytes_per_second=1043.85M/s items_per_second=133.613k/s
BM_EchoServer/65536      92360 ns        92346 ns         7821 bytes_per_second=676.805M/s items_per_second=10.8289k/s

No-Presubmit: True
Bug: webrtc:12614
Change-Id: Iff21035ee78b263ee0e4b0fe3d07eea24064b921
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/215002
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Victor Costan <pwnall@chromium.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33842}
2021-04-27 10:12:44 +00:00
dec73a8164 Add pure RtpSenderEgress unit test fixture.
The extracts and refactors some test code from rtp_sender_unittest.cc
and puts it in a new target intended to only test RtpSenderEgress, and
do it as pure unit test, rather than the unholy
not-quite-unit-not-quite-integration-test thingy we have today.

Only a first test case is actually ported with this CL, but it's a
start...

Bug: webrtc:11340
Change-Id: Ie2cdde63a00a6ff6eba7b8d443eeb76ce2a527c9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216180
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33841}
2021-04-27 10:11:40 +00:00
80b7628a55 Remove explicitly forwarded constructors in rtc::FinalRefCountedObject
those constructors may expose protected constructors that are not suppose to be public
using T::T forwards constructors with respect to protected access specifier

Bug: None
Change-Id: I3fcce0fd88bbdf538bc85baab833397f787408d8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216240
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33840}
2021-04-27 10:10:35 +00:00
dfc7d99f99 Update WebRTC code version (2021-04-27T04:04:20).
TBR=webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com,mbonadei@webrtc.org

Bug: None
Change-Id: I224d03e665c4b93f2b58577b1f625e5e187441d4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216223
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@{#33839}
2021-04-27 05:54:42 +00:00
f8187e0a82 [Unified Plan] Support multiple BUNDLE groups.
In this CL, JsepTransportController and MediaSessionDescriptionFactory
are updated not to assume that there only exists at most a single BUNDLE
group but a list of N groups. This makes it possible to create multiple
BUNDLE groups by having multiple "a=group:BUNDLE" lines in the SDP.

This makes it possible to have some m= sections in one group and some
other m= sections in another group. For example, you could group all
audio m= sections in one group and all video m= sections in another
group. This enables "send all audio tracks on one transport and all
video tracks on another transport" in Unified Plan. This is something
that was possible in Plan B because all ssrcs in the same m= section
were implicitly bundled together forming a group of audio m= section and
video m= section (even without use of the BUNDLE tag).

PeerConnection will never create multiple BUNDLE groups by default, but
upon setting SDP with multiple BUNDLE groups the PeerConnection will
accept them if configured to accept BUNDLE. This makes it possible to
accept an SFU's BUNDLE offer without having to SDP munge the answer.

C++ unit tests are added. This fix has also been verified manually on:
https://jsfiddle.net/henbos/to89L6ce/43/

Without fix: 0+2 get bundled, 1+3 don't get bundled.
With fix: 0+2 get bundled in first group, 1+3 get bundled in second
group.

Bug: webrtc:10208
Change-Id: Iaf451fa5459c484730c8018274166ef154b19af8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/214487
Reviewed-by: Taylor <deadbeef@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33838}
2021-04-27 05:53:37 +00:00
0548d18510 Add DesktopCaptureOptions to allow WGC capturer.
This changes add two new options to the DesktopCaptureOptions class so
consumers can opt in to using the WGC capturer. The capturer is still
behind the RTC_ENABLE_WIN_WGC build flag which is off by default, so
these options will have no affect until that flag is enabled.

Bug: webrtc:11760
Change-Id: Ib7166f3bb335f29aeff8cb5d2bebea2c06c14d4c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/215243
Commit-Queue: Austin Orion <auorion@microsoft.com>
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#33837}
2021-04-26 18:00:59 +00:00
af366443b7 Calculate VP9 generic info from vp9 specific info
Encoder wrapper can provide more accurate vp9 generic info, but
each vp9 encoder wrapper would need to fill this structure.
Inserting this code into the call allows to have some generic info for
all vp9 encoder wrappers.

Bug: webrtc:11999
Change-Id: I82490d24454815aa29bbb1c86f351e0b37292d59
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/214491
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33836}
2021-04-26 17:49:59 +00:00