webrtc/sdk/objc
Byoungchan Lee 2b46a5870b Add proxy access to some methods in Obj-C SDK
Most calls to C++ PeerConnection and related classes are proxied
to internal threads in WebRTC. However, there is no such thing
in the Obj-C SDK.
It would be nice to proxy methods in the Obj-C SDK as well.

RTCMediaStream and RTCVideoTrack have NSMutableArray members,
and it can throw NSRangeException when it has race conditions,
so that it would be a good starting point.

Also, remove some NSAsserts as its condition isn't a fatal error,
and it doesn't affect the production already.

Bug: None
Change-Id: I10b44a9c773d62a5c04c254986733a6b67d51617
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262840
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Daniel.L (Byoungchan) Lee <daniel.l@hpcnt.com>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37283}
2022-06-21 07:02:08 +00:00
..
api Add proxy access to some methods in Obj-C SDK 2022-06-21 07:02:08 +00:00
base Implement OnResolutionChange to objc RTCVideoEncoderSelector 2022-04-20 13:23:03 +00:00
components Make the libaom AV1 encoder optional in RTCDefaultVideoEncoderFactory. 2022-06-01 10:54:55 +00:00
Framework Revert "Add a prefix for objc category." 2022-05-13 14:47:54 +00:00
helpers Revert "Add a prefix for objc category." 2022-05-13 14:47:54 +00:00
native Move to_queued_task.h and pending_task_safety_flag.h into public API 2022-06-17 09:20:39 +00:00
unittests Move rtc::make_ref_counted to api/ 2022-06-15 09:47:38 +00:00
DEPS Remove +api from internal DEPS files. 2019-01-28 11:17:00 +00:00
Info.plist Obj-C SDK Cleanup 2018-08-30 10:42:41 +00:00
OWNERS Remove wildcard ownership for build files. 2020-02-19 14:05:46 +00:00
README.md Obj-C SDK Cleanup 2018-08-30 10:42:41 +00:00

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.