2940 Commits

Author SHA1 Message Date
Ilya Nikolaevskiy
ed8390d21a Revert "Deprecate old constructors and set_type() in Candidate and Port"
This reverts commit aaa6851d53741179a591d79fc82c4dd6651a7ba5.

Reason for revert: breaks chromium webrtc import

Original change's description:
> Deprecate old constructors and set_type() in Candidate and Port
>
> * Deprecates constructors that use string based `type`
> * Deprecates string based type functions in favor of enum based.
> * Restrict possible values of Candidate::type. Ensure a valid value
>   is assigned at construction.
> * Make Port constructors protected to limit their use to subclasses.
>   - The reason for this is to make sure that use of SharedSocket()
>     is controlled (it adds a bit of complexity).
> * Simplify construction of Port (remove Construct() etc)
>
> Bug: webrtc:15846
> Change-Id: If24ed674e175642efa49da37fd2bc847dd14f613
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/339860
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#41865}

Bug: webrtc:15846
Change-Id: Ic8b7cba97f8fb207ef51a88900e704658ade28b7
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/342140
Auto-Submit: Ilya Nikolaevskiy <ilnik@webrtc.org>
Owners-Override: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#41867}
2024-03-07 09:43:38 +00:00
Tommi
aaa6851d53 Deprecate old constructors and set_type() in Candidate and Port
* Deprecates constructors that use string based `type`
* Deprecates string based type functions in favor of enum based.
* Restrict possible values of Candidate::type. Ensure a valid value
  is assigned at construction.
* Make Port constructors protected to limit their use to subclasses.
  - The reason for this is to make sure that use of SharedSocket()
    is controlled (it adds a bit of complexity).
* Simplify construction of Port (remove Construct() etc)

Bug: webrtc:15846
Change-Id: If24ed674e175642efa49da37fd2bc847dd14f613
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/339860
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41865}
2024-03-06 18:36:14 +00:00
Philipp Hancke
a5cd6643f6 Add killswitch for receive-only setCodecPreferences change
Adds a killswitch
  WebRTC-SetCodecPreferences-ReceiveOnlyFilterInsteadOfThrow
to accompany the spec-change to throw when codec capabilities
are taken from the RtpSender instead of the RtpReceiver.
With the killswitch triggered, such codecs will be filtered.

BUG=webrtc:15396

Change-Id: I7d27111c72085eb7a7b2a1e66d0a08d12883ce17
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/341460
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Philipp Hancke <phancke@microsoft.com>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41845}
2024-02-29 12:43:05 +00:00
Philipp Hancke
20a90295fc sdp: set content to rejected if the list of common codecs is empty
which avoids throwing an error when using setCodecPreferences
to set a recvonly codec on a sendonly transceiver. See
  https://github.com/w3c/webrtc-pc/issues/2936

BUG=webrtc:15396

Change-Id: I435a98c944ed2eeef87d9b8a7f791d095ec25502
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/338642
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Philipp Hancke <phancke@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#41843}
2024-02-29 08:02:26 +00:00
Harald Alvestrand
fb4ad29e3b Continue breakup of media/rtc_media_base
Left in target are just .cc files with .h files used externally.

Bug: webrtc:14775
Change-Id: I264f69bb29147fc0f8db877e3def8b21ed42181d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/341420
Reviewed-by: Jeremy Leconte <jleconte@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41835}
2024-02-28 12:29:54 +00:00
Danil Chapovalov
dcc1534764 Delete rtc::TaskQueue
All usage was updated to use TaskQueueBase interface directly bypassing rtc::TaskQueue wrapper

Bug: webrtc:14169
Change-Id: I1808afd363b50448d4014d8d8402fce41b16a3ff
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/341082
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41834}
2024-02-28 10:22:49 +00:00
Per K
9e0bf9b5c8 Propagate rtc::ReceivedPacket further in RtpTransport
Bug: webrtc:15368
Change-Id: I4c8989a7b9efacbcc29c0c3331d8f4d7350774c1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/341220
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41825}
2024-02-27 17:46:18 +00:00
Per K
f4aadf3774 Change RtpTransport and DsctTransport to receives packets through ReceivedPacketCallback
Instead of using PacketTransportInternal::SignalReadPacket.

Bug: webrtc:15368
Change-Id: Icdc2d7f85df6db944f0ba0232891e6c5a8986a66
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/340440
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41823}
2024-02-27 15:55:02 +00:00
Philipp Hancke
51532fd355 Test handling of rejected m-lines without transport description
adds a unit test for
  https://webrtc-review.googlesource.com/c/src/+/340322
which is a single m-line variant of the original
fiddle that does not require renegotiation

BUG=chromium:326493639

Change-Id: Icc5ebb1dda6502b00828a77e13b9f5fc865d34c4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/340500
Commit-Queue: Philipp Hancke <phancke@microsoft.com>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41818}
2024-02-27 08:28:36 +00:00
Philipp Hancke
db2f52ba88 Reland "Make setCodecPreferences only look at receive codecs"
This is a reland of commit 1cce1d7ddcbde3a3648007b5a131bd0c2638724b
after updating the WPT that broke on Mac.

Original change's description:
> Make setCodecPreferences only look at receive codecs
>
> which is what is noted in JSEP:
>   https://www.rfc-editor.org/rfc/rfc8829.html#name-setcodecpreferences
>
> Some W3C spec modifications are required since the W3C specification
> currently takes into account send codecs as well.
>
> Spec issue:
>   https://github.com/w3c/webrtc-pc/issues/2888
> Spec PR:
>  https://github.com/w3c/webrtc-pc/pull/2926
>
> setCodecPreferences continues to modify the codecs in an offer.
>
> Also rename RtpSender::SetCodecPreferences to RtpSender::SetSendCodecs for consistent semantics.
>
> BUG=webrtc:15396
>
> Change-Id: I1e8fbe77cb2670575578a777ed1336567a1e4031
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/328780
> Reviewed-by: Henrik Boström <hbos@webrtc.org>
> Commit-Queue: Philipp Hancke <phancke@microsoft.com>
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#41719}

Bug: webrtc:15396
Change-Id: I0c7b17f00de02286f176b500460e17980b83b35b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/339541
Commit-Queue: Philipp Hancke <phancke@microsoft.com>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41807}
2024-02-26 10:52:23 +00:00
Tommi
c7a4b2a7eb Change internal candidate type to enum
Bug: webrtc:15846
Change-Id: I66480cd2a239655a897af5ed2625959e8d6cc33a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/338644
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41802}
2024-02-25 23:46:52 +00:00
Per K
3fe69c504c Update MockPeerConnectionInterface and fake with missing methods.
Goal is to make PeerConnectionInterface methods pure virtual.
This is a split of cl https://webrtc-review.googlesource.com/c/src/+/340143 in order to be able to fix Chromium test RTCPeerConnectionHandlerTest.OnRenegotiationNeeded


Bug: none
Change-Id: I5eac4d9a96c1b594c9e2b3505ef2466046065dc8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/340481
Auto-Submit: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41798}
2024-02-24 08:31:45 +00:00
Philipp Hancke
845d6bef52 Fix handling of rejected m-lines without transport description
A fingerprint should not be required for m-lines which are rejected.

BUG=chromium:326493639,webrtc:11066

Change-Id: I7428c91a144ca46650e13d72868f160652a98339
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/340322
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Philipp Hancke <phancke@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#41794}
2024-02-23 14:49:17 +00:00
Tommi
efbfc40029 Demote RTC_CHECK for sctp_mid() to RTC_LOG(LS_ERROR) if unavailable
Bug: chromium:326275823
Change-Id: Icfb8850867d1e39f23661422693da4f2829ecc57
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/340460
Reviewed-by: Evan Shrubsole <eshr@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41793}
2024-02-23 14:20:23 +00:00
Mirko Bonadei
de3b1cd597 Revert "Make PeerConnectionInteface methods pure virtual."
This reverts commit bff68580b5e575457f9334cd2ee1275f72fa9507.

Reason for revert: Breaks roll into Chromium.

Example https://ci.chromium.org/ui/p/chromium/builders/try/linux-rel/1714596/overview and https://chromium-review.googlesource.com/c/chromium/src/+/5316782.

