Commit Graph

33809 Commits

Author SHA1 Message Date
82aa094a97 Fix incorrect SSRC in RtpPacketSendInfo for RTX packets.
Bug: webrtc:12713
Change-Id: I1b5fb947ffe4ac80e23a6b891ea1a2c2156ba81f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/218000
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34177}
2021-05-31 20:51:07 +00:00
c48a49cd0d dcsctp: Find out quickly if to send FORWARD-TSN
There is no need to iterate through all outstanding data chunks to know
if a FORWARD-TSN can be sent. As the FORWARD-TSN will just move the
cumulative TSN ack, if a chunk is found that is not to be expired,
there is no need to continue any further. This makes it much faster
to know if to send a FORWARD-TSN when the congestion window is large.

Bug: webrtc:12799
Change-Id: I58bce408ae9814c8d3d7bbb480b0037a2cf88dd7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219625
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34176}
2021-05-31 20:22:57 +00:00
cc84c980c2 Fix typo in a URL in the comment
Bug: None
Change-Id: I8ec4daa95e2602da7c1df747a6ddda193449eea1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220620
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34175}
2021-05-31 20:15:17 +00:00
376cf07ea2 Add packet_sequence_checker_ to RtpVideoStreamReceiver2.
Specifying guards for functions and member variables. Also updating
a few places for VideoReceiveStream2 accordingly.

Bug: webrtc:11993
Change-Id: I2d13b009ec9853c6b2d90b08af555ecdd2b1ced6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220765
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34174}
2021-05-31 18:49:13 +00:00
b6b7d80ea4 Roll chromium_revision fbd3997e87..03cca1960d (887673:887795)
Change log: fbd3997e87..03cca1960d
Full diff: fbd3997e87..03cca1960d

Changed dependencies
* src/base: 65424b398e..47943882fb
* src/build: 068753b025..79538b13ec
* src/buildtools/third_party/libunwind/trunk: c8d0fb870a..c0776fc649
* src/ios: 2d15772da6..86d93e1021
* src/testing: 73587aa74e..dd9d32d6cd
* src/third_party: b4d7e91e70..94411bea33
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/edf4e0e88f..12d96cda9c
* src/tools: 979eedbf1e..4e0ef8c556
DEPS diff: fbd3997e87..03cca1960d/DEPS

No update to Clang.

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

Change-Id: I59a003cee2141e4a2401f25f4f2a83fa28693ab6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220903
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@{#34173}
2021-05-31 18:47:33 +00:00
90738ddb4e Split VideoReceiveStream2 init into worker / network steps.
This is in preparation for actually doing this initialization
differently in the Call class. This CL takes the registration
steps that are inherently network thread associated and makes
them separate from the ctor/dtor.

Inject Call* instead of worker_thread(), which will simplify upcoming
work that needs to access the network_thread() as well.

This is related to:
https://webrtc-review.googlesource.com/c/src/+/220608
https://webrtc-review.googlesource.com/c/src/+/220609

Bug: webrtc:11993
Change-Id: I72769fd61de84967d9a645750c40d01660a2716b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220764
Reviewed-by: Markus Handell <handellm@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34172}
2021-05-31 17:10:23 +00:00
27d2be3583 dcsctp: Optimize SACK generation
Before this CL, a SACK was generated from scratch based on information
about each received fragment, to generate correct gap-ack-blocks.

When there was a lot of data in the data tracker (due to packet loss),
this took considerate time, as generating a SACK was O(N), where N is
the amount of fragments in the data tracker.

By instead having precomputed gap-ack-blocks that are continuously
updated, generating a SACK is much faster and the memory usage goes down
a bit as well.

Bug: webrtc:12799
Change-Id: I924752c1d6d31f06d27246e10b595e9ccb19320f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220763
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34171}
2021-05-31 16:30:21 +00:00
0377bab21b Split FlexfecReceiveStreamImpl init into worker / network steps.
This is comparable to this change for AudioReceiveStream:
https://webrtc-review.googlesource.com/c/src/+/220608/

Bug: webrtc:11993
Change-Id: I6bad7fa693441f80e86d8b021b8cf42727dc9142
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220609
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34170}
2021-05-31 15:29:41 +00:00
261eec5456 dcsctp: Allow more outstanding fragments
There limit that decides if an incoming TSN should be accepted or not
was decided based on very small transfers with no packet loss. But in
simulations where a socket tries to send a lot of data and when there
is moderate packet loss, the number of tracker data chunks on the
receive side will be considerably higher than what the limit was.

