Refactor DtlsTransport, remove internal ownership and raw pointers. Refactors DtlsTransport to function as a stateless wrapper regarding DtlsTransportInternal. It no longer owns or stores a raw pointer to the internal transport. Instead, some of the formerly internal logic has been moved to JsepTransport and test fixtures, where actual ownership lies (as indicated by explicit calls to Clear()). Key changes: * Remove DtlsTransport's internal DtlsTransportInternal* * Remove DtlsTransport::internal() accessor to avoid spreading use of this pointer. * Update SctpTransport and PeerConnection to access the underlying transport via SctpTransportInternal or RtpTransport which is closer to where the actual ownership is. * Refactored DtlsTransport to be passive regarding state updates; subscriptions are managed externally, together with ownership. * Updated unit tests (DtlsTransportTest, SctpTransportTest, JsepTransportControllerTest) to align with the clarified ownership model, ensure that tests own the internal transport explicitly in the same way as production code does. * Removed SctpTransportInternal::SetDtlsTransport as transport injection is now enforced via constructor. * This enabled making the transport_ pointer const, more reliable and also unblock multi thread access, which will be needed down the line. This simplifies DtlsTransport, removes quite a bit of raw pointer wrangling (although some still remains), prevents potential Use-After-Free issues by decoupling the wrapper's lifetime from the internal transport. Bug: None Change-Id: I37f74d7945c6f8a69dc53d217ec1e6726a63d3e2 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/429041 Reviewed-by: Harald Alvestrand <hta@webrtc.org> Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org> Cr-Commit-Position: refs/heads/main@{#46360}
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.