Original change's description:
> Make PeerConnectionInteface methods pure virtual.
>
> Bug: none
> Change-Id: I64fc23f5159bc6a5cd83c0b00b292641f4976513
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/340143
> Commit-Queue: Per Kjellander <perkj@webrtc.org>
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#41782}

Bug: none
Change-Id: I477d27d33ac2bcf98ed51c3da356605ed9afb6da
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/340323
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Owners-Override: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41790}
2024-02-23 10:21:37 +00:00
Per K
bff68580b5 Make PeerConnectionInteface methods pure virtual.
Bug: none
Change-Id: I64fc23f5159bc6a5cd83c0b00b292641f4976513
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/340143
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41782}
2024-02-22 06:25:20 +00:00
Tommi
f2431a97d5 Move ComputeFoundation to Candidate.
Move code from P2PTransportChannel to Candidate, where we set the
foundation value for remote prflx candidates.

Bug: none
Change-Id: I7dbcb85bca35dca7297136b0706092dd8d2b153c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/339902
Reviewed-by: Philipp Hancke <phancke@microsoft.com>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41774}
2024-02-21 09:24:32 +00:00
Tommi
0ba663c245 Change a few uses of Candidate::type() to Candidate::type_name()
Switch to type_name() for things like logging since `type()` will
change to returning an enumeration value.

The functional change that this has is that log statements and
Connection::ToString() (used for logging) will contain "host"
instead of "local" and "srflx" instead of "stun".

Bug: webrtc:15846
Change-Id: I35c50d026e4578a25d51765d59c6f2e01b850c94
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/339180
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41757}
2024-02-17 18:41:38 +00:00
Philipp Hancke
ce1271af8f Do not guard AV1 SVC tests on VP9 define
BUG=None

Change-Id: Id10bb49c266319eb387f0dd2e9c4327b8a5eb944
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/339800
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Philipp Hancke <phancke@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#41746}
2024-02-15 15:25:05 +00:00
Harald Alvestrand
6a8236617d Reject SDP with duplicate msid lines
This is an obscure error that was found by a fuzzer.

Bug: webrtc:15845
Change-Id: I3509fa264a3af6f0f5e8e6b75a8b7dcd8fb0da1a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/339681
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41743}
2024-02-15 11:06:41 +00:00
Philipp Hancke
7a6a8ebf23 sdp: backfill default codec parameters for H265
with default values for level-id and tx-mode defined in
  https://datatracker.ietf.org/doc/html/draft-aboba-avtcore-hevc-webrtc

BUG=webrtc:15703

Change-Id: I07d77d69c6376313e693e8ddda1cc0135033549a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/338620
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Philipp Hancke <phancke@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#41732}
2024-02-14 11:20:53 +00:00
Henrik Boström
1e7a6f3b6a Revert "Make setCodecPreferences only look at receive codecs"
This reverts commit 1cce1d7ddcbde3a3648007b5a131bd0c2638724b.

Reason for revert: Breaks WPTs

Original change's description:
> Make setCodecPreferences only look at receive codecs
>
> which is what is noted in JSEP:
>   https://www.rfc-editor.org/rfc/rfc8829.html#name-setcodecpreferences
>
> Some W3C spec modifications are required since the W3C specification
> currently takes into account send codecs as well.
>
> Spec issue:
>   https://github.com/w3c/webrtc-pc/issues/2888
> Spec PR:
>  https://github.com/w3c/webrtc-pc/pull/2926
>
> setCodecPreferences continues to modify the codecs in an offer.
>
> Also rename RtpSender::SetCodecPreferences to RtpSender::SetSendCodecs for consistent semantics.
>
> BUG=webrtc:15396
>
> Change-Id: I1e8fbe77cb2670575578a777ed1336567a1e4031
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/328780
> Reviewed-by: Henrik Boström <hbos@webrtc.org>
> Commit-Queue: Philipp Hancke <phancke@microsoft.com>
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#41719}