Set the limit to allow high data rate also on moderate packet loss.

Bug: webrtc:12799
Change-Id: I6ca237e5609d8b511e9b10c919da33dca7420c01
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220761
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34169}
2021-05-31 14:12:04 +00:00
8267724a85 dcsctp: Announce send buffer watermark as a_rwnd
The receive buffer mustn't be full; If it's full, and a message can't be
assembled, the socket can't accept more data. To avoid this, there is
a high watermark limit that, when reached, will make the socket only
accept chunks that advance the cumulative ack TSN.

Before this CL, the announced receiver window size in every sent SACK
was based on what the receive buffer could maximally be, which means
that in really high data rate applications, the amount of outstanding
data could actually fill the receive buffer (due to packet loss, that
prevents messages from being reassembled). As the socket started
behaving more conservatively when the high watermark limit was reached,
this resulted in unnecessary T3-RTXes. But by announcing the high
watermark limit instead, the sender will stay within it, and will have
a peer socket that behaves as expected.

Bug: webrtc:12799
Change-Id: Ife2f409914a230640217553c54f60d05843efc70
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220762
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34168}
2021-05-31 14:10:34 +00:00
ea72ee6350 Add ClippingPredictorLevelBuffer circular buffer.
Bug: webrtc:12774
Change-Id: I2b26660e3fe051ab358dd5298ba5098f275943da
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219631
Reviewed-by: Minyue Li <minyue@webrtc.org>
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Commit-Queue: Hanna Silen <silen@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34167}
2021-05-31 14:04:54 +00:00
4f26a3c7e8 red: assign payload type 63 to audio/RED for opus
Starting new audio codecs from the top of the lower range
reduces collisions with video codecs which are assigned from
the bottom of the lower range

BUG=webrtc:11640

Change-Id: If6d2b849b8e1de777a1d4352df533e4f1845fde9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220022
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34166}
2021-05-31 13:35:44 +00:00
5d4c3c5128 dcsctp: Add more unit tests for DataTracker
There were some missing unit tests that are now written. When doing
this, it was found that SACKs weren't sent for duplicate received
chunks, which they should be according to the spec.

Bug: webrtc:12614
Change-Id: I8296473c0c8cbaf0329785de95e9b9945f254339
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220607
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34165}
2021-05-31 13:09:24 +00:00
5429d71022 dcsctp: Allow heartbeats to be disabled
This is useful in tests and in scenarios where the connection is
monitored externally and the heartbeat monitoring would be of no use.

Bug: webrtc:12614
Change-Id: Ida4f4e2e40fc4d2aa0c27ae9431f434da4cc8313
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220766
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34164}
2021-05-31 12:19:38 +00:00
02df2eb1de Split AudioStream initialization into worker / network steps.
This is in preparation for actually doing this initialization
differently in the Call class. This CL takes the registration
steps that are inherently network thread associated and makes
them separate from the ctor/dtor.

Bug: webrtc:11993
Change-Id: Ice2e16c108e0c302157534a3aa2b46738aaa7a93
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220608
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34163}
2021-05-31 12:16:37 +00:00
6ad542cf11 Remove temporary using webrtc::OnCompleteFrameCallback statement.
Bug: webrtc:12579
Change-Id: I9ba7735be20318b1f37bc7e75b07804ef694a7b4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220362
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34162}
2021-05-31 11:45:33 +00:00
948e40cfdf Add thread guards and constness to Call members.
Bug: webrtc:11993
Change-Id: I8f6f6fb800f19b9fa2071a1d159dfe9334ab20cb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220606
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34161}
2021-05-31 10:55:12 +00:00
cae1f1d47b Move PostTask for DeliverRtcp from PeerConnection to Call.
This is part of moving the thread hops from the network thread to
worker (required by Call) into Call itself so that we can eventually
remove them.

Bug: webrtc:11993
Change-Id: Ib3ccdd6c75a3848daae2e3ce6c9a55d9617c2f50
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220604
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34160}
2021-05-31 10:34:09 +00:00
acd16af8c6 AudioReceiveStream: Clean up ConfigureStream.
Increases readability of configuration setup by separating
first time configuration setup and reconfiguration.

Bug: None
Change-Id: Ifee29c31bce505a971ab5993cb862a72db94725a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220700
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34159}
2021-05-31 09:11:29 +00:00
c81afe365d Call: prepare receive stats for thread switch.
This change collects the receive stats that Call
maintains into a new thread-compatible
internal class which can easily be switched to
the network thread.

Bug: webrtc:11993
Change-Id: I9fa9a7f057149789aa327e5ba8a8cb3379762272
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220760
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34158}
2021-05-31 08:37:26 +00:00
22fead3041 Roll chromium_revision 6f6904aacc..fbd3997e87 (887571:887673)
Change log: 6f6904aacc..fbd3997e87
Full diff: 6f6904aacc..fbd3997e87

Changed dependencies
* src/build: 3fc38c3bd6..068753b025
* src/ios: fdc76a4cce..2d15772da6
* src/testing: 0f50062689..73587aa74e
* src/third_party: 859af1e84f..b4d7e91e70
* src/tools: 7aac6671d0..979eedbf1e
DEPS diff: 6f6904aacc..fbd3997e87/DEPS

No update to Clang.

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

Change-Id: I75decf735a5c1e74542e33be1fa5dc3ccec493c1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220823
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@{#34157}
2021-05-31 08:30:06 +00:00
5be2aa1ac3 Make generate_license.py compatible with Python 3.
* Use cgi.escape for Python 2.7 and html.escape for Python 3.
* Modify unittest to succeed in both Python 2.7 and 3.

No-Presubmit: True
Bug: None
Change-Id: Ie711873468145c9abbd12313086ebe7358e20ab7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220621
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34156}
2021-05-31 07:05:46 +00:00
d3166afe01 Update WebRTC code version (2021-05-31T04:03:11).
TBR=webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com,mbonadei@webrtc.org

