-
-
Notifications
You must be signed in to change notification settings - Fork 411
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
Widen support for HEVC Main 10 #3281
Merged
nielsvanvelzen
merged 3 commits into
jellyfin:master
from
lawadr:widen-hevc-main-10-support
Jan 27, 2024
Merged
Widen support for HEVC Main 10 #3281
nielsvanvelzen
merged 3 commits into
jellyfin:master
from
lawadr:widen-hevc-main-10-support
Jan 27, 2024
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Previously the HEVC codec profile only flagged support for HEVC Main 10 when MediaCodec advertised its support for level 5 (main tier) or above. This meant devices that support only levels 4 or 4.1 (such as the Chromecast with Google TV HD) would transcode HEVC Main 10 content even when supported. This change lowers the requirement from level 5 to level 4 and also adds additional profiles specifically for HEVC Main and Main 10 with conditions on the level so that levels beyond what is supported by MediaCodec get transcoded. The result is that HEVC Main 10 level 5 videos get transcoded on devices supporting only 4.1, but HEVC Main 10 level 4.1 content plays back directly.
app/src/main/java/org/jellyfin/androidtv/util/profile/MediaCodecCapabilitiesTest.kt
Fixed
Show fixed
Hide fixed
} | ||
} | ||
|
||
private fun getDecoderLevel(mime: String, profile: Int) : Int { |
Check warning
Code scanning / detekt
Excessive nesting leads to hidden complexity. Prefer extracting code to make it easier to understand. Warning
Function getDecoderLevel is nested too deeply.
app/src/main/java/org/jellyfin/androidtv/util/profile/MediaCodecCapabilitiesTest.kt
Fixed
Show fixed
Hide fixed
nielsvanvelzen
requested changes
Jan 20, 2024
app/src/main/java/org/jellyfin/androidtv/util/profile/MediaCodecCapabilitiesTest.kt
Outdated
Show resolved
Hide resolved
app/src/main/java/org/jellyfin/androidtv/util/profile/MediaCodecCapabilitiesTest.kt
Outdated
Show resolved
Hide resolved
app/src/main/java/org/jellyfin/androidtv/util/profile/MediaCodecCapabilitiesTest.kt
Outdated
Show resolved
Hide resolved
nielsvanvelzen
approved these changes
Jan 27, 2024
app/src/main/java/org/jellyfin/androidtv/util/profile/MediaCodecCapabilitiesTest.kt
Outdated
Show resolved
Hide resolved
…ecCapabilitiesTest.kt
Thank you! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Previously the HEVC codec profile only flagged support for HEVC Main 10 when MediaCodec advertised its support for level 5 (main tier) or above. This meant devices that support only levels 4 or 4.1 (such as the Chromecast with Google TV HD) would transcode HEVC Main 10 content even when supported.
This change lowers the requirement from level 5 to level 4 and also adds additional profiles specifically for HEVC Main and Main 10 with conditions on the level so that levels beyond what is supported by MediaCodec get transcoded.
The result is that HEVC Main 10 level 5 videos get transcoded on devices supporting only 4.1, but HEVC Main 10 level 4.1 content plays back directly.