Bug: webrtc:15396
Change-Id: I7b545e91f820c3affc39841c6e93939eac75c363
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/339520
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Owners-Override: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Auto-Submit: Henrik Boström <hbos@webrtc.org>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#41725}
2024-02-13 08:24:45 +00:00
Tommi
521b8632b6 Change type of candidate type names from char[] to string_view
Bug: none
Change-Id: I57fcfd486bf4e2fb15288614b0e81f00b10e120a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/337443
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41721}
2024-02-12 15:14:02 +00:00
Philipp Hancke
e3fb8122aa Reland "Let port allocator create ice tie breaker"
This is a reland of commit 3f3f991c03bb4073a06da37c822daaa9deed9307

Original change's description:
> Let port allocator create ice tie breaker
>
> Moves the responsibility for creating the ICE tie breaker from the JSEP transport controller to the port allocator. This will allow a future change to separate the ICE tie breaker (which is sent over the network and hence known to the peer) from the "port allocator random" (that is used to seed the ICE candidate foundation crc32 checksum) as an implementation detail.
>
> BUG=webrtc:14626
>
> Change-Id: I3a9a0980238d6108b1b154f45de2975b08793b1c
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/281660
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Commit-Queue: Philipp Hancke <phancke@microsoft.com>
> Cr-Commit-Position: refs/heads/main@{#41707}

Bug: webrtc:14626
Change-Id: Id3c8f257c5611958551bd66d7ce7a885bf8ba2f9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/339320
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Philipp Hancke <phancke@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#41720}
2024-02-12 14:47:12 +00:00
Philipp Hancke
1cce1d7ddc Make setCodecPreferences only look at receive codecs
which is what is noted in JSEP:
  https://www.rfc-editor.org/rfc/rfc8829.html#name-setcodecpreferences

Some W3C spec modifications are required since the W3C specification
currently takes into account send codecs as well.

Spec issue:
  https://github.com/w3c/webrtc-pc/issues/2888
Spec PR:
 https://github.com/w3c/webrtc-pc/pull/2926

setCodecPreferences continues to modify the codecs in an offer.

Also rename RtpSender::SetCodecPreferences to RtpSender::SetSendCodecs for consistent semantics.

BUG=webrtc:15396

Change-Id: I1e8fbe77cb2670575578a777ed1336567a1e4031
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/328780
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Philipp Hancke <phancke@microsoft.com>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41719}
2024-02-12 13:47:11 +00:00
Mirko Bonadei
407367d053 Revert "Let port allocator create ice tie breaker"
This reverts commit 3f3f991c03bb4073a06da37c822daaa9deed9307.

Reason for revert: API breaking change on PortAllocatorSession.
Is it possible to duplicate the ctor of PortAllocatorSession and remove
the deprecated one (the one without ice_tiebreaker) in another CL?

Original change's description:
> Let port allocator create ice tie breaker
>
> Moves the responsibility for creating the ICE tie breaker from the JSEP transport controller to the port allocator. This will allow a future change to separate the ICE tie breaker (which is sent over the network and hence known to the peer) from the "port allocator random" (that is used to seed the ICE candidate foundation crc32 checksum) as an implementation detail.
>
> BUG=webrtc:14626
>
> Change-Id: I3a9a0980238d6108b1b154f45de2975b08793b1c
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/281660
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Commit-Queue: Philipp Hancke <phancke@microsoft.com>
> Cr-Commit-Position: refs/heads/main@{#41707}

Bug: webrtc:14626
Change-Id: I342c9a96ac1909244aedea6a7779f5682088a5fc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/339280
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Owners-Override: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41715}
2024-02-12 10:07:04 +00:00
Philipp Hancke
3f3f991c03 Let port allocator create ice tie breaker
Moves the responsibility for creating the ICE tie breaker from the JSEP transport controller to the port allocator. This will allow a future change to separate the ICE tie breaker (which is sent over the network and hence known to the peer) from the "port allocator random" (that is used to seed the ICE candidate foundation crc32 checksum) as an implementation detail.

BUG=webrtc:14626

Change-Id: I3a9a0980238d6108b1b154f45de2975b08793b1c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/281660
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Philipp Hancke <phancke@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#41707}
2024-02-09 14:00:52 +00:00
Harald Alvestrand
974044efca Remove code for supporting SDES
Rework transport_description_factory to only have non-DTLS mode for
testing, and rewrite tests accordingly.

Bug: webrtc:11066, chromium:804275
Change-Id: Ie7d477c4331c975e4e0a3034fbbb749ed9009446
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/336880
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41697}
2024-02-08 14:34:04 +00:00
Philipp Hancke
cea1c0b9a9 Dynamically assign ids to header extensions not enabled by default
by creating an id collision and letting UsedIds resolve it.

Also avoid id=15 which is forbidden by
  https://www.rfc-editor.org/rfc/rfc8285#section-4.2
so might cause interop issues in offers to implementations
not supporting two-byte extensions.

BUG=webrtc:15378

Change-Id: I27926f065f8e396257294da7acf2be9802169805
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/319280
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Philipp Hancke <phancke@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#41696}
2024-02-08 12:52:58 +00:00
Per K
39ac25d6ec Add PeerConnectionInterface::ReconfigureBandwidthEstimation
Using the Api, BWE components are recreated and new settings can be
applied. Initially, the only configuration available is allowing BWE probes without media".


Note that BWE components are created when transport first becomes writable. So calling this method before a PeerConnection is connected is cheap and only changes configuration.

Integration test in https://webrtc-review.googlesource.com/c/src/+/337322

Bug: webrtc:14928
Change-Id: If2c848489bf94a1f7a5ebf90d2886d90c202c7c3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/336240
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41687}
2024-02-07 14:10:02 +00:00
Harald Alvestrand
3bddaed569 rtc_p2p: Split turn port and basic port allocator
This completes the breakup of the rtc_p2p target.
Remaining cleanup is to delete the rtc_p2p target and make clients
depend on the base targets.

Bug: webrtc:15796
Change-Id: I67bbeee9abf0bb663283ec3420a9a00bd3a2436a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/338340
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41683}
2024-02-07 10:30:59 +00:00
Harald Alvestrand
8bb54c1c42 Penultimate split-up of rtc_p2p build target
This takes the rest of the .cc files out of the rtc_p2p build
target, leaving only one entangled target to clean up.

Bug: webrtc:15796
Change-Id: I4312b70ffe96a8affc1a02456ac466eea05dd44c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/338220
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41676}
2024-02-06 17:52:39 +00:00
Harald Alvestrand
8c371f2a9b Reland "Take out Fuchsia-only SDES-enabling parameters"
This is a reland of commit 59f3b35013a29f8c73a46fa6fd06aadc96aad892

Landing after taking out the Chrome usages.

Original change's description:
> Take out Fuchsia-only SDES-enabling parameters
>
> This does not remove all traces of SDES - we still need to delete
> the cricket::CryptoParams struct and all code that uses it.
>
> Bug: webrtc:11066, chromium:804275
> Change-Id: I811c8d40da7f4af714d53376f24cd53332a15945
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/336780
> Reviewed-by: Henrik Boström <hbos@webrtc.org>
> Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#41634}

Bug: webrtc:11066, chromium:804275
Change-Id: I31414dfb6a0ecfa7b6fd91c68603cfd6146869d9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/337260
Reviewed-by: Olga Sharonova <olka@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41660}
2024-02-02 17:02:29 +00:00
Philipp Hancke
c1cc6a36b2 sdp: backfill default codec parameters for AV1
as required by
  https://aomediacodec.github.io/av1-rtp-spec/#72-sdp-parameters
Also unify usage of profile fmtp parameter. Most notably this causes
SDP answers to include the default values.

These default values correspond to libaom's default values for AV1E_SET_TARGET_SEQ_LEVEL_IDX, AV1E_SET_TIER_MASK as used in
https://source.chromium.org/chromium/chromium/src/+/main:third_party/libaom/source/libaom/aom/aomcx.h
and g_profile in aom_codec_enc_cfg
https://source.chromium.org/chromium/chromium/src/+/main:third_party/libaom/source/libaom/aom/aom_encoder.h;l=415;drc=b58207f5aecc39db7d3da766e7d171e5d2c3598e

Note: AV1 is inconsistently cased in variable/struct/method/class names. The canonical casing should probably be "Av1" since it is an acronym standing for "AOMedia Video 1".

BUG=webrtc:15703

Change-Id: I11864b7666fea906cd1a0759c7ad45997beab90e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/331360
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Philipp Hancke <phancke@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#41654}
2024-02-01 13:11:09 +00:00
Philipp Hancke
657b65fa18 Remove special-casing of TWCCv2 negotiation
since it can be enabled locally using the RTP header extensions API

Bug: webrtc:15057
Change-Id: Id15d26ab858d88769939974f2a7ae4327df925b7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/336720
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Johannes Kron <kron@webrtc.org>
Commit-Queue: Philipp Hancke <phancke@microsoft.com>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41650}
2024-02-01 09:25:36 +00:00
Harald Alvestrand
27a452da21 Rewrite webrtc_sdp unittest to use DTLS not SDES
This is in preparation for removing SDES support.

Bug: webrtc:11066
Change-Id: Ia89f8003cf1869c94baf429e9b2905235bd09a22
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/337180
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41649}
2024-01-31 19:09:54 +00:00
Olga Sharonova
c0741e9f12 Revert "Take out Fuchsia-only SDES-enabling parameters"
This reverts commit 59f3b35013a29f8c73a46fa6fd06aadc96aad892.

Broke WebRTC into Chrome rolls:

https://chromium-review.googlesource.com/c/chromium/src/+/5248171?tab=checks

/../third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_handler.cc:216:18: error: no member named 'enable_dtls_srtp' in 'webrtc::PeerConnectionInterface::RTCConfiguration'
  216 |   configuration->enable_dtls_srtp = dtls_srtp_key_agreement;
      |   ~~~~~~~~~~~~~  ^

Original change's description:
> Take out Fuchsia-only SDES-enabling parameters
>
> This does not remove all traces of SDES - we still need to delete
> the cricket::CryptoParams struct and all code that uses it.
>
> Bug: webrtc:11066, chromium:804275
> Change-Id: I811c8d40da7f4af714d53376f24cd53332a15945
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/336780
> Reviewed-by: Henrik Boström <hbos@webrtc.org>
> Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#41634}

Bug: webrtc:11066, chromium:804275
Change-Id: I2c2114873091e0c662977a6ef5723e6447166a65
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/337181
Commit-Queue: Olga Sharonova <olka@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Owners-Override: Olga Sharonova <olka@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41643}
2024-01-31 14:35:19 +00:00
Harald Alvestrand
59f3b35013 Take out Fuchsia-only SDES-enabling parameters
This does not remove all traces of SDES - we still need to delete
the cricket::CryptoParams struct and all code that uses it.

Bug: webrtc:11066, chromium:804275
Change-Id: I811c8d40da7f4af714d53376f24cd53332a15945
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/336780
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41634}
2024-01-30 10:50:12 +00:00
Tommi
698b4e7087 Update more Candidate type checkers to use Candidate::is_*
This is a follow up to a previous CL that removed direct dependency on
the `cricket::` string globals.

Bug: none
Change-Id: I4d839a36739fc4694ce81b72ee036e83dae580df
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/335420
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41623}
2024-01-26 13:41:09 +00:00
Per K
9c166e064f Remove VideoSendStream::StartPerRtpStream
Instead, always use VideoSendStream::Start.

VideoSendStream::StartPerRtpStream was used for controlling if
individual rtp stream for a RtpEncodingParameter should be able to send RTP packets. It was not used for controlling the actual encoder layers.

With this change RtpEncodingParameter.active still controls actual encoder layers but it does not control if RTP packets can be sent or not.

The cleanup is done to simplify code and in the future allow sending
probe packet on a RtpTransceiver that allows sending, regardless of the
RtpEncodingParameter.active flag.

Bug: webrtc:14928
Change-Id: I896c055ed4de76db58d76f452147c29783f77ae1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/335042
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41619}
2024-01-26 09:19:50 +00:00
Harald Alvestrand
9a953b28f9 Detangle p2p/connection.cc and port.cc
This CL does:
- Run IWYU on the relevant elements
- Make connection depend on port_interface, not port
- Make port_allocator depend only on port
- Move some constants from port.h into p2p_constants

This allows a dependency graph without ugly groups.

Bug: webrtc:15796
Change-Id: I0ff0e14eacdfe3b230a8d84902a78eb062d6c8af
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/336320
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41618}
2024-01-26 08:29:27 +00:00
Philipp Hancke
6a3bbefd58 Reland "Enable DD and VLA header extensions by default for Simulcast/SVC"
This is a reland of commit 33c7edd58ad0edc71939b9372fff3ab563c1f4a7
taking into account GFD which can be enabled by field trials and somewhat conflicts with DD

Original change's description:
> Enable DD and VLA header extensions by default for Simulcast/SVC
>
> When Simulcast (more than one encoding) or SVC (a scalability mode
> other than the default L1T1) is used, enable the AV1 Dependency
> Descriptor and the video-layer-allocations RTP header extensions by
> default.
>
> The RTP header extensions API can be used to disable them if needed.
>
> BUG=webrtc:15378
>
> Change-Id: I587ac32c9d681461496a136f6950b007e72da86d
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/326100
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> Commit-Queue: Philipp Hancke <phancke@microsoft.com>
> Cr-Commit-Position: refs/heads/main@{#41332}

Bug: webrtc:15378
Change-Id: I190edc9435083c0a0a65a6959363f3c41e4a3d1b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/330563
Commit-Queue: Philipp Hancke <phancke@microsoft.com>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41615}
2024-01-26 06:08:28 +00:00
Henrik Boström
ac58a334f7 [Stats] Migrate from the RTCStatsMember type alias to absl::optional.
With this CL, the only usage of RTCStatsMember within WebRTC is the
actual type alias declaration. It's not referenced anywhere anymore.

This allows us to deleting the type alias, but let's do that in a
standalone CL in case it gets reverted.

Bug: webrtc:15164
Change-Id: I766d07abb62b5ddd524859b8ed749394fc439e52
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/335621
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Evan Shrubsole <eshr@google.com>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41612}
2024-01-25 21:56:08 +00:00
Harald Alvestrand
a310d78662 Refactor a lot of the p2p:rtc_p2p target
This CL splits many of the source files in p2p:rtc_p2p into individual
compile targets.

One target - connection_and_port - was left with multiple source files
because it was too tangled to detangle at once.

Bug: webrtc:15796
Change-Id: I607417e5945306ef64335f40a0ae50f0d15dee6f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/335881
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41611}
2024-01-25 18:28:27 +00:00
Mirko Bonadei
cc70a6d174 Guard GenerateUniqueId aginst concurrent access.
Similar to https://webrtc-review.googlesource.com/c/src/+/147020.

Bug: b/264473017
Change-Id: I40a6239f28c01b90f521f3cadcb4aea4f6d6461c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/336180
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41609}
2024-01-25 12:29:42 +00:00
Henrik Boström
c13a7f9a00 Change string constant to constexpr char[] to unblock roll.
Should fix the "Chromium Binary Size" failures on for example
https://chromium-review.googlesource.com/c/chromium/src/+/5234153.

For the "Mutable Constants Added & Removed" check.

NOTRY=True

Bug: webrtc:15164
Change-Id: I5713e224018460edee5d4fd2d028c27834f46b00
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/336200
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41606}
2024-01-25 09:01:41 +00:00
Tommi
be2786cd23 Move candidate type preference defaults to the Candidate class
Bug: none
Change-Id: Ibd875230b22e878967bcce7d5e967bc28e0f308e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/335380
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41596}
2024-01-22 18:27:38 +00:00
Harald Alvestrand
1768705d99 Revert^4 "Delete pc/peerconnection build target"
This reverts commit 7f457533a2ee582865f50210e7460af90f78f0b6.

Reason for revert: Added missing dependency

Original change's description:
> Revert^3 "Delete pc/peerconnection build target"
>
> This reverts commit b51c4b01f649fa24016670543eed2f87a6ac7705.
>
> Reason for revert: Breaks downstream project
>
> Original change's description:
> > Revert^2 "Delete pc/peerconnection build target"
> >
> > This reverts commit 771b524606f43e682d63aa3a0724b21e8d14aac0.
> >
> > Reason for revert: Downstream usage removed
> >
> > Original change's description:
> > > Revert "Delete pc/peerconnection build target"
> > >
> > > This reverts commit 18a42e3272a6a25a23042fd39e67de02def8cafb.
> > >
> > > Reason for revert: Breaks downstream project.
> > >
> > > Original change's description:
> > > > Delete pc/peerconnection build target
> > > >
> > > > It is not useful any more.
> > > >
> > > > Bug: webrtc:13634, b/238176207
> > > > Change-Id: I3dd4ebca355bb828c6c3c30392333d9fe03a478c
> > > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/267821
> > > > Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> > > > Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> > > > Cr-Commit-Position: refs/heads/main@{#41427}
> > >
> > > Bug: webrtc:13634, b/238176207
> > > Change-Id: Ib53e0b0cc81ac218e3c19e4c652ffe0b19155c22
> > > No-Presubmit: true
> > > No-Tree-Checks: true
> > > No-Try: true
> > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/332220
> > > Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
> > > Owners-Override: Christoffer Dewerin <jansson@google.com>
> > > Commit-Queue: Christoffer Dewerin <jansson@google.com>
> > > Cr-Commit-Position: refs/heads/main@{#41430}
> >
> > Bug: webrtc:13634, b/238176207
> > Change-Id: I3e99aa0ae37350b56e5f33be932f78903d1d4969
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/334120
> > Reviewed-by: Christoffer Dewerin <jansson@google.com>
> > Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> > Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> > Cr-Commit-Position: refs/heads/main@{#41543}
>
> Bug: webrtc:13634, b/238176207
> Change-Id: I0a586fb57716272bb4ab9daa542d59238dda03e1
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/334940
> Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#41552}

Bug: webrtc:13634, b/238176207
Change-Id: I9f5759392dbf29e9ed5d19cd2e53e58e8d4a53c2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/335121
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Christoffer Dewerin <jansson@google.com>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41589}
2024-01-21 22:59:48 +00:00
Tommi
0a7fc84887 Use is_* getters when checking the Candidate type
This removes several references across the code base that depended on
the global string constants.

Bug: none
Change-Id: I007bd4b195c35261039f655f1a8f52e632c3691f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/335320
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41578}
2024-01-19 15:37:32 +00:00
Henrik Boström
7209548090 Reland "[Stats] Attribute::ToString(), to replace member ValueToString/ToJson."
This is a reland of commit 54be7084e0861a0179a5fccd0b27edf7d7994bbb

Previously reverted due to an importer issue (b/320646178) and later a
dependency on RTCStatsMember<T>::ValueToString().

In this reland, we add Attribute::ToString() but we don't delete the
RTCStatsMember<T> stringifier methods, allowing downstream to migrate
before they are deleted.

Original change's description:
> [Stats] Attribute::ToString(), to replace member ValueToString/ToJson.
>
> Delete RTCStatsMember<T>::ValueToString() and ValueToJson() in favor of
> Attribute::ToString().
>
> The difference between "ToString" and "ToJson" is that the "ToJson"
> version converts 64-bit integers and doubles to floating points with no
> more than ~15 digits of precision as to not exceed JSON's precision
> limitations. So only in edge cases of really large numbers or numbers
> with a silly number of digits will the two methods produce different
> results. Also JSON puts '\"' around map key names, e.g. "{\"foo\":123}"
> as opposed to "{foo:123}".
>
> Going forward we see no reason to maintain two different string
> converted paths that are this similar, so we only implement one
> Attribute::ToString() method which does what "ToJson" did.
>
> In the next CL we can delete RTCStatsMember<T>.
>
> Bug: webrtc:15164
> Change-Id: Iaa8cf3bf14b40dc44664f75989832469603131c5
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/334640
> Commit-Queue: Henrik Boström <hbos@webrtc.org>
> Reviewed-by: Evan Shrubsole <eshr@google.com>
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#41544}

Bug: webrtc:15164
Change-Id: I281ccf5b23d8f194b5ce00186a32846c757b46fc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/334860
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41575}
2024-01-19 14:42:10 +00:00