Bug: None
Change-Id: Iab1705002cb16da2c45be98f0d067469722eb75b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220861
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@{#34155}
2021-05-31 05:33:22 +00:00
d280eaf195 Update WebRTC code version (2021-05-30T04:02:15).
TBR=webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com,mbonadei@webrtc.org

Bug: None
Change-Id: Ibff207d38a3dbabd527ff02ead5eca71defa368e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220745
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@{#34154}
2021-05-30 05:07:23 +00:00
6c94d58e34 Roll chromium_revision bbca8ebcc5..6f6904aacc (887470:887571)
Change log: bbca8ebcc5..6f6904aacc
Full diff: bbca8ebcc5..6f6904aacc

Changed dependencies
* src/build: 862b91b57a..3fc38c3bd6
* src/ios: b877a5846b..fdc76a4cce
* src/third_party: 6938093afd..859af1e84f
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/8f9ae5d5d3..edf4e0e88f
* src/tools: 8507003bda..7aac6671d0
DEPS diff: bbca8ebcc5..6f6904aacc/DEPS

No update to Clang.

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

Change-Id: Idd05db4d9643e2f701344393d13a46a57fa8908a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220741
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@{#34153}
2021-05-29 18:33:45 +00:00
cbb4421eac Remove DeliverPacketAsync.
This is currently unused and since we ultimately don't want the delivery
of packets to be async at this stage (but rather stay on the network
thread), we don't need it.

Bug: webrtc:11993
Change-Id: I6809026b6901c8ecfacd961e98ddf79aaa16d0bd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220601
Reviewed-by: Markus Handell <handellm@webrtc.org>
Commit-Queue: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34152}
2021-05-29 07:37:33 +00:00
785725129a Update WebRTC code version (2021-05-29T04:03:30).
TBR=webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com,mbonadei@webrtc.org

Bug: None
Change-Id: If4ecdd641557c7f139f98d2d31a310d82c291d48
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220583
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@{#34151}
2021-05-29 05:36:03 +00:00
d5b0199959 Roll chromium_revision 4a5a62a362..bbca8ebcc5 (887362:887470)
Change log: 4a5a62a362..bbca8ebcc5
Full diff: 4a5a62a362..bbca8ebcc5

Changed dependencies
* src/base: 81feb71671..65424b398e
* src/build: 5ed0c25eaa..862b91b57a
* src/ios: aaf94d3ca0..b877a5846b
* src/testing: d795081f8b..0f50062689
* src/third_party: 1ecc375025..6938093afd
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/e83a92e7b8..8f9ae5d5d3
* src/third_party/perfetto: e46c9b802f..b3f455e9ed
* src/tools: f903bb869e..8507003bda
DEPS diff: 4a5a62a362..bbca8ebcc5/DEPS

No update to Clang.

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

Change-Id: Iaa36275ef783936dc956c04e831f2fc454294344
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220541
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@{#34150}
2021-05-28 07:00:00 +00:00
3d46d0b200 Proxy: solve event tracing with compile time strings.
This change creates trace events with a single parameter
composed of ClassName::Method.

The change additionally causes the duration of the proxy call to be
traced, not only the occurrence.

Fixed: webrtc:12787
Change-Id: I1689862318d4c6fc1dcef343c3ccf3ae9f7e17df
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219788
Commit-Queue: Markus Handell <handellm@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34149}
2021-05-28 06:53:29 +00:00
d325f322c7 Update WebRTC code version (2021-05-28T04:03:27).
TBR=webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com,mbonadei@webrtc.org

Bug: None
Change-Id: I17bab58728190b656e1f0db1c609c2896c090326
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220540
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@{#34148}
2021-05-28 05:20:39 +00:00
319bac634b Roll chromium_revision f713d4fb04..4a5a62a362 (887229:887362)
Change log: f713d4fb04..4a5a62a362
Full diff: f713d4fb04..4a5a62a362

Changed dependencies
* src/base: cec4a71b3f..81feb71671
* src/build: b5063cfbea..5ed0c25eaa
* src/ios: 09ce2a9c75..aaf94d3ca0
* src/testing: 63780aeaa4..d795081f8b
* src/third_party: b13c85f968..1ecc375025
* src/third_party/boringssl/src: https://boringssl.googlesource.com/boringssl.git/+log/ddecaabdc8..3dd9864fea
* src/third_party/depot_tools: 6fc394f93d..0694fa65f8
* src/tools: bbaa2660fe..f903bb869e
DEPS diff: f713d4fb04..4a5a62a362/DEPS

No update to Clang.

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

Change-Id: I3cce061233062313cb157939319c664f4e15ac82
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220480
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@{#34147}
2021-05-27 22:45:17 +00:00
d595f6c02a Roll chromium_revision a0132a2044..f713d4fb04 (887053:887229)
Change log: a0132a2044..f713d4fb04
Full diff: a0132a2044..f713d4fb04

Changed dependencies
* src/base: 43f91dbc50..cec4a71b3f
* src/build: 2f6e88e05d..b5063cfbea
* src/ios: 61b28637d9..09ce2a9c75
* src/testing: 55ab025d49..63780aeaa4
* src/third_party: 3544467673..b13c85f968
* src/third_party/perfetto: be406c7d16..e46c9b802f
* src/tools: 451fade863..bbaa2660fe
DEPS diff: a0132a2044..f713d4fb04/DEPS

No update to Clang.

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

Change-Id: If01f20f5c8e1a28a9f57afbcec84609604614a26
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220441
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@{#34146}
2021-05-27 18:28:27 +00:00
c39080c883 Roll chromium + fix: blacklist -> ignorelist for sanitizers suppressions
Roll chromium_revision 19159a8788..a0132a2044 (886529:887053)

Change log: 19159a8788..a0132a2044
Full diff: 19159a8788..a0132a2044

Changed dependencies
* src/base: eb591f0d4b..43f91dbc50
* src/build: 4f39b7cf99..2f6e88e05d
* src/buildtools/third_party/libunwind/trunk: 7846d25635..c8d0fb870a
* src/ios: 6d4134ba11..61b28637d9
* src/testing: 04abc75222..55ab025d49
* src/third_party: 6dc8812614..3544467673
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/74a278f9bb..e83a92e7b8
* src/third_party/depot_tools: 6d45691f60..6fc394f93d
* src/third_party/googletest/src: 23ef29555e..a3460d1aee
* src/third_party/perfetto: 78af063a63..be406c7d16
* src/tools: 255ad6c868..451fade863
DEPS diff: 19159a8788..a0132a2044/DEPS

No update to Clang.

Bug: webrtc:12817, webrtc:11680
Change-Id: Icf3b9678dbd529bb6878bcb12bdb4c1c3e7f2c24
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220364
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34145}
2021-05-27 16:16:01 +00:00
236ac50628 dcsctp: Add public API for BufferedAmountLow
This adds native support for the RTCDataChannel properties:
https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel/bufferedAmount
https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel/bufferedAmountLowThreshold

And the RTCDataChannel event:
https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel/onbufferedamountlow

The old callback, NotifyOutgoingMessageBufferEmpty, is deprecated as it
didn't work very well. It will not be triggered and will be removed
as soon as all users of it are gone. There is a new callback,
OnTotalBufferedAmountLow, that serves the same purpose but also allows
setting an arbitrary limit when it should be triggered (See
DcSctpOptions::total_buffered_amount_low_threshold).

Bug: webrtc:12794
Change-Id: Ic1c92f174eff8a1acda0b5fd3dcc45bd1cfa2704
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219691
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34144}
2021-05-27 15:27:27 +00:00
bd9031bf22 dcsctp: Add OnTotalBufferedAmountLow in Send Queue
This is similar to Change-Id: I12a16f44f775da3711f3aa52a68a0bf24f70d2f8
but with the entire send buffer as scope, not a single stream.

This can be used by clients to take alternate action (such as delaying
transmission or using other buffering) if the send buffer ever becomes
full, as they can now be notified when the send buffer is no longer
full.

Bug: webrtc:12794
Change-Id: Icf3be3b118888ffb5ced955fd7ba4826a37140f9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220360
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34143}
2021-05-27 14:38:18 +00:00
791adafa09 dcsctp: Add OnBufferedAmountLow in Send Queue
This adds the necessary properties and callback to the Send Queue to
support the bufferedAmount & bufferedAmountLowThreshold properties and
the bufferedamountlow event in RTCDataChannel.

The public API changes and socket support comes in a follow-up CL.

Bug: webrtc:12794
Change-Id: I12a16f44f775da3711f3aa52a68a0bf24f70d2f8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219690
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34142}
2021-05-27 13:16:28 +00:00
a1b8201009 Move proxies into pc/.
Bug: webrtc:12787
Change-Id: Ia244d9d22d35436a02cf5a448bd1520cb66ff352
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220321
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34141}
2021-05-27 09:56:42 +00:00
7d2e669a38 dcsctp: Allocate TSN for end of abandoned message
If a not fully sent message is abandoned, there must be a TSN
representing the end of that message (even if that fragment is never
sent), as the receiver can otherwise reject the next sent message as it
hasn't seen any end of the previous one.

A long explanation can be found at
https://github.com/sctplab/usrsctp/issues/592#issuecomment-849047689

Bug: webrtc:12812
Change-Id: I09c571bd6dd2774b0c147d4e5ddac67d2aa64fea
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220361
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34140}
2021-05-27 08:53:42 +00:00
9700d88b1a dcsctp: Avoid recalculation of outstanding bytes
Recalculating outstanding bytes is expensive when the congestion window
is large, as it iterates over all inflight data chunks. By doing it
incrementally, it will be a constant operation in most cases, and
in the remaining cases, a function of the number of chunks acked in a
single SACK, which is typically just a few chunks.

Implementing this fix required some refactoring to calculate it
correctly (and to be honest, it was likely done incorrectly previously).

Previously, the state of an item in the retransmission queue was
simplified as "in flight", "acked", "nacked", "abandoned", but these
were not completely orthogonal. A chunk could be abandoned while it was
in-flight or it could be abandoned because it was lost. The difference
between these if that chunk should be accounted for in
outstanding_bytes() or not.

Unit tests have been added to verify this.

Bug: webrtc:12799
Change-Id: I72341538bb0c4f8f89555b08f0c8a28815f0f828
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219623
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34139}
2021-05-27 07:40:11 +00:00
36ad60613d Update WebRTC code version (2021-05-27T04:02:45).
TBR=webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com,mbonadei@webrtc.org

Bug: None
Change-Id: Ibbf24578c29dfb834fac3803716ebda700d5f4e0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220381
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@{#34138}
2021-05-27 05:42:23 +00:00
e52cfab633 PipeWire capturer: request mouse cursor to be part of the stream
We need to specify that the cursor should be included in the stream as
by default xdg-desktop-portal defaults to hidden cursor.

Bug: chromium:1202526
Change-Id: Ic4742da2e51f7ed28cb9d7b6b0c069c1fa7d0cee
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/214782
Reviewed-by: Tommi <tommi@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34137}
2021-05-26 19:08:17 +00:00
2182096e66 RtpFrameReferenceFinder return frames directly instead of via callback.
Bug: webrtc:12579
Change-Id: I41263f70a6f3dc60167e41f8b015a7d3b0dc3dd7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219633
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@google.com>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34136}
2021-05-26 15:47:03 +00:00
7f11067110 Clean up RtpSenderTest and remove RtpSenderEgress dependencies.
Since all test cases that used RtpSenderEgress have been refactored or
moved, we can now get rid of lot of test fixture crud:
* Remove RtpSenderContext helper, make sender normal member.
* Remove test transport helper
* Remove task queue helper (needed for thread checks in egress)
* Remove various mocks no longer used
* Remove RtpSenderWithoutPacer subclass
* Remove WithWithoutOverhead parametrization (only affect egress)

..plus some cleanup of how configs are created.

Bug: webrtc:11340
Change-Id: I5c581d60862fc6dc2b99f76058782309dc7aef4d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220280
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34135}
2021-05-26 15:25:58 +00:00
b4f3204a23 Remove Win UWP mb config
Bug: webrtc:12803
Change-Id: Ia66efdf101645a2a0332662ff8b010a78024b0a6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220161
Commit-Queue: Christoffer Jansson <jansson@google.com>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34134}
2021-05-26 13:29:05 +00:00
940108b04f Apply autoformat to the docs
Bug: None
Change-Id: Iea7823827d6f5a2d400ccbb208f91829165ee518
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220163
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34133}
2021-05-26 11:53:07 +00:00
8f8bf252e6 Remove usage of InjectPacket and transport_ in rtp_sender_unittest
Thus removing dependency on RtpSenderEgress, allowing simplification of
the test fixture in a follow-up.

Bug: webrtc:11340
Change-Id: I9772bab18d1f4a04e0deccc9125d4b1c16c30d7a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219627
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34132}
2021-05-26 10:44:29 +00:00
b412efdb78 payload type mapping: restrict lower range to <= 63
for consistency with the definition in IsRtcpPacket which takes
into account a collision of H261 feedback for payload types 64 + 65:
  https://datatracker.ietf.org/doc/html/rfc5761#section-4

BUG=webrtc:12194

Change-Id: I2ebb0456ae2aff1b1735f26221c7c4ae79698ac9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220021
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34131}
2021-05-26 10:04:29 +00:00
a9af50f151 Introduce CreateDataChannelOrError
Deprecate CreateDataChannel, and make it a simple wrapper function.

Bug: webrtc:12796
Change-Id: I053d75a264596ba87ca734a29df9241de93a80c3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219784
Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34130}
2021-05-26 09:43:29 +00:00
0d0ed76ac1 Fix RTP header extension encryption
Reland of commit a743303211b89bbcf4cea438ee797bbbc7b59e80

Previously, RTP header extensions with encryption had been filtered
if the encryption had been activated (not the other way around) which
was likely an unintended logic inversion.

In addition, it ensures that encrypted RTP header extensions are only
negotiated if RTP header extension encryption is turned on. Formerly,
which extensions had been negotiated depended on the order in which
they were inserted, regardless of whether or not header encryption was
actually enabled, leading to no extensions being sent on the wire.

Further changes:

- If RTP header encryption enabled, prefer encrypted extensions over
  non-encrypted extensions
- Add most extensions to list of extensions supported for encryption
- Discard encrypted extensions in a session description in case encryption
  is not supported for that extension
- Mark FindHeaderExtensionByUri without filter argument as deprecated

Bug: webrtc:11713
Change-Id: I52a5ade1b94bc01d1c2a35cb56023684fcaf9982
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219081
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34129}
2021-05-26 09:42:09 +00:00
4a54be7118 doc: update dtls_transport.md to use new link style
BUG=webrtc:12551

No-Try: true
Change-Id: I20a513653aad68c568fea655790c01b53d4da2fe
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/218846
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34128}
2021-05-26 09:40:24 +00:00