From f647a1b4c3c71dc7a82d0940afd2a03e9b96ee6f Mon Sep 17 00:00:00 2001 From: Nyanmisaka Date: Fri, 24 Jan 2020 01:04:07 +0800 Subject: [PATCH 01/12] Add and fix some canPlayType --- src/scripts/browserdeviceprofile.js | 167 +++++++++++++++++----------- 1 file changed, 103 insertions(+), 64 deletions(-) diff --git a/src/scripts/browserdeviceprofile.js b/src/scripts/browserdeviceprofile.js index 18b85a6dc0..0f81332502 100644 --- a/src/scripts/browserdeviceprofile.js +++ b/src/scripts/browserdeviceprofile.js @@ -5,8 +5,8 @@ define(['browser'], function (browser) { return !!(videoTestElement.canPlayType && videoTestElement.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"').replace(/no/, '')); } - function canPlayH265(videoTestElement, options) { - if (browser.tizen || browser.orsay || browser.xboxOne || browser.web0s || options.supportsHevc) { + function canPlayH265(videoTestElement, protocol) { + if (browser.tizen || browser.orsay || browser.xboxOne || browser.web0s) { return true; } @@ -18,12 +18,27 @@ define(['browser'], function (browser) { } } - // Unfortunately haven't yet found a canPlayType for proper detection - if (browser.iOS && (browser.iOSVersion || 0) >= 11) { - return true; + if (browser.ps4) { + return false; } - return !!(videoTestElement.canPlayType && videoTestElement.canPlayType('video/hevc; codecs="hevc, aac"').replace(/no/, '')); + if (protocol === 'hls') { + + //safari seems to be lying about this + if (browser.iOS || browser.safari) { + return false; + } + + return !!videoTestElement.canPlayType && + (videoTestElement.canPlayType('video/mp2t; codecs="hvc1.1.L0.0"').replace(/no/, '') || + videoTestElement.canPlayType('video/mp2t; codecs="hev1.1.L0.0"').replace(/no/, '') || + videoTestElement.canPlayType('video/mp2t; codecs="hev1.1.2.L150"').replace(/no/, '')); + } + + return !!videoTestElement.canPlayType && + (videoTestElement.canPlayType('video/mp4; codecs="hvc1.1.L0.0"').replace(/no/, '') || + videoTestElement.canPlayType('video/mp4; codecs="hev1.1.L0.0"').replace(/no/, '') || + videoTestElement.canPlayType('video/mp4; codecs="hev1.1.2.L150"').replace(/no/, '')); } var _supportsTextTracks; @@ -41,7 +56,7 @@ define(['browser'], function (browser) { } var _canPlayHls; - function canPlayHls(src) { + function canPlayHls() { if (_canPlayHls == null) { _canPlayHls = canPlayNativeHls() || canPlayHlsWithMSE(); } @@ -64,12 +79,8 @@ define(['browser'], function (browser) { } function canPlayHlsWithMSE() { - if (window.MediaSource != null) { - // text tracks don’t work with this in firefox - return true; - } - - return false; + // text tracks don’t work with this in firefox + return null != window.MediaSource; } function supportsAc3(videoTestElement) { @@ -77,11 +88,20 @@ define(['browser'], function (browser) { return true; } - if (browser.osx || browser.iOS) { - return false; + return videoTestElement.canPlayType('audio/mp4; codecs="ac-3"').replace(/no/, ''); + } + + function supportsAc3InHls(videoTestElement) { + if (browser.tizen || browser.orsay || browser.web0s) { + return true; } - return videoTestElement.canPlayType('audio/mp4; codecs="ac-3"').replace(/no/, ''); + if (!!videoTestElement.canPlayType) { + return videoTestElement.canPlayType('application/x-mpegurl; codecs="avc1.42E01E, ac-3"').replace(/no/, '') || + videoTestElement.canPlayType('application/vnd.apple.mpegURL; codecs="avc1.42E01E, ac-3"').replace(/no/, ''); + } + + return false; } function supportsEac3(videoTestElement) { @@ -96,28 +116,30 @@ define(['browser'], function (browser) { var typeString; if (format === 'flac') { - if (browser.tizen || browser.orsay || browser.web0s) { - return true; - } - if (browser.edgeUwp) { + if (browser.tizen || browser.orsay || browser.web0s || browser.edgeUwp) { return true; } } else if (format === 'wma') { - if (browser.tizen || browser.orsay) { + if (browser.tizen || browser.orsay || browser.edgeUwp) { return true; } - if (browser.edgeUwp) { + } else if (format === 'asf') { + if (browser.tizen || browser.edgeUwp) { return true; } } else if (format === 'opus') { - typeString = 'audio/ogg; codecs="opus"'; - if (document.createElement('audio').canPlayType(typeString).replace(/no/, '')) { + if (!browser.web0s) { + typeString = 'audio/ogg; codecs="opus"'; + return !!document.createElement('audio').canPlayType(typeString).replace(/no/, ''); + } + + return false; + } else if (format === 'alac') { + if (browser.iOS || browser.osx) { return true; } - - return false; } else if (format === 'mp2') { - // For now + //For now return false; } @@ -129,11 +151,7 @@ define(['browser'], function (browser) { typeString = 'audio/' + format; } - if (document.createElement('audio').canPlayType(typeString).replace(/no/, '')) { - return true; - } - - return false; + return !!document.createElement('audio').canPlayType(typeString).replace(/no/, ''); } function testCanPlayMkv(videoTestElement) { @@ -146,8 +164,6 @@ define(['browser'], function (browser) { return true; } - var userAgent = navigator.userAgent.toLowerCase(); - // Unfortunately there's no real way to detect mkv support if (browser.chrome) { // Not supported on opera tv @@ -155,6 +171,8 @@ define(['browser'], function (browser) { return false; } + var userAgent = navigator.userAgent.toLowerCase(); + // Filter out browsers based on chromium that don't support mkv if (userAgent.indexOf('vivaldi') !== -1 || userAgent.indexOf('opera') !== -1) { return false; @@ -163,10 +181,6 @@ define(['browser'], function (browser) { return true; } - if (browser.edgeUwp) { - return true; - } - return false; } @@ -203,15 +217,15 @@ define(['browser'], function (browser) { switch (container) { case 'asf': - supported = browser.tizen || browser.orsay || browser.edgeUwp; + supported = browser.tizen || browser.orsay || browser.web0s || browser.edgeUwp; videoAudioCodecs = []; break; case 'avi': - supported = browser.tizen || browser.orsay || browser.edgeUwp; + supported = browser.tizen || browser.orsay || browser.web0s || browser.edgeUwp; break; case 'mpg': case 'mpeg': - supported = browser.edgeUwp || browser.tizen || browser.orsay; + supported = browser.tizen || browser.orsay || browser.web0s || browser.edgeUwp; break; case 'flv': supported = browser.tizen || browser.orsay; @@ -227,7 +241,7 @@ define(['browser'], function (browser) { supported = browser.tizen || browser.orsay; break; case 'mov': - supported = browser.tizen || browser.orsay || browser.chrome || browser.edgeUwp; + supported = browser.tizen || browser.orsay || browser.web0s || browser.edgeUwp; videoCodecs.push('h264'); break; case 'm2ts': @@ -247,7 +261,7 @@ define(['browser'], function (browser) { case 'ts': supported = testCanPlayTs(); videoCodecs.push('h264'); - if (canPlayH265(videoTestElement, options)) { + if (canPlayH265(videoTestElement)) { videoCodecs.push('h265'); videoCodecs.push('hevc'); } @@ -263,16 +277,12 @@ define(['browser'], function (browser) { break; } - if (!supported) { - return null; - } - - return { + return supported ? { Container: profileContainer, Type: 'Video', VideoCodec: videoCodecs.join(','), AudioCodec: videoAudioCodecs.join(',') - }; + } : null; } function getMaxBitrate() { @@ -373,8 +383,7 @@ define(['browser'], function (browser) { // This works in edge desktop, but not mobile // TODO: Retest this on mobile - var supportsAc3InHls = (!browser.edge || !browser.touch || browser.edgeUwp); - if (supportsAc3InHls) { + if (supportsAc3InHls(videoTestElement)) { hlsVideoAudioCodecs.push('ac3'); if (eAc3) { hlsVideoAudioCodecs.push('eac3'); @@ -475,16 +484,26 @@ define(['browser'], function (browser) { mp4VideoCodecs.push('h264'); hlsVideoCodecs.push('h264'); } - if (canPlayH265(videoTestElement, options)) { + + if (canPlayH265(videoTestElement)) { mp4VideoCodecs.push('h265'); mp4VideoCodecs.push('hevc'); - - if (browser.tizen || browser.web0s) { - hlsVideoCodecs.push('h265'); - hlsVideoCodecs.push('hevc'); - } } + if (canPlayH265(videoTestElement, 'hls')) { + hlsVideoCodecs.push('h265'); + hlsVideoCodecs.push('hevc'); + } + + if (canPlayH265(videoTestElement) && (browser.tizen || browser.web0s)) { + if (hlsVideoCodecs.indexOf('h265') === -1) { + hlsVideoCodecs.push('h265'); + } + if (hlsVideoCodecs.indexOf('hevc') === -1) { + hlsVideoCodecs.push('hevc'); + } + } + if (supportsMpeg2Video()) { mp4VideoCodecs.push('mpeg2video'); } @@ -557,10 +576,10 @@ define(['browser'], function (browser) { }); } - // aac also appears in the m4a container + // aac also appears in the m4a and m4b container if (audioFormat === 'aac' || audioFormat === 'alac') { profile.DirectPlayProfiles.push({ - Container: 'm4a', + Container: 'm4a,m4b', AudioCodec: audioFormat, Type: 'Audio' }); @@ -652,7 +671,7 @@ define(['browser'], function (browser) { }); } - if (canPlayHls() && options.enableHls !== false) { + if (canPlayHls() && hlsVideoAudioCodecs.length && options.enableHls !== false) { profile.TranscodingProfiles.push({ Container: 'ts', Type: 'Video', @@ -750,8 +769,26 @@ define(['browser'], function (browser) { var maxH264Level = browser.chromecast ? 42 : 51; var h264Profiles = 'high|main|baseline|constrained baseline'; - if (maxH264Level >= 51 && browser.chrome && !browser.osx) { - h264Profiles += '|high 10'; + if (browser.tizen || browser.orsay || browser.web0s || + videoTestElement.canPlayType('video/mp4; codecs="avc1.640833"').replace(/no/, '')) { + maxH264Level = 51; + } + + var userAgent = navigator.userAgent.toLowerCase(); + if (browser.chromecast) { + var isChromecastUltra = userAgent.indexOf('aarch64') !== -1; + if (isChromecastUltra) { + maxH264Level = 51; + } + } + + if (browser.tizen || browser.orsay || + videoTestElement.canPlayType('video/mp4; codecs="avc1.6e0033"').replace(/no/, '')) { + + // These tests are passing in safari, but playback is failing + if (!browser.safari && !browser.iOS && !browser.web0s) { + h264Profiles += '|high 10'; + } } profile.CodecProfiles.push({ @@ -767,12 +804,14 @@ define(['browser'], function (browser) { { Condition: 'EqualsAny', Property: 'VideoProfile', - Value: h264Profiles + Value: h264Profiles, + IsRequired: false }, { Condition: 'LessThanEqual', Property: 'VideoLevel', - Value: maxH264Level.toString() + Value: maxH264Level.toString(), + IsRequired: false } ] }); From 9415cdc73cc21ed08ab3f2ad49344b4b5502ffeb Mon Sep 17 00:00:00 2001 From: Nyanmisaka Date: Fri, 24 Jan 2020 02:31:08 +0800 Subject: [PATCH 02/12] Update browserdeviceprofile.js --- src/scripts/browserdeviceprofile.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/scripts/browserdeviceprofile.js b/src/scripts/browserdeviceprofile.js index 0f81332502..df18a60d4e 100644 --- a/src/scripts/browserdeviceprofile.js +++ b/src/scripts/browserdeviceprofile.js @@ -91,6 +91,14 @@ define(['browser'], function (browser) { return videoTestElement.canPlayType('audio/mp4; codecs="ac-3"').replace(/no/, ''); } + function supportsEac3(videoTestElement) { + if (browser.tizen || browser.orsay || browser.web0s) { + return true; + } + + return videoTestElement.canPlayType('audio/mp4; codecs="ec-3"').replace(/no/, ''); + } + function supportsAc3InHls(videoTestElement) { if (browser.tizen || browser.orsay || browser.web0s) { return true; @@ -104,14 +112,6 @@ define(['browser'], function (browser) { return false; } - function supportsEac3(videoTestElement) { - if (browser.tizen || browser.orsay || browser.web0s) { - return true; - } - - return videoTestElement.canPlayType('audio/mp4; codecs="ec-3"').replace(/no/, ''); - } - function canPlayAudioFormat(format) { var typeString; From 154a24bdb0dfff240942cef5cf5dbb334116cd94 Mon Sep 17 00:00:00 2001 From: Nyanmisaka Date: Fri, 24 Jan 2020 02:38:43 +0800 Subject: [PATCH 03/12] Update browserdeviceprofile.js --- src/scripts/browserdeviceprofile.js | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/scripts/browserdeviceprofile.js b/src/scripts/browserdeviceprofile.js index df18a60d4e..d39b4d5d79 100644 --- a/src/scripts/browserdeviceprofile.js +++ b/src/scripts/browserdeviceprofile.js @@ -132,7 +132,7 @@ define(['browser'], function (browser) { typeString = 'audio/ogg; codecs="opus"'; return !!document.createElement('audio').canPlayType(typeString).replace(/no/, ''); } - + return false; } else if (format === 'alac') { if (browser.iOS || browser.osx) { @@ -172,7 +172,7 @@ define(['browser'], function (browser) { } var userAgent = navigator.userAgent.toLowerCase(); - + // Filter out browsers based on chromium that don't support mkv if (userAgent.indexOf('vivaldi') !== -1 || userAgent.indexOf('opera') !== -1) { return false; @@ -494,15 +494,15 @@ define(['browser'], function (browser) { hlsVideoCodecs.push('h265'); hlsVideoCodecs.push('hevc'); } - - if (canPlayH265(videoTestElement) && (browser.tizen || browser.web0s)) { - if (hlsVideoCodecs.indexOf('h265') === -1) { - hlsVideoCodecs.push('h265'); - } - if (hlsVideoCodecs.indexOf('hevc') === -1) { - hlsVideoCodecs.push('hevc'); - } - } + + if (canPlayH265(videoTestElement) && (browser.tizen || browser.web0s)) { + if (hlsVideoCodecs.indexOf('h265') === -1) { + hlsVideoCodecs.push('h265'); + } + if (hlsVideoCodecs.indexOf('hevc') === -1) { + hlsVideoCodecs.push('hevc'); + } + } if (supportsMpeg2Video()) { mp4VideoCodecs.push('mpeg2video'); @@ -773,7 +773,7 @@ define(['browser'], function (browser) { videoTestElement.canPlayType('video/mp4; codecs="avc1.640833"').replace(/no/, '')) { maxH264Level = 51; } - + var userAgent = navigator.userAgent.toLowerCase(); if (browser.chromecast) { var isChromecastUltra = userAgent.indexOf('aarch64') !== -1; From 07c67f0382d97deb526ab2aec97e6faf64d21919 Mon Sep 17 00:00:00 2001 From: Nyanmisaka Date: Fri, 24 Jan 2020 02:44:53 +0800 Subject: [PATCH 04/12] Update browserdeviceprofile.js --- src/scripts/browserdeviceprofile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scripts/browserdeviceprofile.js b/src/scripts/browserdeviceprofile.js index d39b4d5d79..11e5453ba2 100644 --- a/src/scripts/browserdeviceprofile.js +++ b/src/scripts/browserdeviceprofile.js @@ -139,7 +139,7 @@ define(['browser'], function (browser) { return true; } } else if (format === 'mp2') { - //For now + // For now return false; } From ae325bd7470dbcd5a5d0879394bd7d39beee46a2 Mon Sep 17 00:00:00 2001 From: Nyanmisaka Date: Fri, 24 Jan 2020 02:48:22 +0800 Subject: [PATCH 05/12] Update browserdeviceprofile.js --- src/scripts/browserdeviceprofile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scripts/browserdeviceprofile.js b/src/scripts/browserdeviceprofile.js index 11e5453ba2..0644547f0e 100644 --- a/src/scripts/browserdeviceprofile.js +++ b/src/scripts/browserdeviceprofile.js @@ -241,7 +241,7 @@ define(['browser'], function (browser) { supported = browser.tizen || browser.orsay; break; case 'mov': - supported = browser.tizen || browser.orsay || browser.web0s || browser.edgeUwp; + supported = browser.tizen || browser.orsay || browser.web0s || browser.chrome || browser.edgeUwp; videoCodecs.push('h264'); break; case 'm2ts': From 50b96b0afbf4de7a1992450cbb297cd71939a7f3 Mon Sep 17 00:00:00 2001 From: Nyanmisaka Date: Fri, 24 Jan 2020 03:26:30 +0800 Subject: [PATCH 06/12] edge does not support h264 high10 directstream --- src/scripts/browserdeviceprofile.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/scripts/browserdeviceprofile.js b/src/scripts/browserdeviceprofile.js index 0644547f0e..11a26b570d 100644 --- a/src/scripts/browserdeviceprofile.js +++ b/src/scripts/browserdeviceprofile.js @@ -180,6 +180,10 @@ define(['browser'], function (browser) { return true; } + + if (browser.edgeUwp) { + return true; + } return false; } @@ -786,7 +790,7 @@ define(['browser'], function (browser) { videoTestElement.canPlayType('video/mp4; codecs="avc1.6e0033"').replace(/no/, '')) { // These tests are passing in safari, but playback is failing - if (!browser.safari && !browser.iOS && !browser.web0s) { + if (!browser.safari && !browser.iOS && !browser.web0s && !browser.edge) { h264Profiles += '|high 10'; } } From 7f187b504b4005a7c3afbb90f41ef838ee5abdd4 Mon Sep 17 00:00:00 2001 From: Nyanmisaka Date: Fri, 24 Jan 2020 03:30:24 +0800 Subject: [PATCH 07/12] Update browserdeviceprofile.js --- src/scripts/browserdeviceprofile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scripts/browserdeviceprofile.js b/src/scripts/browserdeviceprofile.js index 11a26b570d..3f412cbfb0 100644 --- a/src/scripts/browserdeviceprofile.js +++ b/src/scripts/browserdeviceprofile.js @@ -180,7 +180,7 @@ define(['browser'], function (browser) { return true; } - + if (browser.edgeUwp) { return true; } From 5dbbfdd750b2fe2b2075e8ec3e83b1e350885f73 Mon Sep 17 00:00:00 2001 From: Nyanmisaka Date: Fri, 24 Jan 2020 18:22:41 +0800 Subject: [PATCH 08/12] WebOS 1.0+ also supports ASF --- src/scripts/browserdeviceprofile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scripts/browserdeviceprofile.js b/src/scripts/browserdeviceprofile.js index 3f412cbfb0..b9cc5d7d34 100644 --- a/src/scripts/browserdeviceprofile.js +++ b/src/scripts/browserdeviceprofile.js @@ -124,7 +124,7 @@ define(['browser'], function (browser) { return true; } } else if (format === 'asf') { - if (browser.tizen || browser.edgeUwp) { + if (browser.tizen || browser.web0s || browser.edgeUwp) { return true; } } else if (format === 'opus') { From 1f4af044b0bf3dd21c54dc08da5a559b478e5311 Mon Sep 17 00:00:00 2001 From: Nyanmisaka Date: Fri, 24 Jan 2020 18:24:32 +0800 Subject: [PATCH 09/12] Update browserdeviceprofile.js --- src/scripts/browserdeviceprofile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scripts/browserdeviceprofile.js b/src/scripts/browserdeviceprofile.js index b9cc5d7d34..d27a12e142 100644 --- a/src/scripts/browserdeviceprofile.js +++ b/src/scripts/browserdeviceprofile.js @@ -80,7 +80,7 @@ define(['browser'], function (browser) { function canPlayHlsWithMSE() { // text tracks don’t work with this in firefox - return null != window.MediaSource; + return window.MediaSource != null; } function supportsAc3(videoTestElement) { From cb04a5aa912c45b6f5a9bc4e4ce48d0d1451fd71 Mon Sep 17 00:00:00 2001 From: Nyanmisaka Date: Tue, 28 Jan 2020 00:58:24 +0800 Subject: [PATCH 10/12] correct canPlayType for hevc level4 --- src/scripts/browserdeviceprofile.js | 35 ++++++----------------------- 1 file changed, 7 insertions(+), 28 deletions(-) diff --git a/src/scripts/browserdeviceprofile.js b/src/scripts/browserdeviceprofile.js index d27a12e142..0acec24aea 100644 --- a/src/scripts/browserdeviceprofile.js +++ b/src/scripts/browserdeviceprofile.js @@ -5,8 +5,8 @@ define(['browser'], function (browser) { return !!(videoTestElement.canPlayType && videoTestElement.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"').replace(/no/, '')); } - function canPlayH265(videoTestElement, protocol) { - if (browser.tizen || browser.orsay || browser.xboxOne || browser.web0s) { + function canPlayH265(videoTestElement, options) { + if (browser.tizen || browser.orsay || browser.xboxOne || browser.web0s || options.supportsHevc) { return true; } @@ -22,23 +22,11 @@ define(['browser'], function (browser) { return false; } - if (protocol === 'hls') { - - //safari seems to be lying about this - if (browser.iOS || browser.safari) { - return false; - } - - return !!videoTestElement.canPlayType && - (videoTestElement.canPlayType('video/mp2t; codecs="hvc1.1.L0.0"').replace(/no/, '') || - videoTestElement.canPlayType('video/mp2t; codecs="hev1.1.L0.0"').replace(/no/, '') || - videoTestElement.canPlayType('video/mp2t; codecs="hev1.1.2.L150"').replace(/no/, '')); - } - return !!videoTestElement.canPlayType && - (videoTestElement.canPlayType('video/mp4; codecs="hvc1.1.L0.0"').replace(/no/, '') || - videoTestElement.canPlayType('video/mp4; codecs="hev1.1.L0.0"').replace(/no/, '') || - videoTestElement.canPlayType('video/mp4; codecs="hev1.1.2.L150"').replace(/no/, '')); + (videoTestElement.canPlayType('video/mp4; codecs="hvc1.1.L120"').replace(/no/, '') || + videoTestElement.canPlayType('video/mp4; codecs="hev1.1.L120"').replace(/no/, '') || + videoTestElement.canPlayType('video/mp4; codecs="hvc1.1.0.L120"').replace(/no/, '') || + videoTestElement.canPlayType('video/mp4; codecs="hev1.1.0.L120"').replace(/no/, '')); } var _supportsTextTracks; @@ -492,18 +480,9 @@ define(['browser'], function (browser) { if (canPlayH265(videoTestElement)) { mp4VideoCodecs.push('h265'); mp4VideoCodecs.push('hevc'); - } - if (canPlayH265(videoTestElement, 'hls')) { - hlsVideoCodecs.push('h265'); - hlsVideoCodecs.push('hevc'); - } - - if (canPlayH265(videoTestElement) && (browser.tizen || browser.web0s)) { - if (hlsVideoCodecs.indexOf('h265') === -1) { + if (browser.tizen || browser.web0s) { hlsVideoCodecs.push('h265'); - } - if (hlsVideoCodecs.indexOf('hevc') === -1) { hlsVideoCodecs.push('hevc'); } } From c60eff507bc11e20c759e7ecc90fb40581fce787 Mon Sep 17 00:00:00 2001 From: Nyanmisaka Date: Tue, 28 Jan 2020 01:04:52 +0800 Subject: [PATCH 11/12] Update browserdeviceprofile.js --- src/scripts/browserdeviceprofile.js | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/src/scripts/browserdeviceprofile.js b/src/scripts/browserdeviceprofile.js index 0acec24aea..db079b759a 100644 --- a/src/scripts/browserdeviceprofile.js +++ b/src/scripts/browserdeviceprofile.js @@ -749,7 +749,7 @@ define(['browser'], function (browser) { }); } - var maxH264Level = browser.chromecast ? 42 : 51; + var maxH264Level = 42; var h264Profiles = 'high|main|baseline|constrained baseline'; if (browser.tizen || browser.orsay || browser.web0s || @@ -757,14 +757,6 @@ define(['browser'], function (browser) { maxH264Level = 51; } - var userAgent = navigator.userAgent.toLowerCase(); - if (browser.chromecast) { - var isChromecastUltra = userAgent.indexOf('aarch64') !== -1; - if (isChromecastUltra) { - maxH264Level = 51; - } - } - if (browser.tizen || browser.orsay || videoTestElement.canPlayType('video/mp4; codecs="avc1.6e0033"').replace(/no/, '')) { From 86484bc9b491f9b3f71c6587074752615db48c3c Mon Sep 17 00:00:00 2001 From: Nyanmisaka Date: Tue, 28 Jan 2020 01:55:02 +0800 Subject: [PATCH 12/12] Update browserdeviceprofile.js --- src/scripts/browserdeviceprofile.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/scripts/browserdeviceprofile.js b/src/scripts/browserdeviceprofile.js index db079b759a..9d91a691d0 100644 --- a/src/scripts/browserdeviceprofile.js +++ b/src/scripts/browserdeviceprofile.js @@ -253,7 +253,7 @@ define(['browser'], function (browser) { case 'ts': supported = testCanPlayTs(); videoCodecs.push('h264'); - if (canPlayH265(videoTestElement)) { + if (canPlayH265(videoTestElement, options)) { videoCodecs.push('h265'); videoCodecs.push('hevc'); } @@ -477,7 +477,7 @@ define(['browser'], function (browser) { hlsVideoCodecs.push('h264'); } - if (canPlayH265(videoTestElement)) { + if (canPlayH265(videoTestElement, options)) { mp4VideoCodecs.push('h265'); mp4VideoCodecs.push('hevc');