Qiang Chen fa1ca1e781 Bug Fix: iOS H264 Encoder Crash Issue
When using H264 encoder with profile level 3.1, the encoder may crash.
The reason is that we set the expected frame rate using kVTCompressionPropertyKey_ExpectedFrameRate
to the VideoToolBox. However, by iOS implementation, if our setting violates the sample rate limit
[1], the encoder will crash.

This CL fixes the bug by capping the expected frame rate with max allowed frame rate computed from the sample rate limit.

Change-Id: I090d7be8c20713c6a5a4ec80ed243c8fa7b4aa14
Bug: webrtc:10172
Reviewed-on: https://webrtc-review.googlesource.com/c/116056
Commit-Queue: Qiang Chen <qiangchen@chromium.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26254}
2019-01-14 19:23:56 +00:00
..
2019-01-14 14:56:40 +00:00
2018-12-14 08:54:28 +00:00
2019-01-03 15:00:27 +00:00
2018-08-30 10:42:41 +00:00
2018-05-08 11:48:32 +00:00
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.