mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Report DOVIWith{HDR10,HLG} only if dvh1 is supported as the codec tag
This commit is contained in:
parent
ea63120bff
commit
49552d0c9d
1 changed files with 22 additions and 11 deletions
|
@ -210,12 +210,21 @@ function supportsDolbyVision(options) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function canPlayDolbyVisionHevc(videoTestElement) {
|
function supportedDolbyVisionProfilesHevc(videoTestElement) {
|
||||||
|
const supportedProfiles = [];
|
||||||
// Profiles 5/7/8 4k@60fps
|
// Profiles 5/7/8 4k@60fps
|
||||||
return !!videoTestElement.canPlayType
|
if (videoTestElement.canPlayType) {
|
||||||
&& (videoTestElement.canPlayType('video/mp4; codecs="dvh1.05.09"').replace(/no/, '')
|
if (videoTestElement
|
||||||
&& videoTestElement.canPlayType('video/mp4; codecs="dvh1.07.09"').replace(/no/, '')
|
.canPlayType('video/mp4; codecs="dvh1.05.09"')
|
||||||
&& videoTestElement.canPlayType('video/mp4; codecs="dvh1.08.09"').replace(/no/, ''));
|
.replace(/no/, '')) supportedProfiles.push(5);
|
||||||
|
if ( videoTestElement
|
||||||
|
.canPlayType('video/mp4; codecs="dvh1.07.09"')
|
||||||
|
.replace(/no/, '')) supportedProfiles.push(7);
|
||||||
|
if ( videoTestElement
|
||||||
|
.canPlayType('video/mp4; codecs="dvh1.08.09"')
|
||||||
|
.replace(/no/, '')) supportedProfiles.push(8);
|
||||||
|
}
|
||||||
|
return supportedProfiles;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getDirectPlayProfileForVideoContainer(container, videoAudioCodecs, videoTestElement, options) {
|
function getDirectPlayProfileForVideoContainer(container, videoAudioCodecs, videoTestElement, options) {
|
||||||
|
@ -932,22 +941,24 @@ export default function (options) {
|
||||||
|
|
||||||
if (supportsHdr10(options)) {
|
if (supportsHdr10(options)) {
|
||||||
hevcVideoRangeTypes += '|HDR10';
|
hevcVideoRangeTypes += '|HDR10';
|
||||||
// Should also be able to play DoVi with HDR10 fallback
|
|
||||||
hevcVideoRangeTypes += '|DOVIWithHDR10';
|
|
||||||
vp9VideoRangeTypes += '|HDR10';
|
vp9VideoRangeTypes += '|HDR10';
|
||||||
av1VideoRangeTypes += '|HDR10';
|
av1VideoRangeTypes += '|HDR10';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (supportsHlg(options)) {
|
if (supportsHlg(options)) {
|
||||||
hevcVideoRangeTypes += '|HLG';
|
hevcVideoRangeTypes += '|HLG';
|
||||||
// Should also be able to play DoVi with HLG fallback
|
|
||||||
hevcVideoRangeTypes += '|DOVIWithHLG';
|
|
||||||
vp9VideoRangeTypes += '|HLG';
|
vp9VideoRangeTypes += '|HLG';
|
||||||
av1VideoRangeTypes += '|HLG';
|
av1VideoRangeTypes += '|HLG';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (supportsDolbyVision(options) && canPlayDolbyVisionHevc(videoTestElement)) {
|
if (supportsDolbyVision(options)) {
|
||||||
hevcVideoRangeTypes += '|DOVI';
|
const profiles = supportedDolbyVisionProfilesHevc(videoTestElement);
|
||||||
|
if (profiles.includes(5) || profiles.includes(7)) {
|
||||||
|
hevcVideoRangeTypes += '|DOVI';
|
||||||
|
}
|
||||||
|
if (profiles.includes(8)) {
|
||||||
|
hevcVideoRangeTypes += '|DOVIWithHDR10|DOVIWithHLG';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const h264CodecProfileConditions = [
|
const h264CodecProfileConditions = [
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue