diff options
author | thexai <58434170+thexai@users.noreply.github.com> | 2023-11-24 17:07:50 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-24 17:07:50 +0100 |
commit | dd6063612d7b6efd59d4bc9c3dcfc1cb97c44cde (patch) | |
tree | 66c3e9999f4ede929f6146a1eb3d3d9f38cfceb2 | |
parent | 6058e9f7932995a1863f67069a9fa78ba443b498 (diff) | |
parent | 8a9f3dc195f8ec1a97c0cd06044d99a21510ad32 (diff) |
Merge pull request #23577 from joseluismarti/dovi-profiles
[Android] Check if dovi profile is supported by the codec
-rw-r--r-- | xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecAndroidMediaCodec.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecAndroidMediaCodec.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecAndroidMediaCodec.cpp index 109b131809..52c11c558c 100644 --- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecAndroidMediaCodec.cpp +++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecAndroidMediaCodec.cpp @@ -530,6 +530,47 @@ bool CDVDVideoCodecAndroidMediaCodec::Open(CDVDStreamInfo &hints, CDVDCodecOptio m_mime = "video/dolby-vision"; m_formatname = isDvhe ? "amc-dvhe" : "amc-dvh1"; profile = 0; // not an HEVC profile + + if (CJNIBase::GetSDKVersion() >= 24) + { + switch (m_hints.dovi.dv_profile) + { + case 0: + profile = CJNIMediaCodecInfoCodecProfileLevel::DolbyVisionProfileDvavPer; + break; + case 1: + profile = CJNIMediaCodecInfoCodecProfileLevel::DolbyVisionProfileDvavPen; + break; + case 2: + profile = CJNIMediaCodecInfoCodecProfileLevel::DolbyVisionProfileDvheDer; + break; + case 3: + profile = CJNIMediaCodecInfoCodecProfileLevel::DolbyVisionProfileDvheDen; + break; + case 4: + profile = CJNIMediaCodecInfoCodecProfileLevel::DolbyVisionProfileDvheDtr; + break; + case 5: + profile = CJNIMediaCodecInfoCodecProfileLevel::DolbyVisionProfileDvheStn; + break; + case 6: + profile = CJNIMediaCodecInfoCodecProfileLevel::DolbyVisionProfileDvheDth; + break; + case 7: + // profile = CJNIMediaCodecInfoCodecProfileLevel::DolbyVisionProfileDvheDtb; + break; + case 8: + if (CJNIBase::GetSDKVersion() >= 27) + profile = CJNIMediaCodecInfoCodecProfileLevel::DolbyVisionProfileDvheSt; + break; + case 9: + if (CJNIBase::GetSDKVersion() >= 27) + profile = CJNIMediaCodecInfoCodecProfileLevel::DolbyVisionProfileDvavSe; + break; + default: + break; + } + } } } |