Web Spec and C++ version of setCodecPreferences are failable, as they return an RTCError (in C++) or throw an InvalidModificationError (in Web Spec). However, current Objective-C version of setCodecPreferences is not failable, so callers cannot know if the operation succeeded or not. Also, the current Objective-C version does not accept nil, which is not spec-compliant. (Web Spec says if codecs is an empty list, set transceiver.PreferredCodecs to codecs and abort these steps.) Bug: webrtc:42226103, webrtc:42226230 Change-Id: Ib90f3e5b45fc959eeb92f623cf50efcb458a7478 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/352400 Reviewed-by: Kári Helgason <kthelgason@webrtc.org> Commit-Queue: Kári Helgason <kthelgason@webrtc.org> Reviewed-by: Harald Alvestrand <hta@webrtc.org> Cr-Commit-Position: refs/heads/main@{#42789}
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.