Implement video codec HW acceleration probing on iOS #148
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Synopsis
We want to use HW acceleration for the video when it possible. For this purpose was introduced
PeerConnectionFactory.videoEncoders
andPeerConnectionFactory.videoDecoders
APIs which provides information about available codecs and their HW acceleration capability. But at this moment this API is not implemented on iOS, so this PR implements them.Firstly, this PR was conceived mainly as HW acceleration implementation of VP9 codec for iOS devices, but it was discovered that VP8/VP9 codecs are not officially supported on this devices. There is undocumented feature mostly exclusively added for the YouTube iOS app which adds support for VP9 codec HW decoding, but it looks not very promising for us, because there is no evidence that someone used it elsewhere and it can lead to the problems while publishing to App Store. But here is repo with some more info about it: https://github.com/PoomSmart/YTUHD
Solution
Implement
PeerConnectionFactory.videoEncoders
andPeerConnectionFactory.videoDecoders
API on iOS side usingVTIsHardwareDecodeSupported
.Checklist
k::
labels applied