aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorthexai <58434170+thexai@users.noreply.github.com>2023-11-24 17:07:50 +0100
committerGitHub <noreply@github.com>2023-11-24 17:07:50 +0100
commitdd6063612d7b6efd59d4bc9c3dcfc1cb97c44cde (patch)
tree66c3e9999f4ede929f6146a1eb3d3d9f38cfceb2
parent6058e9f7932995a1863f67069a9fa78ba443b498 (diff)
parent8a9f3dc195f8ec1a97c0cd06044d99a21510ad32 (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.cpp41
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;
+ }
+ }
}
}