webrtc/sdk/objc
Nico Weber b3c9d3da8f [ios] Fix two rtc_unittests that fail when using lld as linker
setExif: would create a CFDictionary using NULL for keyCallBacks and
valueCallBacks. This has the effect of comparing the keys of the
dictionary by pointer instead of by value. With ld64, this works
because it always dedupes identical constant CFSTR("foo") literal,
but lld currently doesn't do this.

Using kCFTypeDictionaryKeyCallBacks and kCFTypeDictionaryValueCallBacks
fixes the problem with lld and is "more correct" in general: Now the
dictionary would work with computed CFStrings too, it shows up better
in CFShow() output, etc.

While here, also fix a memory leak in setExif:.

Bug: chromium:1251763
Change-Id: I43c96d2189a4a77fe3bd0dfb3e33623925b0f900
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/232760
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/main@{#35067}
2021-09-22 19:45:44 +00:00
..
api Add ability to mark video sources for screen casting in ObjC 2021-08-21 08:19:12 +00:00
base Add supportsNativeHandle to the RTCVideoEncoder protocol. 2021-08-09 15:21:52 +00:00
components Verify that locks are handled correctly on RTCAudioSession 2021-09-17 01:41:42 +00:00
Framework Reland "Remove placeholder Obj-C headers and use angle-bracketed headers." 2020-10-22 11:29:48 +00:00
helpers Update Apple device list 2021-02-01 09:35:03 +00:00
native Fix race condition in RTCNetworkMonitor/objc_network_monitor. 2021-09-03 12:44:17 +00:00
unittests [ios] Fix two rtc_unittests that fail when using lld as linker 2021-09-22 19:45:44 +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.