Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement video codec HW acceleration probing on iOS #148

Open
wants to merge 10 commits into
base: main
Choose a base branch
from

Conversation

evdokimovs
Copy link

@evdokimovs evdokimovs commented Jan 29, 2024

Synopsis

We want to use HW acceleration for the video when it possible. For this purpose was introduced PeerConnectionFactory.videoEncoders and PeerConnectionFactory.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 and PeerConnectionFactory.videoDecoders API on iOS side using VTIsHardwareDecodeSupported.

Checklist

  • Created PR:
    • In draft mode
    • Name contains issue reference
    • Has type and k:: labels applied
    • Has assignee
  • Before review:
    • Documentation is updated (if required)
    • Tests are updated (if required)
    • Changes conform code style
    • CHANGELOG entry is added (if required)
    • FCM (final commit message) is posted or updated
    • Draft mode is removed
  • Review is completed and changes are approved
    • FCM (final commit message) is approved
  • Before merge:
    • Milestone is set
    • PR's name and description are correct and up-to-date
    • All temporary labels are removed

@evdokimovs evdokimovs added k::api Related to API (application interface) platform::ios Specific to iOS platform feature New feature or request k::performance Related to performance labels Jan 29, 2024
@evdokimovs evdokimovs self-assigned this Jan 29, 2024
@evdokimovs
Copy link
Author

FCM

Implement video codec HW acceleration probing on iOS (#148)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature or request k::api Related to API (application interface) k::performance Related to performance platform::ios Specific to iOS platform
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant