Fix DV7 black screen issue on Exynos chips by safely stripping MediaFormat profile keys during fallback - #1847
Open
KennyPhan123 wants to merge 10 commits into
Open
Fix DV7 black screen issue on Exynos chips by safely stripping MediaFormat profile keys during fallback#1847KennyPhan123 wants to merge 10 commits into
KennyPhan123 wants to merge 10 commits into
Conversation
…ormat profile keys during fallback
This file contains hidden or 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
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.
Describe the bug
When the
dv7Fallbackpreference is enabled, Exynos devices (e.g., Samsung A54/A55/A56) play audio but show a completely black screen for Dolby Vision Profile 7 videos. The Exynos hardware HEVC decoder silently drops frames instead of throwing a decoding exception when theMediaFormatcontainsKEY_PROFILE = 128(HEVCProfileMain10HDR10Plus/DV) andKEY_COLOR_TRANSFER_REQUEST.This issue does not exist in older ExoPlayer versions (e.g., JustPlayer) because they do not send
KEY_COLOR_TRANSFER_REQUEST.Solution
This PR fixes the issue by wrapping the
MediaCodecAdapter.FactoryinsideNextRenderersFactory.When
dv7Fallbackis true and the stream isVIDEO_DOLBY_VISION, it aggressively stripsKEY_PROFILEandKEY_COLOR_TRANSFER_REQUESTfrom theMediaFormatbefore creating the decoder. This forces the Exynos hardware decoder to treat it as a generic HEVC stream and successfully output HDR frames without silently dropping them.Testing
Tested and confirmed working perfectly on Samsung A56 5G (Exynos chip).