commit | a416f1c7a93ea45c98bdcdca187aed182e428761 | [log] [tgz] |
---|---|---|
author | Henrik Boström <hbos@webrtc.org> | Tue Feb 25 10:56:54 2025 |
committer | WebRTC LUCI CQ <webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com> | Tue Feb 25 13:22:19 2025 |
tree | e91e38675d5122a39db7a1475dd586f41c1fa276 | |
parent | b9e8c0e0623008182f21368b162a881fd2962de1 [diff] |
Fix rid 'send pt=X' bug and re-enable test. When creating an offer, the send PT is the payload type of the codec that we're advertising that we would like to send. It comes from the RidDescription's list of payload types (= integers prior to this CL) which is controlled from the API with `RTCRtpEncodingParameters.codec`. The problem was that the encodings[i].codec -> PT conversion step in sdp_offer_answer.cc's GetMediaDescriptionOptionsForTransceiver() was based on `transceiver->sender_internal()->GetSendCodecs()` whose PTs are inconsistent with the payload types that gets assigned to the media section in a later step using PayloadTypeSuggester. To fix this, the RidDescription is updated to have a list of `codecs` instead of a list of `payload_types` and the "codec -> PT" conversation step is... 1. Moved to SimulcastSdpSerializer and using lookup from MediaContentDescription as opposed to blindly trusting `codec.id` making PT inconsistencies impossible. 2. Uses IsSameRtpCodecIgnoringLevel() instead of MatchesRtpCodec(), ensuring codec match does not fail if the MediaContentDescription's list of codecs is not specifying default parameters (e.g. see SdpOfferAnswerTest.SimulcastAnswerWithPayloadType not specifying profile-id fails if MatchesRtpCodec is used). Another drive-by bugfix is we no longer remove entire RIDs if all PTs in the RID are invalid, see TestDeserializeRemovesRidsWithInvalidCodec. Bug: webrtc:362277533 Change-Id: Ic11ecf2a85e6d8db7fc269bc53c3ac11d5d8b127 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/378284 Commit-Queue: Henrik Boström <hbos@webrtc.org> Reviewed-by: Harald Alvestrand <hta@webrtc.org> Cr-Commit-Position: refs/heads/main@{#43982}
WebRTC is a free, open software project that provides browsers and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs. The WebRTC components have been optimized to best serve this purpose.
Our mission: To enable rich, high-quality RTC applications to be developed for the browser, mobile platforms, and IoT devices, and allow them all to communicate via a common set of protocols.
The WebRTC initiative is a project supported by Google, Mozilla and Opera, amongst others.
See here for instructions on how to get started developing with the native code.
Authoritative list of directories that contain the native API header files.