In logging.cc, use the pointer of the static variable so that it doesn't need a global constructor/exit time destructor. In RTCFieldTrials.mm, store the field trial string as a char pointer instead of a std::unique_ptr to ensure that it is never freed. LSAN will be unhappy with this fix, but WebRTC itself hasn't been tested with LSAN enabled, and any code changed in this CL does not build with build_with_chromium=true, so it shouldn't be a problem. Bug: webrtc:9693, webrtc:11665 Change-Id: Ia28e3534170e0817b815717f6efe862f7b51ef62 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/237320 Reviewed-by: Danil Chapovalov <danilchap@webrtc.org> Reviewed-by: Artem Titov <titovartem@webrtc.org> Reviewed-by: Harald Alvestrand <hta@webrtc.org> Commit-Queue: Byoungchan Lee <daniel.l@hpcnt.com> Cr-Commit-Position: refs/heads/main@{#35391}
WebRTC Obj-C SDK
This directory contains the Obj-C SDK for WebRTC. This includes wrappers for the C++ PeerConnection API and some platform specific components for iOS and macOS.
Organization
-
api/
Wrappers around classes and functions in the C++ API for creating and configuring peer connections, etc.
-
base/
This directory contains some base protocols and classes that are used by both the platform specific components and the SDK wrappers.
-
components/
These are the platform specific components. Contains components for handling audio, capturing and rendering video, encoding and decoding using the platform's hardware codec implementation and for representing video frames in the platform's native format.
-
helpers/
These files are not WebRTC specific, but are general helper classes and utilities for the Cocoa platforms.
-
native/
APIs for wrapping the platform specific components and using them with the C++ API.
-
unittests/
This directory contains the tests.