shaka-player 4.3.11 → 4.3.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/deflake.yaml +8 -5
- package/.github/workflows/release-please.yaml +47 -7
- package/.github/workflows/shaka-bot-commands/command-test.sh +1 -1
- package/CHANGELOG.md +34 -0
- package/CONTRIBUTORS +1 -0
- package/demo/common/asset.js +5 -0
- package/demo/common/assets.js +16 -1
- package/demo/common/message_ids.js +1 -0
- package/demo/custom.js +5 -5
- package/demo/locales/en.json +1 -0
- package/demo/locales/source.json +4 -0
- package/demo/main.js +1 -1
- package/dist/demo.compiled.debug.js +58 -56
- package/dist/demo.compiled.debug.map +3 -3
- package/dist/demo.compiled.js +58 -56
- package/dist/demo.compiled.map +3 -3
- package/dist/locales.js +30 -30
- package/dist/receiver.compiled.debug.js +24 -22
- package/dist/receiver.compiled.debug.map +3 -3
- package/dist/receiver.compiled.js +24 -22
- package/dist/receiver.compiled.map +3 -3
- package/dist/shaka-player.compiled.d.ts +258 -258
- package/dist/shaka-player.compiled.debug.d.ts +258 -258
- package/dist/shaka-player.compiled.debug.externs.js +6 -4
- package/dist/shaka-player.compiled.debug.js +58 -59
- package/dist/shaka-player.compiled.debug.map +3 -3
- package/dist/shaka-player.compiled.externs.js +6 -4
- package/dist/shaka-player.compiled.js +700 -699
- package/dist/shaka-player.compiled.map +3 -3
- package/dist/shaka-player.ui.d.ts +302 -302
- package/dist/shaka-player.ui.debug.d.ts +302 -302
- package/dist/shaka-player.ui.debug.externs.js +6 -4
- package/dist/shaka-player.ui.debug.js +205 -206
- package/dist/shaka-player.ui.debug.map +3 -3
- package/dist/shaka-player.ui.externs.js +6 -4
- package/dist/shaka-player.ui.js +867 -866
- package/dist/shaka-player.ui.map +3 -3
- package/docs/tutorials/faq.md +1 -1
- package/docs/tutorials/offline.md +1 -1
- package/lib/dash/dash_parser.js +4 -1
- package/lib/hls/hls_parser.js +60 -24
- package/lib/media/segment_reference.js +11 -5
- package/lib/media/streaming_engine.js +15 -25
- package/lib/player.js +8 -57
- package/lib/text/ttml_text_parser.js +2 -1
- package/lib/text/ui_text_displayer.js +49 -3
- package/lib/util/cmcd_manager.js +6 -1
- package/lib/util/manifest_parser_utils.js +10 -4
- package/lib/util/player_configuration.js +2 -2
- package/lib/util/stream_utils.js +13 -11
- package/lib/util/ts_parser.js +3 -3
- package/package.json +2 -2
- package/test/dash/dash_parser_manifest_unit.js +5 -0
- package/test/dash/dash_parser_segment_base_unit.js +5 -0
- package/test/dash/dash_parser_segment_list_unit.js +21 -17
- package/test/dash/dash_parser_segment_template_unit.js +5 -0
- package/test/hls/hls_live_unit.js +33 -0
- package/test/hls/hls_parser_unit.js +2 -57
- package/test/test/util/dash_parser_util.js +16 -7
- package/test/text/ttml_text_parser_unit.js +3 -4
- package/test/text/web_vtt_layout_integration.js +0 -1
- package/test/util/ts_parser_unit.js +1 -1
|
@@ -44,9 +44,9 @@ try{g(h.resolve,h.reject)}catch(k){h.reject(k)}};e.prototype.createResolveAndRej
|
|
|
44
44
|
this.fulfill_(g)}};e.prototype.resolveToNonPromiseObj_=function(g){var h=void 0;try{h=g.then}catch(k){this.reject_(k);return}"function"==typeof h?this.settleSameAsThenable_(h,g):this.fulfill_(g)};e.prototype.reject_=function(g){this.settle_(2,g)};e.prototype.fulfill_=function(g){this.settle_(1,g)};e.prototype.settle_=function(g,h){if(0!=this.state_)throw Error("Cannot settle("+g+", "+h+"): Promise already settled in state"+this.state_);this.state_=g;this.result_=h;2===this.state_&&this.scheduleUnhandledRejectionCheck_();
|
|
45
45
|
this.executeOnSettledCallbacks_()};e.prototype.scheduleUnhandledRejectionCheck_=function(){var g=this;d(function(){if(g.notifyUnhandledRejection_()){var h=$jscomp.global.console;"undefined"!==typeof h&&h.error(g.result_)}},1)};e.prototype.notifyUnhandledRejection_=function(){if(this.isRejectionHandled_)return!1;var g=$jscomp.global.CustomEvent,h=$jscomp.global.Event,k=$jscomp.global.dispatchEvent;if("undefined"===typeof k)return!0;"function"===typeof g?g=new g("unhandledrejection",{cancelable:!0}):
|
|
46
46
|
"function"===typeof h?g=new h("unhandledrejection",{cancelable:!0}):(g=$jscomp.global.document.createEvent("CustomEvent"),g.initCustomEvent("unhandledrejection",!1,!0,g));g.promise=this;g.reason=this.result_;return k(g)};e.prototype.executeOnSettledCallbacks_=function(){if(null!=this.onSettledCallbacks_){for(var g=0;g<this.onSettledCallbacks_.length;++g)f.asyncExecute(this.onSettledCallbacks_[g]);this.onSettledCallbacks_=null}};var f=new b;e.prototype.settleSameAsPromise_=function(g){var h=this.createResolveAndReject_();
|
|
47
|
-
g.callWhenSettled_(h.resolve,h.reject)};e.prototype.settleSameAsThenable_=function(g,h){var k=this.createResolveAndReject_();try{g.call(h,k.resolve,k.reject)}catch(l){k.reject(l)}};e.prototype.then=function(g,h){function k(p,q){return"function"==typeof p?function(r){try{l(p(r))}catch(
|
|
47
|
+
g.callWhenSettled_(h.resolve,h.reject)};e.prototype.settleSameAsThenable_=function(g,h){var k=this.createResolveAndReject_();try{g.call(h,k.resolve,k.reject)}catch(l){k.reject(l)}};e.prototype.then=function(g,h){function k(p,q){return"function"==typeof p?function(r){try{l(p(r))}catch(u){m(u)}}:q}var l,m,n=new e(function(p,q){l=p;m=q});this.callWhenSettled_(k(g,l),k(h,m));return n};e.prototype.catch=function(g){return this.then(void 0,g)};e.prototype.callWhenSettled_=function(g,h){function k(){switch(l.state_){case 1:g(l.result_);
|
|
48
48
|
break;case 2:h(l.result_);break;default:throw Error("Unexpected state: "+l.state_);}}var l=this;null==this.onSettledCallbacks_?f.asyncExecute(k):this.onSettledCallbacks_.push(k);this.isRejectionHandled_=!0};e.resolve=c;e.reject=function(g){return new e(function(h,k){k(g)})};e.race=function(g){return new e(function(h,k){for(var l=$jscomp.makeIterator(g),m=l.next();!m.done;m=l.next())c(m.value).callWhenSettled_(h,k)})};e.all=function(g){var h=$jscomp.makeIterator(g),k=h.next();return k.done?c([]):new e(function(l,
|
|
49
|
-
m){function n(r){return function(
|
|
49
|
+
m){function n(r){return function(u){p[r]=u;q--;0==q&&l(p)}}var p=[],q=0;do p.push(void 0),q++,c(k.value).callWhenSettled_(n(p.length-1),m),k=h.next();while(!k.done)})};return e},"es6","es3");$jscomp.checkEs6ConformanceViaProxy=function(){try{var a={},b=Object.create(new $jscomp.global.Proxy(a,{get:function(c,d,e){return c==a&&"q"==d&&e==b}}));return!0===b.q}catch(c){return!1}};$jscomp.USE_PROXY_FOR_ES6_CONFORMANCE_CHECKS=!1;$jscomp.ES6_CONFORMANCE=$jscomp.USE_PROXY_FOR_ES6_CONFORMANCE_CHECKS&&$jscomp.checkEs6ConformanceViaProxy();
|
|
50
50
|
$jscomp.owns=function(a,b){return Object.prototype.hasOwnProperty.call(a,b)};
|
|
51
51
|
$jscomp.polyfill("WeakMap",function(a){function b(){if(!a||!Object.seal)return!1;try{var l=Object.seal({}),m=Object.seal({}),n=new a([[l,2],[m,3]]);if(2!=n.get(l)||3!=n.get(m))return!1;n.delete(l);n.set(m,4);return!n.has(l)&&4==n.get(m)}catch(p){return!1}}function c(){}function d(l){var m=typeof l;return"object"===m&&null!==l||"function"===m}function e(l){if(!$jscomp.owns(l,g)){var m=new c;$jscomp.defineProperty(l,g,{value:m})}}function f(l){if(!$jscomp.ISOLATE_POLYFILLS){var m=Object[l];m&&(Object[l]=
|
|
52
52
|
function(n){if(n instanceof c)return n;Object.isExtensible(n)&&e(n);return m(n)})}}if($jscomp.USE_PROXY_FOR_ES6_CONFORMANCE_CHECKS){if(a&&$jscomp.ES6_CONFORMANCE)return a}else if(b())return a;var g="$jscomp_hidden_"+Math.random();f("freeze");f("preventExtensions");f("seal");var h=0,k=function(l){this.id_=(h+=Math.random()+1).toString();if(l){l=$jscomp.makeIterator(l);for(var m;!(m=l.next()).done;)m=m.value,this.set(m[0],m[1])}};k.prototype.set=function(l,m){if(!d(l))throw Error("Invalid WeakMap key");
|
|
@@ -183,7 +183,7 @@ DASH_PSSH_BAD_ENCODING:4007,DASH_NO_COMMON_KEY_SYSTEM:4008,DASH_MULTIPLE_KEY_IDS
|
|
|
183
183
|
DASH_XLINK_DEPTH_LIMIT:4028,CONTENT_UNSUPPORTED_BY_BROWSER:4032,CANNOT_ADD_EXTERNAL_TEXT_TO_LIVE_STREAM:4033,NO_VARIANTS:4036,PERIOD_FLATTENING_FAILED:4037,INCONSISTENT_DRM_ACROSS_PERIODS:4038,HLS_VARIABLE_NOT_FOUND:4039,HLS_MSE_ENCRYPTED_MP2T_NOT_SUPPORTED:4040,HLS_MSE_ENCRYPTED_LEGACY_APPLE_MEDIA_KEYS_NOT_SUPPORTED:4041,NO_WEB_CRYPTO_API:4042,HLS_AES_128_INVALID_IV_LENGTH:4043,HLS_AES_128_INVALID_KEY_LENGTH:4044,CANNOT_ADD_EXTERNAL_THUMBNAILS_TO_LIVE_STREAM:4045,STREAMING_ENGINE_STARTUP_INVALID_STATE:5006,
|
|
184
184
|
NO_RECOGNIZED_KEY_SYSTEMS:6E3,REQUESTED_KEY_SYSTEM_CONFIG_UNAVAILABLE:6001,FAILED_TO_CREATE_CDM:6002,FAILED_TO_ATTACH_TO_VIDEO:6003,INVALID_SERVER_CERTIFICATE:6004,FAILED_TO_CREATE_SESSION:6005,FAILED_TO_GENERATE_LICENSE_REQUEST:6006,LICENSE_REQUEST_FAILED:6007,LICENSE_RESPONSE_REJECTED:6008,ENCRYPTED_CONTENT_WITHOUT_DRM_INFO:6010,NO_LICENSE_SERVER_GIVEN:6012,OFFLINE_SESSION_REMOVED:6013,EXPIRED:6014,SERVER_CERTIFICATE_REQUIRED:6015,INIT_DATA_TRANSFORM_ERROR:6016,SERVER_CERTIFICATE_REQUEST_FAILED:6017,
|
|
185
185
|
LOAD_INTERRUPTED:7E3,OPERATION_ABORTED:7001,NO_VIDEO_ELEMENT:7002,OBJECT_DESTROYED:7003,CONTENT_NOT_LOADED:7004,CAST_API_UNAVAILABLE:8E3,NO_CAST_RECEIVERS:8001,ALREADY_CASTING:8002,UNEXPECTED_CAST_ERROR:8003,CAST_CANCELED_BY_USER:8004,CAST_CONNECTION_TIMED_OUT:8005,CAST_RECEIVER_APP_UNAVAILABLE:8006,STORAGE_NOT_SUPPORTED:9E3,INDEXED_DB_ERROR:9001,DEPRECATED_OPERATION_ABORTED:9002,REQUESTED_ITEM_NOT_FOUND:9003,MALFORMED_OFFLINE_URI:9004,CANNOT_STORE_LIVE_OFFLINE:9005,NO_INIT_DATA_FOR_OFFLINE:9007,
|
|
186
|
-
LOCAL_PLAYER_INSTANCE_REQUIRED:9008,NEW_KEY_OPERATION_NOT_SUPPORTED:9011,KEY_NOT_FOUND:9012,MISSING_STORAGE_CELL:9013,STORAGE_LIMIT_REACHED:9014,DOWNLOAD_SIZE_CALLBACK_ERROR:9015,MODIFY_OPERATION_NOT_SUPPORTED:9016,INDEXED_DB_INIT_TIMED_OUT:9017,CS_IMA_SDK_MISSING:1E4,CS_AD_MANAGER_NOT_INITIALIZED:10001,SS_IMA_SDK_MISSING:10002,SS_AD_MANAGER_NOT_INITIALIZED:10003,CURRENT_DAI_REQUEST_NOT_FINISHED:10004};goog.exportProperty(shaka.util.Error,"Code",shaka.util.Error.Code);shaka.util.Functional=function(){};shaka.util.Functional.createFallbackPromiseChain=function(a,b){return a.reduce(function(c,d){return c.catch(function(){return b(d)})},Promise.reject())};shaka.util.Functional.collapseArrays=function(a,b){return a.concat(b)};shaka.util.Functional.ignored=function(){};shaka.util.Functional.noop=function(){};shaka.util.Functional.isNotNull=function(a){return null!=a};shaka.util.ManifestParserUtils=function(){};shaka.util.ManifestParserUtils.resolveUris=function(a,b){var c=shaka.util.Functional;if(0==b.length)return a;var d=b.map(function(e){return new goog.Uri(e)});return a.map(function(e){
|
|
186
|
+
LOCAL_PLAYER_INSTANCE_REQUIRED:9008,NEW_KEY_OPERATION_NOT_SUPPORTED:9011,KEY_NOT_FOUND:9012,MISSING_STORAGE_CELL:9013,STORAGE_LIMIT_REACHED:9014,DOWNLOAD_SIZE_CALLBACK_ERROR:9015,MODIFY_OPERATION_NOT_SUPPORTED:9016,INDEXED_DB_INIT_TIMED_OUT:9017,CS_IMA_SDK_MISSING:1E4,CS_AD_MANAGER_NOT_INITIALIZED:10001,SS_IMA_SDK_MISSING:10002,SS_AD_MANAGER_NOT_INITIALIZED:10003,CURRENT_DAI_REQUEST_NOT_FINISHED:10004};goog.exportProperty(shaka.util.Error,"Code",shaka.util.Error.Code);shaka.util.Functional=function(){};shaka.util.Functional.createFallbackPromiseChain=function(a,b){return a.reduce(function(c,d){return c.catch(function(){return b(d)})},Promise.reject())};shaka.util.Functional.collapseArrays=function(a,b){return a.concat(b)};shaka.util.Functional.ignored=function(){};shaka.util.Functional.noop=function(){};shaka.util.Functional.isNotNull=function(a){return null!=a};shaka.util.ManifestParserUtils=function(){};shaka.util.ManifestParserUtils.resolveUris=function(a,b){var c=shaka.util.Functional;if(0==b.length)return a;if(1==a.length&&1==b.length)return a=new goog.Uri(a[0]),b=new goog.Uri(b[0]),[a.resolve(b).toString()];var d=b.map(function(e){return new goog.Uri(e)});return a.map(function(e){var f=new goog.Uri(e);return d.map(function(g){return f.resolve(g).toString()})}).reduce(c.collapseArrays,[])};
|
|
187
187
|
shaka.util.ManifestParserUtils.createDrmInfo=function(a,b){return{keySystem:a,licenseServerUri:"",distinctiveIdentifierRequired:!1,persistentStateRequired:!1,audioRobustness:"",videoRobustness:"",serverCertificate:null,serverCertificateUri:"",sessionType:"",initData:b||[],keyIds:new Set}};
|
|
188
188
|
shaka.util.ManifestParserUtils.guessCodecs=function(a,b){if(1==b.length)return b[0];a=shaka.util.ManifestParserUtils.guessCodecsSafe(a,b);if(null!=a)return a;throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_COULD_NOT_GUESS_CODECS,b);};
|
|
189
189
|
shaka.util.ManifestParserUtils.guessCodecsSafe=function(a,b){for(var c=$jscomp.makeIterator(shaka.util.ManifestParserUtils.CODEC_REGEXPS_BY_CONTENT_TYPE_[a]),d=c.next();!d.done;d=c.next()){d=d.value;for(var e=$jscomp.makeIterator(b),f=e.next();!f.done;f=e.next())if(f=f.value,d.test(f.trim()))return f.trim()}return a==shaka.util.ManifestParserUtils.ContentType.TEXT?"":null};shaka.util.ManifestParserUtils.ContentType={VIDEO:"video",AUDIO:"audio",TEXT:"text",IMAGE:"image",APPLICATION:"application"};
|
|
@@ -273,8 +273,8 @@ shaka.ui.Locales.addTo=function(a){a.insert("ar",new Map([["AD_DURATION","\u0645
|
|
|
273
273
|
"\u5ee3\u544a [AD_ON]/[NUM_ADS]"],["AD_TIME","\u5ee3\u544a\uff1a[AD_TIME]"],["AUTO_QUALITY","\u81ea\u52d5"],["BACK","\u8fd4\u56de"],["CAPTIONS","\u5b57\u5e55"],["CAST","\u6295\u653e..."],["ENTER_LOOP_MODE","\u5faa\u74b0\u64ad\u653e\u76ee\u524d\u7684\u5f71\u7247"],["ENTER_PICTURE_IN_PICTURE","\u9032\u5165\u5b50\u6bcd\u756b\u9762"],["EXIT_FULL_SCREEN","\u9000\u51fa\u5168\u87a2\u5e55\u6a21\u5f0f"],["EXIT_LOOP_MODE","\u505c\u6b62\u5faa\u74b0\u64ad\u653e\u76ee\u524d\u7684\u5f71\u7247"],["EXIT_PICTURE_IN_PICTURE",
|
|
274
274
|
"\u96e2\u958b\u5b50\u6bcd\u756b\u9762"],["FAST_FORWARD","\u5feb\u8f49"],["FULL_SCREEN","\u5168\u87a2\u5e55"],["LANGUAGE","\u8a9e\u8a00"],["LIVE","\u76f4\u64ad"],["LOOP","\u5faa\u74b0\u64ad\u653e"],["MORE_SETTINGS","\u986f\u793a\u66f4\u591a\u8a2d\u5b9a"],["MULTIPLE_LANGUAGES","\u591a\u7a2e\u8a9e\u8a00"],["MUTE","\u975c\u97f3"],["NOT_APPLICABLE","\u4e0d\u9069\u7528"],["OFF","\u95dc\u9589"],["ON","\u958b\u555f"],["PAUSE","\u66ab\u505c"],["PICTURE_IN_PICTURE","\u5b50\u6bcd\u756b\u9762"],["PLAY","\u64ad\u653e"],
|
|
275
275
|
["PLAYBACK_RATE","\u64ad\u653e\u901f\u5ea6"],["RESOLUTION","\u89e3\u6790\u5ea6"],["REWIND","\u5012\u8f49"],["SEEK","\u641c\u5c0b"],["SKIP_AD","\u7565\u904e\u5ee3\u544a"],["SKIP_TO_LIVE","\u8df3\u81f3\u5f53\u524d\u76f4\u64ad"],["UNDETERMINED_LANGUAGE","\u4e0d\u660e"],["UNMUTE","\u53d6\u6d88\u975c\u97f3"],["UNRECOGNIZED_LANGUAGE","\u7121\u6cd5\u8fa8\u8b58"],["VOLUME","\u97f3\u91cf"]]))};
|
|
276
|
-
shaka.ui.Locales.Ids={
|
|
277
|
-
|
|
276
|
+
shaka.ui.Locales.Ids={OFF:"OFF",FAST_FORWARD:"FAST_FORWARD",RESOLUTION:"RESOLUTION",MULTIPLE_LANGUAGES:"MULTIPLE_LANGUAGES",ENTER_LOOP_MODE:"ENTER_LOOP_MODE",VOLUME:"VOLUME",NOT_APPLICABLE:"NOT_APPLICABLE",AD_TIME:"AD_TIME",PAUSE:"PAUSE",UNDETERMINED_LANGUAGE:"UNDETERMINED_LANGUAGE",QUALITY:"QUALITY",CAPTIONS:"CAPTIONS",LANGUAGE:"LANGUAGE",PLAY:"PLAY",LOOP:"LOOP",PLAYBACK_RATE:"PLAYBACK_RATE",STATISTICS:"STATISTICS",ON:"ON",SUBTITLE_FORCED:"SUBTITLE_FORCED",CAST:"CAST",MORE_SETTINGS:"MORE_SETTINGS",
|
|
277
|
+
BACK:"BACK",UNMUTE:"UNMUTE",AIRPLAY:"AIRPLAY",EXIT_FULL_SCREEN:"EXIT_FULL_SCREEN",REPLAY:"REPLAY",SKIP_TO_LIVE:"SKIP_TO_LIVE",ENTER_PICTURE_IN_PICTURE:"ENTER_PICTURE_IN_PICTURE",PICTURE_IN_PICTURE:"PICTURE_IN_PICTURE",AD_PROGRESS:"AD_PROGRESS",FULL_SCREEN:"FULL_SCREEN",EXIT_LOOP_MODE:"EXIT_LOOP_MODE",LIVE:"LIVE",MUTE:"MUTE",AD_DURATION:"AD_DURATION",REWIND:"REWIND",SKIP_AD:"SKIP_AD",EXIT_PICTURE_IN_PICTURE:"EXIT_PICTURE_IN_PICTURE",SEEK:"SEEK",AUTO_QUALITY:"AUTO_QUALITY",UNRECOGNIZED_LANGUAGE:"UNRECOGNIZED_LANGUAGE"};shaka.abr={};shaka.abr.Ewma=function(a){goog.asserts.assert(0<a,"expected halfLife to be positive");this.alpha_=Math.exp(Math.log(.5)/a);this.totalWeight_=this.estimate_=0};shaka.abr.Ewma.prototype.updateAlpha=function(a){goog.asserts.assert(0<a,"expected halfLife to be positive");this.alpha_=Math.exp(Math.log(.5)/a)};shaka.abr.Ewma.prototype.sample=function(a,b){var c=Math.pow(this.alpha_,a);b=b*(1-c)+c*this.estimate_;isNaN(b)||(this.estimate_=b,this.totalWeight_+=a)};
|
|
278
278
|
shaka.abr.Ewma.prototype.getEstimate=function(){return this.estimate_/(1-Math.pow(this.alpha_,this.totalWeight_))};shaka.abr.EwmaBandwidthEstimator=function(){this.fast_=new shaka.abr.Ewma(2);this.slow_=new shaka.abr.Ewma(5);this.bytesSampled_=0;this.minTotalBytes_=128E3;this.minBytes_=16E3};shaka.abr.EwmaBandwidthEstimator.prototype.configure=function(a){this.minTotalBytes_=a.minTotalBytes;this.minBytes_=a.minBytes;this.fast_.updateAlpha(a.fastHalfLife);this.slow_.updateAlpha(a.slowHalfLife)};
|
|
279
279
|
shaka.abr.EwmaBandwidthEstimator.prototype.sample=function(a,b){if(!(b<this.minBytes_)){var c=8E3*b/a;a/=1E3;this.bytesSampled_+=b;this.fast_.sample(a,c);this.slow_.sample(a,c)}};shaka.abr.EwmaBandwidthEstimator.prototype.getBandwidthEstimate=function(a){return this.bytesSampled_<this.minTotalBytes_?a:Math.min(this.fast_.getEstimate(),this.slow_.getEstimate())};shaka.abr.EwmaBandwidthEstimator.prototype.hasGoodEstimate=function(){return this.bytesSampled_>=this.minTotalBytes_};shaka.media={};shaka.media.Capabilities=function(){};shaka.media.Capabilities.isTypeSupported=function(a){var b=shaka.media.Capabilities.MediaSourceTypeSupportMap;if(b.has(a))return b.get(a);var c=MediaSource.isTypeSupported(a);b.set(a,c);return c};shaka.media.Capabilities.MediaSourceTypeSupportMap=new Map;shaka.util.ArrayUtils=function(){};shaka.util.ArrayUtils.defaultEquals=function(a,b){return"number"===typeof a&&"number"===typeof b&&isNaN(a)&&isNaN(b)?!0:a===b};shaka.util.ArrayUtils.remove=function(a,b){b=a.indexOf(b);-1<b&&a.splice(b,1)};shaka.util.ArrayUtils.count=function(a,b){var c=0;a=$jscomp.makeIterator(a);for(var d=a.next();!d.done;d=a.next())c+=b(d.value)?1:0;return c};
|
|
280
280
|
shaka.util.ArrayUtils.hasSameElements=function(a,b,c){c||(c=shaka.util.ArrayUtils.defaultEquals);if(a.length!=b.length)return!1;b=b.slice();var d={};a=$jscomp.makeIterator(a);for(var e=a.next();!e.done;d={$jscomp$loop$prop$item$685:d.$jscomp$loop$prop$item$685},e=a.next()){d.$jscomp$loop$prop$item$685=e.value;e=b.findIndex(function(f){return function(g){return c(f.$jscomp$loop$prop$item$685,g)}}(d));if(-1==e)return!1;b[e]=b[b.length-1];b.pop()}return 0==b.length};
|
|
@@ -360,8 +360,8 @@ shaka.util.StreamUtils.filterManifest=function(a,b,c){return $jscomp.asyncExecut
|
|
|
360
360
|
shaka.util.StreamUtils.filterManifestByMediaCapabilities=function(a,b){return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){if(1==c.nextAddress)return goog.asserts.assert(navigator.mediaCapabilities,"MediaCapabilities should be valid."),c.yield(shaka.util.StreamUtils.getDecodingInfosForVariants(a.variants,b,!1),2);a.variants=a.variants.filter(function(d){var e=d.video,f=shaka.util.ManifestParserUtils.ContentType,g=shaka.media.Capabilities,h=shaka.util.ManifestParserUtils,k=shaka.util.MimeUtils,
|
|
361
361
|
l=shaka.util.StreamUtils;if(e){var m=l.getCorrectVideoCodecs_(e.codecs);if(e.codecs.includes(",")){var n=e.codecs.split(",");m=h.guessCodecs(f.VIDEO,n);m=l.getCorrectVideoCodecs_(m);h=h.guessCodecs(f.AUDIO,n);h=l.getCorrectAudioCodecs_(h);n=k.getFullOrConvertedType(e.mimeType,h,f.AUDIO);if(!g.isTypeSupported(n))return!1;m=[m,h].join()}h=k.getFullOrConvertedType(e.mimeType,m,f.VIDEO);if(!g.isTypeSupported(h))return!1;e.codecs=m}if(m=d.audio){h=l.getCorrectAudioCodecs_(m.codecs);f=k.getFullOrConvertedType(m.mimeType,
|
|
362
362
|
h,f.AUDIO);if(!g.isTypeSupported(f))return!1;m.codecs=h}if(shaka.util.Platform.isXboxOne()&&e&&(e.width&&1920<e.width||e.height&&1080<e.height)&&(e.codecs.includes("avc1.")||e.codecs.includes("avc3.")))return shaka.log.debug("Dropping variant - not compatible with platform",l.getVariantSummaryString_(d)),!1;(e=d.decodingInfos.some(function(p){return p.supported}))||shaka.log.debug("Dropping variant - not compatible with platform",l.getVariantSummaryString_(d));return e});c.jumpToEnd()})};
|
|
363
|
-
shaka.util.StreamUtils.getDecodingInfosForVariants=function(a,b,c){var d,e,f,g,h,k,l,m,n,p,q;return $jscomp.asyncExecutePromiseGeneratorProgram(function(r){if(d=a.some(function(
|
|
364
|
-
t.yieldResult,
|
|
363
|
+
shaka.util.StreamUtils.getDecodingInfosForVariants=function(a,b,c){var d,e,f,g,h,k,l,m,n,p,q;return $jscomp.asyncExecutePromiseGeneratorProgram(function(r){if(d=a.some(function(u){return u.decodingInfos.length}))return shaka.log.debug("Already got the variants' decodingInfo."),r.return();e=navigator.mediaCapabilities;f=[];g=function(u,v){var w,y;return $jscomp.asyncExecutePromiseGeneratorProgram(function(t){if(1==t.nextAddress)return t.setCatchFinallyBlocks(2),t.yield(e.decodingInfo(v),4);if(2!=t.nextAddress)return w=
|
|
364
|
+
t.yieldResult,u.decodingInfos.push(w),t.leaveTryBlock(0);y=t.enterCatchBlock();shaka.log.info("MediaCapabilities.decodingInfo() failed.",JSON.stringify(v),y);t.jumpToEnd()})};h=$jscomp.makeIterator(a);for(k=h.next();!k.done;k=h.next())for(l=k.value,m=shaka.util.StreamUtils.getDecodingConfigs_(l,b,c),n=$jscomp.makeIterator(m),p=n.next();!p.done;p=n.next())q=p.value,f.push(g(l,q));return r.yield(Promise.all(f),0)})};
|
|
365
365
|
shaka.util.StreamUtils.getDecodingConfigs_=function(a,b,c){var d=a.audio,e=a.video,f=shaka.util.ManifestParserUtils.ContentType,g=shaka.util.ManifestParserUtils,h=shaka.util.MimeUtils,k=shaka.util.StreamUtils;c={type:c?"file":"media-source"};if(e){var l=e.codecs;if(e.codecs.includes(",")){var m=e.codecs.split(",");l=g.guessCodecs(f.VIDEO,m);l=k.getCorrectVideoCodecs_(l);g=g.guessCodecs(f.AUDIO,m);g=k.getCorrectAudioCodecs_(g);g=h.getFullOrConvertedType(e.mimeType,g,f.AUDIO);c.audio={contentType:g,
|
|
366
366
|
channels:2,bitrate:a.bandwidth||1,samplerate:1,spatialRendering:!1}}l=k.getCorrectVideoCodecs_(l);l=h.getFullOrConvertedType(e.mimeType,l,f.VIDEO);c.video={contentType:l,width:e.width||64,height:e.height||64,bitrate:e.bandwidth||a.bandwidth||1,framerate:e.frameRate||1};if(e.hdr)switch(e.hdr){case "SDR":c.video.transferFunction="srgb";break;case "PQ":c.video.transferFunction="pq";break;case "HLG":c.video.transferFunction="hlg"}}d&&(k=k.getCorrectAudioCodecs_(d.codecs),f=h.getFullOrConvertedType(d.mimeType,
|
|
367
367
|
k,f.AUDIO),c.audio={contentType:f,channels:d.channelsCount||2,bitrate:d.bandwidth||a.bandwidth||1,samplerate:d.audioSamplingRate||1,spatialRendering:d.spatialAudio});h=(a.video?a.video.drmInfos:[]).concat(a.audio?a.audio.drmInfos:[]);if(!h.length)return[c];a=[];f=new Map;h=$jscomp.makeIterator(h);for(var n=h.next();!n.done;n=h.next())k=n.value,f.get(k.keySystem)||f.set(k.keySystem,[]),f.get(k.keySystem).push(k);h=b?"required":"optional";b=b?["persistent-license"]:["temporary"];k=$jscomp.makeIterator(f.keys());
|
|
@@ -387,8 +387,8 @@ shaka.util.StreamUtils.html5TrackToGenericShakaTrack_=function(a){var b=a.langua
|
|
|
387
387
|
spatialAudio:!1,tilesLayout:null,audioBandwidth:null,videoBandwidth:null,originalVideoId:null,originalAudioId:null,originalTextId:null,originalImageId:null,originalLanguage:b}};shaka.util.StreamUtils.isPlayable=function(a){return a.allowedByApplication&&a.allowedByKeySystem};shaka.util.StreamUtils.getPlayableVariants=function(a){return a.filter(function(b){return shaka.util.StreamUtils.isPlayable(b)})};
|
|
388
388
|
shaka.util.StreamUtils.filterVariantsByAudioChannelCount=function(a,b){var c=a.filter(function(g){return g.audio&&g.audio.channelsCount}),d=new Map;c=$jscomp.makeIterator(c);for(var e=c.next();!e.done;e=c.next()){e=e.value;var f=e.audio.channelsCount;goog.asserts.assert(null!=f,"Must have count after filtering!");d.has(f)||d.set(f,[]);d.get(f).push(e)}c=Array.from(d.keys());if(0==c.length)return a;a=c.filter(function(g){return g<=b});return a.length?d.get(Math.max.apply(Math,$jscomp.arrayFromIterable(a))):
|
|
389
389
|
d.get(Math.min.apply(Math,$jscomp.arrayFromIterable(c)))};
|
|
390
|
-
shaka.util.StreamUtils.filterStreamsByLanguageAndRole=function(a,b,c,d){var e=shaka.util.LanguageUtils,f=a,g=a.filter(function(l){return l.primary});g.length&&(f=g);var h=f.length?f[0].language:"";f=f.filter(function(l){return l.language==h});if(b){var k=e.findClosestLocale(e.normalize(b),a.map(function(l){return l.language}));k&&(f=a.filter(function(l){return e.normalize(l.language)==k}))}f=f.filter(function(l){return l.forced==d});if(c){a=shaka.util.StreamUtils.
|
|
391
|
-
shaka.log.warning("No exact match for the text role could be found.")}else if(a=f.filter(function(l){return 0==l.roles.length}),a.length)return a;a=f.map(function(l){return l.roles}).reduce(shaka.util.Functional.collapseArrays,[]);return a.length?shaka.util.StreamUtils.
|
|
390
|
+
shaka.util.StreamUtils.filterStreamsByLanguageAndRole=function(a,b,c,d){var e=shaka.util.LanguageUtils,f=a,g=a.filter(function(l){return l.primary});g.length&&(f=g);var h=f.length?f[0].language:"";f=f.filter(function(l){return l.language==h});if(b){var k=e.findClosestLocale(e.normalize(b),a.map(function(l){return l.language}));k&&(f=a.filter(function(l){return e.normalize(l.language)==k}))}f=f.filter(function(l){return l.forced==d});if(c){a=shaka.util.StreamUtils.filterStreamsByRole_(f,c);if(a.length)return a;
|
|
391
|
+
shaka.log.warning("No exact match for the text role could be found.")}else if(a=f.filter(function(l){return 0==l.roles.length}),a.length)return a;a=f.map(function(l){return l.roles}).reduce(shaka.util.Functional.collapseArrays,[]);return a.length?shaka.util.StreamUtils.filterStreamsByRole_(f,a[0]):f};shaka.util.StreamUtils.filterStreamsByRole_=function(a,b){return a.filter(function(c){return c.roles.includes(b)})};shaka.util.StreamUtils.isAudio=function(a){return a.type==shaka.util.ManifestParserUtils.ContentType.AUDIO};
|
|
392
392
|
shaka.util.StreamUtils.isVideo=function(a){return a.type==shaka.util.ManifestParserUtils.ContentType.VIDEO};shaka.util.StreamUtils.getVariantStreams=function(a){var b=[];a.audio&&b.push(a.audio);a.video&&b.push(a.video);return b};shaka.util.StreamUtils.getVariantSummaryString_=function(a){var b=[];a.audio&&b.push(shaka.util.StreamUtils.getStreamSummaryString_(a.audio));a.video&&b.push(shaka.util.StreamUtils.getStreamSummaryString_(a.video));return b.join(", ")};
|
|
393
393
|
shaka.util.StreamUtils.getStreamSummaryString_=function(a){return shaka.util.StreamUtils.isAudio(a)?"type=audio codecs="+a.codecs+" bandwidth="+a.bandwidth+" channelsCount="+a.channelsCount+" audioSamplingRate="+a.audioSamplingRate:shaka.util.StreamUtils.isVideo(a)?"type=video codecs="+a.codecs+" bandwidth="+a.bandwidth+" frameRate="+a.frameRate+" width="+a.width+" height="+a.height:"unexpected stream type"};shaka.util.StreamUtils.nextTrackId_=0;
|
|
394
394
|
shaka.util.StreamUtils.DecodingAttributes={SMOOTH:"smooth",POWER:"powerEfficient",BANDWIDTH:"bandwidth"};shaka.util.StreamUtils.supportedImageMimeTypes_=(new Map).set("image/svg+xml",!0).set("image/png",!0).set("image/jpeg",!0).set("image/jpg",!0);shaka.util.StreamUtils.minWebPImage_="data:image/webp;base64,UklGRjoAAABXRUJQVlA4IC4AAACyAgCdASoCAAIALmk0mk0iIiIiIgBoSygABc6WWgAA/veff/0PP8bA//LwYAAA";shaka.util.StreamUtils.minAvifImage_="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAAB0AAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAIAAAACAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQ0MAAAAABNjb2xybmNseAACAAIAAYAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAACVtZGF0EgAKCBgANogQEAwgMg8f8D///8WfhwB8+ErK42A=";
|
|
@@ -445,10 +445,10 @@ Date.now()-l,q=n.response;q.timeMs+=k;q.timeMs+=p;if(!n.gotProgress&&c.onProgres
|
|
|
445
445
|
shaka.net.NetworkingEngine.prototype.filterRequest_=function(a,b){for(var c=shaka.util.AbortableOperation.completed(void 0),d={},e=$jscomp.makeIterator(this.requestFilters_),f=e.next();!f.done;d={$jscomp$loop$prop$requestFilter$693:d.$jscomp$loop$prop$requestFilter$693},f=e.next())d.$jscomp$loop$prop$requestFilter$693=f.value,c=c.chain(function(g){return function(){b.body&&(b.body=shaka.util.BufferUtils.toArrayBuffer(b.body));return g.$jscomp$loop$prop$requestFilter$693(a,b)}}(d));return c.chain(void 0,
|
|
446
446
|
function(g){if(g instanceof shaka.util.Error&&g.code==shaka.util.Error.Code.OPERATION_ABORTED)throw g;throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.REQUEST_FILTER_ERROR,g);})};shaka.net.NetworkingEngine.prototype.makeRequestWithRetry_=function(a,b,c){var d=new shaka.net.Backoff(b.retryParameters,!1);return this.send_(a,b,d,0,null,c)};
|
|
447
447
|
shaka.net.NetworkingEngine.prototype.send_=function(a,b,c,d,e,f){var g=this;this.forceHTTPS_&&(b.uris[d]=b.uris[d].replace("http://","https://"));var h=new goog.Uri(b.uris[d]),k=h.getScheme(),l=!1;k||(k=shaka.net.NetworkingEngine.getLocationProtocol_(),goog.asserts.assert(":"==k[k.length-1],"location.protocol expected to end with a colon!"),k=k.slice(0,-1),h.setScheme(k),b.uris[d]=h.toString());k=k.toLowerCase();var m=(k=shaka.net.NetworkingEngine.schemes_[k])?k.plugin:null;if(!m)return shaka.util.AbortableOperation.failed(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
448
|
-
shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.UNSUPPORTED_SCHEME,h));var n=k.progressSupport,p=null,q=null,r=!1,
|
|
449
|
-
b,a);
|
|
450
|
-
null,t=0;w instanceof shaka.util.Error&&(
|
|
451
|
-
"Should have last error"),e;if(w.severity==shaka.util.Error.Severity.RECOVERABLE)return
|
|
448
|
+
shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.UNSUPPORTED_SCHEME,h));var n=k.progressSupport,p=null,q=null,r=!1,u=!1,v;return shaka.util.AbortableOperation.notAbortable(c.attempt()).chain(function(){if(g.destroyed_)return shaka.util.AbortableOperation.aborted();v=Date.now();var w=shaka.net.NetworkingEngine.RequestType.SEGMENT,y=m(b.uris[d],b,a,function(A,z,B){p&&p.stop();q&&q.tickAfter(x/1E3);g.onProgressUpdated_&&a==w&&(g.onProgressUpdated_(A,z),l=!0,f.setBytes(B))},function(A){if(g.onHeadersReceived_)g.onHeadersReceived_(A,
|
|
449
|
+
b,a);u=!0});if(!n)return y;var t=b.retryParameters.connectionTimeout;t&&(p=new shaka.util.Timer(function(){r=!0;y.abort()}),p.tickAfter(t/1E3));var x=b.retryParameters.stallTimeout;x&&(q=new shaka.util.Timer(function(){r=!0;y.abort()}));return y}).chain(function(w){p&&p.stop();q&&q.stop();void 0==w.timeMs&&(w.timeMs=Date.now()-v);var y={response:w,gotProgress:l};if(!u&&g.onHeadersReceived_)g.onHeadersReceived_(w.headers,b,a);return y},function(w){p&&p.stop();q&&q.stop();if(g.onDownloadFailed_){var y=
|
|
450
|
+
null,t=0;w instanceof shaka.util.Error&&(y=w,w.code==shaka.util.Error.Code.BAD_HTTP_STATUS&&(t=w.data[1]));g.onDownloadFailed_(b,y,t,r)}if(g.destroyed_)return shaka.util.AbortableOperation.aborted();r&&(w=new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.TIMEOUT,b.uris[d],a));if(w instanceof shaka.util.Error){if(w.code==shaka.util.Error.Code.OPERATION_ABORTED)throw w;if(w.code==shaka.util.Error.Code.ATTEMPTS_EXHAUSTED)throw goog.asserts.assert(e,
|
|
451
|
+
"Should have last error"),e;if(w.severity==shaka.util.Error.Severity.RECOVERABLE)return y=(new Map).set("error",w),y=new shaka.util.FakeEvent("retry",y),g.dispatchEvent(y),d=(d+1)%b.uris.length,g.send_(a,b,c,d,w,f)}throw w;})};
|
|
452
452
|
shaka.net.NetworkingEngine.prototype.filterResponse_=function(a,b){for(var c=shaka.util.AbortableOperation.completed(void 0),d={},e=$jscomp.makeIterator(this.responseFilters_),f=e.next();!f.done;d={$jscomp$loop$prop$responseFilter$695:d.$jscomp$loop$prop$responseFilter$695},f=e.next())d.$jscomp$loop$prop$responseFilter$695=f.value,c=c.chain(function(g){return function(){var h=b.response;h.data&&(h.data=shaka.util.BufferUtils.toArrayBuffer(h.data));return g.$jscomp$loop$prop$responseFilter$695(a,h)}}(d));
|
|
453
453
|
return c.chain(function(){return b},function(g){var h=shaka.util.Error.Severity.CRITICAL;if(g instanceof shaka.util.Error){if(g.code==shaka.util.Error.Code.OPERATION_ABORTED)throw g;h=g.severity}throw new shaka.util.Error(h,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.RESPONSE_FILTER_ERROR,g);})};shaka.net.NetworkingEngine.getLocationProtocol_=function(){return location.protocol};goog.exportSymbol("shaka.net.NetworkingEngine",shaka.net.NetworkingEngine);
|
|
454
454
|
goog.exportProperty(shaka.net.NetworkingEngine.prototype,"request",shaka.net.NetworkingEngine.prototype.request);goog.exportProperty(shaka.net.NetworkingEngine.prototype,"destroy",shaka.net.NetworkingEngine.prototype.destroy);goog.exportProperty(shaka.net.NetworkingEngine,"makeRequest",shaka.net.NetworkingEngine.makeRequest);goog.exportProperty(shaka.net.NetworkingEngine,"defaultRetryParameters",shaka.net.NetworkingEngine.defaultRetryParameters);
|
|
@@ -506,9 +506,9 @@ shaka.media.DrmEngine.prototype.destroyNow_=function(){var a=this;return $jscomp
|
|
|
506
506
|
return b.yield(a.video_.setMediaKeys(null),6);case 6:b.leaveTryBlock(5);break;case 4:b.enterCatchBlock();case 5:a.video_=null;case 3:a.currentDrmInfo_=null,a.supportedTypes_.clear(),a.mediaKeys_=null,a.offlineSessionIds_=[],a.config_=null,a.onError_=function(){},a.playerInterface_=null,a.srcEquals_=!1,a.mediaKeysAttached_=null,b.jumpToEnd()}})};shaka.media.DrmEngine.prototype.configure=function(a){this.config_=a};shaka.media.DrmEngine.prototype.setSrcEquals=function(a){this.srcEquals_=a};
|
|
507
507
|
shaka.media.DrmEngine.prototype.initForStorage=function(a,b){this.initializedForStorage_=!0;this.offlineSessionIds_=[];this.usePersistentLicenses_=b;return this.init_(a)};shaka.media.DrmEngine.prototype.initForPlayback=function(a,b){this.offlineSessionIds_=b;this.usePersistentLicenses_=0<b.length;return this.init_(a)};
|
|
508
508
|
shaka.media.DrmEngine.prototype.initForRemoval=function(a,b,c,d,e){var f=new Map;d={audioCapabilities:d,videoCapabilities:e,distinctiveIdentifier:"optional",persistentState:"required",sessionTypes:["persistent-license"],label:a};d.drmInfos=[{keySystem:a,licenseServerUri:b,distinctiveIdentifierRequired:!1,persistentStateRequired:!0,audioRobustness:"",videoRobustness:"",serverCertificate:c,serverCertificateUri:"",initData:null,keyIds:null}];f.set(a,d);return this.queryMediaKeys_(f,[])};
|
|
509
|
-
shaka.media.DrmEngine.prototype.init_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,v,
|
|
510
|
-
!0:!1});g||(h=shaka.util.MapUtils.asMap(b.config_.servers),shaka.media.DrmEngine.replaceDrmInfo_(a,h));k=new Set;l=$jscomp.makeIterator(a);for(e=l.next();!e.done;e=l.next())for(m=e.value,n=b.getVariantDrmInfos_(m),p=$jscomp.makeIterator(n),q=p.next();!q.done;q=p.next())r=q.value,k.add(r);
|
|
511
|
-
b.config_.keySystemsMapping);return t.yield(shaka.util.StreamUtils.getDecodingInfosForVariants(a,b.usePersistentLicenses_,b.srcEquals_),2)}w=g||Object.keys(b.config_.servers).length;if(!w)return b.initialized_=!0,t.return(Promise.resolve());
|
|
509
|
+
shaka.media.DrmEngine.prototype.init_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,u,v,w,y;return $jscomp.asyncExecutePromiseGeneratorProgram(function(t){if(1==t.nextAddress){goog.asserts.assert(b.config_,"DrmEngine configure() must be called before init()!");if(c=b.configureClearKey_())for(d=$jscomp.makeIterator(a),e=d.next();!e.done;e=d.next())f=e.value,f.video&&(f.video.drmInfos=[c]),f.audio&&(f.audio.drmInfos=[c]);g=a.some(function(x){return x.video&&x.video.drmInfos.length||x.audio&&x.audio.drmInfos.length?
|
|
510
|
+
!0:!1});g||(h=shaka.util.MapUtils.asMap(b.config_.servers),shaka.media.DrmEngine.replaceDrmInfo_(a,h));k=new Set;l=$jscomp.makeIterator(a);for(e=l.next();!e.done;e=l.next())for(m=e.value,n=b.getVariantDrmInfos_(m),p=$jscomp.makeIterator(n),q=p.next();!q.done;q=p.next())r=q.value,k.add(r);u=$jscomp.makeIterator(k);for(q=u.next();!q.done;q=u.next())v=q.value,shaka.media.DrmEngine.fillInDrmInfoDefaults_(v,shaka.util.MapUtils.asMap(b.config_.servers),shaka.util.MapUtils.asMap(b.config_.advanced||{}),
|
|
511
|
+
b.config_.keySystemsMapping);return t.yield(shaka.util.StreamUtils.getDecodingInfosForVariants(a,b.usePersistentLicenses_,b.srcEquals_),2)}w=g||Object.keys(b.config_.servers).length;if(!w)return b.initialized_=!0,t.return(Promise.resolve());y=b.queryMediaKeys_(void 0,a);return t.return(g?y:y.catch(function(){}))})};
|
|
512
512
|
shaka.media.DrmEngine.prototype.attachMediaKeys_=function(){var a=this,b;return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){switch(c.nextAddress){case 1:if(a.video_.mediaKeys)return c.return();if(!a.mediaKeysAttached_){c.jumpTo(2);break}return c.yield(a.mediaKeysAttached_,3);case 3:return a.destroyer_.ensureNotDestroyed(),c.return();case 2:return c.setCatchFinallyBlocks(4),a.mediaKeysAttached_=a.video_.setMediaKeys(a.mediaKeys_),c.yield(a.mediaKeysAttached_,6);case 6:c.leaveTryBlock(5);
|
|
513
513
|
break;case 4:b=c.enterCatchBlock(),goog.asserts.assert(b instanceof Error,"Wrong error type!"),a.onError_(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.FAILED_TO_ATTACH_TO_VIDEO,b.message));case 5:a.destroyer_.ensureNotDestroyed(),c.jumpToEnd()}})};
|
|
514
514
|
shaka.media.DrmEngine.prototype.onEncryptedEvent_=function(a){var b=this;return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){if(1==c.nextAddress)return c.yield(b.attachMediaKeys_(),2);b.newInitData(a.initDataType,shaka.util.BufferUtils.toUint8(a.initData));c.jumpToEnd()})};
|
|
@@ -527,18 +527,18 @@ this.createSession(a,b,this.currentDrmInfo_.sessionType)}};shaka.media.DrmEngine
|
|
|
527
527
|
shaka.media.DrmEngine.prototype.willSupport=function(a){if(shaka.util.Platform.isLegacyEdge())return!0;a=a.toLowerCase();if(shaka.util.Platform.isTizen()&&a.includes('codecs="ac-3"')){var b=a.replace("ac-3","ec-3");return this.supportedTypes_.has(a)||this.supportedTypes_.has(b)}return this.supportedTypes_.has(a)};shaka.media.DrmEngine.prototype.getSessionIds=function(){var a=this.activeSessions_.keys();a=shaka.util.Iterables.map(a,function(b){return b.sessionId});return Array.from(a)};
|
|
528
528
|
shaka.media.DrmEngine.prototype.getExpiration=function(){var a=Infinity,b=this.activeSessions_.keys();b=$jscomp.makeIterator(b);for(var c=b.next();!c.done;c=b.next())c=c.value,isNaN(c.expiration)||(a=Math.min(a,c.expiration));return a};shaka.media.DrmEngine.prototype.getLicenseTime=function(){return this.licenseTimeSeconds_?this.licenseTimeSeconds_:NaN};shaka.media.DrmEngine.prototype.getDrmInfo=function(){return this.currentDrmInfo_};shaka.media.DrmEngine.prototype.getMediaKeys=function(){return this.mediaKeys_};
|
|
529
529
|
shaka.media.DrmEngine.prototype.getKeyStatuses=function(){return shaka.util.MapUtils.asObject(this.announcedKeyStatusByKeyId_)};shaka.media.DrmEngine.prototype.getMediaKeySessions=function(){return Array.from(this.activeSessions_.keys())};shaka.media.DrmEngine.computeMimeType_=function(a,b){b=shaka.util.MimeUtils.getFullType(a.mimeType,b||a.codecs);return shaka.media.Transmuxer.isSupported(b)?shaka.media.Transmuxer.convertCodecs(a.type,b):b};
|
|
530
|
-
shaka.media.DrmEngine.prototype.queryMediaKeys_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,
|
|
531
|
-
c.destroyer_.ensureNotDestroyed();
|
|
532
|
-
"We should get at least one supported MIME type");c.currentDrmInfo_=b.length?c.createDrmInfoByInfos_(f.keySystem,d.get(f.keySystem)):shaka.media.DrmEngine.createDrmInfoByConfigs_(f.keySystem,a.get(f.keySystem));if(!c.currentDrmInfo_.licenseServerUri)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.NO_LICENSE_SERVER_GIVEN,c.currentDrmInfo_.keySystem);return
|
|
533
|
-
shaka.log.info("Created MediaKeys object for key system",c.currentDrmInfo_.keySystem),c.mediaKeys_=r,c.initialized_=!0,
|
|
534
|
-
|
|
530
|
+
shaka.media.DrmEngine.prototype.queryMediaKeys_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,u;return $jscomp.asyncExecutePromiseGeneratorProgram(function(v){switch(v.nextAddress){case 1:d=new Map;if(b.length){e=c.getKeySystemAccessFromVariants_(b,d);v.jumpTo(2);break}return v.yield(c.getKeySystemAccessByConfigs_(a),3);case 3:e=v.yieldResult;case 2:f=e;if(!f)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.REQUESTED_KEY_SYSTEM_CONFIG_UNAVAILABLE);
|
|
531
|
+
c.destroyer_.ensureNotDestroyed();v.setCatchFinallyBlocks(4);c.supportedTypes_.clear();g=f.getConfiguration();shaka.log.v2("Got MediaKeySystemAccess with configuration",g);h=g.audioCapabilities||[];k=g.videoCapabilities||[];l=$jscomp.makeIterator(h);for(m=l.next();!m.done;m=l.next())n=m.value,c.supportedTypes_.add(n.contentType.toLowerCase());p=$jscomp.makeIterator(k);for(m=p.next();!m.done;m=p.next())q=m.value,c.supportedTypes_.add(q.contentType.toLowerCase());goog.asserts.assert(c.supportedTypes_.size,
|
|
532
|
+
"We should get at least one supported MIME type");c.currentDrmInfo_=b.length?c.createDrmInfoByInfos_(f.keySystem,d.get(f.keySystem)):shaka.media.DrmEngine.createDrmInfoByConfigs_(f.keySystem,a.get(f.keySystem));if(!c.currentDrmInfo_.licenseServerUri)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.NO_LICENSE_SERVER_GIVEN,c.currentDrmInfo_.keySystem);return v.yield(f.createMediaKeys(),6);case 6:return r=v.yieldResult,c.destroyer_.ensureNotDestroyed(),
|
|
533
|
+
shaka.log.info("Created MediaKeys object for key system",c.currentDrmInfo_.keySystem),c.mediaKeys_=r,c.initialized_=!0,v.yield(c.setServerCertificate(),7);case 7:c.destroyer_.ensureNotDestroyed();v.leaveTryBlock(0);break;case 4:u=v.enterCatchBlock();c.destroyer_.ensureNotDestroyed(u);c.currentDrmInfo_=null;c.supportedTypes_.clear();if(u instanceof shaka.util.Error)throw u;throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.FAILED_TO_CREATE_CDM,
|
|
534
|
+
u.message);}})};
|
|
535
535
|
shaka.media.DrmEngine.prototype.getKeySystemAccessFromVariants_=function(a,b){for(var c=$jscomp.makeIterator(a),d=c.next();!d.done;d=c.next()){var e=this.getVariantDrmInfos_(d.value);e=$jscomp.makeIterator(e);for(d=e.next();!d.done;d=e.next()){var f=d.value;b.has(f.keySystem)||b.set(f.keySystem,[]);b.get(f.keySystem).push(f)}}if(1==b.size&&b.has(""))throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.NO_RECOGNIZED_KEY_SYSTEMS);c={};e=$jscomp.makeIterator(this.config_.preferredKeySystems);
|
|
536
536
|
for(f=e.next();!f.done;c={$jscomp$loop$prop$preferredKeySystem$699:c.$jscomp$loop$prop$preferredKeySystem$699},f=e.next())for(c.$jscomp$loop$prop$preferredKeySystem$699=f.value,f=$jscomp.makeIterator(a),d=f.next();!d.done;d=f.next())if(d=d.value.decodingInfos.find(function(l){return function(m){return m.supported&&null!=m.keySystemAccess&&m.keySystemAccess.keySystem==l.$jscomp$loop$prop$preferredKeySystem$699}}(c)))return d.keySystemAccess;c=$jscomp.makeIterator([!0,!1]);for(e=c.next();!e.done;e=
|
|
537
537
|
c.next())for(e=e.value,f=$jscomp.makeIterator(a),d=f.next();!d.done;d=f.next()){var g=$jscomp.makeIterator(d.value.decodingInfos);for(d=g.next();!d.done;d=g.next()){var h=d.value;if(h.supported&&h.keySystemAccess){d=b.get(h.keySystemAccess.keySystem);var k=$jscomp.makeIterator(d);for(d=k.next();!d.done;d=k.next())if(!!d.value.licenseServerUri==e)return h.keySystemAccess}}}return null};
|
|
538
|
-
shaka.media.DrmEngine.prototype.getKeySystemAccessByConfigs_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,v,
|
|
538
|
+
shaka.media.DrmEngine.prototype.getKeySystemAccessByConfigs_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,u,v,w,y;return $jscomp.asyncExecutePromiseGeneratorProgram(function(t){switch(t.nextAddress){case 1:if(1==a.size&&a.has(""))throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.NO_RECOGNIZED_KEY_SYSTEMS);d=$jscomp.makeIterator(a.values());for(e=d.next();!e.done;e=d.next())f=e.value,0==f.audioCapabilities.length&&delete f.audioCapabilities,
|
|
539
539
|
0==f.videoCapabilities.length&&delete f.videoCapabilities;g=$jscomp.makeIterator(b.config_.preferredKeySystems);h=g.next();case 2:if(h.done){t.jumpTo(4);break}k=h.value;if(!a.has(k)){t.jumpTo(3);break}l=a.get(k);t.setCatchFinallyBlocks(6);return t.yield(navigator.requestMediaKeySystemAccess(k,[l]),8);case 8:return c=t.yieldResult,t.return(c);case 6:m=t.enterCatchBlock(),shaka.log.v2("Requesting",k,"failed with config",l,m);case 7:b.destroyer_.ensureNotDestroyed();case 3:h=g.next();t.jumpTo(2);break;
|
|
540
|
-
case 4:n=$jscomp.makeIterator([!0,!1]),p=n.next();case 9:if(p.done){t.jumpTo(11);break}q=p.value;r=$jscomp.makeIterator(a.keys());h=r.next();case 12:if(h.done){p=n.next();t.jumpTo(9);break}
|
|
541
|
-
|
|
540
|
+
case 4:n=$jscomp.makeIterator([!0,!1]),p=n.next();case 9:if(p.done){t.jumpTo(11);break}q=p.value;r=$jscomp.makeIterator(a.keys());h=r.next();case 12:if(h.done){p=n.next();t.jumpTo(9);break}u=h.value;v=a.get(u);w=v.drmInfos.some(function(x){return!!x.licenseServerUri});if(w!=q){t.jumpTo(13);break}t.setCatchFinallyBlocks(15);return t.yield(navigator.requestMediaKeySystemAccess(u,[v]),17);case 17:return c=t.yieldResult,t.return(c);case 15:y=t.enterCatchBlock(),shaka.log.v2("Requesting",u,"failed with config",
|
|
541
|
+
v,y);case 16:b.destroyer_.ensureNotDestroyed();case 13:h=r.next();t.jumpTo(12);break;case 11:return t.return(c)}})};
|
|
542
542
|
shaka.media.DrmEngine.prototype.configureClearKey_=function(){var a=shaka.util.MapUtils.asMap(this.config_.clearKeys);if(0==a.size)return null;var b=shaka.util.StringUtils,c=shaka.util.Uint8ArrayUtils,d=[],e=[];a.forEach(function(g,h){var k=h;22!=k.length&&(k=c.toBase64(c.fromHex(h),!1));h=g;22!=h.length&&(h=c.toBase64(c.fromHex(g),!1));g={kty:"oct",kid:k,k:h};d.push(g);e.push(g.kid)});a=JSON.stringify({keys:d});var f=JSON.stringify({kids:e});b=[{initData:shaka.util.BufferUtils.toUint8(b.toUTF8(f)),
|
|
543
543
|
initDataType:"keyids"}];return{keySystem:"org.w3.clearkey",licenseServerUri:"data:application/json;base64,"+window.btoa(a),distinctiveIdentifierRequired:!1,persistentStateRequired:!1,audioRobustness:"",videoRobustness:"",serverCertificate:null,serverCertificateUri:"",sessionType:"",initData:b,keyIds:new Set(e)}};
|
|
544
544
|
shaka.media.DrmEngine.prototype.loadOfflineSession_=function(a){var b=this,c,d,e,f,g;return $jscomp.asyncExecutePromiseGeneratorProgram(function(h){switch(h.nextAddress){case 1:try{shaka.log.v1("Attempting to load an offline session",a),c=b.mediaKeys_.createSession("persistent-license")}catch(k){return d=new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.FAILED_TO_CREATE_SESSION,k.message),b.onError_(d),h.return(Promise.reject(d))}b.eventManager_.listen(c,
|
|
@@ -548,11 +548,11 @@ shaka.media.DrmEngine.prototype.createSession=function(a,b,c){var d=this;goog.as
|
|
|
548
548
|
this.eventManager_.listen(e,"keystatuseschange",function(f){return d.onKeyStatusesChange_(f)});this.activeSessions_.set(e,{initData:b,initDataType:a,loaded:!1,oldExpiration:Infinity,updatePromise:null,type:c});try{b=this.config_.initDataTransform(b,a,this.currentDrmInfo_)}catch(f){a=f;f instanceof shaka.util.Error||(a=new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.INIT_DATA_TRANSFORM_ERROR,f));this.onError_(a);return}this.config_.logLicenseExchange&&
|
|
549
549
|
(c=shaka.util.Uint8ArrayUtils.toBase64(b),shaka.log.info("EME init data: type=",a,"data=",c));e.generateRequest(a,b).catch(function(f){if(!d.destroyer_.destroyed()){goog.asserts.assert(f instanceof Error,"Wrong error type!");d.activeSessions_.delete(e);var g=f.errorCode;if(g&&g.systemCode){var h=g.systemCode;0>h&&(h+=Math.pow(2,32));h="0x"+h.toString(16)}d.onError_(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.FAILED_TO_GENERATE_LICENSE_REQUEST,
|
|
550
550
|
f.message,f,h))}})};shaka.media.DrmEngine.prototype.onSessionMessage_=function(a){this.delayLicenseRequest_()?this.mediaKeyMessageEvents_.push(a):this.sendLicenseRequest_(a)};shaka.media.DrmEngine.prototype.delayLicenseRequest_=function(){return this.video_?this.config_.delayLicenseRequestUntilPlayed&&this.video_.paused&&!this.initialRequestsSent_:!1};
|
|
551
|
-
shaka.media.DrmEngine.prototype.sendLicenseRequest_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,v,
|
|
551
|
+
shaka.media.DrmEngine.prototype.sendLicenseRequest_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,u,v,w,y;return $jscomp.asyncExecutePromiseGeneratorProgram(function(t){switch(t.nextAddress){case 1:return c=a.target,shaka.log.v1("Sending license request for session",c.sessionId,"of type",a.messageType),b.config_.logLicenseExchange&&(d=shaka.util.Uint8ArrayUtils.toBase64(a.message),shaka.log.info("EME license request",d)),e=b.activeSessions_.get(c),f=b.currentDrmInfo_.licenseServerUri,g=b.config_.advanced[b.currentDrmInfo_.keySystem],
|
|
552
552
|
"individualization-request"==a.messageType&&g&&g.individualizationServer&&(f=g.individualizationServer),h=shaka.net.NetworkingEngine.RequestType.LICENSE,k=shaka.net.NetworkingEngine.makeRequest([f],b.config_.retryParameters),k.body=a.message,k.method="POST",k.licenseRequestType=a.messageType,k.sessionId=c.sessionId,k.drmInfo=b.currentDrmInfo_,e&&(k.initData=e.initData,k.initDataType=e.initDataType),shaka.media.DrmEngine.isPlayReadyKeySystem(b.currentDrmInfo_.keySystem)&&b.unpackPlayReadyRequest_(k),
|
|
553
553
|
l=Date.now(),t.setCatchFinallyBlocks(2),n=b.playerInterface_.netEngine.request(h,k),t.yield(n.promise,4);case 4:m=t.yieldResult;t.leaveTryBlock(3);break;case 2:return p=t.enterCatchBlock(),goog.asserts.assert(p instanceof shaka.util.Error,"Wrong NetworkingEngine error type!"),q=new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.LICENSE_REQUEST_FAILED,p),b.onError_(q),e&&e.updatePromise&&e.updatePromise.reject(q),t.return();case 3:if(b.destroyer_.destroyed())return t.return();
|
|
554
|
-
b.licenseTimeSeconds_+=(Date.now()-l)/1E3;b.config_.logLicenseExchange&&(r=shaka.util.Uint8ArrayUtils.toBase64(m.data),shaka.log.info("EME license response",r));t.setCatchFinallyBlocks(5);shaka.log.v1("Updating session",c.sessionId);return t.yield(c.update(m.data),7);case 7:t.leaveTryBlock(6);break;case 5:return
|
|
555
|
-
e.updatePromise.reject(
|
|
554
|
+
b.licenseTimeSeconds_+=(Date.now()-l)/1E3;b.config_.logLicenseExchange&&(r=shaka.util.Uint8ArrayUtils.toBase64(m.data),shaka.log.info("EME license response",r));t.setCatchFinallyBlocks(5);shaka.log.v1("Updating session",c.sessionId);return t.yield(c.update(m.data),7);case 7:t.leaveTryBlock(6);break;case 5:return u=t.enterCatchBlock(),v=new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.LICENSE_RESPONSE_REJECTED,u.message),b.onError_(v),e&&e.updatePromise&&
|
|
555
|
+
e.updatePromise.reject(v),t.return();case 6:if(b.destroyer_.destroyed())return t.return();w=new shaka.util.FakeEvent("drmsessionupdate");b.playerInterface_.onEvent(w);e&&(e.updatePromise&&e.updatePromise.resolve(),y=new shaka.util.Timer(function(){e.loaded=!0;b.areAllSessionsLoaded_()&&b.allSessionsLoaded_.resolve()}),y.tickAfter(shaka.media.DrmEngine.SESSION_LOAD_TIMEOUT_));t.jumpToEnd()}})};
|
|
556
556
|
shaka.media.DrmEngine.prototype.unpackPlayReadyRequest_=function(a){var b=shaka.util.StringUtils.fromUTF16(a.body,!0,!0);if(b.includes("PlayReadyKeyMessage")){shaka.log.debug("Unwrapping PlayReady request.");b=shaka.util.XmlUtils.parseXmlString(b,"PlayReadyKeyMessage");goog.asserts.assert(b,"Failed to parse PlayReady XML!");var c=b.getElementsByTagName("HttpHeader");c=$jscomp.makeIterator(c);for(var d=c.next();!d.done;d=c.next()){var e=d.value;d=e.getElementsByTagName("name")[0];e=e.getElementsByTagName("value")[0];
|
|
557
557
|
goog.asserts.assert(d&&e,"Malformed PlayReady headers!");a.headers[d.textContent]=e.textContent}b=b.getElementsByTagName("Challenge")[0];goog.asserts.assert(b,"Malformed PlayReady challenge!");goog.asserts.assert("base64encoded"==b.getAttribute("encoding"),"Unexpected PlayReady challenge encoding!");a.body=shaka.util.Uint8ArrayUtils.fromBase64(b.textContent)}else shaka.log.debug("PlayReady request is already unwrapped."),a.headers["Content-Type"]="text/xml; charset=utf-8"};
|
|
558
558
|
shaka.media.DrmEngine.prototype.onKeyStatusesChange_=function(a){var b=this;a=a.target;shaka.log.v2("Key status changed for session",a.sessionId);var c=this.activeSessions_.get(a),d=!1;a.keyStatuses.forEach(function(f,g){if("string"==typeof g){var h=g;g=f;f=h}if(shaka.media.DrmEngine.isPlayReadyKeySystem(b.currentDrmInfo_.keySystem)&&16==g.byteLength&&(shaka.util.Platform.isEdge()||shaka.util.Platform.isPS4())){h=shaka.util.BufferUtils.toDataView(g);var k=h.getUint32(0,!0),l=h.getUint16(4,!0),m=h.getUint16(6,
|
|
@@ -603,8 +603,8 @@ shaka.media.ContentWorkarounds.createEncryptionMetadata_=function(a,b,c){var d=s
|
|
|
603
603
|
shaka.media.ContentWorkarounds.updateBoxSize_=function(a,b,c){var d=shaka.media.ContentWorkarounds;a=shaka.util.BufferUtils.toDataView(a,b);b=a.getUint32(d.BOX_SIZE_OFFSET_);0!=b&&(1==b?(a.setUint32(d.BOX_SIZE_64_OFFSET_,c>>32),a.setUint32(d.BOX_SIZE_64_OFFSET_+4,c&4294967295)):a.setUint32(d.BOX_SIZE_OFFSET_,c))};
|
|
604
604
|
shaka.media.ContentWorkarounds.CANNED_SINF_BOX_=new shaka.util.Lazy(function(){return new Uint8Array([0,0,0,80,115,105,110,102,0,0,0,12,102,114,109,97,0,0,0,0,0,0,0,20,115,99,104,109,0,0,0,0,99,101,110,99,0,1,0,0,0,0,0,40,115,99,104,105,0,0,0,32,116,101,110,99,0,0,0,0,0,0,1,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])});shaka.media.ContentWorkarounds.CANNED_SINF_BOX_FORMAT_OFFSET_=16;shaka.media.ContentWorkarounds.BOX_SIZE_OFFSET_=0;shaka.media.ContentWorkarounds.BOX_TYPE_OFFSET_=4;
|
|
605
605
|
shaka.media.ContentWorkarounds.BOX_SIZE_64_OFFSET_=8;shaka.media.ContentWorkarounds.BOX_TYPE_ENCV_=1701733238;shaka.media.ContentWorkarounds.BOX_TYPE_ENCA_=1701733217;shaka.cea={};shaka.cea.ICaptionDecoder=function(){};shaka.cea.ICaptionDecoder.prototype.extract=function(a,b){};shaka.cea.ICaptionDecoder.prototype.decode=function(){};shaka.cea.ICaptionDecoder.prototype.clear=function(){};shaka.cea.CeaUtils=function(){};
|
|
606
|
-
shaka.cea.CeaUtils.getParsedCaption=function(a,b,c,d,e){if(d>=e)return null;for(var f=-1,g=-1,h=0;h<c.length;h++)if(c[h].some(function(x){return null!=x&&""!=x.getChar().trim()})){f=h;break}for(h=c.length-1;0<=h;h--)if(c[h].some(function(x){return null!=x&&""!=x.getChar().trim()})){g=h;break}if(-1===f||-1===g)return null;for(var k=h=!1,l=shaka.cea.CeaUtils.DEFAULT_TXT_COLOR,m=shaka.cea.CeaUtils.DEFAULT_BG_COLOR,n=shaka.cea.CeaUtils.createStyledCue(d,e,h,k,l,m);f<=g;f++){for(var p=c[f],q=-1,r=-1,
|
|
607
|
-
0;
|
|
606
|
+
shaka.cea.CeaUtils.getParsedCaption=function(a,b,c,d,e){if(d>=e)return null;for(var f=-1,g=-1,h=0;h<c.length;h++)if(c[h].some(function(x){return null!=x&&""!=x.getChar().trim()})){f=h;break}for(h=c.length-1;0<=h;h--)if(c[h].some(function(x){return null!=x&&""!=x.getChar().trim()})){g=h;break}if(-1===f||-1===g)return null;for(var k=h=!1,l=shaka.cea.CeaUtils.DEFAULT_TXT_COLOR,m=shaka.cea.CeaUtils.DEFAULT_BG_COLOR,n=shaka.cea.CeaUtils.createStyledCue(d,e,h,k,l,m);f<=g;f++){for(var p=c[f],q=-1,r=-1,u=
|
|
607
|
+
0;u<p.length;u++)if(null!=p[u]&&""!==p[u].getChar().trim()){q=u;break}for(u=p.length-1;0<=u;u--)if(null!=p[u]&&""!==p[u].getChar().trim()){r=u;break}if(-1===q||-1===r)p=shaka.cea.CeaUtils.createLineBreakCue(d,e),a.nestedCues.push(p);else{for(;q<=r;q++)if(u=p[q]){var v=u.isUnderlined(),w=u.isItalicized(),y=u.getTextColor(),t=u.getBackgroundColor();if(v!=h||w!=k||y!=l||t!=m)n.payload&&a.nestedCues.push(n),n=shaka.cea.CeaUtils.createStyledCue(d,e,v,w,y,t),h=v,k=w,l=y,m=t;n.payload+=u.getChar()}else n.payload+=
|
|
608
608
|
" ";n.payload&&a.nestedCues.push(n);f!==g&&(n=shaka.cea.CeaUtils.createLineBreakCue(d,e),a.nestedCues.push(n));n=shaka.cea.CeaUtils.createStyledCue(d,e,h,k,l,m)}}return a.nestedCues.length?{cue:a,stream:b}:null};shaka.cea.CeaUtils.createStyledCue=function(a,b,c,d,e,f){a=new shaka.text.Cue(a,b,"");c&&a.textDecoration.push(shaka.text.Cue.textDecoration.UNDERLINE);d&&(a.fontStyle=shaka.text.Cue.fontStyle.ITALIC);a.color=e;a.backgroundColor=f;return a};
|
|
609
609
|
shaka.cea.CeaUtils.createLineBreakCue=function(a,b){a=new shaka.text.Cue(a,b,"");a.lineBreak=!0;return a};shaka.cea.CeaUtils.StyledChar=function(a,b,c,d,e){this.character_=a;this.underline_=b;this.italics_=c;this.backgroundColor_=d;this.textColor_=e};shaka.cea.CeaUtils.StyledChar.prototype.getChar=function(){return this.character_};shaka.cea.CeaUtils.StyledChar.prototype.isUnderlined=function(){return this.underline_};shaka.cea.CeaUtils.StyledChar.prototype.isItalicized=function(){return this.italics_};
|
|
610
610
|
shaka.cea.CeaUtils.StyledChar.prototype.getBackgroundColor=function(){return this.backgroundColor_};shaka.cea.CeaUtils.StyledChar.prototype.getTextColor=function(){return this.textColor_};shaka.cea.CeaUtils.DEFAULT_BG_COLOR="black";shaka.cea.CeaUtils.DEFAULT_TXT_COLOR="white";shaka.cea.Cea608Memory=function(a,b){this.rows_=[];this.row_=1;this.scrollRows_=0;this.fieldNum_=a;this.channelNum_=b;this.italics_=this.underline_=!1;this.textColor_=shaka.cea.CeaUtils.DEFAULT_TXT_COLOR;this.backgroundColor_=shaka.cea.CeaUtils.DEFAULT_BG_COLOR;this.reset()};shaka.cea.Cea608Memory.prototype.forceEmit=function(a,b){var c="CC"+(this.fieldNum_<<1|this.channelNum_+1),d=new shaka.text.Cue(a,b,"");return shaka.cea.CeaUtils.getParsedCaption(d,c,this.rows_,a,b)};
|
|
@@ -681,11 +681,11 @@ c.children).box("frma",function(h){h=shaka.util.Mp4BoxParsers.parseFRMA(h.reader
|
|
|
681
681
|
shaka.cea.Mp4CeaParser.prototype.parse=function(a){var b=this,c=shaka.util.Mp4Parser;if(this.bitstreamFormat_==shaka.cea.Mp4CeaParser.BitstreamFormat.UNKNOWN)return[];var d=[],e=this.defaultSampleDuration_,f=this.defaultSampleSize_,g=0,h=[],k=null,l=shaka.cea.ICeaParser.DEFAULT_TIMESCALE_VALUE;(new c).box("moof",function(m){g=m.start;h=[];c.children(m)}).box("traf",c.children).fullBox("trun",function(m){goog.asserts.assert(null!=m.version&&null!=m.flags,"TRUN is a full box and should have a valid version & flags.");
|
|
682
682
|
m=shaka.util.Mp4BoxParsers.parseTRUN(m.reader,m.version,m.flags);h.push(m)}).fullBox("tfhd",function(m){goog.asserts.assert(null!=m.flags,"TFHD is a full box and should have valid flags.");m=shaka.util.Mp4BoxParsers.parseTFHD(m.reader,m.flags);e=m.defaultSampleDuration||b.defaultSampleDuration_;f=m.defaultSampleSize||b.defaultSampleSize_;m=m.trackId;b.trackIdToTimescale_.has(m)&&(l=b.trackIdToTimescale_.get(m))}).fullBox("tfdt",function(m){goog.asserts.assert(null!=m.version,"TFDT is a full box and should have a valid version.");
|
|
683
683
|
k=shaka.util.Mp4BoxParsers.parseTFDT(m.reader,m.version).baseMediaDecodeTime}).box("mdat",function(m){if(null===k)throw shaka.log.alwaysWarn("Unable to find base media decode time for CEA captions!"),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.INVALID_MP4_CEA);b.parseMdat_(m.reader,k,l,e,f,g-m.start-8,h,d)}).parse(a,!1);return d};
|
|
684
|
-
shaka.cea.Mp4CeaParser.prototype.parseMdat_=function(a,b,c,d,e,f,g,h){var k=shaka.cea.Mp4CeaParser.BitstreamFormat,l=shaka.cea.ICeaParser,m=0,n=e,p=g.map(function(
|
|
685
|
-
q&31;r=r==l.H264_NALU_TYPE_SEI;break;case k.H265:g=2;a.skip(1);r=q>>1&63;r=r==l.H265_PREFIX_NALU_TYPE_SEI||r==l.H265_SUFFIX_NALU_TYPE_SEI;break;default:return}if(r)for(q=0,m<p.length&&(q=p[m].sampleCompositionTimeOffset||0),q=(b+q)/c,g=$jscomp.makeIterator(this.seiProcessor_.process(a.readBytes(f-g))),r=g.next();!r.done;r=g.next())h.push({packet:r.value,pts:q});else try{a.skip(f-g)}catch(
|
|
684
|
+
shaka.cea.Mp4CeaParser.prototype.parseMdat_=function(a,b,c,d,e,f,g,h){var k=shaka.cea.Mp4CeaParser.BitstreamFormat,l=shaka.cea.ICeaParser,m=0,n=e,p=g.map(function(u){return u.sampleData});p=[].concat.apply([],$jscomp.arrayFromIterable(p));p.length&&(n=p[0].sampleSize||e);for(a.skip(f+g[0].dataOffset);a.hasMoreData();){f=a.readUint32();var q=a.readUint8(),r=null;r=!1;g=1;goog.asserts.assert(this.bitstreamFormat_!=k.UNKNOWN,"Bitstream format should have been checked before now!");switch(this.bitstreamFormat_){case k.H264:r=
|
|
685
|
+
q&31;r=r==l.H264_NALU_TYPE_SEI;break;case k.H265:g=2;a.skip(1);r=q>>1&63;r=r==l.H265_PREFIX_NALU_TYPE_SEI||r==l.H265_SUFFIX_NALU_TYPE_SEI;break;default:return}if(r)for(q=0,m<p.length&&(q=p[m].sampleCompositionTimeOffset||0),q=(b+q)/c,g=$jscomp.makeIterator(this.seiProcessor_.process(a.readBytes(f-g))),r=g.next();!r.done;r=g.next())h.push({packet:r.value,pts:q});else try{a.skip(f-g)}catch(u){break}n-=f+4;0==n&&(b=m<p.length?b+(p[m].sampleDuration||d):b+d,m++,n=m<p.length?p[m].sampleSize||e:e)}};
|
|
686
686
|
shaka.cea.Mp4CeaParser.prototype.setBitstreamFormat_=function(a){a in shaka.cea.Mp4CeaParser.CodecBitstreamMap_&&(this.bitstreamFormat_=shaka.cea.Mp4CeaParser.CodecBitstreamMap_[a])};shaka.cea.Mp4CeaParser.BitstreamFormat={UNKNOWN:0,H264:1,H265:2};
|
|
687
687
|
shaka.cea.Mp4CeaParser.CodecBitstreamMap_={avc1:shaka.cea.Mp4CeaParser.BitstreamFormat.H264,avc3:shaka.cea.Mp4CeaParser.BitstreamFormat.H264,hev1:shaka.cea.Mp4CeaParser.BitstreamFormat.H265,hvc1:shaka.cea.Mp4CeaParser.BitstreamFormat.H265,dvh1:shaka.cea.Mp4CeaParser.BitstreamFormat.H265,dvhe:shaka.cea.Mp4CeaParser.BitstreamFormat.H265};shaka.media.IClosedCaptionParser=function(){};shaka.media.IClosedCaptionParser.prototype.init=function(a){};shaka.media.IClosedCaptionParser.prototype.parseFrom=function(a){};shaka.media.IClosedCaptionParser.prototype.reset=function(){};shaka.media.ClosedCaptionParser=function(a){this.ceaParser_=new shaka.cea.DummyCeaParser;a.includes("video/mp4")&&(this.ceaParser_=new shaka.cea.Mp4CeaParser);this.ceaDecoder_=new shaka.cea.CeaDecoder};shaka.media.ClosedCaptionParser.prototype.init=function(a){this.ceaParser_.init(a)};
|
|
688
|
-
shaka.media.ClosedCaptionParser.prototype.parseFrom=function(a){a=this.ceaParser_.parse(a);a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next()){b=b.value;var c=shaka.util.BufferUtils.toUint8(b.packet);0<c.length&&this.ceaDecoder_.extract(c,b.pts)}return this.ceaDecoder_.decode()};shaka.media.ClosedCaptionParser.prototype.reset=function(){this.ceaDecoder_.clear()};shaka.media.InitSegmentReference=function(a,b,c,d,e){this.getUris=a;this.startByte=b;this.endByte=c;this.mediaQuality=void 0===d?null:d;this.timescale=e};shaka.media.InitSegmentReference.prototype.getStartByte=function(){return this.startByte};shaka.media.InitSegmentReference.prototype.getEndByte=function(){return this.endByte};shaka.media.InitSegmentReference.prototype.getSize=function(){return this.endByte?this.endByte-this.startByte:null};
|
|
688
|
+
shaka.media.ClosedCaptionParser.prototype.parseFrom=function(a){a=this.ceaParser_.parse(a);a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next()){b=b.value;var c=shaka.util.BufferUtils.toUint8(b.packet);0<c.length&&this.ceaDecoder_.extract(c,b.pts)}return this.ceaDecoder_.decode()};shaka.media.ClosedCaptionParser.prototype.reset=function(){this.ceaDecoder_.clear()};shaka.media.InitSegmentReference=function(a,b,c,d,e,f){this.getUris=a;this.startByte=b;this.endByte=c;this.mediaQuality=void 0===d?null:d;this.timescale=void 0===e?null:e;this.hlsAes128Key=void 0===f?null:f};shaka.media.InitSegmentReference.prototype.getStartByte=function(){return this.startByte};shaka.media.InitSegmentReference.prototype.getEndByte=function(){return this.endByte};shaka.media.InitSegmentReference.prototype.getSize=function(){return this.endByte?this.endByte-this.startByte:null};
|
|
689
689
|
shaka.media.InitSegmentReference.prototype.getMediaQuality=function(){return this.mediaQuality};shaka.media.InitSegmentReference.equal=function(a,b){var c=shaka.util.ArrayUtils;return a&&b?a.getStartByte()==b.getStartByte()&&a.getEndByte()==b.getEndByte()&&c.equal(a.getUris(),b.getUris()):a==b};goog.exportSymbol("shaka.media.InitSegmentReference",shaka.media.InitSegmentReference);goog.exportProperty(shaka.media.InitSegmentReference.prototype,"getEndByte",shaka.media.InitSegmentReference.prototype.getEndByte);
|
|
690
690
|
goog.exportProperty(shaka.media.InitSegmentReference.prototype,"getStartByte",shaka.media.InitSegmentReference.prototype.getStartByte);
|
|
691
691
|
shaka.media.SegmentReference=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r){l=void 0===l?[]:l;m=void 0===m?"":m;n=void 0===n?null:n;p=void 0===p?null:p;q=void 0===q?shaka.media.SegmentReference.Status.AVAILABLE:q;r=void 0===r?null:r;goog.asserts.assert(a<=b,"startTime must be less than or equal to endTime");goog.asserts.assert(null==e||d<e,"startByte must be < endByte");this.startTime=a;this.trueEndTime=this.endTime=b;this.getUrisInner=c;this.startByte=d;this.endByte=e;this.initSegmentReference=f;this.timestampOffset=
|
|
@@ -713,8 +713,8 @@ a.type){if(2>a.size)return null;if(a.data[0]!==shaka.util.Id3Utils.UTF8_encoding
|
|
|
713
713
|
1));d.description=c;d.data=a;return d}if("T"===a.type[0]){if(2>a.size)return null;if(a.data[0]!==shaka.util.Id3Utils.UTF8_encoding)return shaka.log.warning("Ignore frame with unrecognized character encoding"),null;a=c.fromUTF8(a.data.subarray(1)).replace(/\0*$/,"");d.data=a;return d}return"W"===a.type[0]?(a=c.fromUTF8(a.data).replace(/\0*$/,""),d.data=a,d):a.data?(shaka.log.warning("Unrecognized ID3 frame type:",a.type),d.data=b.toArrayBuffer(a.data),d):null};
|
|
714
714
|
shaka.util.Id3Utils.getID3Frames=function(a){for(var b=shaka.util.Id3Utils,c=0,d=[];b.isHeader_(a,c);){var e=b.readSize_(a,c+6);a[c+5]>>6&1&&(c+=10);c+=10;for(e=c+e;c+10<e;){var f=b.getFrameData_(a.subarray(c)),g=b.decodeFrame_(f);g&&d.push(g);c+=f.size+10}b.isFooter_(a,c)&&(c+=10)}return d};goog.exportSymbol("shaka.util.Id3Utils",shaka.util.Id3Utils);goog.exportProperty(shaka.util.Id3Utils,"getID3Frames",shaka.util.Id3Utils.getID3Frames);shaka.util.Id3Utils.UTF8_encoding=3;shaka.util.TsParser=function(){this.pmtId_=null;this.pmtParsed_=!1;this.videoCodec_=this.videoPid_=this.videoStartTime_=null;this.videoData_=[];this.audioCodec_=this.audioPid_=this.audioStartTime_=null;this.audioData_=[];this.id3Pid_=null;this.id3Data_=[]};
|
|
715
715
|
shaka.util.TsParser.prototype.parse=function(a){var b=shaka.util.TsParser.Timescale_,c=shaka.util.TsParser.PacketLength_;if(a.length<3*c)return this;for(var d=Math.max(0,shaka.util.TsParser.syncOffset(a)),e=a.length-(a.length+d)%c,f=!1,g=d;g<e;g+=c)if(71===a[g]){var h=!!(a[g+1]&64),k=((a[g+1]&31)<<8)+a[g+2];if(1<(a[g+3]&48)>>4){var l=g+5+a[g+4];if(l===g+c)continue}else l=g+4;switch(k){case 0:h&&(l+=a[l]+1);this.pmtId_=this.getPmtId_(a,l);break;case 17:case 8191:break;case this.pmtId_:h&&(l+=a[l]+
|
|
716
|
-
1);h=this.parsePMT(a,l)
|
|
717
|
-
|
|
716
|
+
1);h=this.parsePMT(a,l);-1!=h.video&&(this.videoPid_=h.video,this.videoCodec_=h.videoCodec);-1!=h.audio&&(this.audioPid_=h.audio,this.audioCodec_=h.audioCodec);-1!=h.id3&&(this.id3Pid_=h.id3);f&&!this.pmtParsed_&&(shaka.log.debug("reparse from beginning"),f=!1,g=d-c);this.pmtParsed_=!0;break;case this.videoPid_:h=a.subarray(l,g+c);null==this.videoStartTime_&&(k=this.parsePES(h))&&null!=k.pts&&(this.videoStartTime_=k.pts/b);this.videoData_.push(h);break;case this.audioPid_:h=a.subarray(l,g+c);null==
|
|
717
|
+
this.audioStartTime_&&(k=this.parsePES(h))&&null!=k.pts&&(this.audioStartTime_=k.pts/b);this.audioData_.push(h);break;case this.id3Pid_:this.id3Data_.push(a.subarray(l,g+c));break;default:f=!0}}else shaka.log.warning("Found TS packet that do not start with 0x47");return this};shaka.util.TsParser.prototype.getPmtId_=function(a,b){return(a[b+10]&31)<<8|a[b+11]};
|
|
718
718
|
shaka.util.TsParser.prototype.parsePMT=function(a,b){var c={audio:-1,video:-1,id3:-1,audioCodec:"",videoCodec:""},d=b+3+((a[b+1]&15)<<8|a[b+2])-4;for(b+=12+((a[b+10]&15)<<8|a[b+11]);b<d;){var e=(a[b+1]&31)<<8|a[b+2];switch(a[b]){case 15:-1===c.audio&&(c.audio=e,c.audioCodec="aac");break;case 21:-1===c.id3&&(c.id3=e);break;case 27:-1===c.video&&(c.video=e,c.videoCodec="avc");break;case 3:case 4:-1===c.audio&&(c.audio=e,c.audioCodec="mp3");break;case 36:-1===c.video&&(c.video=e,c.videoCodec="hvc")}b+=
|
|
719
719
|
((a[b+3]&15)<<8|a[b+4])+5}return c};shaka.util.TsParser.prototype.parsePES=function(a){if(1!==(a[0]<<16|a[1]<<8|a[2]))return null;var b={data:new Uint8Array(0),packetLength:6+(a[4]<<8|a[5]),pts:null,dts:null},c=a[7];c&192&&(b.pts=536870912*(a[9]&14)+4194304*(a[10]&255)+16384*(a[11]&254)+128*(a[12]&255)+(a[13]&254)/2,b.dts=b.pts,c&64&&(b.dts=536870912*(a[14]&14)+4194304*(a[15]&255)+16384*(a[16]&254)+128*(a[17]&255)+(a[18]&254)/2));b.data=a.subarray(9+a[8]);return b};
|
|
720
720
|
shaka.util.TsParser.prototype.getMetadata=function(){for(var a=shaka.util.TsParser.Timescale_,b=shaka.util.Uint8ArrayUtils,c=[],d=new Uint8Array(0),e=this.id3Data_.length-1;0<=e;e--){var f=this.id3Data_[e];goog.asserts.assert(f,"We should have a data");d=b.concat(f,d);if(f=this.parsePES(d))c.unshift({cueTime:f.pts?f.pts/a:null,data:f.data,frames:shaka.util.Id3Utils.getID3Frames(f.data),dts:f.dts,pts:f.pts}),d=new Uint8Array(0)}return c};
|
|
@@ -740,12 +740,12 @@ shaka.media.MediaSourceEngine.prototype.bufferEnd=function(a){return a==shaka.ut
|
|
|
740
740
|
shaka.media.MediaSourceEngine.prototype.bufferedAheadOf=function(a,b){if(a==shaka.util.ManifestParserUtils.ContentType.TEXT)return this.textEngine_.bufferedAheadOf(b);a=this.getBuffered_(a);return shaka.media.TimeRangesUtils.bufferedAheadOf(a,b)};
|
|
741
741
|
shaka.media.MediaSourceEngine.prototype.getBufferedInfo=function(){var a=shaka.util.ManifestParserUtils.ContentType,b=shaka.media.TimeRangesUtils;a={total:b.getBufferedInfo(this.video_.buffered),audio:b.getBufferedInfo(this.getBuffered_(a.AUDIO)),video:b.getBufferedInfo(this.getBuffered_(a.VIDEO)),text:[]};if(this.textEngine_){b=this.textEngine_.bufferStart();var c=this.textEngine_.bufferEnd();null!=b&&null!=c&&a.text.push({start:b,end:c})}return a};
|
|
742
742
|
shaka.media.MediaSourceEngine.prototype.getBuffered_=function(a){try{return this.sourceBuffers_[a].buffered}catch(b){return a in this.sourceBuffers_&&shaka.log.error("failed to get buffered range for "+a,b),null}};shaka.media.MediaSourceEngine.prototype.getCaptionParser=function(a){return new shaka.media.ClosedCaptionParser(a)};
|
|
743
|
-
shaka.media.MediaSourceEngine.prototype.appendBuffer=function(a,b,c,d,e,f,g){e=void 0===e?!1:e;f=void 0===f?!1:f;g=void 0===g?!1:g;var h=this,k,l,m,n,p,q,r,v,
|
|
744
|
-
case 3:return M.yield(h.textEngine_.appendBuffer(b,c?c.startTime:null,c?c.endTime:null),5);case 5:return M.return();case 2:m=shaka.util.BufferUtils.toUint8(b);n=h.sourceBufferTypes_[a];h.transmuxers_[a]&&(n=h.transmuxers_[a].getOrginalMimeType());if(shaka.util.TsParser.probe(m)){if(p=(new shaka.util.TsParser).parse(m),q=c.startTime-(p.getStartTime()[a]||0),r=p.getMetadata(),r.length)h.onMetadata_(r,q,c?c.endTime:null)}else shaka.media.MediaSourceEngine.RAW_FORMATS.includes(n)&&(
|
|
745
|
-
|
|
743
|
+
shaka.media.MediaSourceEngine.prototype.appendBuffer=function(a,b,c,d,e,f,g){e=void 0===e?!1:e;f=void 0===f?!1:f;g=void 0===g?!1:g;var h=this,k,l,m,n,p,q,r,u,v,w,y,t,x,A,z,B,D,G,C,E,F,I,H,J,L,K,N,O;return $jscomp.asyncExecutePromiseGeneratorProgram(function(M){switch(M.nextAddress){case 1:k=shaka.util.ManifestParserUtils.ContentType;if(a!=k.TEXT){M.jumpTo(2);break}if(!h.sequenceMode_){M.jumpTo(3);break}return M.yield(h.textSequenceModeOffset_,4);case 4:l=M.yieldResult,h.textEngine_.setTimestampOffset(l);
|
|
744
|
+
case 3:return M.yield(h.textEngine_.appendBuffer(b,c?c.startTime:null,c?c.endTime:null),5);case 5:return M.return();case 2:m=shaka.util.BufferUtils.toUint8(b);n=h.sourceBufferTypes_[a];h.transmuxers_[a]&&(n=h.transmuxers_[a].getOrginalMimeType());if(shaka.util.TsParser.probe(m)){if(p=(new shaka.util.TsParser).parse(m),q=c.startTime-(p.getStartTime()[a]||0),r=p.getMetadata(),r.length)h.onMetadata_(r,q,c?c.endTime:null)}else shaka.media.MediaSourceEngine.RAW_FORMATS.includes(n)&&(u=shaka.util.Id3Utils.getID3Frames(m),
|
|
745
|
+
u.length&&c&&(v={cueTime:c.startTime,data:m,frames:u,dts:c.startTime,pts:c.startTime},h.onMetadata_([v],0,c.endTime)));if(!h.transmuxers_[a]){d&&a==k.VIDEO&&(h.textEngine_||h.reinitText(shaka.util.MimeUtils.CEA608_CLOSED_CAPTION_MIMETYPE,h.sequenceMode_,!1),h.captionParser_||(h.captionParser_=h.getCaptionParser(n)),c?(w=h.captionParser_.parseFrom(b),w.length&&(y=h.sourceBuffers_[k.VIDEO].timestampOffset,h.textEngine_.storeAndAppendClosedCaptions(w,c.startTime,c.endTime,y))):h.captionParser_.init(b));
|
|
746
746
|
M.jumpTo(6);break}e&&h.transmuxers_[a].resetCaptions();return M.yield(h.transmuxers_[a].transmux(b),7);case 7:t=M.yieldResult,h.textEngine_||h.reinitText(shaka.util.MimeUtils.CEA608_CLOSED_CAPTION_MIMETYPE,h.sequenceMode_,!1),t.captions&&t.captions.length&&(x=h.sourceBuffers_[k.VIDEO].timestampOffset,A=h.textEngine_.convertMuxjsCaptionsToShakaCaptions(t.captions),h.textEngine_.storeAndAppendClosedCaptions(A,c?c.startTime:null,c?c.endTime:null,x)),b=t.data;case 6:b=h.workAroundBrokenPlatforms_(b,c?
|
|
747
|
-
c.startTime:null,a);
|
|
748
|
-
function(){return h.abort_(a)}),11);case 11:return
|
|
747
|
+
c.startTime:null,a);z=h.sourceBuffers_[a];B=shaka.media.MediaSourceEngine.SourceBufferMode_.SEQUENCE;if(!h.sequenceMode_||z.mode==B||!c){M.jumpTo(8);break}D=h.mediaSource_.duration;G=a==k.VIDEO||!(k.VIDEO in h.sourceBuffers_);if(!G){M.jumpTo(9);break}C=[z.appendWindowStart,z.appendWindowEnd];z.appendWindowStart=0;z.appendWindowEnd=Infinity;E=z.timestampOffset;z.timestampOffset=0;return M.yield(h.enqueueOperation_(a,function(){return h.append_(a,b)}),10);case 10:return M.yield(h.enqueueOperation_(a,
|
|
748
|
+
function(){return h.abort_(a)}),11);case 11:return z.timestampOffset=E,z.appendWindowStart=C[0],z.appendWindowEnd=C[1],F=shaka.media.TimeRangesUtils.bufferStart(h.getBuffered_(a)),I=(c.startTime||0)-(F||0),h.textSequenceModeOffset_.resolve(I),M.yield(h.enqueueOperation_(a,function(){return h.remove_(a,0,D)}),12);case 12:if(a!=k.VIDEO){M.jumpTo(9);break}return M.yield(h.enqueueOperation_(a,function(){return h.flush_(a)}),9);case 9:return z.mode=B,M.yield(h.setDuration(D),8);case 8:return c&&h.sequenceMode_&&
|
|
749
749
|
a!=k.TEXT&&(e||f)&&(H=c.startTime,h.enqueueOperation_(a,function(){return h.abort_(a)}),h.enqueueOperation_(a,function(){return h.setTimestampOffset_(a,H)})),J=null,M.yield(h.enqueueOperation_(a,function(){goog.DEBUG&&c&&!c.isPreload()&&!g&&(J=h.getBuffered_(a));h.append_(a,b)}),16);case 16:goog.DEBUG&&c&&!c.isPreload()&&!g&&(L=h.getBuffered_(a),K=shaka.media.TimeRangesUtils.computeAddedRange(J,L))&&(N=c.endTime-c.startTime,O=Math.abs(K.end-c.endTime),.1<N&&O>N/2&&shaka.log.error("Possible encoding problem detected!",
|
|
750
750
|
"Unexpected buffered range for reference",c,"from URIs",c.getUris(),"should be",{start:c.startTime,end:c.endTime},"but got",K)),M.jumpToEnd()}})};shaka.media.MediaSourceEngine.prototype.setSelectedClosedCaptionId=function(a){var b=this.bufferEnd(shaka.util.ManifestParserUtils.ContentType.VIDEO)||0;this.textEngine_.setSelectedClosedCaptionId(a,b)};shaka.media.MediaSourceEngine.prototype.clearSelectedClosedCaptionId=function(){this.textEngine_&&this.textEngine_.setSelectedClosedCaptionId("",0)};
|
|
751
751
|
shaka.media.MediaSourceEngine.prototype.remove=function(a,b,c){var d=this,e;return $jscomp.asyncExecutePromiseGeneratorProgram(function(f){e=shaka.util.ManifestParserUtils.ContentType;return a==e.TEXT?f.yield(d.textEngine_.remove(b,c),0):f.yield(d.enqueueOperation_(a,function(){return d.remove_(a,b,c)}),0)})};
|
|
@@ -905,28 +905,26 @@ shaka.media.StreamingEngine.prototype.getTimeNeeded_=function(a,b){return a.last
|
|
|
905
905
|
shaka.media.StreamingEngine.prototype.getSegmentReferenceNeeded_=function(a,b,c){var d=shaka.media.StreamingEngine.logPrefix_(a);goog.asserts.assert(a.stream.segmentIndex,"segment index should have been generated already");if(a.segmentIterator)return a.segmentIterator.current();if(a.lastSegmentReference||c)return b=a.lastSegmentReference?a.lastSegmentReference.endTime:c,goog.asserts.assert(null!=b,"Should have a time to search"),shaka.log.v1(d,"looking up segment from new stream endTime:",b),a.needsResync=
|
|
906
906
|
!0,a.segmentIterator=a.stream.segmentIndex.getIteratorForTime(b),a=a.segmentIterator&&a.segmentIterator.next().value,null==a&&shaka.log.warning(d,"cannot find segment","endTime:",b),a;c=this.config_.inaccurateManifestTolerance;var e=Math.max(b-c,0);shaka.log.v1(d,"looking up segment","lookupTime:",e,"presentationTime:",b);var f=null;c&&(a.segmentIterator=a.stream.segmentIndex.getIteratorForTime(e),f=a.segmentIterator&&a.segmentIterator.next().value);f||(a.segmentIterator=a.stream.segmentIndex.getIteratorForTime(b),
|
|
907
907
|
f=a.segmentIterator&&a.segmentIterator.next().value);null==f&&shaka.log.warning(d,"cannot find segment","lookupTime:",e,"presentationTime:",b);return f};
|
|
908
|
-
shaka.media.StreamingEngine.prototype.fetchAndAppend_=function(a,b,c){var d=this,e,f,g,h,k,l,m,n,p,q,r,v,
|
|
909
|
-
if(c.getStatus()==shaka.media.SegmentReference.Status.MISSING)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.SEGMENT_MISSING);return
|
|
910
|
-
|
|
911
|
-
n=d.fetch_(a,c);return
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
a
|
|
916
|
-
shaka.media.StreamingEngine.prototype.aes128Decrypt_=function(a,b,c){var d,e,f,g;return $jscomp.asyncExecutePromiseGeneratorProgram(function(h){if(1==h.nextAddress){d=b.hlsAes128Key;if(d.cryptoKey)return h.jumpTo(2);goog.asserts.assert(d.fetchKey,"If AES-128 cryptoKey was not preloaded, fetchKey function should be provided");return h.yield(d.fetchKey(),3)}2!=h.nextAddress&&goog.asserts.assert(d.cryptoKey,"AES-128 cryptoKey should now be set");e=d.iv;if(!e)for(e=shaka.util.BufferUtils.toUint8(new ArrayBuffer(16)),
|
|
908
|
+
shaka.media.StreamingEngine.prototype.fetchAndAppend_=function(a,b,c){var d=this,e,f,g,h,k,l,m,n,p,q,r,u,v,w,y,t,x,A;return $jscomp.asyncExecutePromiseGeneratorProgram(function(z){switch(z.nextAddress){case 1:e=shaka.util.ManifestParserUtils.ContentType;f=shaka.media.StreamingEngine;g=f.logPrefix_(a);shaka.log.v1(g,"fetchAndAppend_:","presentationTime="+b,"reference.startTime="+c.startTime,"reference.endTime="+c.endTime);h=a.stream;k=a.segmentIterator;a.performingUpdate=!0;z.setCatchFinallyBlocks(2);
|
|
909
|
+
if(c.getStatus()==shaka.media.SegmentReference.Status.MISSING)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.SEGMENT_MISSING);return z.yield(d.initSourceBuffer_(a,c),4);case 4:d.destroyer_.ensureNotDestroyed();if(d.fatalError_)return z.return();shaka.log.v2(g,"fetching segment");l="video/mp4"==h.mimeType||"audio/mp4"==h.mimeType;m=window.ReadableStream;if(d.config_.lowLatencyMode&&m&&l&&!c.hlsAes128Key)return q=new Uint8Array(0),
|
|
910
|
+
u=r=!1,v=function(B){var D,G,C;return $jscomp.asyncExecutePromiseGeneratorProgram(function(E){if(r)return E.return();u=!0;d.destroyer_.ensureNotDestroyed();if(d.fatalError_)return E.return();q=d.concatArray_(q,B);D=!1;G=0;(new shaka.util.Mp4Parser).box("mdat",function(F){G=F.size+F.start;D=!0}).parse(q,!1,!0);if(!D)return E.jumpTo(0);C=q.subarray(0,G);q=q.subarray(G);return E.yield(d.append_(a,b,h,c,C,!0),0)})},z.yield(d.fetch_(a,c,v),9);d.config_.lowLatencyMode&&!m&&shaka.log.warning("Low latency streaming mode is enabled, but ReadableStream is not supported by the browser.");
|
|
911
|
+
n=d.fetch_(a,c);return z.yield(n,7);case 7:return p=z.yieldResult,d.destroyer_.ensureNotDestroyed(),d.fatalError_?z.return():a.waitingToClearBuffer?(shaka.log.info(g,"waitingToClearBuffer, skip append"),a.performingUpdate=!1,d.scheduleUpdate_(a,0),z.return()):z.yield(d.append_(a,b,h,c,p),6);case 9:w=z.yieldResult;if(u){z.jumpTo(6);break}r=!0;d.destroyer_.ensureNotDestroyed();return d.fatalError_?z.return():a.waitingToClearBuffer?(shaka.log.info(g,"waitingToClearBuffer, skip append"),a.performingUpdate=
|
|
912
|
+
!1,d.scheduleUpdate_(a,0),z.return()):z.yield(d.append_(a,b,h,c,w),6);case 6:d.destroyer_.ensureNotDestroyed();if(d.fatalError_)return z.return();a.lastSegmentReference=c;y=k.next().value;shaka.log.v2(g,"advancing to next segment",y);a.performingUpdate=!1;a.recovering=!1;t=d.playerInterface_.mediaSourceEngine.getBufferedInfo();x=t[a.type];shaka.log.v1(g,"finished fetch and append",JSON.stringify(x));if(!a.waitingToClearBuffer)d.playerInterface_.onSegmentAppended(c.startTime,c.endTime,a.type);d.scheduleUpdate_(a,
|
|
913
|
+
0);z.leaveTryBlock(0);break;case 2:A=z.enterCatchBlock();d.destroyer_.ensureNotDestroyed(A);if(d.fatalError_)return z.return();goog.asserts.assert(A instanceof shaka.util.Error,"Should only receive a Shaka error");a.performingUpdate=!1;if(A.code==shaka.util.Error.Code.OPERATION_ABORTED)a.performingUpdate=!1,d.cancelUpdate_(a),d.scheduleUpdate_(a,0),z.jumpTo(0);else if(a.type==e.TEXT&&d.config_.ignoreTextStreamFailures)A.code==shaka.util.Error.Code.BAD_HTTP_STATUS?shaka.log.warning(g,"Text stream failed to download. Proceeding without it."):
|
|
914
|
+
shaka.log.warning(g,"Text stream failed to parse. Proceeding without it."),d.mediaStates_.delete(e.TEXT),z.jumpTo(0);else if(A.code==shaka.util.Error.Code.QUOTA_EXCEEDED_ERROR)d.handleQuotaExceeded_(a,A),z.jumpTo(0);else return shaka.log.error(g,"failed fetch and append: code="+A.code),a.hasError=!0,A.severity=shaka.util.Error.Severity.CRITICAL,z.yield(d.handleStreamingError_(A),0)}})};
|
|
915
|
+
shaka.media.StreamingEngine.prototype.aes128Decrypt_=function(a,b,c){var d,e,f,g;return $jscomp.asyncExecutePromiseGeneratorProgram(function(h){if(1==h.nextAddress){d=b;if(d.cryptoKey)return h.jumpTo(2);goog.asserts.assert(d.fetchKey,"If AES-128 cryptoKey was not preloaded, fetchKey function should be provided");return h.yield(d.fetchKey(),3)}2!=h.nextAddress&&goog.asserts.assert(d.cryptoKey,"AES-128 cryptoKey should now be set");e=d.iv;if(!e)for(e=shaka.util.BufferUtils.toUint8(new ArrayBuffer(16)),
|
|
917
916
|
f=d.firstMediaSequenceNumber+c.currentPosition(),g=e.byteLength-1;0<=g;g--)e[g]=f&255,f>>=8;return h.return(window.crypto.subtle.decrypt({name:"AES-CBC",iv:e},d.cryptoKey,a))})};
|
|
918
917
|
shaka.media.StreamingEngine.prototype.retry=function(a){if(this.destroyer_.destroyed())return shaka.log.error("Unable to retry after StreamingEngine is destroyed!"),!1;if(this.fatalError_)return shaka.log.error("Unable to retry after StreamingEngine encountered a fatal error!"),!1;for(var b=$jscomp.makeIterator(this.mediaStates_.values()),c=b.next();!c.done;c=b.next()){c=c.value;var d=shaka.media.StreamingEngine.logPrefix_(c);!c.hasError||c.performingUpdate||c.updateTimer||(shaka.log.info(d,"Retrying after failure..."),
|
|
919
918
|
c.hasError=!1,this.scheduleUpdate_(c,a))}return!0};shaka.media.StreamingEngine.prototype.concatArray_=function(a,b){var c=new Uint8Array(a.length+b.length);c.set(a);c.set(b,a.length);return c};
|
|
920
919
|
shaka.media.StreamingEngine.prototype.handleQuotaExceeded_=function(a,b){var c=shaka.media.StreamingEngine.logPrefix_(a);if(Array.from(this.mediaStates_.values()).some(function(e){return e!=a&&e.recovering}))shaka.log.debug(c,"MediaSource threw QuotaExceededError:","waiting for another stream to recover...");else{var d=Math.round(100*this.bufferingGoalScale_);if(20<d)this.bufferingGoalScale_-=.2;else if(4<d)this.bufferingGoalScale_-=.04;else{shaka.log.error(c,"MediaSource threw QuotaExceededError too many times");
|
|
921
920
|
this.fatalError_=a.hasError=!0;this.playerInterface_.onError(b);return}shaka.log.warning(c,"MediaSource threw QuotaExceededError:","reducing buffering goals by "+(100-Math.round(100*this.bufferingGoalScale_))+"%");a.recovering=!0}this.scheduleUpdate_(a,4)};
|
|
922
921
|
shaka.media.StreamingEngine.prototype.initSourceBuffer_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p;return $jscomp.asyncExecutePromiseGeneratorProgram(function(q){d=shaka.media.StreamingEngine;e=d.logPrefix_(a);f=[];g=Math.max(0,b.appendWindowStart-d.APPEND_WINDOW_START_FUDGE_);h=b.appendWindowEnd+d.APPEND_WINDOW_END_FUDGE_;goog.asserts.assert(b.startTime<=h,e+" segment should start before append window end");k=b.timestampOffset;if(k!=a.lastTimestampOffset||g!=a.lastAppendWindowStart||h!=a.lastAppendWindowEnd)shaka.log.v1(e,
|
|
923
|
-
"setting timestamp offset to "+k),shaka.log.v1(e,"setting append window start to "+g),shaka.log.v1(e,"setting append window end to "+h),l=function(){var r;return $jscomp.asyncExecutePromiseGeneratorProgram(function(
|
|
924
|
-
|
|
925
|
-
t.yield(m,4);case 4:return r=t.yieldResult,c.destroyer_.ensureNotDestroyed(),
|
|
926
|
-
6);case 6:t.leaveTryBlock(0);break;case 2:throw
|
|
927
|
-
b
|
|
928
|
-
|
|
929
|
-
c.emsgSchemeIdUris,v)});n&&l.fullBox("prft",function(v){return g.parsePrft_(d,v)});(m||n)&&l.parse(e);return r.yield(g.evict_(a,b),2);case 2:return g.destroyer_.ensureNotDestroyed(),p=a.seeked,a.seeked=!1,q=a.adaptation,a.adaptation=!1,r.yield(g.playerInterface_.beforeAppendSegment(a.type,e),3);case 3:return r.yield(g.playerInterface_.mediaSourceEngine.appendBuffer(a.type,e,d,k,p,q,f),4);case 4:g.destroyer_.ensureNotDestroyed(),shaka.log.v2(h,"appended media segment"),r.jumpToEnd()}})};
|
|
922
|
+
"setting timestamp offset to "+k),shaka.log.v1(e,"setting append window start to "+g),shaka.log.v1(e,"setting append window end to "+h),l=function(){var r;return $jscomp.asyncExecutePromiseGeneratorProgram(function(u){if(1==u.nextAddress)return u.setCatchFinallyBlocks(2),a.lastAppendWindowStart=g,a.lastAppendWindowEnd=h,a.lastTimestampOffset=k,u.yield(c.playerInterface_.mediaSourceEngine.setStreamProperties(a.type,k,g,h,c.manifest_.sequenceMode),4);if(2!=u.nextAddress)return u.leaveTryBlock(0);r=
|
|
923
|
+
u.enterCatchBlock();a.lastAppendWindowStart=null;a.lastAppendWindowEnd=null;a.lastTimestampOffset=null;throw r;})},f.push(l());!shaka.media.InitSegmentReference.equal(b.initSegmentReference,a.lastInitSegmentReference)&&(a.lastInitSegmentReference=b.initSegmentReference)&&(shaka.log.v1(e,"fetching init segment"),m=c.fetch_(a,b.initSegmentReference),n=function(){var r,u,v,w,y;return $jscomp.asyncExecutePromiseGeneratorProgram(function(t){switch(t.nextAddress){case 1:return t.setCatchFinallyBlocks(2),
|
|
924
|
+
t.yield(m,4);case 4:return r=t.yieldResult,c.destroyer_.ensureNotDestroyed(),u=new shaka.util.Mp4Parser,v=shaka.util.Mp4Parser,u.box("moov",v.children).box("trak",v.children).box("mdia",v.children).fullBox("mdhd",function(x){c.parseMDHD_(b,x)}).parse(r),shaka.log.v1(e,"appending init segment"),w=a.stream.closedCaptions&&0<a.stream.closedCaptions.size,t.yield(c.playerInterface_.beforeAppendSegment(a.type,r),5);case 5:return t.yield(c.playerInterface_.mediaSourceEngine.appendBuffer(a.type,r,null,w),
|
|
925
|
+
6);case 6:t.leaveTryBlock(0);break;case 2:throw y=t.enterCatchBlock(),a.lastInitSegmentReference=null,y;}})},c.playerInterface_.onInitSegmentAppended(b.startTime,b.initSegmentReference),f.push(n()));c.manifest_.sequenceMode&&(p=a.lastSegmentReference?a.lastSegmentReference.discontinuitySequence:null,b.discontinuitySequence!=p||a.needsResync)&&(a.needsResync=!1,f.push(c.playerInterface_.mediaSourceEngine.resync(a.type,b.startTime)));return q.yield(Promise.all(f),0)})};
|
|
926
|
+
shaka.media.StreamingEngine.prototype.append_=function(a,b,c,d,e,f){f=void 0===f?!1:f;var g=this,h,k,l,m,n,p,q;return $jscomp.asyncExecutePromiseGeneratorProgram(function(r){switch(r.nextAddress){case 1:h=shaka.media.StreamingEngine.logPrefix_(a);k=c.closedCaptions&&0<c.closedCaptions.size;m=null!=c.emsgSchemeIdUris&&0<c.emsgSchemeIdUris.length||g.config_.dispatchAllEmsgBoxes;n=g.config_.parsePrftBox&&!g.parsedPrftEventRaised_;if(m||n)l=new shaka.util.Mp4Parser;m&&l.fullBox("emsg",function(u){return g.parseEMSG_(d,
|
|
927
|
+
c.emsgSchemeIdUris,u)});n&&l.fullBox("prft",function(u){return g.parsePrft_(d,u)});(m||n)&&l.parse(e);return r.yield(g.evict_(a,b),2);case 2:return g.destroyer_.ensureNotDestroyed(),p=a.seeked,a.seeked=!1,q=a.adaptation,a.adaptation=!1,r.yield(g.playerInterface_.beforeAppendSegment(a.type,e),3);case 3:return r.yield(g.playerInterface_.mediaSourceEngine.appendBuffer(a.type,e,d,k,p,q,f),4);case 4:g.destroyer_.ensureNotDestroyed(),shaka.log.v2(h,"appended media segment"),r.jumpToEnd()}})};
|
|
930
928
|
shaka.media.StreamingEngine.prototype.parseEMSG_=function(a,b,c){if(0===c.version){var d=c.reader.readTerminatedString();var e=c.reader.readTerminatedString();var f=c.reader.readUint32();var g=c.reader.readUint32();var h=c.reader.readUint32();var k=c.reader.readUint32();var l=a.startTime+g/f}else f=c.reader.readUint32(),l=c.reader.readUint64()/f+a.timestampOffset,g=l-a.startTime,h=c.reader.readUint32(),k=c.reader.readUint32(),d=c.reader.readTerminatedString(),e=c.reader.readTerminatedString();c=c.reader.readBytes(c.reader.getLength()-
|
|
931
929
|
c.reader.getPosition());if(b&&b.includes(d)||this.config_.dispatchAllEmsgBoxes)if("urn:mpeg:dash:event:2012"==d)this.playerInterface_.onManifestUpdate();else if(f={startTime:l,endTime:l+h/f,schemeIdUri:d,value:e,timescale:f,presentationTimeDelta:g,eventDuration:h,id:k,messageData:c},b=shaka.util.FakeEvent.EventName.Emsg,f=(new Map).set("detail",f),b=new shaka.util.FakeEvent(b,f),b.cancelable=!0,this.playerInterface_.onEvent(b),!b.defaultPrevented&&("https://aomedia.org/emsg/ID3"==d||"https://developer.apple.com/streaming/emsg-id3"==
|
|
932
930
|
d)&&(d=shaka.util.Id3Utils.getID3Frames(c),d.length&&a))this.playerInterface_.onMetadata([{cueTime:a.startTime,data:c,frames:d,dts:a.startTime,pts:a.startTime}],0,a.endTime)};shaka.media.StreamingEngine.prototype.parseMDHD_=function(a,b){b=shaka.util.Mp4BoxParsers.parseMDHD(b.reader||0,b.version||0);a.initSegmentReference.timescale=b.timescale};
|
|
@@ -935,8 +933,8 @@ a={wallClockTime:b,programStartDate:new Date(b-e/a*1E3)};e=shaka.util.FakeEvent.
|
|
|
935
933
|
shaka.media.StreamingEngine.prototype.evict_=function(a,b){var c=this,d,e,f,g,h;return $jscomp.asyncExecutePromiseGeneratorProgram(function(k){if(1==k.nextAddress){d=shaka.media.StreamingEngine.logPrefix_(a);shaka.log.v2(d,"checking buffer length");e=Math.max(c.config_.bufferBehind,c.manifest_.presentationTimeline.getMaxSegmentDuration());f=c.playerInterface_.mediaSourceEngine.bufferStart(a.type);if(null==f)return shaka.log.v2(d,"buffer behind okay because nothing buffered:","presentationTime="+b,
|
|
936
934
|
"bufferBehind="+e),k.return();g=b-f;h=g-e;if(.01>=h)return shaka.log.v2(d,"buffer behind okay:","presentationTime="+b,"bufferedBehind="+g,"bufferBehind="+e,"underflow="+Math.abs(h)),k.return();shaka.log.v1(d,"buffer behind too large:","presentationTime="+b,"bufferedBehind="+g,"bufferBehind="+e,"overflow="+h);return k.yield(c.playerInterface_.mediaSourceEngine.remove(a.type,f,f+h),2)}c.destroyer_.ensureNotDestroyed();shaka.log.v1(d,"evicted "+h+" seconds");k.jumpToEnd()})};
|
|
937
935
|
shaka.media.StreamingEngine.isEmbeddedText_=function(a){var b=shaka.util.MimeUtils,c=b.CEA608_CLOSED_CAPTION_MIMETYPE;b=b.CEA708_CLOSED_CAPTION_MIMETYPE;return a&&a.type==shaka.util.ManifestParserUtils.ContentType.TEXT&&(a.stream.mimeType==c||a.stream.mimeType==b)};
|
|
938
|
-
shaka.media.StreamingEngine.prototype.fetch_=function(a,b,c){var d=this,e,f,g,h,k;return $jscomp.asyncExecutePromiseGeneratorProgram(function(
|
|
939
|
-
b.startTime,mimeType:g.mimeType,codecs:g.codecs,bandwidth:g.bandwidth}),h=d.playerInterface_.netEngine.request(e,f),a.operation=h,
|
|
936
|
+
shaka.media.StreamingEngine.prototype.fetch_=function(a,b,c){var d=this,e,f,g,h,k,l,m;return $jscomp.asyncExecutePromiseGeneratorProgram(function(n){switch(n.nextAddress){case 1:return e=shaka.net.NetworkingEngine.RequestType.SEGMENT,f=shaka.util.Networking.createSegmentRequest(b.getUris(),b.startByte,b.endByte,d.config_.retryParameters,c),shaka.log.v2("fetching: reference=",b),g=a.stream,d.playerInterface_.modifySegmentRequest(f,{type:g.type,init:b instanceof shaka.media.InitSegmentReference,duration:b.endTime-
|
|
937
|
+
b.startTime,mimeType:g.mimeType,codecs:g.codecs,bandwidth:g.bandwidth}),h=d.playerInterface_.netEngine.request(e,f),a.operation=h,n.yield(h.promise,2);case 2:k=n.yieldResult;a.operation=null;l=k.data;if(!b.hlsAes128Key){n.jumpTo(3);break}m=a.segmentIterator;goog.asserts.assert(m,"mediaState.segmentIterator should exist");return n.yield(d.aes128Decrypt_(l,b.hlsAes128Key,m),4);case 4:l=n.yieldResult;case 3:return n.return(l)}})};
|
|
940
938
|
shaka.media.StreamingEngine.prototype.clearBuffer_=function(a,b,c){var d=this,e,f,g;return $jscomp.asyncExecutePromiseGeneratorProgram(function(h){if(1==h.nextAddress)return e=shaka.media.StreamingEngine.logPrefix_(a),goog.asserts.assert(!a.performingUpdate&&null==a.updateTimer,e+" unexpected call to clearBuffer_()"),a.waitingToClearBuffer=!1,a.waitingToFlushBuffer=!1,a.clearBufferSafeMargin=0,a.clearingBuffer=!0,a.lastSegmentReference=null,a.lastInitSegmentReference=null,a.segmentIterator=null,shaka.log.debug(e,
|
|
941
939
|
"clearing buffer"),c?(f=d.playerInterface_.getPresentationTime(),g=d.playerInterface_.mediaSourceEngine.getDuration(),h.yield(d.playerInterface_.mediaSourceEngine.remove(a.type,f+c,g),3)):h.yield(d.playerInterface_.mediaSourceEngine.clear(a.type),4);if(3!=h.nextAddress)return d.destroyer_.ensureNotDestroyed(),b?h.yield(d.playerInterface_.mediaSourceEngine.flush(a.type),3):h.jumpTo(3);d.destroyer_.ensureNotDestroyed();shaka.log.debug(e,"cleared buffer");a.clearingBuffer=!1;a.endOfStream=!1;a.performingUpdate||
|
|
942
940
|
a.updateTimer||d.scheduleUpdate_(a,0);h.jumpToEnd()})};
|
|
@@ -980,12 +978,14 @@ shaka.text.UITextDisplayer.prototype.getRegionElement_=function(a){var b=a.regio
|
|
|
980
978
|
b.viewportAnchorY+e;d.style.left=b.viewportAnchorX+e;d.style.display="flex";d.style.flexDirection="column";d.style.alignItems="center";d.style.justifyContent=a.displayAlign==shaka.text.Cue.displayAlign.BEFORE?"flex-start":a.displayAlign==shaka.text.Cue.displayAlign.CENTER?"center":"flex-end";this.regionElements_.set(c,d);return d};
|
|
981
979
|
shaka.text.UITextDisplayer.prototype.createCue_=function(a,b){var c=1<b.length,d=c?"span":"div";a.lineBreak&&(d="br");c=!c&&0<a.nestedCues.length;var e=shaka.util.Dom.createHTMLElement(d);"br"!=d&&this.setCaptionStyles_(e,a,b,c);b=null;a.region&&a.region.id&&(b=this.getRegionElement_(a));d=e;c&&(d=shaka.util.Dom.createHTMLElement("span"),d.classList.add("shaka-text-wrapper"),d.style.backgroundColor=a.backgroundColor,d.style.lineHeight="normal",e.appendChild(d));this.currentCuesMap_.set(a,{cueElement:e,
|
|
982
980
|
wrapper:d,regionElement:b})};
|
|
981
|
+
shaka.text.UITextDisplayer.prototype.computeCuePositionAlignment_=function(a){var b=shaka.text.Cue,c=a.direction,d=a.positionAlign;a=a.textAlign;return d!==b.positionAlign.AUTO?d:a===b.textAlign.LEFT||a===b.textAlign.START&&c===b.direction.HORIZONTAL_LEFT_TO_RIGHT||a===b.textAlign.END&&c===b.direction.HORIZONTAL_RIGHT_TO_LEFT?b.positionAlign.LEFT:a===b.textAlign.RIGHT||a===b.textAlign.START&&c===b.direction.HORIZONTAL_RIGHT_TO_LEFT||a===b.textAlign.END&&c===b.direction.HORIZONTAL_LEFT_TO_RIGHT?b.positionAlign.RIGHT:
|
|
982
|
+
b.positionAlign.CENTER};
|
|
983
983
|
shaka.text.UITextDisplayer.prototype.setCaptionStyles_=function(a,b,c,d){var e=shaka.text.Cue,f=a.style,g=0==b.nestedCues.length,h=1<c.length;f.whiteSpace="pre-wrap";var k=b.payload.replace(/\s+$/g,function(m){return"\u00a0".repeat(m.length)});f.webkitTextStrokeColor=b.textStrokeColor;f.webkitTextStrokeWidth=b.textStrokeWidth;f.color=b.color;f.direction=b.direction;f.opacity=b.opacity;f.paddingLeft=shaka.text.UITextDisplayer.convertLengthValue_(b.linePadding,b,this.videoContainer_);f.paddingRight=
|
|
984
984
|
shaka.text.UITextDisplayer.convertLengthValue_(b.linePadding,b,this.videoContainer_);f.textShadow=b.textShadow;if(b.backgroundImage)f.backgroundImage="url('"+b.backgroundImage+"')",f.backgroundRepeat="no-repeat",f.backgroundSize="contain",f.backgroundPosition="center",f.width="100%",f.height="100%";else{if(b.nestedCues.length)var l=a;else l=shaka.util.Dom.createHTMLElement("span"),a.appendChild(l);b.border&&(l.style.border=b.border);d||((a=shaka.text.UITextDisplayer.inheritProperty_(c,function(m){return m.backgroundColor}))?
|
|
985
985
|
l.style.backgroundColor=a:k&&(l.style.backgroundColor="rgba(0, 0, 0, 0.8)"));k&&(l.textContent=k)}h&&!c[c.length-1].isContainer?f.display="inline":(f.display="flex",f.flexDirection="column",f.alignItems="center",f.justifyContent=b.displayAlign==e.displayAlign.BEFORE?"flex-start":b.displayAlign==e.displayAlign.CENTER?"center":"flex-end");g||(f.margin="0");f.fontFamily=b.fontFamily;f.fontWeight=b.fontWeight.toString();f.fontStyle=b.fontStyle;f.letterSpacing=b.letterSpacing;f.fontSize=shaka.text.UITextDisplayer.convertLengthValue_(b.fontSize,
|
|
986
|
-
b,this.videoContainer_);null!=b.line&&b.lineInterpretation==e.lineInterpretation.PERCENTAGE&&(f.position="absolute",b.writingMode==e.writingMode.HORIZONTAL_TOP_TO_BOTTOM?(f.width="100%",b.lineAlign==e.lineAlign.START?f.top=b.line+"%":b.lineAlign==e.lineAlign.END&&(f.bottom=100-b.line+"%")):b.writingMode==e.writingMode.VERTICAL_LEFT_TO_RIGHT?(f.height="100%",b.lineAlign==e.lineAlign.START?f.left=b.line+"%":b.lineAlign==
|
|
987
|
-
f.right=b.line+"%":b.lineAlign==e.lineAlign.END&&(f.left=100-b.line+"%")));f.lineHeight=b.lineHeight;null!=b.position&&(b.writingMode==e.writingMode.HORIZONTAL_TOP_TO_BOTTOM?f.paddingLeft=b.position:f.paddingTop=b.position);b
|
|
988
|
-
(f.webkitWritingMode=b.writingMode);b.size&&(b.writingMode==e.writingMode.HORIZONTAL_TOP_TO_BOTTOM?f.width=b.size+"%":f.height=b.size+"%")};shaka.text.UITextDisplayer.getLengthValueInfo_=function(a){return(a=(new RegExp(/(\d*\.?\d+)([a-z]+|%+)/)).exec(a))?{value:Number(a[1]),unit:a[2]}:null};
|
|
986
|
+
b,this.videoContainer_);null!=b.line&&(c=b.lineInterpretation,0==b.line&&c==e.lineInterpretation.LINE_NUMBER&&(c=e.lineInterpretation.PERCENTAGE),c==e.lineInterpretation.PERCENTAGE&&(f.position="absolute",b.writingMode==e.writingMode.HORIZONTAL_TOP_TO_BOTTOM?(f.width="100%",b.lineAlign==e.lineAlign.START?f.top=b.line+"%":b.lineAlign==e.lineAlign.END&&(f.bottom=100-b.line+"%")):b.writingMode==e.writingMode.VERTICAL_LEFT_TO_RIGHT?(f.height="100%",b.lineAlign==e.lineAlign.START?f.left=b.line+"%":b.lineAlign==
|
|
987
|
+
e.lineAlign.END&&(f.right=100-b.line+"%")):(f.height="100%",b.lineAlign==e.lineAlign.START?f.right=b.line+"%":b.lineAlign==e.lineAlign.END&&(f.left=100-b.line+"%"))));f.lineHeight=b.lineHeight;null!=b.position&&(b.writingMode==e.writingMode.HORIZONTAL_TOP_TO_BOTTOM?f.paddingLeft=b.position:f.paddingTop=b.position);c=this.computeCuePositionAlignment_(b);c==e.positionAlign.LEFT?f.cssFloat="left":c==e.positionAlign.RIGHT&&(f.cssFloat="right");f.textAlign=b.textAlign;f.textDecoration=b.textDecoration.join(" ");
|
|
988
|
+
f.writingMode=b.writingMode;"writingMode"in document.documentElement.style&&f.writingMode==b.writingMode||(f.webkitWritingMode=b.writingMode);b.size&&(b.writingMode==e.writingMode.HORIZONTAL_TOP_TO_BOTTOM?f.width=b.size+"%":f.height=b.size+"%")};shaka.text.UITextDisplayer.getLengthValueInfo_=function(a){return(a=(new RegExp(/(\d*\.?\d+)([a-z]+|%+)/)).exec(a))?{value:Number(a[1]),unit:a[2]}:null};
|
|
989
989
|
shaka.text.UITextDisplayer.convertLengthValue_=function(a,b,c){var d=shaka.text.UITextDisplayer.getLengthValueInfo_(a);if(!d)return a;var e=d.value;switch(d.unit){case "%":return shaka.text.UITextDisplayer.getAbsoluteLengthInPixels_(e/100,b,c);case "c":return shaka.text.UITextDisplayer.getAbsoluteLengthInPixels_(e,b,c);default:return a}};shaka.text.UITextDisplayer.getAbsoluteLengthInPixels_=function(a,b,c){return c.clientHeight*a/b.cellResolution.rows+"px"};
|
|
990
990
|
shaka.text.UITextDisplayer.inheritProperty_=function(a,b){for(var c=a.length-1;0<=c;c--){var d=b(a[c]);if(d||0===d)return d}return null};goog.exportSymbol("shaka.text.UITextDisplayer",shaka.text.UITextDisplayer);goog.exportProperty(shaka.text.UITextDisplayer.prototype,"setTextVisibility",shaka.text.UITextDisplayer.prototype.setTextVisibility);goog.exportProperty(shaka.text.UITextDisplayer.prototype,"isTextVisible",shaka.text.UITextDisplayer.prototype.isTextVisible);
|
|
991
991
|
goog.exportProperty(shaka.text.UITextDisplayer.prototype,"remove",shaka.text.UITextDisplayer.prototype.remove);goog.exportProperty(shaka.text.UITextDisplayer.prototype,"destroy",shaka.text.UITextDisplayer.prototype.destroy);goog.exportProperty(shaka.text.UITextDisplayer.prototype,"append",shaka.text.UITextDisplayer.prototype.append);shaka.text.WebVttGenerator=function(){};
|
|
@@ -1001,8 +1001,8 @@ shaka.util.CmcdManager.prototype.createData_=function(){this.sid_||(this.sid_=th
|
|
|
1001
1001
|
shaka.util.CmcdManager.prototype.apply_=function(a,b,c){b=void 0===b?{}:b;c=void 0===c?this.config_.useHeaders:c;if(this.config_.enabled){Object.assign(b,this.createData_());b.pr=this.playerInterface_.getPlaybackRate();var d=b.ot===shaka.util.CmcdManager.ObjectType.VIDEO||b.ot===shaka.util.CmcdManager.ObjectType.MUXED;this.starved_&&d&&(b.bs=!0,b.su=!0,this.starved_=!1);null==b.su&&(b.su=this.buffering_);if(c)b=shaka.util.CmcdManager.toHeaders(b),Object.keys(b).length&&Object.assign(a.headers,b);
|
|
1002
1002
|
else{var e=shaka.util.CmcdManager.toQuery(b);e&&(a.uris=a.uris.map(function(f){return shaka.util.CmcdManager.appendQueryToUri(f,e)}))}}};
|
|
1003
1003
|
shaka.util.CmcdManager.prototype.getObjectType_=function(a){var b=a.type;if(a.init)return shaka.util.CmcdManager.ObjectType.INIT;if("video"==b)return a.codecs.includes(",")?shaka.util.CmcdManager.ObjectType.MUXED:shaka.util.CmcdManager.ObjectType.VIDEO;if("audio"==b)return shaka.util.CmcdManager.ObjectType.AUDIO;if("text"==b)return"application/mp4"===a.mimeType?shaka.util.CmcdManager.ObjectType.TIMED_TEXT:shaka.util.CmcdManager.ObjectType.CAPTION};
|
|
1004
|
-
shaka.util.CmcdManager.prototype.getObjectTypeFromMimeType_=function(a){switch(a){case "video/webm":case "video/mp4":return shaka.util.CmcdManager.ObjectType.MUXED;case "application/x-mpegurl":
|
|
1005
|
-
shaka.util.CmcdManager.prototype.getStreamType_=function(){return this.playerInterface_.isLive()?shaka.util.CmcdManager.StreamType.LIVE:shaka.util.CmcdManager.StreamType.VOD};
|
|
1004
|
+
shaka.util.CmcdManager.prototype.getObjectTypeFromMimeType_=function(a){switch(a.toLowerCase()){case "video/webm":case "video/mp4":case "video/mpeg":case "video/mp2t":return shaka.util.CmcdManager.ObjectType.MUXED;case "application/x-mpegurl":case "application/vnd.apple.mpegurl":case "application/dash+xml":case "video/vnd.mpeg.dash.mpd":return shaka.util.CmcdManager.ObjectType.MANIFEST}};
|
|
1005
|
+
shaka.util.CmcdManager.prototype.getBufferLength_=function(a){a=this.playerInterface_.getBufferedInfo()[a];if(!a.length)return NaN;var b=this.playerInterface_.getCurrentTime();return(a=a.find(function(c){return c.start<=b&&c.end>=b}))?1E3*(a.end-b):NaN};shaka.util.CmcdManager.prototype.getStreamType_=function(){return this.playerInterface_.isLive()?shaka.util.CmcdManager.StreamType.LIVE:shaka.util.CmcdManager.StreamType.VOD};
|
|
1006
1006
|
shaka.util.CmcdManager.prototype.getTopBandwidth_=function(a){var b=this.playerInterface_.getVariantTracks();if(!b.length)return NaN;var c=b[0];b=$jscomp.makeIterator(b);for(var d=b.next();!d.done;d=b.next())d=d.value,"variant"===d.type&&d.bandwidth>c.bandwidth&&(c=d);b=shaka.util.CmcdManager.ObjectType;switch(a){case b.VIDEO:return c.videoBandwidth||NaN;case b.AUDIO:return c.audioBandwidth||NaN;default:return c.bandwidth}};
|
|
1007
1007
|
shaka.util.CmcdManager.serialize=function(a){var b=[],c=function(m){return!Number.isNaN(m)&&null!=m&&""!==m&&!1!==m},d=function(m){return Math.round(m)},e=function(m){return 100*d(m/100)};e={br:d,d:d,bl:e,dl:e,mtp:e,nor:function(m){return encodeURIComponent(m)},rtp:e,tb:d};var f=Object.keys(a||{}).sort();f=$jscomp.makeIterator(f);for(var g=f.next();!g.done;g=f.next()){g=g.value;var h=a[g];if(c(h)&&("v"!==g||1!==h)&&("pr"!=g||1!==h)){var k=e[g];k&&(h=k(h));k=typeof h;var l=void 0;l="string"===k&&"ot"!==
|
|
1008
1008
|
g&&"sf"!==g&&"st"!==g?g+"="+JSON.stringify(h):"boolean"===k?g:"symbol"===k?g+"="+h.description:g+"="+h;b.push(l)}}return b.join(",")};
|
|
@@ -1024,9 +1024,9 @@ shaka.util.FairPlayUtils.commonFairPlayResponse=function(a,b){if(a===shaka.net.N
|
|
|
1024
1024
|
goog.exportSymbol("shaka.util.FairPlayUtils",shaka.util.FairPlayUtils);goog.exportProperty(shaka.util.FairPlayUtils,"commonFairPlayResponse",shaka.util.FairPlayUtils.commonFairPlayResponse);goog.exportProperty(shaka.util.FairPlayUtils,"conaxFairPlayRequest",shaka.util.FairPlayUtils.conaxFairPlayRequest);goog.exportProperty(shaka.util.FairPlayUtils,"ezdrmFairPlayRequest",shaka.util.FairPlayUtils.ezdrmFairPlayRequest);goog.exportProperty(shaka.util.FairPlayUtils,"verimatrixFairPlayRequest",shaka.util.FairPlayUtils.verimatrixFairPlayRequest);
|
|
1025
1025
|
goog.exportProperty(shaka.util.FairPlayUtils,"conaxInitDataTransform",shaka.util.FairPlayUtils.conaxInitDataTransform);goog.exportProperty(shaka.util.FairPlayUtils,"ezdrmInitDataTransform",shaka.util.FairPlayUtils.ezdrmInitDataTransform);goog.exportProperty(shaka.util.FairPlayUtils,"verimatrixInitDataTransform",shaka.util.FairPlayUtils.verimatrixInitDataTransform);goog.exportProperty(shaka.util.FairPlayUtils,"initDataTransform",shaka.util.FairPlayUtils.initDataTransform);
|
|
1026
1026
|
goog.exportProperty(shaka.util.FairPlayUtils,"defaultGetContentId",shaka.util.FairPlayUtils.defaultGetContentId);goog.exportProperty(shaka.util.FairPlayUtils,"isFairPlaySupported",shaka.util.FairPlayUtils.isFairPlaySupported);shaka.util.PlayerConfiguration=function(){};
|
|
1027
|
-
shaka.util.PlayerConfiguration.createDefault=function(){var a=Infinity;navigator.connection&&navigator.connection.saveData&&(a=360);var b={retryParameters:shaka.net.NetworkingEngine.defaultRetryParameters(),servers:{},clearKeys:{},advanced:{},delayLicenseRequestUntilPlayed:!1,initDataTransform:function(g,h,k){
|
|
1028
|
-
updateExpirationTime:1,preferredKeySystems:[],keySystemsMapping:{},parseInbandPsshEnabled:shaka.util.Platform.isXboxOne()},c={retryParameters:shaka.net.NetworkingEngine.defaultRetryParameters(),availabilityWindowOverride:NaN,disableAudio:!1,disableVideo:!1,disableText:!1,disableThumbnails:!1,defaultPresentationDelay:0,segmentRelativeVttTiming:!1,dash:{clockSyncUri:"",ignoreDrmInfo:!1,disableXlinkProcessing:!1,xlinkFailGracefully:!1,ignoreMinBufferTime:!1,autoCorrectDrift:!0,
|
|
1029
|
-
ignoreSuggestedPresentationDelay:!1,ignoreEmptyAdaptationSet:!1,ignoreMaxSegmentDuration:!1,keySystemsByURI:{"urn:uuid:1077efec-c0b2-4d02-ace3-3c1e52e2fb4b":"org.w3.clearkey","urn:uuid:e2719d58-a985-b3c9-781a-b030af78d30e":"org.w3.clearkey","urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed":"com.widevine.alpha","urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95":"com.microsoft.playready","urn:uuid:79f0049a-4098-8642-ab92-e65be0885f95":"com.microsoft.playready","urn:uuid:f239e769-efa3-4850-9c16-a903c6932efb":"com.adobe.primetime"},
|
|
1027
|
+
shaka.util.PlayerConfiguration.createDefault=function(){var a=Infinity;navigator.connection&&navigator.connection.saveData&&(a=360);var b={retryParameters:shaka.net.NetworkingEngine.defaultRetryParameters(),servers:{},clearKeys:{},advanced:{},delayLicenseRequestUntilPlayed:!1,initDataTransform:function(g,h,k){shaka.util.Platform.isMediaKeysPolyfilled()&&"skd"==h&&(h=k.serverCertificate,k=shaka.util.FairPlayUtils.defaultGetContentId(g),g=shaka.util.FairPlayUtils.initDataTransform(g,k,h));return g},
|
|
1028
|
+
logLicenseExchange:!1,updateExpirationTime:1,preferredKeySystems:[],keySystemsMapping:{},parseInbandPsshEnabled:shaka.util.Platform.isXboxOne()},c={retryParameters:shaka.net.NetworkingEngine.defaultRetryParameters(),availabilityWindowOverride:NaN,disableAudio:!1,disableVideo:!1,disableText:!1,disableThumbnails:!1,defaultPresentationDelay:0,segmentRelativeVttTiming:!1,dash:{clockSyncUri:"",ignoreDrmInfo:!1,disableXlinkProcessing:!1,xlinkFailGracefully:!1,ignoreMinBufferTime:!1,autoCorrectDrift:!0,
|
|
1029
|
+
initialSegmentLimit:1E3,ignoreSuggestedPresentationDelay:!1,ignoreEmptyAdaptationSet:!1,ignoreMaxSegmentDuration:!1,keySystemsByURI:{"urn:uuid:1077efec-c0b2-4d02-ace3-3c1e52e2fb4b":"org.w3.clearkey","urn:uuid:e2719d58-a985-b3c9-781a-b030af78d30e":"org.w3.clearkey","urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed":"com.widevine.alpha","urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95":"com.microsoft.playready","urn:uuid:79f0049a-4098-8642-ab92-e65be0885f95":"com.microsoft.playready","urn:uuid:f239e769-efa3-4850-9c16-a903c6932efb":"com.adobe.primetime"},
|
|
1030
1030
|
manifestPreprocessor:function(g){return shaka.util.ConfigUtils.referenceParametersAndReturn([g],g)},sequenceMode:!1},hls:{ignoreTextStreamFailures:!1,ignoreImageStreamFailures:!1,defaultAudioCodec:"mp4a.40.2",defaultVideoCodec:"avc1.42E01E",ignoreManifestProgramDateTime:!1,mediaPlaylistFullMimeType:'video/mp2t; codecs="avc1.42E01E, mp4a.40.2"',useSafariBehaviorForLive:!0,liveSegmentsDelay:3}},d={retryParameters:shaka.net.NetworkingEngine.defaultRetryParameters(),failureCallback:function(g){shaka.log.error("Unhandled streaming error",
|
|
1031
1031
|
g);return shaka.util.ConfigUtils.referenceParametersAndReturn([g],void 0)},rebufferingGoal:2,bufferingGoal:10,bufferBehind:30,ignoreTextStreamFailures:!1,alwaysStreamText:!1,startAtSegmentBoundary:!1,gapDetectionThreshold:.5,durationBackoff:1,forceTransmux:!1,safeSeekOffset:5,stallEnabled:!0,stallThreshold:1,stallSkip:.1,useNativeHlsOnSafari:!0,inaccurateManifestTolerance:2,lowLatencyMode:!1,autoLowLatencyMode:!1,forceHTTPS:!1,preferNativeHls:!1,updateIntervalSeconds:1,dispatchAllEmsgBoxes:!1,observeQualityChanges:!1,
|
|
1032
1032
|
maxDisabledTime:30,parsePrftBox:!1};if(shaka.util.Platform.isWebOS()||shaka.util.Platform.isTizen()||shaka.util.Platform.isChromecast())d.stallSkip=0;var e={trackSelectionCallback:function(g){return $jscomp.asyncExecutePromiseGeneratorProgram(function(h){return h.return(g)})},downloadSizeCallback:function(g){var h;return $jscomp.asyncExecutePromiseGeneratorProgram(function(k){if(1==k.nextAddress)return navigator.storage&&navigator.storage.estimate?k.yield(navigator.storage.estimate(),3):k.return(!0);
|
|
@@ -1094,15 +1094,15 @@ c.dispatchEvent(h);if(0==c.manifest_.variants.length)throw new shaka.util.Error(
|
|
|
1094
1094
|
shaka.Player.prototype.onInitializeDrm_=function(a,b){var c=this,d,e;return $jscomp.asyncExecutePromiseGeneratorProgram(function(f){return 1==f.nextAddress?(goog.asserts.assert(a.mimeType==b.mimeType,"The load graph should have ensured the mime types matched."),goog.asserts.assert(a.uri==b.uri,"The load graph should have ensured the uris matched"),goog.asserts.assert(c.networkingEngine_,"|onInitializeDrm_| should never be called after |destroy|"),goog.asserts.assert(c.config_,"|onInitializeDrm_| should never be called after |destroy|"),
|
|
1095
1095
|
goog.asserts.assert(c.manifest_,"|this.manifest_| should have been set in an earlier step."),goog.asserts.assert(a.mediaElement,"We should have a media element when initializing the DRM Engine."),d=Date.now()/1E3,e=!0,c.drmEngine_=c.createDrmEngine({netEngine:c.networkingEngine_,onError:function(g){c.onError_(g)},onKeyStatus:function(g){c.onKeyStatus_(g)},onExpirationUpdated:function(g,h){c.onExpirationUpdated_(g,h)},onEvent:function(g){c.dispatchEvent(g);g.type==shaka.util.FakeEvent.EventName.DrmSessionUpdate&&
|
|
1096
1096
|
e&&(e=!1,g=Date.now()/1E3-d,c.stats_.setDrmTime(g),c.lcevcDil_&&c.lcevcDil_.hideCanvas())}}),c.drmEngine_.configure(c.config_.drm),f.yield(c.drmEngine_.initForPlayback(c.manifest_.variants,c.manifest_.offlineSessionIds),2)):3!=f.nextAddress?f.yield(c.drmEngine_.attach(a.mediaElement),3):f.yield(c.filterManifest_(c.manifest_),0)})};
|
|
1097
|
-
shaka.Player.prototype.onLoad_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,v,
|
|
1098
|
-
"|wants| should tell us when the load was originally requested");a.startTime=b.startTime;null!=c.updatedStartTime_&&(a.startTime=c.updatedStartTime_,c.updatedStartTime_=null);d=a.mediaElement;e=a.uri;c.assetUri_=e;c.playRateController_=new shaka.media.PlayRateController({getRate:function(){return d.playbackRate},getDefaultRate:function(){return d.defaultPlaybackRate},setRate:function(
|
|
1097
|
+
shaka.Player.prototype.onLoad_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,u,v,w,y,t,x;return $jscomp.asyncExecutePromiseGeneratorProgram(function(A){switch(A.nextAddress){case 1:goog.asserts.assert(a.mimeType==b.mimeType,"|has| and |wants| should have the same mime type when loading.");goog.asserts.assert(a.uri==b.uri,"|has| and |wants| should have the same uri when loading.");goog.asserts.assert(a.mediaElement,"We should have a media element when loading.");goog.asserts.assert(!isNaN(b.startTimeOfLoad),
|
|
1098
|
+
"|wants| should tell us when the load was originally requested");a.startTime=b.startTime;null!=c.updatedStartTime_&&(a.startTime=c.updatedStartTime_,c.updatedStartTime_=null);d=a.mediaElement;e=a.uri;c.assetUri_=e;c.playRateController_=new shaka.media.PlayRateController({getRate:function(){return d.playbackRate},getDefaultRate:function(){return d.defaultPlaybackRate},setRate:function(z){d.playbackRate=z},movePlayhead:function(z){d.currentTime+=z}});f=function(){return c.updateStateHistory_()};g=function(){return c.onRateChange_()};
|
|
1099
1099
|
c.loadEventManager_.listen(d,"playing",f);c.loadEventManager_.listen(d,"pause",f);c.loadEventManager_.listen(d,"ended",f);c.loadEventManager_.listen(d,"ratechange",g);c.setupLcevc_(c.config_);h=c.config_.abrFactory;c.abrManager_&&c.abrManagerFactory_==h||(c.abrManagerFactory_=h,c.abrManager_=h(),"function"!=typeof c.abrManager_.setMediaElement&&(shaka.Deprecate.deprecateFeature(5,"AbrManager","Please use an AbrManager with setMediaElement function."),c.abrManager_.setMediaElement=function(){}),c.abrManager_.configure(c.config_.abr));
|
|
1100
|
-
c.currentAdaptationSetCriteria_=new shaka.media.PreferenceBasedCriteria(c.config_.preferredAudioLanguage,c.config_.preferredVariantRole,c.config_.preferredAudioChannelCount);c.currentTextLanguage_=c.config_.preferredTextLanguage;c.currentTextRole_=c.config_.preferredTextRole;c.currentTextForced_=c.config_.preferForcedSubs;shaka.Player.applyPlayRange_(c.manifest_.presentationTimeline,c.config_.playRangeStart,c.config_.playRangeEnd);c.abrManager_.init(function(
|
|
1101
|
-
shaka.util.StreamUtils.chooseCodecsAndFilterManifest(c.manifest_,c.config_.preferredVideoCodecs,c.config_.preferredAudioCodecs,c.config_.preferredAudioChannelCount,c.config_.preferredDecodingAttributes);c.streamingEngine_=c.createStreamingEngine();c.streamingEngine_.configure(c.config_.streaming);c.loadMode_=shaka.Player.LoadMode.MEDIA_SOURCE;d.textTracks&&c.loadEventManager_.listen(d.textTracks,"addtrack",function(
|
|
1102
|
-
|
|
1103
|
-
c.config_.playRangeStart,c.config_.playRangeEnd);c.playhead_=c.createPlayhead(a.startTime);c.playheadObservers_=c.createPlayheadObserversForMSE_(a.startTimeOfLoad);
|
|
1104
|
-
|
|
1105
|
-
x=c.manifest_.variants.some(function(
|
|
1100
|
+
c.currentAdaptationSetCriteria_=new shaka.media.PreferenceBasedCriteria(c.config_.preferredAudioLanguage,c.config_.preferredVariantRole,c.config_.preferredAudioChannelCount);c.currentTextLanguage_=c.config_.preferredTextLanguage;c.currentTextRole_=c.config_.preferredTextRole;c.currentTextForced_=c.config_.preferForcedSubs;shaka.Player.applyPlayRange_(c.manifest_.presentationTimeline,c.config_.playRangeStart,c.config_.playRangeEnd);c.abrManager_.init(function(z,B,D){return c.switch_(z,B,D)});c.abrManager_.setMediaElement(d);
|
|
1101
|
+
shaka.util.StreamUtils.chooseCodecsAndFilterManifest(c.manifest_,c.config_.preferredVideoCodecs,c.config_.preferredAudioCodecs,c.config_.preferredAudioChannelCount,c.config_.preferredDecodingAttributes);c.streamingEngine_=c.createStreamingEngine();c.streamingEngine_.configure(c.config_.streaming);c.loadMode_=shaka.Player.LoadMode.MEDIA_SOURCE;d.textTracks&&c.loadEventManager_.listen(d.textTracks,"addtrack",function(z){if(z.track)switch(z=z.track,goog.asserts.assert(z instanceof TextTrack,"Wrong track type!"),
|
|
1102
|
+
z.kind){case "chapters":c.activateChaptersTrack_(z)}});c.dispatchEvent(c.makeEvent_(shaka.util.FakeEvent.EventName.Streaming));k=null;l=c.streamingEngine_.getCurrentVariant();l||(k=c.chooseVariant_(),goog.asserts.assert(k,"Must choose an initial variant!"));m=[];n=l||k;p=$jscomp.makeIterator([n.video,n.audio]);for(q=p.next();!q.done;q=p.next())(r=q.value)&&!r.segmentIndex&&m.push(r.createSegmentIndex());if(!(0<m.length)){A.jumpTo(2);break}return A.yield(Promise.all(m),2);case 2:shaka.Player.applyPlayRange_(c.manifest_.presentationTimeline,
|
|
1103
|
+
c.config_.playRangeStart,c.config_.playRangeEnd);c.playhead_=c.createPlayhead(a.startTime);c.playheadObservers_=c.createPlayheadObserversForMSE_(a.startTimeOfLoad);u=Math.max(c.manifest_.minBufferTime,c.config_.streaming.rebufferingGoal);c.startBufferManagement_(u);if(l){A.jumpTo(4);break}goog.asserts.assert(k,"Must have choosen an initial variant!");c.switchVariant_(k,!0,!1,0);if(!c.config_.streaming.startAtSegmentBoundary){A.jumpTo(4);break}v=c.playhead_.getTime();return A.yield(c.adjustStartTime_(k,
|
|
1104
|
+
v),6);case 6:w=A.yieldResult,c.playhead_.setStartTime(w);case 4:return c.playhead_.ready(),y=c.getTextTracks().find(function(z){return z.active}),y||((t=c.chooseTextStream_())&&c.addTextStreamToSwitchHistory_(t,!0),k&&c.setInitialTextState_(k,t),t&&c.shouldStreamText_()&&c.streamingEngine_.switchTextStream(t)),A.yield(c.streamingEngine_.start(),7);case 7:c.config_.abr.enabled&&(c.abrManager_.enable(),c.onAbrStatusChanged_()),c.filterManifestByCurrentVariant_(),c.onTracksChanged_(),c.updateAbrManagerVariants_(),
|
|
1105
|
+
x=c.manifest_.variants.some(function(z){return z.primary}),c.config_.preferredAudioLanguage||x||shaka.log.warning("No preferred audio language set. We have chosen an arbitrary language initially"),c.fullyLoaded_=!0,c.loadEventManager_.listenOnce(d,"loadedmetadata",function(){var z=Date.now()/1E3-b.startTimeOfLoad;c.stats_.setLoadLatency(z)}),A.jumpToEnd()}})};
|
|
1106
1106
|
shaka.Player.prototype.onInitializeSrcEqualsDrm_=function(a,b){var c=this,d,e,f,g,h,k,l;return $jscomp.asyncExecutePromiseGeneratorProgram(function(m){return 1==m.nextAddress?(d=shaka.util.ManifestParserUtils.ContentType,goog.asserts.assert(c.networkingEngine_,"|onInitializeSrcEqualsDrm_| should never be called after |destroy|"),goog.asserts.assert(c.config_,"|onInitializeSrcEqualsDrm_| should never be called after |destroy|"),e=Date.now()/1E3,f=!0,c.drmEngine_=c.createDrmEngine({netEngine:c.networkingEngine_,
|
|
1107
1107
|
onError:function(n){c.onError_(n)},onKeyStatus:function(n){c.onKeyStatus_(n)},onExpirationUpdated:function(n,p){c.onExpirationUpdated_(n,p)},onEvent:function(n){c.dispatchEvent(n);n.type==shaka.util.FakeEvent.EventName.DrmSessionUpdate&&f&&(f=!1,n=Date.now()/1E3-e,c.stats_.setDrmTime(n))}}),c.drmEngine_.configure(c.config_.drm),g=b.uri||"",h=shaka.media.ManifestParser.getExtension(g),k=shaka.Player.SRC_EQUAL_EXTENSIONS_TO_MIME_TYPES_[h],"application/x-mpegurl"==k&&shaka.util.Platform.isApple()&&(k=
|
|
1108
1108
|
"application/vnd.apple.mpegurl"),k||(k="video/mp4"),l={id:0,language:"und",disabledUntilTime:0,primary:!1,audio:null,video:{id:0,originalId:null,createSegmentIndex:function(){return Promise.resolve()},segmentIndex:null,mimeType:b.mimeType?shaka.util.MimeUtils.getBasicType(b.mimeType):k,codecs:b.mimeType?shaka.util.MimeUtils.getCodecs(b.mimeType):"",encrypted:!0,drmInfos:[],keyIds:new Set,language:"und",label:null,type:d.VIDEO,primary:!1,trickModeVideo:null,emsgSchemeIdUris:null,roles:[],forced:!1,
|
|
@@ -1115,7 +1115,7 @@ this.loadEventManager_.listen(d,"playing",f);this.loadEventManager_.listen(d,"pa
|
|
|
1115
1115
|
shaka.util.MediaReadyState.waitForReadyState(d,HTMLMediaElement.HAVE_METADATA,this.loadEventManager_,function(){c.playhead_.ready();g.resolve()});shaka.util.MediaReadyState.waitForReadyState(d,HTMLMediaElement.HAVE_CURRENT_DATA,this.loadEventManager_,function(){var h;return $jscomp.asyncExecutePromiseGeneratorProgram(function(k){if(1==k.nextAddress)return c.setupPreferredAudioOnSrc_(),h=c.getFilteredTextTracks_(),h.find(function(l){return"disabled"!=l.mode})?(0<h.length&&(c.isTextVisible_=!0),k.jumpTo(2)):
|
|
1116
1116
|
k.yield(new Promise(function(l){c.loadEventManager_.listenOnce(d.textTracks,"change",l);(new shaka.util.Timer(l)).tickAfter(1)}),2);if(e)return k.return();c.setupPreferredTextOnSrc_();k.jumpToEnd()})});d.error?g.reject(this.videoErrorToShakaError_()):"none"==d.preload&&(shaka.log.alwaysWarn('With <video preload="none">, the browser will not load anything until play() is called. We are unable to measure load latency in a meaningful way, and we cannot provide track info yet. Please do not use preload="none" with Shaka Player.'),
|
|
1117
1117
|
g.resolve());this.loadEventManager_.listenOnce(d,"error",function(){g.reject(c.videoErrorToShakaError_())});return(new shaka.util.AbortableOperation(g,function(){var h=new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.PLAYER,shaka.util.Error.Code.OPERATION_ABORTED);g.reject(h);return Promise.resolve()})).chain(function(){c.fullyLoaded_=!0})};
|
|
1118
|
-
shaka.Player.prototype.setupPreferredAudioOnSrc_=function(){var a=this.config_.preferredAudioLanguage;
|
|
1118
|
+
shaka.Player.prototype.setupPreferredAudioOnSrc_=function(){var a=this.config_.preferredAudioLanguage;""!=a&&this.selectAudioLanguage(a,this.config_.preferredVariantRole)};shaka.Player.prototype.setupPreferredTextOnSrc_=function(){var a=this.config_.preferredTextLanguage;""!=a&&this.selectTextLanguage(a,this.config_.preferredTextRole,this.config_.preferForcedSubs)};
|
|
1119
1119
|
shaka.Player.prototype.processTimedMetadataSrcEqls_=function(a){var b=this;if("metadata"==a.kind){a.mode="hidden";this.loadEventManager_.listen(a,"cuechange",function(){if(a.activeCues)for(var d=$jscomp.makeIterator(a.activeCues),e=d.next();!e.done;e=d.next())if(e=e.value,b.dispatchMetadataEvent_(e.startTime,e.endTime,e.type,e.value),b.adManager_)b.adManager_.onCueMetadataChange(e.value)});var c=(new shaka.util.Timer(function(){var d=b.getMetadataTracks_();d=$jscomp.makeIterator(d);for(var e=d.next();!e.done;e=
|
|
1120
1120
|
d.next())e.value.mode="hidden"})).tickNow().tickAfter(.5);this.cleanupOnUnload_.push(function(){c.stop()})}};shaka.Player.prototype.processTimedMetadataMediaSrc_=function(a,b,c){a=$jscomp.makeIterator(a);for(var d=a.next();!d.done;d=a.next())if(d=d.value,d.data&&d.cueTime&&d.frames){var e=d.cueTime+b,f=c;f&&e>f&&(f=e);for(var g=$jscomp.makeIterator(d.frames),h=g.next();!h.done;h=g.next())this.dispatchMetadataEvent_(e,f,"org.id3",h.value);if(this.adManager_)this.adManager_.onHlsTimedMetadata(d,e)}};
|
|
1121
1121
|
shaka.Player.prototype.dispatchMetadataEvent_=function(a,b,c,d){goog.asserts.assert(!b||a<=b,"Metadata start time should be less or equal to the end time!");var e=shaka.util.FakeEvent.EventName.Metadata;a=(new Map).set("startTime",a).set("endTime",b).set("metadataType",c).set("payload",d);this.dispatchEvent(this.makeEvent_(e,a))};
|
|
@@ -1152,19 +1152,18 @@ shaka.Player.prototype.getVariantTracks=function(){if(this.manifest_){for(var a=
|
|
|
1152
1152
|
return b}return this.video_&&this.video_.audioTracks?Array.from(this.video_.audioTracks).map(function(g){return shaka.util.StreamUtils.html5AudioTrackToTrack(g)}):[]};
|
|
1153
1153
|
shaka.Player.prototype.getTextTracks=function(){if(this.manifest_){for(var a=this.streamingEngine_?this.streamingEngine_.getCurrentTextStream():null,b=[],c=$jscomp.makeIterator(this.manifest_.textStreams),d=c.next();!d.done;d=c.next()){d=d.value;var e=shaka.util.StreamUtils.textStreamToTrack(d);e.active=d==a;b.push(e)}return b}if(this.video_&&this.video_.src&&this.video_.textTracks){a=this.getFilteredTextTracks_();var f=shaka.util.StreamUtils;return a.map(function(g){return f.html5TextTrackToTrack(g)})}return[]};
|
|
1154
1154
|
shaka.Player.prototype.getImageTracks=function(){if(this.manifest_){var a=shaka.util.StreamUtils;return this.manifest_.imageStreams.map(function(b){return a.imageStreamToTrack(b)})}return[]};
|
|
1155
|
-
shaka.Player.prototype.getThumbnails=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,v,
|
|
1156
|
-
if(!h)return shaka.log.warning("Tiles layout does not contain a valid format (columns x rows)"),B.return(null);k=d.width||0;l=d.height||0;m=parseInt(h[1],10);n=parseInt(h[2],10);p=k/m;q=l/n;r=m*n;
|
|
1157
|
-
positionY:t,startTime:w,duration:
|
|
1155
|
+
shaka.Player.prototype.getThumbnails=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,u,v,w,y,t,x,A,z;return $jscomp.asyncExecutePromiseGeneratorProgram(function(B){if(1==B.nextAddress)return c.manifest_?(d=c.manifest_.imageStreams.find(function(D){return D.id==a}))?d.segmentIndex?B.jumpTo(3):B.yield(d.createSegmentIndex(),3):B.return(null):B.jumpTo(2);if(2!=B.nextAddress){e=d.segmentIndex.find(b);if(null==e)return B.return(null);f=d.segmentIndex.get(e);g=f.getTilesLayout()||d.tilesLayout;h=/(\d+)x(\d+)/.exec(g);
|
|
1156
|
+
if(!h)return shaka.log.warning("Tiles layout does not contain a valid format (columns x rows)"),B.return(null);k=d.width||0;l=d.height||0;m=parseInt(h[1],10);n=parseInt(h[2],10);p=k/m;q=l/n;r=m*n;u=f.trueEndTime-f.startTime;v=f.getTileDuration()||u/r;w=f.startTime;t=y=0;1<r&&(x=Math.floor((b-f.startTime)/v),w=f.startTime+x*v,y=x%m*p,t=Math.floor(x/m)*q);A=!1;if(z=f.getThumbnailSprite())A=!0,q=z.height,y=z.positionX,t=z.positionY,p=z.width;return B.return({imageHeight:l,imageWidth:k,height:q,positionX:y,
|
|
1157
|
+
positionY:t,startTime:w,duration:v,uris:f.getUris(),width:p,sprite:A})}return B.return(null)})};
|
|
1158
1158
|
shaka.Player.prototype.selectTextTrack=function(a){if(this.manifest_&&this.streamingEngine_){var b=this.manifest_.textStreams.find(function(d){return d.id==a.id});b?b==this.streamingEngine_.getCurrentTextStream()?shaka.log.debug("Text track already selected."):(this.addTextStreamToSwitchHistory_(b,!1),this.streamingEngine_.switchTextStream(b),this.onTextChanged_(),this.currentTextLanguage_=b.language):shaka.log.error("No stream with id",a.id)}else if(this.video_&&this.video_.src&&this.video_.textTracks){b=
|
|
1159
1159
|
this.getFilteredTextTracks_();b=$jscomp.makeIterator(b);for(var c=b.next();!c.done;c=b.next())c=c.value,shaka.util.StreamUtils.html5TrackId(c)==a.id?c.mode=this.isTextVisible_?"showing":"hidden":c.mode="disabled";this.onTextChanged_()}};
|
|
1160
1160
|
shaka.Player.prototype.selectVariantTrack=function(a,b,c){b=void 0===b?!1:b;c=void 0===c?0:c;if(this.manifest_&&this.streamingEngine_){this.config_.abr.enabled&&shaka.log.alwaysWarn("Changing tracks while abr manager is enabled will likely result in the selected track being overriden. Consider disabling abr before calling selectVariantTrack().");var d=this.manifest_.variants.find(function(e){return e.id==a.id});d?shaka.util.StreamUtils.isPlayable(d)?(this.switchVariant_(d,!1,b,c),this.currentAdaptationSetCriteria_=
|
|
1161
1161
|
new shaka.media.ExampleBasedCriteria(d),this.updateAbrManagerVariants_()):shaka.log.error("Unable to switch to restricted track",a.id):shaka.log.error("No variant with id",a.id)}else if(this.video_&&this.video_.audioTracks)for(b=Array.from(this.video_.audioTracks),b=$jscomp.makeIterator(b),c=b.next();!c.done;c=b.next())if(c=c.value,shaka.util.StreamUtils.html5TrackId(c)==a.id){this.switchHtml5Track_(c);break}};shaka.Player.prototype.getAudioLanguagesAndRoles=function(){return shaka.Player.getLanguageAndRolesFrom_(this.getVariantTracks())};
|
|
1162
1162
|
shaka.Player.prototype.getTextLanguagesAndRoles=function(){return shaka.Player.getLanguageAndRolesFrom_(this.getTextTracks())};shaka.Player.prototype.getAudioLanguages=function(){return Array.from(shaka.Player.getLanguagesFrom_(this.getVariantTracks()))};shaka.Player.prototype.getTextLanguages=function(){return Array.from(shaka.Player.getLanguagesFrom_(this.getTextTracks()))};
|
|
1163
|
-
shaka.Player.prototype.selectAudioLanguage=function(a,b,c){c=void 0===c?0:c;
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
(a=this.getTextTracks().find(function(f){return d.normalize(f.language)==e&&(!b||f.roles.includes(b))&&f.forced==c}))&&this.selectTextTrack(a)}};
|
|
1163
|
+
shaka.Player.prototype.selectAudioLanguage=function(a,b,c){c=void 0===c?0:c;if(this.manifest_&&this.playhead_){this.currentAdaptationSetCriteria_=new shaka.media.PreferenceBasedCriteria(a,b||"",c,"");a=function(f,g){return f.video||g.video?f.video&&g.video?Math.abs((f.video.height||0)-(g.video.height||0))+Math.abs((f.video.width||0)-(g.video.width||0)):Infinity:0};b=this.streamingEngine_.getCurrentVariant();var d=this.currentAdaptationSetCriteria_.create(this.manifest_.variants);c=null;d=$jscomp.makeIterator(d.values());
|
|
1164
|
+
for(var e=d.next();!e.done;e=d.next())if(e=e.value,!c||a(c,b)>a(e,b))c=e;c?(a=shaka.util.StreamUtils.variantToTrack(c),this.selectVariantTrack(a,!0)):this.chooseVariantAndSwitch_()}else this.video_&&this.video_.audioTracks&&(a=shaka.util.StreamUtils.filterStreamsByLanguageAndRole(this.getVariantTracks(),a,b||"",!1)[0])&&this.selectVariantTrack(a)};
|
|
1165
|
+
shaka.Player.prototype.selectTextLanguage=function(a,b,c){c=void 0===c?!1:c;if(this.manifest_&&this.playhead_){if(this.currentTextLanguage_=a,this.currentTextRole_=b||"",this.currentTextForced_=c,a=this.chooseTextStream_())a==this.streamingEngine_.getCurrentTextStream()?shaka.log.debug("Text track already selected."):(this.addTextStreamToSwitchHistory_(a,!1),this.shouldStreamText_()&&(this.streamingEngine_.switchTextStream(a),this.onTextChanged_()))}else(a=shaka.util.StreamUtils.filterStreamsByLanguageAndRole(this.getTextTracks(),
|
|
1166
|
+
a,b||"",c)[0])&&this.selectTextTrack(a)};
|
|
1168
1167
|
shaka.Player.prototype.selectVariantsByLabel=function(a){if(this.manifest_&&this.playhead_){for(var b=null,c=$jscomp.makeIterator(this.manifest_.variants),d=c.next();!d.done;d=c.next())if(d=d.value,d.audio.label==a){b=d;break}null==b?shaka.log.warning("No variants were found with label: "+a+". Ignoring the request to switch."):(this.currentAdaptationSetCriteria_=new shaka.media.PreferenceBasedCriteria(b.language,"",0,a),this.chooseVariantAndSwitch_())}else if(this.video_&&this.video_.audioTracks){c=
|
|
1169
1168
|
Array.from(this.video_.audioTracks);b=null;c=$jscomp.makeIterator(c);for(d=c.next();!d.done;d=c.next())d=d.value,d.label==a&&(b=d);b&&this.switchHtml5Track_(b)}};
|
|
1170
1169
|
shaka.Player.prototype.isTextTrackVisible=function(){var a=this.isTextVisible_;if(this.mediaSourceEngine_){var b=this.mediaSourceEngine_.getTextDisplayer().isTextVisible();goog.asserts.assert(b==a,"text visibility has fallen out of sync");return b}return this.video_&&this.video_.src&&this.video_.textTracks?this.getFilteredTextTracks_().some(function(c){return"showing"==c.mode}):a};
|
|
@@ -1182,18 +1181,18 @@ shaka.Player.prototype.getStats=function(){if(this.loadMode_!=shaka.Player.LoadM
|
|
|
1182
1181
|
a.getVideoPlaybackQuality&&(b=a.getVideoPlaybackQuality(),this.stats_.setDroppedFrames(Number(b.droppedVideoFrames),Number(b.totalVideoFrames)),this.stats_.setCorruptedFrames(Number(b.corruptedVideoFrames)));b=this.drmEngine_?this.drmEngine_.getLicenseTime():NaN;this.stats_.setLicenseTime(b);if(this.loadMode_==shaka.Player.LoadMode.MEDIA_SOURCE){if(b=this.streamingEngine_.getCurrentVariant()){var c=(this.playRateController_?this.playRateController_.getRealRate():1)*b.bandwidth;this.stats_.setCurrentStreamBandwidth(c)}b&&
|
|
1183
1182
|
b.video&&this.stats_.setResolution(b.video.width||NaN,b.video.height||NaN);this.isLive()&&(b=this.getPresentationStartTimeAsDate().valueOf()+1E3*this.seekRange().end,b=(Date.now()-b)/1E3,this.stats_.setLiveLatency(b));this.manifest_&&this.manifest_.presentationTimeline&&(b=this.manifest_.presentationTimeline.getMaxSegmentDuration(),this.stats_.setMaxSegmentDuration(b));b=this.abrManager_.getBandwidthEstimate();this.stats_.setBandwidthEstimate(b)}this.loadMode_==shaka.Player.LoadMode.SRC_EQUALS&&this.stats_.setResolution(a.videoWidth||
|
|
1184
1183
|
NaN,a.videoHeight||NaN);return this.stats_.getBlob()};
|
|
1185
|
-
shaka.Player.prototype.addTextTrackAsync=function(a,b,c,d,e,f,g){g=void 0===g?!1:g;var h=this,k,l,m,n,p,q,r,v,
|
|
1184
|
+
shaka.Player.prototype.addTextTrackAsync=function(a,b,c,d,e,f,g){g=void 0===g?!1:g;var h=this,k,l,m,n,p,q,r,u,v,w,y;return $jscomp.asyncExecutePromiseGeneratorProgram(function(t){switch(t.nextAddress){case 1:if(h.loadMode_!=shaka.Player.LoadMode.MEDIA_SOURCE&&h.loadMode_!=shaka.Player.LoadMode.SRC_EQUALS)throw shaka.log.error("Must call load() and wait for it to resolve before adding text tracks."),new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.PLAYER,shaka.util.Error.Code.CONTENT_NOT_LOADED);
|
|
1186
1185
|
if(d){t.jumpTo(2);break}return t.yield(h.getTextMimetype_(a),3);case 3:d=t.yieldResult;case 2:k=[];if(h.adManager_)try{k=h.adManager_.getServerSideCuePoints()}catch(x){}if(h.loadMode_!=shaka.Player.LoadMode.SRC_EQUALS){t.jumpTo(4);break}g&&(c="forced");return t.yield(h.addSrcTrackElement_(a,b,c,d,f||"",k),5);case 5:l=h.getTextTracks();if(m=l.find(function(x){return x.language==b&&x.label==(f||"")&&x.kind==c}))return h.onTracksChanged_(),t.return(m);shaka.log.error("Cannot add this text when loaded with src=");
|
|
1187
1186
|
throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.CANNOT_ADD_EXTERNAL_TEXT_TO_SRC_EQUALS);case 4:n=shaka.util.ManifestParserUtils.ContentType;p=h.manifest_.presentationTimeline.getDuration();if(Infinity==p)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.CANNOT_ADD_EXTERNAL_TEXT_TO_LIVE_STREAM);if(!k.length){t.jumpTo(6);break}goog.asserts.assert(h.networkingEngine_,
|
|
1188
|
-
"Need networking engine.");return t.yield(h.getTextData_(a,h.networkingEngine_,h.config_.streaming.retryParameters),7);case 7:q=t.yieldResult,r=h.convertToWebVTT_(q,d,k),
|
|
1189
|
-
keyIds:new Set,language:b,label:f||null,type:n.TEXT,primary:!1,trickModeVideo:null,emsgSchemeIdUris:null,roles:[],forced:!!g,channelsCount:null,audioSamplingRate:null,spatialAudio:!1,closedCaptions:null,external:!0};w=shaka.util.MimeUtils.getFullType(
|
|
1190
|
-
return t.return(shaka.util.StreamUtils.textStreamToTrack(
|
|
1191
|
-
shaka.Player.prototype.addThumbnailsTrack=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,v,
|
|
1187
|
+
"Need networking engine.");return t.yield(h.getTextData_(a,h.networkingEngine_,h.config_.streaming.retryParameters),7);case 7:q=t.yieldResult,r=h.convertToWebVTT_(q,d,k),u=new Blob([r],{type:"text/vtt"}),a=shaka.media.MediaSourceEngine.createObjectURL(u),d="text/vtt";case 6:v={id:h.nextExternalStreamId_++,originalId:null,createSegmentIndex:function(){return Promise.resolve()},segmentIndex:shaka.media.SegmentIndex.forSingleSegment(0,p,[a]),mimeType:d||"",codecs:e||"",kind:c,encrypted:!1,drmInfos:[],
|
|
1188
|
+
keyIds:new Set,language:b,label:f||null,type:n.TEXT,primary:!1,trickModeVideo:null,emsgSchemeIdUris:null,roles:[],forced:!!g,channelsCount:null,audioSamplingRate:null,spatialAudio:!1,closedCaptions:null,external:!0};w=shaka.util.MimeUtils.getFullType(v.mimeType,v.codecs);y=shaka.text.TextEngine.isTypeSupported(w);if(!y)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.MISSING_TEXT_PLUGIN,d);h.manifest_.textStreams.push(v);h.onTracksChanged_();
|
|
1189
|
+
return t.return(shaka.util.StreamUtils.textStreamToTrack(v))}})};
|
|
1190
|
+
shaka.Player.prototype.addThumbnailsTrack=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,u,v,w,y;return $jscomp.asyncExecutePromiseGeneratorProgram(function(t){switch(t.nextAddress){case 1:if(c.loadMode_!=shaka.Player.LoadMode.MEDIA_SOURCE&&c.loadMode_!=shaka.Player.LoadMode.SRC_EQUALS)throw shaka.log.error("Must call load() and wait for it to resolve before adding image tracks."),new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.PLAYER,shaka.util.Error.Code.CONTENT_NOT_LOADED);
|
|
1192
1191
|
if(c.loadMode_==shaka.Player.LoadMode.SRC_EQUALS)throw shaka.log.error("Cannot add this thumbnail track when loaded with src="),new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.CANNOT_ADD_EXTERNAL_THUMBNAILS_TO_SRC_EQUALS);if(b){t.jumpTo(2);break}return t.yield(c.getTextMimetype_(a),3);case 3:b=t.yieldResult;case 2:if("text/vtt"!=b)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.UNSUPPORTED_EXTERNAL_THUMBNAILS_URI,
|
|
1193
1192
|
a);d=shaka.util.ManifestParserUtils.ContentType;e=c.manifest_.presentationTimeline.getDuration();if(Infinity==e)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.CANNOT_ADD_EXTERNAL_THUMBNAILS_TO_LIVE_STREAM);goog.asserts.assert(c.networkingEngine_,"Need networking engine.");return t.yield(c.getTextData_(a,c.networkingEngine_,c.config_.streaming.retryParameters),4);case 4:f=t.yieldResult;g=shaka.text.TextEngine.findParser(b);
|
|
1194
|
-
if(!g)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.MISSING_TEXT_PLUGIN,b);h=g();k={periodStart:0,segmentStart:0,segmentEnd:e,vttOffset:0};l=shaka.util.BufferUtils.toUint8(f);m=h.parseMedia(l,k);n=[];p={};q=$jscomp.makeIterator(m);for(r=q.next();!r.done;p={$jscomp$loop$prop$imageUri$716:p.$jscomp$loop$prop$imageUri$716},r=q.next())
|
|
1195
|
-
|
|
1196
|
-
segmentIndex:new shaka.media.SegmentIndex(n),mimeType:b||"",codecs:"",kind:"",encrypted:!1,drmInfos:[],keyIds:new Set,language:"und",label:null,type:d.IMAGE,primary:!1,trickModeVideo:null,emsgSchemeIdUris:null,roles:[],forced:!1,channelsCount:null,audioSamplingRate:null,spatialAudio:!1,closedCaptions:null,tilesLayout:"1x1",external:!0};c.manifest_.imageStreams.push(
|
|
1193
|
+
if(!g)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.MISSING_TEXT_PLUGIN,b);h=g();k={periodStart:0,segmentStart:0,segmentEnd:e,vttOffset:0};l=shaka.util.BufferUtils.toUint8(f);m=h.parseMedia(l,k);n=[];p={};q=$jscomp.makeIterator(m);for(r=q.next();!r.done;p={$jscomp$loop$prop$imageUri$716:p.$jscomp$loop$prop$imageUri$716},r=q.next())u=r.value,p.$jscomp$loop$prop$imageUri$716=shaka.util.ManifestParserUtils.resolveUris([a],[u.payload])[0],
|
|
1194
|
+
v=new shaka.media.SegmentReference(u.startTime,u.endTime,function(x){return function(){return[x.$jscomp$loop$prop$imageUri$716]}}(p),0,null,null,0,0,Infinity),p.$jscomp$loop$prop$imageUri$716.includes("#xywh")&&(w=p.$jscomp$loop$prop$imageUri$716.split("#xywh=")[1].split(","),4===w.length&&v.setThumbnailSprite({height:parseInt(w[3],10),positionX:parseInt(w[0],10),positionY:parseInt(w[1],10),width:parseInt(w[2],10)})),n.push(v);y={id:c.nextExternalStreamId_++,originalId:null,createSegmentIndex:function(){return Promise.resolve()},
|
|
1195
|
+
segmentIndex:new shaka.media.SegmentIndex(n),mimeType:b||"",codecs:"",kind:"",encrypted:!1,drmInfos:[],keyIds:new Set,language:"und",label:null,type:d.IMAGE,primary:!1,trickModeVideo:null,emsgSchemeIdUris:null,roles:[],forced:!1,channelsCount:null,audioSamplingRate:null,spatialAudio:!1,closedCaptions:null,tilesLayout:"1x1",external:!0};c.manifest_.imageStreams.push(y);c.onTracksChanged_();return t.return(shaka.util.StreamUtils.imageStreamToTrack(y))}})};
|
|
1197
1196
|
shaka.Player.prototype.addChaptersTrack=function(a,b,c){var d=this,e,f,g,h;return $jscomp.asyncExecutePromiseGeneratorProgram(function(k){switch(k.nextAddress){case 1:if(d.loadMode_!=shaka.Player.LoadMode.MEDIA_SOURCE&&d.loadMode_!=shaka.Player.LoadMode.SRC_EQUALS)throw shaka.log.error("Must call load() and wait for it to resolve before adding chapters tracks."),new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.PLAYER,shaka.util.Error.Code.CONTENT_NOT_LOADED);if(c){k.jumpTo(2);
|
|
1198
1197
|
break}return k.yield(d.getTextMimetype_(a),3);case 3:c=k.yieldResult;case 2:e=[];if(d.adManager_)try{e=d.adManager_.getServerSideCuePoints()}catch(l){}return k.yield(d.addSrcTrackElement_(a,b,"chapters",c,"",e),4);case 4:f=k.yieldResult;g=d.getChaptersTracks();h=g.find(function(l){return l.language==b});if(!h){k.jumpTo(5);break}return k.yield(new Promise(function(l,m){d.loadEventManager_.listenOnce(f,"load",l);d.loadEventManager_.listenOnce(f,"error",function(n){m(new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,
|
|
1199
1198
|
shaka.util.Error.Category.TEXT,shaka.util.Error.Code.CHAPTERS_TRACK_FAILED))})}),6);case 6:return k.return(h);case 5:throw shaka.log.error("Cannot add this text when loaded with src="),new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.CANNOT_ADD_EXTERNAL_TEXT_TO_SRC_EQUALS);}})};
|
|
@@ -1271,7 +1270,7 @@ goog.exportProperty(shaka.Player.prototype,"isInProgress",shaka.Player.prototype
|
|
|
1271
1270
|
goog.exportProperty(shaka.Player.prototype,"getMediaElement",shaka.Player.prototype.getMediaElement);goog.exportProperty(shaka.Player.prototype,"getLoadMode",shaka.Player.prototype.getLoadMode);goog.exportProperty(shaka.Player.prototype,"resetConfiguration",shaka.Player.prototype.resetConfiguration);goog.exportProperty(shaka.Player.prototype,"getBufferFullness",shaka.Player.prototype.getBufferFullness);goog.exportProperty(shaka.Player.prototype,"getConfiguration",shaka.Player.prototype.getConfiguration);
|
|
1272
1271
|
goog.exportProperty(shaka.Player.prototype,"configure",shaka.Player.prototype.configure);goog.exportProperty(shaka.Player.prototype,"load",shaka.Player.prototype.load);goog.exportProperty(shaka.Player.prototype,"updateStartTime",shaka.Player.prototype.updateStartTime);goog.exportProperty(shaka.Player.prototype,"unload",shaka.Player.prototype.unload);goog.exportProperty(shaka.Player.prototype,"detach",shaka.Player.prototype.detach);goog.exportProperty(shaka.Player.prototype,"attachCanvas",shaka.Player.prototype.attachCanvas);
|
|
1273
1272
|
goog.exportProperty(shaka.Player.prototype,"attach",shaka.Player.prototype.attach);goog.exportProperty(shaka.Player,"probeSupport",shaka.Player.probeSupport);goog.exportProperty(shaka.Player,"isBrowserSupported",shaka.Player.isBrowserSupported);goog.exportProperty(shaka.Player,"setAdManagerFactory",shaka.Player.setAdManagerFactory);goog.exportProperty(shaka.Player,"registerSupportPlugin",shaka.Player.registerSupportPlugin);goog.exportProperty(shaka.Player.prototype,"destroy",shaka.Player.prototype.destroy);
|
|
1274
|
-
shaka.Player.LoadMode={DESTROYED:0,NOT_LOADED:1,MEDIA_SOURCE:2,SRC_EQUALS:3};goog.exportProperty(shaka.Player,"LoadMode",shaka.Player.LoadMode);shaka.Player.TYPICAL_BUFFERING_THRESHOLD_=.5;shaka.Player.version="v4.3.
|
|
1273
|
+
shaka.Player.LoadMode={DESTROYED:0,NOT_LOADED:1,MEDIA_SOURCE:2,SRC_EQUALS:3};goog.exportProperty(shaka.Player,"LoadMode",shaka.Player.LoadMode);shaka.Player.TYPICAL_BUFFERING_THRESHOLD_=.5;shaka.Player.version="v4.3.13-debug";goog.exportProperty(shaka.Player,"version",shaka.Player.version);shaka.Deprecate.init(shaka.Player.version);shaka.Player.restrictedStatuses_=["output-restricted","internal-error"];shaka.Player.supportPlugins_={};shaka.Player.adManagerFactory_=null;
|
|
1275
1274
|
shaka.Player.SRC_EQUAL_EXTENSIONS_TO_MIME_TYPES_={mp4:"video/mp4",m4v:"video/mp4",m4a:"audio/mp4",webm:"video/webm",weba:"audio/webm",mkv:"video/webm",ts:"video/mp2t",ogv:"video/ogg",ogg:"audio/ogg",mpg:"video/mpeg",mpeg:"video/mpeg",m3u8:"application/x-mpegurl",mpd:"application/dash+xml",mp3:"audio/mpeg",aac:"audio/aac",flac:"audio/flac",wav:"audio/wav"};
|
|
1276
1275
|
shaka.Player.TEXT_EXTENSIONS_TO_MIME_TYPES_={sbv:"text/x-subviewer",srt:"text/srt",vtt:"text/vtt",webvtt:"text/vtt",ttml:"application/ttml+xml",lrc:"application/x-subtitle-lrc",ssa:"text/x-ssa",ass:"text/x-ssa"};shaka.Player.TextTrackLabel="Shaka Player TextTrack";shaka.ads={};shaka.ads.AdsStats=function(){this.loadTimes_=[];this.skipped_=this.playedCompletely_=this.started_=0};shaka.ads.AdsStats.prototype.addLoadTime=function(a){this.loadTimes_.push(a)};shaka.ads.AdsStats.prototype.incrementStarted=function(){this.started_++};shaka.ads.AdsStats.prototype.incrementPlayedCompletely=function(){this.playedCompletely_++};shaka.ads.AdsStats.prototype.incrementSkipped=function(){this.skipped_++};
|
|
1277
1276
|
shaka.ads.AdsStats.prototype.getBlob=function(){return{loadTimes:this.loadTimes_,started:this.started_,playedCompletely:this.playedCompletely_,skipped:this.skipped_}};shaka.ads.ClientSideAd=function(a,b,c){var d=this;this.ad_=a;this.manager_=b;this.video_=c;this.isPaused_=!1;this.volume_=this.manager_.getVolume();this.eventManager_=new shaka.util.EventManager;this.eventManager_.listen(this.manager_,google.ima.AdEvent.Type.PAUSED,function(){d.isPaused_=!0});this.eventManager_.listen(this.manager_,google.ima.AdEvent.Type.RESUMED,function(){d.isPaused_=!1})};shaka.ads.ClientSideAd.prototype.getDuration=function(){return this.ad_.getDuration()};
|
|
@@ -1475,7 +1474,7 @@ shaka.dash.MpdUtils.inheritAttribute=function(a,b,c){var d=shaka.util.Functional
|
|
|
1475
1474
|
shaka.dash.MpdUtils.inheritChild=function(a,b,c){var d=shaka.util.Functional;goog.asserts.assert(b(a.representation),"There must be at least one element of the given type");a=[b(a.representation),b(a.adaptationSet),b(a.period)].filter(d.isNotNull);var e=shaka.util.XmlUtils;return a.map(function(f){return e.findChild(f,c)}).reduce(function(f,g){return f||g})};
|
|
1476
1475
|
shaka.dash.MpdUtils.handleXlinkInElement_=function(a,b,c,d,e,f){var g=shaka.util.XmlUtils,h=shaka.util.Error,k=shaka.util.ManifestParserUtils,l=shaka.dash.MpdUtils.XlinkNamespaceUri_,m=g.getAttributeNS(a,l,"href");g=g.getAttributeNS(a,l,"actuate")||"onRequest";for(var n=$jscomp.makeIterator(Array.from(a.attributes)),p=n.next();!p.done;p=n.next())p=p.value,p.namespaceURI==l&&a.removeAttributeNS(p.namespaceURI,p.localName);if(5<=f)return shaka.util.AbortableOperation.failed(new h(h.Severity.CRITICAL,
|
|
1477
1476
|
h.Category.MANIFEST,h.Code.DASH_XLINK_DEPTH_LIMIT));if("onLoad"!=g)return shaka.util.AbortableOperation.failed(new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.DASH_UNSUPPORTED_XLINK_ACTUATE));var q=k.resolveUris([d],[m]);d=shaka.net.NetworkingEngine.RequestType.MANIFEST;k=shaka.net.NetworkingEngine.makeRequest(q,b);d=e.request(d,k);goog.asserts.assert(d instanceof shaka.util.AbortableOperation,"Unexpected implementation of IAbortableOperation!");return d.chain(function(r){r=shaka.util.XmlUtils.parseXml(r.data,
|
|
1478
|
-
a.tagName);if(!r)return shaka.util.AbortableOperation.failed(new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.DASH_INVALID_XML,m));for(;a.childNodes.length;)a.removeChild(a.childNodes[0]);for(;r.childNodes.length;){var
|
|
1477
|
+
a.tagName);if(!r)return shaka.util.AbortableOperation.failed(new h(h.Severity.CRITICAL,h.Category.MANIFEST,h.Code.DASH_INVALID_XML,m));for(;a.childNodes.length;)a.removeChild(a.childNodes[0]);for(;r.childNodes.length;){var u=r.childNodes[0];r.removeChild(u);a.appendChild(u)}r=$jscomp.makeIterator(Array.from(r.attributes));for(u=r.next();!u.done;u=r.next())a.setAttributeNode(u.value.cloneNode(!1));return shaka.dash.MpdUtils.processXlinks(a,b,c,q[0],e,f+1)})};
|
|
1479
1478
|
shaka.dash.MpdUtils.processXlinks=function(a,b,c,d,e,f){f=void 0===f?0:f;var g=shaka.dash.MpdUtils,h=shaka.util.XmlUtils,k=g.XlinkNamespaceUri_;if(h.getAttributeNS(a,k,"href"))return h=g.handleXlinkInElement_(a,b,c,d,e,f),c&&(h=h.chain(void 0,function(p){return g.processXlinks(a,b,c,d,e,f)})),h;for(var l=[],m=$jscomp.makeIterator(Array.from(a.childNodes)),n=m.next();!n.done;n=m.next())n=n.value,n instanceof Element&&("urn:mpeg:dash:resolve-to-zero:2013"==h.getAttributeNS(n,k,"href")?a.removeChild(n):
|
|
1480
1479
|
"SegmentTimeline"!=n.tagName&&l.push(shaka.dash.MpdUtils.processXlinks(n,b,c,d,e,f)));return shaka.util.AbortableOperation.all(l).chain(function(){return a})};shaka.dash.MpdUtils.XlinkNamespaceUri_="http://www.w3.org/1999/xlink";shaka.media.Mp4SegmentIndexParser=function(){};shaka.media.Mp4SegmentIndexParser.parse=function(a,b,c,d,e,f,g){var h=shaka.media.Mp4SegmentIndexParser,k,l=(new shaka.util.Mp4Parser).fullBox("sidx",function(m){k=h.parseSIDX_(b,d,e,f,g,c,m)});a&&l.parse(a);if(k)return k;shaka.log.error('Invalid box type, expected "sidx".');throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.MP4_SIDX_WRONG_BOX_TYPE);};
|
|
1481
1480
|
shaka.media.Mp4SegmentIndexParser.parseSIDX_=function(a,b,c,d,e,f,g){goog.asserts.assert(null!=g.version,"SIDX is a full box and should have a valid version.");var h=[];g.reader.skip(4);var k=g.reader.readUint32();if(0==k)throw shaka.log.error("Invalid timescale."),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.MP4_SIDX_INVALID_TIMESCALE);if(0==g.version){var l=g.reader.readUint32();var m=g.reader.readUint32()}else l=g.reader.readUint64(),
|
|
@@ -1503,8 +1502,8 @@ shaka.media.WebmSegmentIndexParser.INFO_ID=357149030;shaka.media.WebmSegmentInde
|
|
|
1503
1502
|
shaka.dash.SegmentBase.createInitSegment=function(a,b){var c=shaka.util.XmlUtils,d=shaka.util.ManifestParserUtils;b=shaka.dash.MpdUtils.inheritChild(a,b,"Initialization");if(!b)return null;var e=a.representation.baseUris,f=b.getAttribute("sourceURL");f&&(e=d.resolveUris(a.representation.baseUris,[f]));d=0;f=null;if(c=c.parseAttr(b,"range",c.parseRange))d=c.start,f=c.end;a=shaka.dash.SegmentBase.createQualityInfo(a);return new shaka.media.InitSegmentReference(function(){return e},d,f,a)};
|
|
1504
1503
|
shaka.dash.SegmentBase.createStreamInfo=function(a,b){goog.asserts.assert(a.representation.segmentBase,"Should only be called with SegmentBase");var c=shaka.dash.MpdUtils,d=shaka.dash.SegmentBase,e=shaka.util.XmlUtils,f=Number(c.inheritAttribute(a,d.fromInheritance_,"presentationTimeOffset"))||0;c=c.inheritAttribute(a,d.fromInheritance_,"timescale");var g=1;c&&(g=e.parsePositiveInt(c)||1);var h=f/g||0,k=d.createInitSegment(a,d.fromInheritance_);d.checkSegmentIndexRangeSupport_(a,k);var l=shaka.util.ObjectUtils.shallowCloneObject(a);
|
|
1505
1504
|
return{generateSegmentIndex:function(){return d.generateSegmentIndex_(l,b,k,h)}}};
|
|
1506
|
-
shaka.dash.SegmentBase.generateSegmentIndexFromUris=function(a,b,c,d,e,f,g){var h,k,l,m,n,p,q,r,v,
|
|
1507
|
-
t=l-g;x=l;A=m?l+m:Infinity;"mp4"==n?
|
|
1505
|
+
shaka.dash.SegmentBase.generateSegmentIndexFromUris=function(a,b,c,d,e,f,g){var h,k,l,m,n,p,q,r,u,v,w,y,t,x,A;return $jscomp.asyncExecutePromiseGeneratorProgram(function(z){if(1==z.nextAddress)return h=a.presentationTimeline,k=!a.dynamic||!a.periodInfo.isLastPeriod,l=a.periodInfo.start,m=a.periodInfo.duration,n=a.representation.mimeType.split("/")[1],p=b,q=null,r=[p(d,e,f),"webm"==n?p(c.getUris(),c.startByte,c.endByte):null],p=null,z.yield(Promise.all(r),2);u=z.yieldResult;v=u[0];w=u[1]||null;y=null;
|
|
1506
|
+
t=l-g;x=l;A=m?l+m:Infinity;"mp4"==n?y=shaka.media.Mp4SegmentIndexParser.parse(v,e,d,c,t,x,A):(goog.asserts.assert(w,"WebM requires init data"),y=shaka.media.WebmSegmentIndexParser.parse(v,w,d,c,t,x,A));h.notifySegments(y);goog.asserts.assert(!q,"Should not call generateSegmentIndex twice");q=new shaka.media.SegmentIndex(y);k&&q.fit(x,A,!0);return z.return(q)})};shaka.dash.SegmentBase.fromInheritance_=function(a){return a.segmentBase};
|
|
1508
1507
|
shaka.dash.SegmentBase.computeIndexRange_=function(a){var b=shaka.dash.MpdUtils,c=shaka.dash.SegmentBase,d=shaka.util.XmlUtils,e=b.inheritChild(a,c.fromInheritance_,"RepresentationIndex");a=b.inheritAttribute(a,c.fromInheritance_,"indexRange");a=d.parseRange(a||"");e&&(a=d.parseAttr(e,"range",d.parseRange,a));return a};
|
|
1509
1508
|
shaka.dash.SegmentBase.computeIndexUris_=function(a){var b=shaka.util.ManifestParserUtils,c=shaka.dash.MpdUtils.inheritChild(a,shaka.dash.SegmentBase.fromInheritance_,"RepresentationIndex"),d=a.representation.baseUris;c&&(c=c.getAttribute("sourceURL"))&&(d=b.resolveUris(a.representation.baseUris,[c]));return d};
|
|
1510
1509
|
shaka.dash.SegmentBase.checkSegmentIndexRangeSupport_=function(a,b){var c=shaka.dash.SegmentBase;c.checkSegmentIndexSupport(a,b);if(!c.computeIndexRange_(a))throw shaka.log.error("SegmentBase does not contain sufficient segment information:","the SegmentBase does not contain @indexRange","or a RepresentationIndex element.",a.representation),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_NO_SEGMENT_INFO);};
|
|
@@ -1520,7 +1519,7 @@ shaka.dash.SegmentList.checkSegmentListInfo_=function(a,b){if(!b.segmentDuration
|
|
|
1520
1519
|
!b.timeline&&1==b.mediaSegments.length)throw shaka.log.warning("SegmentList does not contain sufficient segment information:","the SegmentList specifies one segment,","but does not specify a segment duration, period duration,","or timeline.",a.representation),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_NO_SEGMENT_INFO);if(b.timeline&&0==b.timeline.length)throw shaka.log.warning("SegmentList does not contain sufficient segment information:",
|
|
1521
1520
|
"the SegmentList has an empty timeline.",a.representation),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_NO_SEGMENT_INFO);};
|
|
1522
1521
|
shaka.dash.SegmentList.createSegmentReferences_=function(a,b,c,d,e,f){c=shaka.util.ManifestParserUtils;var g=e.mediaSegments.length;e.timeline&&e.timeline.length!=e.mediaSegments.length&&(g=Math.min(e.timeline.length,e.mediaSegments.length),shaka.log.warning("The number of items in the segment timeline and the number of ","segment URLs do not match, truncating",e.mediaSegments.length,"to",g));for(var h=a-e.scaledPresentationTimeOffset,k=b?a+b:Infinity,l=[],m=e.startTime,n={},p=0;p<g;n={$jscomp$loop$prop$mediaUri$721:n.$jscomp$loop$prop$mediaUri$721},
|
|
1523
|
-
p++){var q=e.mediaSegments[p];n.$jscomp$loop$prop$mediaUri$721=c.resolveUris(d,[q.mediaUri]);var r=void 0;null!=e.segmentDuration?r=m+e.segmentDuration:e.timeline?r=e.timeline[p].end:(goog.asserts.assert(1==e.mediaSegments.length&&b,"There should be exactly one segment with a Period duration."),r=m+b);var
|
|
1522
|
+
p++){var q=e.mediaSegments[p];n.$jscomp$loop$prop$mediaUri$721=c.resolveUris(d,[q.mediaUri]);var r=void 0;null!=e.segmentDuration?r=m+e.segmentDuration:e.timeline?r=e.timeline[p].end:(goog.asserts.assert(1==e.mediaSegments.length&&b,"There should be exactly one segment with a Period duration."),r=m+b);var u=function(v){return function(){return v.$jscomp$loop$prop$mediaUri$721}}(n);l.push(new shaka.media.SegmentReference(a+m,a+r,u,q.start,q.end,f,h,a,k));m=r}return l};
|
|
1524
1523
|
shaka.dash.SegmentList.parseMediaSegments_=function(a){var b=[a.representation.segmentList,a.adaptationSet.segmentList,a.period.segmentList].filter(shaka.util.Functional.isNotNull),c=shaka.util.XmlUtils;return b.map(function(d){return c.findChildren(d,"SegmentURL")}).reduce(function(d,e){return 0<d.length?d:e}).map(function(d){d.getAttribute("indexRange")&&!a.indexRangeWarningGiven&&(a.indexRangeWarningGiven=!0,shaka.log.warning("We do not support the SegmentURL@indexRange attribute on SegmentList. We only use the SegmentList@duration attribute or SegmentTimeline, which must be accurate."));
|
|
1525
1524
|
var e=d.getAttribute("media");d=c.parseAttr(d,"mediaRange",c.parseRange,{start:0,end:null});return{mediaUri:e,start:d.start,end:d.end}})};shaka.dash.SegmentTemplate=function(){};
|
|
1526
1525
|
shaka.dash.SegmentTemplate.createStreamInfo=function(a,b,c,d,e,f){goog.asserts.assert(a.representation.segmentTemplate,"Should only be called with SegmentTemplate");var g=shaka.dash.SegmentTemplate,h=g.createInitSegment_(a),k=g.parseSegmentTemplateInfo_(a);g.checkSegmentTemplateInfo_(a,k);var l=shaka.util.ObjectUtils.shallowCloneObject(a);if(k.indexTemplate)return shaka.dash.SegmentBase.checkSegmentIndexSupport(a,h),{generateSegmentIndex:function(){return g.generateSegmentIndexFromIndexTemplate_(l,b,
|
|
@@ -1532,24 +1531,24 @@ shaka.dash.SegmentTemplate.checkSegmentTemplateInfo_=function(a,b){var c=b.index
|
|
|
1532
1531
|
"the SegmentTemplate should only contain an index URL template,","a SegmentTimeline or a segment duration.",a.representation),b.indexTemplate?(shaka.log.info("Using the index URL template by default."),b.timeline=null):(goog.asserts.assert(b.timeline,"There should be a timeline"),shaka.log.info("Using the SegmentTimeline by default.")),b.segmentDuration=null);if(!b.indexTemplate&&!b.mediaTemplate)throw shaka.log.error("SegmentTemplate does not contain sufficient segment information:","the SegmentTemplate's media URL template is missing.",
|
|
1533
1532
|
a.representation),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_NO_SEGMENT_INFO);};
|
|
1534
1533
|
shaka.dash.SegmentTemplate.generateSegmentIndexFromIndexTemplate_=function(a,b,c,d){var e=shaka.dash.MpdUtils,f=shaka.util.ManifestParserUtils;goog.asserts.assert(d.indexTemplate,"must be using index template");e=e.fillUriTemplate(d.indexTemplate,a.representation.id,null,a.bandwidth||null,null);f=f.resolveUris(a.representation.baseUris,[e]);return shaka.dash.SegmentBase.generateSegmentIndexFromUris(a,b,c,f,0,null,d.scaledPresentationTimeOffset)};
|
|
1535
|
-
shaka.dash.SegmentTemplate.generateSegmentIndexFromDuration_=function(a,b,c,d,e){goog.asserts.assert(b.mediaTemplate,"There should be a media template with duration");var f=shaka.dash.MpdUtils,g=shaka.util.ManifestParserUtils,h=a.presentationTimeline,k=a.periodInfo.start,l=a.period.id,m=a.periodInfo.duration,n=function(){var E=null!=l&&e[l]||m;return E?k+E:Infinity},p=b.segmentDuration;goog.asserts.assert(null!=p,"Segment duration must not be null!");var q=b.startNumber,r=b.timescale,
|
|
1536
|
-
|
|
1537
|
-
return[Math.ceil(E[0]/p),Math.ceil(E[1]/p)-1].map(function(F){return F+q})},A=x();a=a.dynamic?Math.max(A[0],A[1]-c+1):A[0];A=A[1];c=[];for(var
|
|
1538
|
-
t,k,n());H.trueEndTime=F;return H},B=a;B<=A;++B){var D=
|
|
1534
|
+
shaka.dash.SegmentTemplate.generateSegmentIndexFromDuration_=function(a,b,c,d,e){goog.asserts.assert(b.mediaTemplate,"There should be a media template with duration");var f=shaka.dash.MpdUtils,g=shaka.util.ManifestParserUtils,h=a.presentationTimeline,k=a.periodInfo.start,l=a.period.id,m=a.periodInfo.duration,n=function(){var E=null!=l&&e[l]||m;return E?k+E:Infinity},p=b.segmentDuration;goog.asserts.assert(null!=p,"Segment duration must not be null!");var q=b.startNumber,r=b.timescale,u=b.mediaTemplate,
|
|
1535
|
+
v=a.bandwidth||null,w=a.representation.id,y=a.representation.baseUris,t=k-b.scaledPresentationTimeOffset,x=function(){var E=[Math.max(h.getSegmentAvailabilityStart(),k),Math.min(h.getSegmentAvailabilityEnd(),n())];goog.asserts.assert(E.every(isFinite),"Available presentation times must be finite!");goog.asserts.assert(E.every(function(F){return 0<=F}),"Available presentation times must be positive!");goog.asserts.assert(null!=p,"Segment duration must not be null!");E=E.map(function(F){return F-k});
|
|
1536
|
+
return[Math.ceil(E[0]/p),Math.ceil(E[1]/p)-1].map(function(F){return F+q})},A=x();a=a.dynamic?Math.max(A[0],A[1]-c+1):A[0];A=A[1];c=[];for(var z=function(E){goog.asserts.assert(null!=p,"Segment duration must not be null!");var F=(E-q)*p,I=F+b.scaledPresentationTimeOffset,H=F+k;F=H+p;var J=Math.min(F,n());goog.asserts.assert(H<J,"Generated a segment outside of the period!");H=new shaka.media.SegmentReference(H,J,function(){var L=f.fillUriTemplate(u,w,E,v,I*r);return g.resolveUris(y,[L])},0,null,d,
|
|
1537
|
+
t,k,n());H.trueEndTime=F;return H},B=a;B<=A;++B){var D=z(B);c.push(D)}var G=new shaka.media.SegmentIndex(c);c=h.getSegmentAvailabilityEnd()<n();B=h.isLive();if(c||B){var C=Math.max(a,A+1);G.updateEvery(p,function(){var E=h.getSegmentAvailabilityStart();G.evict(E);var F=$jscomp.makeIterator(x());F.next();F=F.next().value;for(var I=[];C<=F;){var H=z(C);I.push(H);C++}return E>n()&&!I.length?null:I})}return Promise.resolve(G)};
|
|
1539
1538
|
shaka.dash.SegmentTemplate.createFromTimeline_=function(a,b,c){var d=shaka.dash.MpdUtils,e=shaka.util.ManifestParserUtils,f=a.periodInfo.start,g=a.periodInfo.duration,h=f-b.scaledPresentationTimeOffset;g=g?f+g:Infinity;for(var k=[],l={},m=0;m<b.timeline.length;l={$jscomp$loop$prop$mediaTemplate$723:l.$jscomp$loop$prop$mediaTemplate$723,$jscomp$loop$prop$repId$724:l.$jscomp$loop$prop$repId$724,$jscomp$loop$prop$segmentReplacement$725:l.$jscomp$loop$prop$segmentReplacement$725,$jscomp$loop$prop$bandwidth$726:l.$jscomp$loop$prop$bandwidth$726,
|
|
1540
1539
|
$jscomp$loop$prop$timeReplacement$727:l.$jscomp$loop$prop$timeReplacement$727,$jscomp$loop$prop$baseUris$728:l.$jscomp$loop$prop$baseUris$728},m++){var n=b.timeline[m],p=n.start,q=n.unscaledStart;n=n.end;l.$jscomp$loop$prop$segmentReplacement$725=m+b.startNumber;l.$jscomp$loop$prop$timeReplacement$727=q+b.unscaledPresentationTimeOffset;l.$jscomp$loop$prop$repId$724=a.representation.id;l.$jscomp$loop$prop$bandwidth$726=a.bandwidth||null;l.$jscomp$loop$prop$mediaTemplate$723=b.mediaTemplate;l.$jscomp$loop$prop$baseUris$728=
|
|
1541
|
-
a.representation.baseUris;q=function(r){return function(){goog.asserts.assert(r.$jscomp$loop$prop$mediaTemplate$723,"There should be a media template with a timeline");var
|
|
1540
|
+
a.representation.baseUris;q=function(r){return function(){goog.asserts.assert(r.$jscomp$loop$prop$mediaTemplate$723,"There should be a media template with a timeline");var u=d.fillUriTemplate(r.$jscomp$loop$prop$mediaTemplate$723,r.$jscomp$loop$prop$repId$724,r.$jscomp$loop$prop$segmentReplacement$725,r.$jscomp$loop$prop$bandwidth$726||null,r.$jscomp$loop$prop$timeReplacement$727);return e.resolveUris(r.$jscomp$loop$prop$baseUris$728,[u]).map(function(v){return v.toString()})}}(l);k.push(new shaka.media.SegmentReference(f+
|
|
1542
1541
|
p,f+n,q,0,null,c,h,f,g))}return k};
|
|
1543
1542
|
shaka.dash.SegmentTemplate.createInitSegment_=function(a){var b=shaka.dash.MpdUtils,c=shaka.util.ManifestParserUtils,d=b.inheritAttribute(a,shaka.dash.SegmentTemplate.fromInheritance_,"initialization");if(!d)return null;var e=a.representation.id,f=a.bandwidth||null,g=a.representation.baseUris;a=shaka.dash.SegmentBase.createQualityInfo(a);return new shaka.media.InitSegmentReference(function(){goog.asserts.assert(d,"Should have returned earler");var h=b.fillUriTemplate(d,e,null,f,null);return c.resolveUris(g,
|
|
1544
1543
|
[h])},0,null,a)};shaka.util.PeriodCombiner=function(){this.variants_=[];this.audioStreams_=[];this.videoStreams_=[];this.textStreams_=[];this.imageStreams_=[];this.usedPeriodIds_=new Set};
|
|
1545
1544
|
shaka.util.PeriodCombiner.prototype.release=function(){var a=this.audioStreams_.concat(this.videoStreams_,this.textStreams_,this.imageStreams_);a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next())b=b.value,b.segmentIndex&&b.segmentIndex.release();this.audioStreams_=[];this.videoStreams_=[];this.textStreams_=[];this.imageStreams_=[];this.variants_=[]};shaka.util.PeriodCombiner.prototype.getVariants=function(){return this.variants_};shaka.util.PeriodCombiner.prototype.getTextStreams=function(){return this.textStreams_.slice()};
|
|
1546
1545
|
shaka.util.PeriodCombiner.prototype.getImageStreams=function(){return this.imageStreams_};
|
|
1547
|
-
shaka.util.PeriodCombiner.prototype.combinePeriods=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,v,
|
|
1546
|
+
shaka.util.PeriodCombiner.prototype.combinePeriods=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,u,v,w,y,t,x,A,z,B,D,G,C,E,F,I,H,J,L;return $jscomp.asyncExecutePromiseGeneratorProgram(function(K){switch(K.nextAddress){case 1:d=shaka.util.ManifestParserUtils.ContentType;shaka.util.PeriodCombiner.filterOutAudioStreamDuplicates_(a);shaka.util.PeriodCombiner.filterOutVideoStreamDuplicates_(a);shaka.util.PeriodCombiner.filterOutTextStreamDuplicates_(a);shaka.util.PeriodCombiner.filterOutImageStreamDuplicates_(a);
|
|
1548
1547
|
if(!b&&1==a.length){e=a[0];c.audioStreams_=e.audioStreams;c.videoStreams_=e.videoStreams;c.textStreams_=e.textStreams;c.imageStreams_=e.imageStreams;K.jumpTo(2);break}f=-1;for(g=0;g<a.length;g++)h=a[g],c.usedPeriodIds_.has(h.id)||(c.usedPeriodIds_.add(h.id),-1==f&&(f=g));if(-1==f)return K.return();k=a.map(function(N){return N.audioStreams});l=a.map(function(N){return N.videoStreams});m=a.map(function(N){return N.textStreams});n=a.map(function(N){return N.imageStreams});p=$jscomp.makeIterator(m);for(q=
|
|
1549
|
-
p.next();!q.done;q=p.next())r=q.value,r.push(shaka.util.PeriodCombiner.dummyStream_(d.TEXT));
|
|
1550
|
-
4);case 4:return K.yield(shaka.util.PeriodCombiner.combine_(c.textStreams_,m,f,shaka.util.PeriodCombiner.cloneStream_,shaka.util.PeriodCombiner.concatenateStreams_),5);case 5:return K.yield(shaka.util.PeriodCombiner.combine_(c.imageStreams_,n,f,shaka.util.PeriodCombiner.cloneStream_,shaka.util.PeriodCombiner.concatenateStreams_),2);case 2:
|
|
1551
|
-
I=F.next();!I.done;I=F.next())H=I.value,J=shaka.media.DrmEngine.getCommonDrmInfos(E.drmInfos,H.drmInfos),E.drmInfos.length&&H.drmInfos.length&&!J.length?shaka.log.warning("Incompatible DRM in audio & video, skipping variant creation.",E,H):(L=
|
|
1552
|
-
|
|
1548
|
+
p.next();!q.done;q=p.next())r=q.value,r.push(shaka.util.PeriodCombiner.dummyStream_(d.TEXT));u=$jscomp.makeIterator(n);for(v=u.next();!v.done;v=u.next())w=v.value,w.push(shaka.util.PeriodCombiner.dummyStream_(d.IMAGE));return K.yield(shaka.util.PeriodCombiner.combine_(c.audioStreams_,k,f,shaka.util.PeriodCombiner.cloneStream_,shaka.util.PeriodCombiner.concatenateStreams_),3);case 3:return K.yield(shaka.util.PeriodCombiner.combine_(c.videoStreams_,l,f,shaka.util.PeriodCombiner.cloneStream_,shaka.util.PeriodCombiner.concatenateStreams_),
|
|
1549
|
+
4);case 4:return K.yield(shaka.util.PeriodCombiner.combine_(c.textStreams_,m,f,shaka.util.PeriodCombiner.cloneStream_,shaka.util.PeriodCombiner.concatenateStreams_),5);case 5:return K.yield(shaka.util.PeriodCombiner.combine_(c.imageStreams_,n,f,shaka.util.PeriodCombiner.cloneStream_,shaka.util.PeriodCombiner.concatenateStreams_),2);case 2:y=0;t=[];if(c.videoStreams_.length&&c.audioStreams_.length)for(G=$jscomp.makeIterator(c.audioStreams_),C=G.next();!C.done;C=G.next())for(E=C.value,F=$jscomp.makeIterator(c.videoStreams_),
|
|
1550
|
+
I=F.next();!I.done;I=F.next())H=I.value,J=shaka.media.DrmEngine.getCommonDrmInfos(E.drmInfos,H.drmInfos),E.drmInfos.length&&H.drmInfos.length&&!J.length?shaka.log.warning("Incompatible DRM in audio & video, skipping variant creation.",E,H):(L=y++,t.push({id:L,language:E.language,primary:E.primary,audio:E,video:H,bandwidth:(E.bandwidth||0)+(H.bandwidth||0),drmInfos:J,allowedByApplication:!0,allowedByKeySystem:!0,decodingInfos:[]}));else for(x=c.videoStreams_.concat(c.audioStreams_),A=$jscomp.makeIterator(x),
|
|
1551
|
+
z=A.next();!z.done;z=A.next())B=z.value,D=y++,t.push({id:D,language:B.language,primary:B.primary,audio:B.type==d.AUDIO?B:null,video:B.type==d.VIDEO?B:null,bandwidth:B.bandwidth||0,drmInfos:B.drmInfos,allowedByApplication:!0,allowedByKeySystem:!0,decodingInfos:[]});c.variants_=t;K.jumpToEnd()}})};
|
|
1553
1552
|
shaka.util.PeriodCombiner.filterOutAudioStreamDuplicates_=function(a){var b=shaka.util.ArrayUtils;a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next()){c=c.value;for(var d=[],e=$jscomp.makeIterator(c.audioStreams),f=e.next();!f.done;f=e.next()){f=f.value;for(var g=!1,h=$jscomp.makeIterator(d),k=h.next();!k.done;k=h.next())k=k.value,f.id!=k.id&&f.channelsCount==k.channelsCount&&f.language==k.language&&f.bandwidth==k.bandwidth&&f.label==k.label&&f.codecs==k.codecs&&f.mimeType==k.mimeType&&
|
|
1554
1553
|
b.hasSameElements(f.roles,k.roles)&&f.audioSamplingRate==k.audioSamplingRate&&f.primary==k.primary&&(g=!0);g||d.push(f)}c.audioStreams=d}};
|
|
1555
1554
|
shaka.util.PeriodCombiner.filterOutTextStreamDuplicates_=function(a){var b=shaka.util.ArrayUtils;a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next()){c=c.value;for(var d=[],e=$jscomp.makeIterator(c.textStreams),f=e.next();!f.done;f=e.next()){f=f.value;for(var g=!1,h=$jscomp.makeIterator(d),k=h.next();!k.done;k=h.next())k=k.value,f.id!=k.id&&f.language==k.language&&f.label==k.label&&f.codecs==k.codecs&&f.mimeType==k.mimeType&&f.bandwidth==k.bandwidth&&b.hasSameElements(f.roles,k.roles)&&
|
|
@@ -1557,13 +1556,13 @@ shaka.util.PeriodCombiner.filterOutTextStreamDuplicates_=function(a){var b=shaka
|
|
|
1557
1556
|
shaka.util.PeriodCombiner.filterOutVideoStreamDuplicates_=function(a){var b=shaka.util.ArrayUtils,c=shaka.util.MapUtils;a=$jscomp.makeIterator(a);for(var d=a.next();!d.done;d=a.next()){d=d.value;for(var e=[],f=$jscomp.makeIterator(d.videoStreams),g=f.next();!g.done;g=f.next()){g=g.value;for(var h=!1,k=$jscomp.makeIterator(e),l=k.next();!l.done;l=k.next())l=l.value,g.id!=l.id&&g.width==l.width&&g.frameRate==l.frameRate&&g.codecs==l.codecs&&g.mimeType==l.mimeType&&g.label==l.label&&b.hasSameElements(g.roles,
|
|
1558
1557
|
l.roles)&&c.hasSameElements(g.closedCaptions,l.closedCaptions)&&g.bandwidth==l.bandwidth&&(h=!0);h||e.push(g)}d.videoStreams=e}};
|
|
1559
1558
|
shaka.util.PeriodCombiner.filterOutImageStreamDuplicates_=function(a){a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next()){b=b.value;for(var c=[],d=$jscomp.makeIterator(b.imageStreams),e=d.next();!e.done;e=d.next()){e=e.value;for(var f=!1,g=$jscomp.makeIterator(c),h=g.next();!h.done;h=g.next())h=h.value,e.id!=h.id&&e.width==h.width&&e.codecs==h.codecs&&e.mimeType==h.mimeType&&(f=!0);f||c.push(e)}b.imageStreams=c}};
|
|
1560
|
-
shaka.util.PeriodCombiner.combineDbStreams=function(a){var b,c,d,e,f,g,h,k,l,m,n,p,q,r,v,
|
|
1559
|
+
shaka.util.PeriodCombiner.combineDbStreams=function(a){var b,c,d,e,f,g,h,k,l,m,n,p,q,r,u,v,w,y,t,x,A,z,B,D,G,C,E;return $jscomp.asyncExecutePromiseGeneratorProgram(function(F){switch(F.nextAddress){case 1:b=shaka.util.ManifestParserUtils.ContentType;if(1==a.length)return F.return(a[0]);c=a.map(function(I){return I.filter(function(H){return H.type==b.AUDIO})});d=a.map(function(I){return I.filter(function(H){return H.type==b.VIDEO})});e=a.map(function(I){return I.filter(function(H){return H.type==b.TEXT})});
|
|
1561
1560
|
f=a.map(function(I){return I.filter(function(H){return H.type==b.IMAGE})});g=$jscomp.makeIterator(e);for(h=g.next();!h.done;h=g.next())k=h.value,k.push(shaka.util.PeriodCombiner.dummyStreamDB_(b.TEXT));l=$jscomp.makeIterator(f);for(m=l.next();!m.done;m=l.next())n=m.value,n.push(shaka.util.PeriodCombiner.dummyStreamDB_(b.IMAGE));return F.yield(shaka.util.PeriodCombiner.combine_([],c,0,shaka.util.PeriodCombiner.cloneStreamDB_,shaka.util.PeriodCombiner.concatenateStreamDBs_),2);case 2:return p=F.yieldResult,
|
|
1562
|
-
F.yield(shaka.util.PeriodCombiner.combine_([],d,0,shaka.util.PeriodCombiner.cloneStreamDB_,shaka.util.PeriodCombiner.concatenateStreamDBs_),3);case 3:return q=F.yieldResult,F.yield(shaka.util.PeriodCombiner.combine_([],e,0,shaka.util.PeriodCombiner.cloneStreamDB_,shaka.util.PeriodCombiner.concatenateStreamDBs_),4);case 4:return r=F.yieldResult,F.yield(shaka.util.PeriodCombiner.combine_([],f,0,shaka.util.PeriodCombiner.cloneStreamDB_,shaka.util.PeriodCombiner.concatenateStreamDBs_),5);case 5:
|
|
1563
|
-
|
|
1564
|
-
shaka.util.PeriodCombiner.combine_=function(a,b,c,d,e){var f,g,h,k,l,m,n,p,q,r,v,
|
|
1565
|
-
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.PERIOD_FLATTENING_FAILED);l=k.next();C.jumpTo(2);break;case 4:p=$jscomp.makeIterator(g);for(q=p.next();!q.done;q=p.next())for(r=q.value,
|
|
1566
|
-
|
|
1561
|
+
F.yield(shaka.util.PeriodCombiner.combine_([],d,0,shaka.util.PeriodCombiner.cloneStreamDB_,shaka.util.PeriodCombiner.concatenateStreamDBs_),3);case 3:return q=F.yieldResult,F.yield(shaka.util.PeriodCombiner.combine_([],e,0,shaka.util.PeriodCombiner.cloneStreamDB_,shaka.util.PeriodCombiner.concatenateStreamDBs_),4);case 4:return r=F.yieldResult,F.yield(shaka.util.PeriodCombiner.combine_([],f,0,shaka.util.PeriodCombiner.cloneStreamDB_,shaka.util.PeriodCombiner.concatenateStreamDBs_),5);case 5:u=F.yieldResult;
|
|
1562
|
+
v=0;if(q.length&&p.length)for(A=$jscomp.makeIterator(p),z=A.next();!z.done;z=A.next())for(B=z.value,D=$jscomp.makeIterator(q),G=D.next();!G.done;G=D.next())C=G.value,E=v++,C.variantIds.push(E),B.variantIds.push(E);else for(w=q.concat(p),y=$jscomp.makeIterator(w),t=y.next();!t.done;t=y.next())x=t.value,x.variantIds=[v++];return F.return(q.concat(p).concat(r).concat(u))}})};
|
|
1563
|
+
shaka.util.PeriodCombiner.combine_=function(a,b,c,d,e){var f,g,h,k,l,m,n,p,q,r,u,v,w,y,t,x,A,z,B,D,G;return $jscomp.asyncExecutePromiseGeneratorProgram(function(C){switch(C.nextAddress){case 1:f=shaka.util.ManifestParserUtils.ContentType;g=[];for(h=0;h<b.length;h++)h>=c?g.push(new Set(b[h])):g.push(new Set);k=$jscomp.makeIterator(a);l=k.next();case 2:if(l.done){C.jumpTo(4);break}m=l.value;return C.yield(shaka.util.PeriodCombiner.extendExistingOutputStream_(m,b,c,e,g),5);case 5:n=C.yieldResult;if(!n)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
1564
|
+
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.PERIOD_FLATTENING_FAILED);l=k.next();C.jumpTo(2);break;case 4:p=$jscomp.makeIterator(g);for(q=p.next();!q.done;q=p.next())for(r=q.value,u=$jscomp.makeIterator(r),v=u.next();!v.done;v=u.next())w=v.value,(y=shaka.util.PeriodCombiner.createNewOutputStream_(w,b,d,e,g))&&a.push(y);t=$jscomp.makeIterator(g);for(q=t.next();!q.done;q=t.next())for(x=q.value,A={},z=$jscomp.makeIterator(x),v=z.next();!v.done;A={$jscomp$loop$prop$stream$586$730:A.$jscomp$loop$prop$stream$586$730},
|
|
1565
|
+
v=z.next())if(A.$jscomp$loop$prop$stream$586$730=v.value,B=A.$jscomp$loop$prop$stream$586$730.type==f.TEXT&&!A.$jscomp$loop$prop$stream$586$730.language,D=A.$jscomp$loop$prop$stream$586$730.type==f.IMAGE&&!A.$jscomp$loop$prop$stream$586$730.tilesLayout,!B&&!D&&(G=a.some(function(E){return function(F){return F.mimeType==E.$jscomp$loop$prop$stream$586$730.mimeType&&shaka.util.MimeUtils.getNormalizedCodec(F.codecs)==shaka.util.MimeUtils.getNormalizedCodec(E.$jscomp$loop$prop$stream$586$730.codecs)}}(A))))throw shaka.log.error("Unused stream in period-flattening!",
|
|
1567
1566
|
A.$jscomp$loop$prop$stream$586$730,a),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.PERIOD_FLATTENING_FAILED);return C.return(a)}})};
|
|
1568
1567
|
shaka.util.PeriodCombiner.extendExistingOutputStream_=function(a,b,c,d,e){return $jscomp.asyncExecutePromiseGeneratorProgram(function(f){if(1==f.nextAddress)return shaka.util.PeriodCombiner.findMatchesInAllPeriods_(b,a),goog.asserts.assert(a.createSegmentIndex,"outputStream should be a Stream type!"),a.matchedStreams?a.segmentIndex?f.yield(shaka.util.PeriodCombiner.extendOutputSegmentIndex_(a,c),2):f.jumpTo(2):(shaka.log.error("No matches extending output stream!",a,b),f.return(!1));shaka.util.PeriodCombiner.extendOutputStream_(a,
|
|
1569
1568
|
c,d,e);return f.return(!0)})};
|
|
@@ -1603,16 +1602,16 @@ shaka.dash.DashParser.prototype.requestManifest_=function(){var a=this,b,c,d,e,f
|
|
|
1603
1602
|
m.yield(g.promise,2);if(3!=m.nextAddress){h=m.yieldResult;if(!a.playerInterface_)return m.return(0);h.uri&&!a.manifestUris_.includes(h.uri)&&a.manifestUris_.unshift(h.uri);return m.yield(a.parseManifest_(h.data,h.uri),3)}k=Date.now();l=(k-f)/1E3;a.averageUpdateDuration_.sample(1,l);return m.return(l)})};
|
|
1604
1603
|
shaka.dash.DashParser.prototype.parseManifest_=function(a,b){var c=this,d,e,f,g,h,k,l;return $jscomp.asyncExecutePromiseGeneratorProgram(function(m){if(1==m.nextAddress){d=shaka.util.Error;e=shaka.dash.MpdUtils;f=shaka.util.XmlUtils.parseXml(a,"MPD");if(!f)throw new d(d.Severity.CRITICAL,d.Category.MANIFEST,d.Code.DASH_INVALID_XML,b);if(g=c.config_.dash.disableXlinkProcessing)return m.return(c.processManifest_(f,b));h=c.config_.dash.xlinkFailGracefully;k=e.processXlinks(f,c.config_.retryParameters,
|
|
1605
1604
|
h,b,c.playerInterface_.networkingEngine);c.operationManager_.manage(k);return m.yield(k.promise,2)}l=m.yieldResult;return m.return(c.processManifest_(l,b))})};
|
|
1606
|
-
shaka.dash.DashParser.prototype.processManifest_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,v,
|
|
1607
|
-
"BaseURL");m=l.map(e.getContents);n=shaka.util.ManifestParserUtils.resolveUris(g,m);p=0;l&&l.length&&(p=e.parseAttr(l[0],"availabilityTimeOffset",e.parseFloat)||0);q=c.config_.dash.ignoreMinBufferTime;r=0;q||(r=e.parseAttr(a,"minBufferTime",e.parseDuration)||0);c.updatePeriod_=e.parseAttr(a,"minimumUpdatePeriod",e.parseDuration,-1);
|
|
1608
|
-
(
|
|
1609
|
-
E,c.config_.dash.autoCorrectDrift);
|
|
1610
|
-
"static"!=A&&J.durationDerivedFromPeriods||
|
|
1611
|
-
|
|
1612
|
-
imageStreams:c.periodCombiner_.getImageStreams(),offlineSessionIds:[],minBufferTime:r||0,sequenceMode:c.config_.dash.sequenceMode};if(!
|
|
1605
|
+
shaka.dash.DashParser.prototype.processManifest_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,u,v,w,y,t,x,A,z,B,D,G,C,E,F,I,H,J,L,K,N,O,M,P,R;return $jscomp.asyncExecutePromiseGeneratorProgram(function(Q){switch(Q.nextAddress){case 1:d=shaka.util.Functional;e=shaka.util.XmlUtils;(f=c.config_.dash.manifestPreprocessor)&&f(a);g=[b];h=e.findChildren(a,"Location").map(e.getContents).filter(d.isNotNull);0<h.length&&(k=shaka.util.ManifestParserUtils.resolveUris(g,h),g=c.manifestUris_=k);l=e.findChildren(a,
|
|
1606
|
+
"BaseURL");m=l.map(e.getContents);n=shaka.util.ManifestParserUtils.resolveUris(g,m);p=0;l&&l.length&&(p=e.parseAttr(l[0],"availabilityTimeOffset",e.parseFloat)||0);q=c.config_.dash.ignoreMinBufferTime;r=0;q||(r=e.parseAttr(a,"minBufferTime",e.parseDuration)||0);c.updatePeriod_=e.parseAttr(a,"minimumUpdatePeriod",e.parseDuration,-1);u=e.parseAttr(a,"availabilityStartTime",e.parseDate);v=e.parseAttr(a,"timeShiftBufferDepth",e.parseDuration);w=c.config_.dash.ignoreSuggestedPresentationDelay;y=null;w||
|
|
1607
|
+
(y=e.parseAttr(a,"suggestedPresentationDelay",e.parseDuration));t=c.config_.dash.ignoreMaxSegmentDuration;x=null;t||(x=e.parseAttr(a,"maxSegmentDuration",e.parseDuration));A=a.getAttribute("type")||"static";if(c.manifest_)for(z=c.manifest_.presentationTimeline,B=$jscomp.makeIterator(Object.values(c.streamMap_)),D=B.next();!D.done;D=B.next())G=D.value,G.segmentIndex&&G.segmentIndex.evict(z.getSegmentAvailabilityStart());else C=c.config_.defaultPresentationDelay||1.5*r,E=null!=y?y:C,z=new shaka.media.PresentationTimeline(u,
|
|
1608
|
+
E,c.config_.dash.autoCorrectDrift);z.setStatic("static"==A);(F=z.isLive())&&!isNaN(c.config_.availabilityWindowOverride)&&(v=c.config_.availabilityWindowOverride);null==v&&(v=Infinity);z.setSegmentAvailabilityDuration(v);I=a.getAttribute("profiles")||"";H={dynamic:"static"!=A,presentationTimeline:z,period:null,periodInfo:null,adaptationSet:null,representation:null,bandwidth:0,indexRangeWarningGiven:!1,availabilityTimeOffset:p,profiles:I.split(",")};J=c.parsePeriods_(H,n,a);L=J.duration;K=J.periods;
|
|
1609
|
+
"static"!=A&&J.durationDerivedFromPeriods||z.setDuration(L||Infinity);c.minTotalAvailabilityTimeOffset_&&!c.lowLatencyMode_&&(N=c.playerInterface_.isAutoLowLatencyMode())&&(c.playerInterface_.enableLowLatencyMode(),c.lowLatencyMode_=c.playerInterface_.isLowLatencyMode());c.lowLatencyMode_?z.setAvailabilityTimeOffset(c.minTotalAvailabilityTimeOffset_):c.minTotalAvailabilityTimeOffset_&&shaka.log.alwaysWarn("Low-latency DASH live stream detected, but low-latency streaming mode is not enabled in Shaka Player. Set streaming.lowLatencyMode configuration to true, and see https://bit.ly/3clctcj for details.");
|
|
1610
|
+
z.notifyMaxSegmentDuration(x||1);goog.DEBUG&&z.assertIsValid();return Q.yield(c.periodCombiner_.combinePeriods(K,H.dynamic),2);case 2:if(c.manifest_){c.manifest_.variants=c.periodCombiner_.getVariants();O=c.periodCombiner_.getTextStreams();0<O.length&&(c.manifest_.textStreams=O);c.manifest_.imageStreams=c.periodCombiner_.getImageStreams();c.playerInterface_.filter(c.manifest_);Q.jumpTo(3);break}c.manifest_={presentationTimeline:z,variants:c.periodCombiner_.getVariants(),textStreams:c.periodCombiner_.getTextStreams(),
|
|
1611
|
+
imageStreams:c.periodCombiner_.getImageStreams(),offlineSessionIds:[],minBufferTime:r||0,sequenceMode:c.config_.dash.sequenceMode};if(!z.usingPresentationStartTime()){Q.jumpTo(4);break}M=shaka.util.XmlUtils;P=M.findChildren(a,"UTCTiming");return Q.yield(c.parseUtcTiming_(n,P),5);case 5:R=Q.yieldResult;if(!c.playerInterface_)return Q.return();z.setClockOffset(R);case 4:z.lockStartTime();case 3:c.playerInterface_.makeTextStreamsForClosedCaptions(c.manifest_),Q.jumpToEnd()}})};
|
|
1613
1612
|
shaka.dash.DashParser.prototype.parsePeriods_=function(a,b,c){var d=shaka.util.XmlUtils,e=d.parseAttr(c,"mediaPresentationDuration",d.parseDuration),f=[],g=0;c=d.findChildren(c,"Period");for(var h=0;h<c.length;h++){var k=c[h],l=c[h+1],m=d.parseAttr(k,"start",d.parseDuration,g),n=k.id,p=d.parseAttr(k,"duration",d.parseDuration),q=null;if(l){var r=d.parseAttr(l,"start",d.parseDuration);null!=r&&(q=r-m)}else null!=e&&(q=e-m);r=shaka.util.ManifestParserUtils.GAP_OVERLAP_TOLERANCE_SECONDS;q&&p&&Math.abs(q-
|
|
1614
1613
|
p)>r&&shaka.log.warning("There is a gap/overlap between Periods",k);null==q&&(q=p);if(null!==this.largestPeriodStartTime_&&null!==n&&null!==m&&m<this.largestPeriodStartTime_&&!this.lastManifestUpdatePeriodIds_.includes(n)&&h+1!=c.length)shaka.log.debug("Skipping Period with ID "+n+" as its start time is smaller than the largest period start time that has been seen, and ID is unseen before");else{null!==m&&(null===this.largestPeriodStartTime_||m>this.largestPeriodStartTime_)&&(this.largestPeriodStartTime_=
|
|
1615
|
-
m);g=this.parsePeriod_(a,b,{start:m,duration:q,node:k,isLastPeriod:null==q||!l});f.push(g);a.period.id&&q&&(this.periodDurations_[a.period.id]=q);if(null==q){l&&shaka.log.warning("Skipping Period",h+1,"and any subsequent Periods:","Period",h+1,"does not have a valid start time.",l);g=null;break}g=m+q}}this.lastManifestUpdatePeriodIds_=f.map(function(
|
|
1614
|
+
m);g=this.parsePeriod_(a,b,{start:m,duration:q,node:k,isLastPeriod:null==q||!l});f.push(g);a.period.id&&q&&(this.periodDurations_[a.period.id]=q);if(null==q){l&&shaka.log.warning("Skipping Period",h+1,"and any subsequent Periods:","Period",h+1,"does not have a valid start time.",l);g=null;break}g=m+q}}this.lastManifestUpdatePeriodIds_=f.map(function(u){return u.id});return null!=e?(g!=e&&shaka.log.warning("@mediaPresentationDuration does not match the total duration of ","all Periods."),{periods:f,
|
|
1616
1615
|
duration:e,durationDerivedFromPeriods:!1}):{periods:f,duration:g,durationDerivedFromPeriods:!0}};
|
|
1617
1616
|
shaka.dash.DashParser.prototype.parsePeriod_=function(a,b,c){var d=this,e=shaka.util.Functional,f=shaka.util.XmlUtils,g=shaka.util.ManifestParserUtils.ContentType;a.period=this.createFrame_(c.node,null,b);a.periodInfo=c;a.period.availabilityTimeOffset=a.availabilityTimeOffset;a.period.id||(shaka.log.info("No Period ID given for Period with start time "+c.start+", Assigning a default"),a.period.id="__shaka_period_"+c.start);var h=f.findChildren(c.node,"EventStream");b=a.presentationTimeline.getSegmentAvailabilityStart();
|
|
1618
1617
|
h=$jscomp.makeIterator(h);for(var k=h.next();!k.done;k=h.next())this.parseEventStream_(c.start,c.duration,k.value,b);e=f.findChildren(c.node,"AdaptationSet").map(function(n){return d.parseAdaptationSet_(a,n)}).filter(e.isNotNull);if(a.dynamic){c=[];f=$jscomp.makeIterator(e);for(b=f.next();!b.done;b=f.next())for(b=$jscomp.makeIterator(b.value.representationIds),h=b.next();!h.done;h=b.next())c.push(h.value);f=new Set(c);if(c.length!=f.size)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
@@ -1621,26 +1620,26 @@ m=l.next())k.$jscomp$loop$prop$stream$732=m.value,k.$jscomp$loop$prop$stream$732
|
|
|
1621
1620
|
[]:this.getSetsOfType_(c,g.IMAGE);if(!b.length&&!f.length)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_EMPTY_PERIOD);g=[];f=$jscomp.makeIterator(f);for(h=f.next();!h.done;h=f.next())g.push.apply(g,$jscomp.arrayFromIterable(h.value.streams));f=[];b=$jscomp.makeIterator(b);for(h=b.next();!h.done;h=b.next())f.push.apply(f,$jscomp.arrayFromIterable(h.value.streams));b=[];e=$jscomp.makeIterator(e);for(h=e.next();!h.done;h=e.next())b.push.apply(b,
|
|
1622
1621
|
$jscomp.arrayFromIterable(h.value.streams));e=[];c=$jscomp.makeIterator(c);for(h=c.next();!h.done;h=c.next())e.push.apply(e,$jscomp.arrayFromIterable(h.value.streams));return{id:a.period.id,audioStreams:g,videoStreams:f,textStreams:b,imageStreams:e}};shaka.dash.DashParser.prototype.getSetsOfType_=function(a,b){return a.filter(function(c){return c.contentType==b})};
|
|
1623
1622
|
shaka.dash.DashParser.prototype.parseAdaptationSet_=function(a,b){var c=this,d=shaka.util.XmlUtils,e=shaka.util.Functional,f=shaka.util.ManifestParserUtils,g=f.ContentType,h=shaka.dash.ContentProtection;a.adaptationSet=this.createFrame_(b,a.period,null);var k=!1,l=d.findChildren(b,"Role"),m=l.map(function(C){return C.getAttribute("value")}).filter(e.isNotNull),n=void 0;if(e=a.adaptationSet.contentType==g.TEXT)n=f.TextStreamKind.SUBTITLE;l=$jscomp.makeIterator(l);for(var p=l.next();!p.done;p=l.next()){p=
|
|
1624
|
-
p.value;var q=p.getAttribute("schemeIdUri");if(null==q||"urn:mpeg:dash:role:2011"==q)switch(p=p.getAttribute("value"),p){case "main":k=!0;break;case "caption":case "subtitle":n=p}}var r;q=function(C){switch(C){case 1:case 6:case 13:case 14:case 15:return"SDR";case 16:return"PQ";case 18:return"HLG"}};var
|
|
1625
|
-
w?l=
|
|
1626
|
-
var
|
|
1627
|
-
|
|
1628
|
-
D=shaka.util.LanguageUtils.normalize(b.getAttribute("lang")||"und"),G=b.getAttribute("label");(h=d.findChildren(b,"Label"))&&h.length&&(h=h[0],h.textContent&&(G=h.textContent));d=d.findChildren(b,"Representation");b=d.map(function(C){if(C=c.parseRepresentation_(a,B,n,D,G,k,m,
|
|
1623
|
+
p.value;var q=p.getAttribute("schemeIdUri");if(null==q||"urn:mpeg:dash:role:2011"==q)switch(p=p.getAttribute("value"),p){case "main":k=!0;break;case "caption":case "subtitle":n=p}}var r;q=function(C){switch(C){case 1:case 6:case 13:case 14:case 15:return"SDR";case 16:return"PQ";case 18:return"HLG"}};var u=d.findChildren(b,"EssentialProperty");l=null;p=!1;u=$jscomp.makeIterator(u);for(var v=u.next();!v.done;v=u.next()){v=v.value;var w=v.getAttribute("schemeIdUri");"http://dashif.org/guidelines/trickmode"==
|
|
1624
|
+
w?l=v.getAttribute("value"):"urn:mpeg:mpegB:cicp:TransferCharacteristics"==w?r=q(parseInt(v.getAttribute("value"),10)):"urn:mpeg:mpegB:cicp:ColourPrimaries"!=w&&"urn:mpeg:mpegB:cicp:MatrixCoefficients"!=w&&(p=!0)}u=d.findChildren(b,"SupplementalProperty");u=$jscomp.makeIterator(u);for(v=u.next();!v.done;v=u.next())v=v.value,"urn:mpeg:mpegB:cicp:TransferCharacteristics"==v.getAttribute("schemeIdUri")&&(r=q(parseInt(v.getAttribute("value"),10)));u=d.findChildren(b,"Accessibility");q=shaka.util.LanguageUtils;
|
|
1625
|
+
var y=new Map;u=$jscomp.makeIterator(u);for(v=u.next();!v.done;v=u.next())if(w=v.value,v=w.getAttribute("schemeIdUri"),w=w.getAttribute("value"),"urn:scte:dash:cc:cea-608:2015"==v)if(v=1,null!=w){w=w.split(";");for(var t=$jscomp.makeIterator(w),x=t.next();!x.done;x=t.next()){var A=x.value,z=x=void 0;A.includes("=")?(A=A.split("="),x=A[0].startsWith("CC")?A[0]:"CC"+A[0],z=A[1]||"und"):(x="CC"+v,2==w.length?v+=2:v++,z=A);y.set(x,q.normalize(z))}}else y.set("CC1","und");else if("urn:scte:dash:cc:cea-708:2015"==
|
|
1626
|
+
v)if(v=1,null!=w)for(w=$jscomp.makeIterator(w.split(";")),x=w.next();!x.done;x=w.next())x=x.value,A=t=void 0,x.includes("=")?(x=x.split("="),t="svc"+x[0],A=x[1].split(",")[0].split(":").pop()):(t="svc"+v,v++,A=x),y.set(t,q.normalize(A));else y.set("svc1","und");else"urn:mpeg:dash:role:2011"==v&&null!=w&&(m.push(w),"captions"==w&&(n=f.TextStreamKind.CLOSED_CAPTION));if(p)return null;f=d.findChildren(b,"ContentProtection");var B=h.parseFromAdaptationSet(f,this.config_.dash.ignoreDrmInfo,this.config_.dash.keySystemsByURI),
|
|
1627
|
+
D=shaka.util.LanguageUtils.normalize(b.getAttribute("lang")||"und"),G=b.getAttribute("label");(h=d.findChildren(b,"Label"))&&h.length&&(h=h[0],h.textContent&&(G=h.textContent));d=d.findChildren(b,"Representation");b=d.map(function(C){if(C=c.parseRepresentation_(a,B,n,D,G,k,m,y,C))C.hdr=C.hdr||r;return C}).filter(function(C){return!!C});if(0==b.length){l=a.adaptationSet.contentType==g.IMAGE;if(this.config_.dash.ignoreEmptyAdaptationSet||e||l)return null;throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
1629
1628
|
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_EMPTY_ADAPTATION_SET);}if(!a.adaptationSet.contentType||a.adaptationSet.contentType==g.APPLICATION)for(a.adaptationSet.contentType=shaka.dash.DashParser.guessContentType_(b[0].mimeType,b[0].codecs),g=$jscomp.makeIterator(b),e=g.next();!e.done;e=g.next())e.value.type=a.adaptationSet.contentType;g=$jscomp.makeIterator(b);for(e=g.next();!e.done;e=g.next())for(e=e.value,h=$jscomp.makeIterator(B.drmInfos),f=h.next();!f.done;f=h.next())f=f.value,
|
|
1630
1629
|
f.keyIds=f.keyIds&&e.keyIds?new Set([].concat($jscomp.arrayFromIterable(f.keyIds),$jscomp.arrayFromIterable(e.keyIds))):f.keyIds||e.keyIds;g=d.map(function(C){return C.getAttribute("id")}).filter(shaka.util.Functional.isNotNull);return{id:a.adaptationSet.id||"__fake__"+this.globalId_++,contentType:a.adaptationSet.contentType,language:D,main:k,streams:b,drmInfos:B.drmInfos,trickModeFor:l,representationIds:g}};
|
|
1631
1630
|
shaka.dash.DashParser.prototype.parseRepresentation_=function(a,b,c,d,e,f,g,h,k){var l=this,m=shaka.util.XmlUtils,n=shaka.util.ManifestParserUtils.ContentType;a.representation=this.createFrame_(k,a.adaptationSet,null);this.minTotalAvailabilityTimeOffset_=Math.min(this.minTotalAvailabilityTimeOffset_,a.representation.availabilityTimeOffset);if(!this.verifyRepresentation_(a.representation))return shaka.log.warning("Skipping Representation",a.representation),null;var p=a.periodInfo.start;a.bandwidth=
|
|
1632
|
-
m.parseAttr(k,"bandwidth",m.parsePositiveInt)||0;var q=a.representation.contentType,r=q==n.TEXT||q==n.APPLICATION;n=q==n.IMAGE;try{if(q=function(B,D,G){return l.requestInitSegment_(B,D,G)},a.representation.segmentBase)var
|
|
1633
|
-
this.periodDurations_);else{goog.asserts.assert(r,"Must have Segment* with non-text streams.");var
|
|
1634
|
-
q=new Set(q?[q]:[]);var
|
|
1635
|
-
!x))return null;var A;k=a.representation.codecs;a.profiles.includes("http://dashif.org/guidelines/dash-if-uhd#hevc-hdr-pq10")&&(k.includes("hvc1.2.4.L153.B0")||k.includes("hev1.2.4.L153.B0"))&&(A="PQ");k=a.representation.id?a.period.id+","+a.representation.id:"";var
|
|
1631
|
+
m.parseAttr(k,"bandwidth",m.parsePositiveInt)||0;var q=a.representation.contentType,r=q==n.TEXT||q==n.APPLICATION;n=q==n.IMAGE;try{if(q=function(B,D,G){return l.requestInitSegment_(B,D,G)},a.representation.segmentBase)var u=shaka.dash.SegmentBase.createStreamInfo(a,q);else if(a.representation.segmentList)u=shaka.dash.SegmentList.createStreamInfo(a,this.streamMap_);else if(a.representation.segmentTemplate)u=shaka.dash.SegmentTemplate.createStreamInfo(a,q,this.streamMap_,!!this.manifest_,this.config_.dash.initialSegmentLimit,
|
|
1632
|
+
this.periodDurations_);else{goog.asserts.assert(r,"Must have Segment* with non-text streams.");var v=a.representation.baseUris,w=a.periodInfo.duration||0;u={generateSegmentIndex:function(){return Promise.resolve(shaka.media.SegmentIndex.forSingleSegment(p,w,v))}}}}catch(B){if((r||n)&&B.code==shaka.util.Error.Code.DASH_NO_SEGMENT_INFO)return null;throw B;}q=m.findChildren(k,"ContentProtection");q=shaka.dash.ContentProtection.parseFromRepresentation(q,b,this.config_.dash.ignoreDrmInfo,this.config_.dash.keySystemsByURI);
|
|
1633
|
+
q=new Set(q?[q]:[]);var y=!1;m.findChildren(k,"SupplementalProperty").some(function(B){return"tag:dolby.com,2018:dash:EC3_ExtensionType:2018"==B.getAttribute("schemeIdUri")&&"JOC"==B.getAttribute("value")})&&(y=!0);var t=!1;r&&(t=g.includes("forced_subtitle")||g.includes("forced-subtitle"));var x;if(n&&((k=m.findChildren(k,"EssentialProperty").find(function(B){return["http://dashif.org/thumbnail_tile","http://dashif.org/guidelines/thumbnail_tile"].includes(B.getAttribute("schemeIdUri"))}))&&(x=k.getAttribute("value")),
|
|
1634
|
+
!x))return null;var A;k=a.representation.codecs;a.profiles.includes("http://dashif.org/guidelines/dash-if-uhd#hevc-hdr-pq10")&&(k.includes("hvc1.2.4.L153.B0")||k.includes("hev1.2.4.L153.B0"))&&(A="PQ");k=a.representation.id?a.period.id+","+a.representation.id:"";var z=k&&this.streamMap_[k]?this.streamMap_[k]:{id:this.globalId_++,originalId:a.representation.id,createSegmentIndex:function(){return Promise.resolve()},closeSegmentIndex:function(){z.segmentIndex&&(z.segmentIndex.release(),z.segmentIndex=
|
|
1636
1635
|
null)},segmentIndex:null,mimeType:a.representation.mimeType,codecs:a.representation.codecs,frameRate:a.representation.frameRate,pixelAspectRatio:a.representation.pixelAspectRatio,bandwidth:a.bandwidth,width:a.representation.width,height:a.representation.height,kind:c,encrypted:0<b.drmInfos.length,drmInfos:b.drmInfos,keyIds:q,language:d,label:e,type:a.adaptationSet.contentType,primary:f,trickModeVideo:null,emsgSchemeIdUris:a.representation.emsgSchemeIdUris,roles:g,forced:t,channelsCount:a.representation.numChannels,
|
|
1637
|
-
audioSamplingRate:a.representation.audioSamplingRate,spatialAudio:
|
|
1636
|
+
audioSamplingRate:a.representation.audioSamplingRate,spatialAudio:y,closedCaptions:h,hdr:A,tilesLayout:x,matchedStreams:[],external:!1};z.createSegmentIndex=function(){var B;return $jscomp.asyncExecutePromiseGeneratorProgram(function(D){if(1==D.nextAddress){if(z.segmentIndex)return D.jumpTo(0);B=z;return D.yield(u.generateSegmentIndex(),3)}B.segmentIndex=D.yieldResult;D.jumpToEnd()})};k&&a.dynamic&&!this.streamMap_[k]&&(this.streamMap_[k]=z);return z};
|
|
1638
1637
|
shaka.dash.DashParser.prototype.onUpdate_=function(){var a=this,b,c;return $jscomp.asyncExecutePromiseGeneratorProgram(function(d){switch(d.nextAddress){case 1:return goog.asserts.assert(0<=a.updatePeriod_,"There should be an update period"),shaka.log.info("Updating manifest..."),b=0,d.setCatchFinallyBlocks(2),d.yield(a.requestManifest_(),4);case 4:b=d.yieldResult;d.leaveTryBlock(3);break;case 2:c=d.enterCatchBlock(),goog.asserts.assert(c instanceof shaka.util.Error,"Should only receive a Shaka error"),
|
|
1639
1638
|
a.playerInterface_&&(c.severity=shaka.util.Error.Severity.RECOVERABLE,a.playerInterface_.onError(c));case 3:if(!a.playerInterface_)return d.return();a.setUpdateTimer_(b);d.jumpToEnd()}})};shaka.dash.DashParser.prototype.setUpdateTimer_=function(a){0>this.updatePeriod_||(a=Math.max(shaka.dash.DashParser.MIN_UPDATE_PERIOD_,this.updatePeriod_-a,this.averageUpdateDuration_.getEstimate()),this.updateTimer_.tickAfter(a))};
|
|
1640
1639
|
shaka.dash.DashParser.prototype.createFrame_=function(a,b,c){goog.asserts.assert(b||c,"Must provide either parent or baseUris");var d=shaka.util.ManifestParserUtils,e=shaka.util.XmlUtils;b=b||{contentType:"",mimeType:"",codecs:"",emsgSchemeIdUris:[],frameRate:void 0,pixelAspectRatio:void 0,numChannels:null,audioSamplingRate:null,availabilityTimeOffset:0};c=c||b.baseUris;var f=e.parseNonNegativeInt,g=e.evalDivision,h=e.findChildren(a,"BaseURL"),k=h.map(e.getContents),l=a.getAttribute("contentType")||
|
|
1641
|
-
b.contentType,m=a.getAttribute("mimeType")||b.mimeType,n=a.getAttribute("codecs")||b.codecs;g=e.parseAttr(a,"frameRate",g)||b.frameRate;var p=a.getAttribute("sar")||b.pixelAspectRatio,q=this.emsgSchemeIdUris_(e.findChildren(a,"InbandEventStream"),b.emsgSchemeIdUris),r=e.findChildren(a,"AudioChannelConfiguration");r=this.parseAudioChannels_(r)||b.numChannels;var
|
|
1642
|
-
w=e.findChild(a,"SegmentTemplate"),
|
|
1643
|
-
contentType:l,mimeType:m,codecs:n,frameRate:g,pixelAspectRatio:p,emsgSchemeIdUris:q,id:a.getAttribute("id"),numChannels:r,audioSamplingRate:
|
|
1640
|
+
b.contentType,m=a.getAttribute("mimeType")||b.mimeType,n=a.getAttribute("codecs")||b.codecs;g=e.parseAttr(a,"frameRate",g)||b.frameRate;var p=a.getAttribute("sar")||b.pixelAspectRatio,q=this.emsgSchemeIdUris_(e.findChildren(a,"InbandEventStream"),b.emsgSchemeIdUris),r=e.findChildren(a,"AudioChannelConfiguration");r=this.parseAudioChannels_(r)||b.numChannels;var u=e.parseAttr(a,"audioSamplingRate",f)||b.audioSamplingRate;l||(l=shaka.dash.DashParser.guessContentType_(m,n));var v=e.findChild(a,"SegmentBase"),
|
|
1641
|
+
w=e.findChild(a,"SegmentTemplate"),y=v?e.parseAttr(v,"availabilityTimeOffset",e.parseFloat)||0:0,t=w?e.parseAttr(w,"availabilityTimeOffset",e.parseFloat)||0:0;h=h&&h.length?e.parseAttr(h[0],"availabilityTimeOffset",e.parseFloat)||0:0;h=b.availabilityTimeOffset+h+y+t;return{baseUris:d.resolveUris(c,k),segmentBase:v||b.segmentBase,segmentList:e.findChild(a,"SegmentList")||b.segmentList,segmentTemplate:w||b.segmentTemplate,width:e.parseAttr(a,"width",f)||b.width,height:e.parseAttr(a,"height",f)||b.height,
|
|
1642
|
+
contentType:l,mimeType:m,codecs:n,frameRate:g,pixelAspectRatio:p,emsgSchemeIdUris:q,id:a.getAttribute("id"),numChannels:r,audioSamplingRate:u,availabilityTimeOffset:h}};shaka.dash.DashParser.prototype.emsgSchemeIdUris_=function(a,b){b=b.slice();a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next())c=c.value.getAttribute("schemeIdUri"),b.includes(c)||b.push(c);return b};
|
|
1644
1643
|
shaka.dash.DashParser.prototype.parseAudioChannels_=function(a){a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next()){var c=b.value;if(b=c.getAttribute("schemeIdUri"))if(c=c.getAttribute("value"))switch(b){case "urn:mpeg:dash:outputChannelPositionList:2012":return c.trim().split(/ +/).length;case "urn:mpeg:dash:23003:3:audio_channel_configuration:2011":case "urn:dts:dash:audio_channel_configuration:2012":var d=parseInt(c,10);if(!d){shaka.log.warning("Channel parsing failure! Ignoring scheme and value",
|
|
1645
1644
|
b,c);continue}return d;case "tag:dolby.com,2014:dash:audio_channel_configuration:2011":case "urn:dolby:dash:audio_channel_configuration:2011":d=parseInt(c,16);if(!d){shaka.log.warning("Channel parsing failure! Ignoring scheme and value",b,c);continue}for(a=0;d;)d&1&&++a,d>>=1;return a;case "urn:mpeg:mpegB:cicp:ChannelConfiguration":d=[0,1,2,3,4,5,6,8,2,3,4,7,8,24,8,12,10,12,14,12,14];var e=parseInt(c,10);if(!e){shaka.log.warning("Channel parsing failure! Ignoring scheme and value",b,c);continue}if(0<
|
|
1646
1645
|
e&&e<d.length)return d[e];continue;default:shaka.log.warning("Unrecognized audio channel scheme:",b,c)}}return null};
|
|
@@ -1679,23 +1678,23 @@ shaka.hls.HlsParser.prototype.start=function(a,b){var c=this,d;return $jscomp.as
|
|
|
1679
1678
|
shaka.hls.HlsParser.prototype.stop=function(){this.updatePlaylistTimer_&&(this.updatePlaylistTimer_.stop(),this.updatePlaylistTimer_=null);var a=[];this.operationManager_&&(a.push(this.operationManager_.destroy()),this.operationManager_=null);this.config_=this.playerInterface_=null;this.variantUriSet_.clear();this.manifest_=null;this.uriToStreamInfosMap_.clear();this.groupIdToStreamInfosMap_.clear();this.groupIdToCodecsMap_.clear();this.globalVariables_.clear();return Promise.all(a)};
|
|
1680
1679
|
shaka.hls.HlsParser.prototype.update=function(){var a=this,b,c,d,e,f,g,h,k,l;return $jscomp.asyncExecutePromiseGeneratorProgram(function(m){if(1==m.nextAddress){if(!a.isLive_())return m.return();b=[];c=Array.from(a.uriToStreamInfosMap_.values());d=c.filter(function(n){return n.stream.segmentIndex});e=$jscomp.makeIterator(d);for(f=e.next();!f.done;f=e.next())g=f.value,b.push(a.updateStream_(g));return m.yield(Promise.all(b),2)}a.notifySegmentsForStreams_(d.map(function(n){return n.stream}));h=d.some(function(n){return 0==
|
|
1681
1680
|
n.hasEndList});d.length&&!h&&(k=shaka.hls.HlsParser.PresentationType_,a.setPresentationType_(k.VOD),l=d.map(function(n){return n.maxTimestamp}),a.presentationTimeline_.setDuration(Math.min.apply(Math,$jscomp.arrayFromIterable(l))),a.playerInterface_.updateDuration());h&&a.determineDuration_();m.jumpToEnd()})};shaka.hls.HlsParser.prototype.getMediaSequenceToStartTimeFor_=function(a){return this.isLive_()?this.mediaSequenceToStartTimeByType_.get(a.type):a.mediaSequenceToStartTime};
|
|
1682
|
-
shaka.hls.HlsParser.prototype.updateStream_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,v,
|
|
1683
|
-
shaka.hls.PlaylistType.MEDIA)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_INVALID_PLAYLIST_HIERARCHY);g=shaka.hls.Utils.filterTagsByName(f.tags,"EXT-X-DEFINE");h=b.parseMediaVariables_(g);k=a.stream;l=b.getMediaSequenceToStartTimeFor_(a);m=b.parseDrmInfo_(f,k.mimeType);n=m.keyIds;p=m.drmInfos;q=function(A,
|
|
1684
|
-
(k.keyIds=n,k.drmInfos=p,b.playerInterface_.newDrmInfo(k));r=b.createSegments_(a.verbatimMediaPlaylistUri,f,k.type,k.mimeType,l,h);k.segmentIndex.mergeAndEvict(r,b.presentationTimeline_.getSegmentAvailabilityStart());r.length&&(
|
|
1685
|
-
|
|
1681
|
+
shaka.hls.HlsParser.prototype.updateStream_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,u,v,w,y,t;return $jscomp.asyncExecutePromiseGeneratorProgram(function(x){if(1==x.nextAddress)return c=a.absoluteMediaPlaylistUri,d=new goog.Uri(c),b.lowLatencyMode_&&a.canSkipSegments&&d.setQueryData(new goog.Uri.QueryData("_HLS_skip=YES")),x.yield(b.requestManifest_(d.toString()),2);e=x.yieldResult;if(!a.stream.segmentIndex)return x.return();f=b.manifestTextParser_.parsePlaylist(e.data,e.uri);if(f.type!=
|
|
1682
|
+
shaka.hls.PlaylistType.MEDIA)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_INVALID_PLAYLIST_HIERARCHY);g=shaka.hls.Utils.filterTagsByName(f.tags,"EXT-X-DEFINE");h=b.parseMediaVariables_(g);k=a.stream;l=b.getMediaSequenceToStartTimeFor_(a);m=b.parseDrmInfo_(f,k.mimeType);n=m.keyIds;p=m.drmInfos;q=function(A,z){return A.size===z.size&&[].concat($jscomp.arrayFromIterable(A)).every(function(B){return z.has(B)})};q(k.keyIds,n)||
|
|
1683
|
+
(k.keyIds=n,k.drmInfos=p,b.playerInterface_.newDrmInfo(k));r=b.createSegments_(a.verbatimMediaPlaylistUri,f,k.type,k.mimeType,l,h);k.segmentIndex.mergeAndEvict(r,b.presentationTimeline_.getSegmentAvailabilityStart());r.length&&(u=shaka.hls.Utils.getFirstTagWithNameAsNumber(f.tags,"EXT-X-MEDIA-SEQUENCE",0),v=l.get(u),k.segmentIndex.evict(v));w=r[0];goog.asserts.assert(w,"Should have segments!");a.minTimestamp=w.startTime;y=r[r.length-1];goog.asserts.assert(y,"Should have segments!");a.maxTimestamp=
|
|
1684
|
+
y.endTime;if(t=shaka.hls.Utils.getFirstTagWithName(f.tags,"EXT-X-ENDLIST"))a.hasEndList=!0;x.jumpToEnd()})};shaka.hls.HlsParser.prototype.onExpirationUpdated=function(a,b){};
|
|
1686
1685
|
shaka.hls.HlsParser.prototype.syncStreamsWithSequenceNumber_=function(a){for(var b=-1==this.minSequenceNumber_,c=$jscomp.makeIterator(a),d=c.next();!d.done;d=c.next()){d=d.value;var e=d.stream.segmentIndex;goog.asserts.assert(e,"Only loaded streams should be synced");var f=this.getMediaSequenceToStartTimeFor_(d);if(e=e.earliestReference()){if(goog.DEBUG){var g=f.values().next().value;goog.asserts.assert(g==e.startTime,"Sequence number map is not ordered as expected!")}f=$jscomp.makeIterator(f);for(g=
|
|
1687
1686
|
f.next();!g.done;g=f.next()){g=$jscomp.makeIterator(g.value);var h=g.next().value;if(g.next().value==e.startTime){b&&(this.minSequenceNumber_=Math.max(this.minSequenceNumber_,h));d.firstSequenceNumber=h;break}}}}if(!(0>this.minSequenceNumber_))for(shaka.log.debug("Syncing HLS streams against base sequence number:",this.minSequenceNumber_),a=$jscomp.makeIterator(a),d=a.next();!d.done;d=a.next())if(b=d.value,c=b.stream.segmentIndex)if(c.dropFirstReferences(this.minSequenceNumber_-b.firstSequenceNumber),
|
|
1688
1687
|
c=c.earliestReference())c=-c.startTime,b.stream.segmentIndex.offset(c),this.offsetStreamInfo_(b,c)};
|
|
1689
1688
|
shaka.hls.HlsParser.prototype.syncStreamsWithProgramDateTime_=function(a){if(Infinity==this.lowestSyncTime_){a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next()){var c=b.value.stream.segmentIndex;goog.asserts.assert(c,"Only loaded streams should be synced");c=c.earliestReference();null!=c&&null!=c.syncTime&&(this.lowestSyncTime_=Math.min(this.lowestSyncTime_,c.syncTime))}}a=this.lowestSyncTime_;if(Infinity!=a)for(shaka.log.debug("Syncing HLS streams against base time:",a),c=$jscomp.makeIterator(this.uriToStreamInfosMap_.values()),
|
|
1690
1689
|
b=c.next();!b.done;b=c.next()){b=b.value;var d=b.stream.segmentIndex;if(null!=d){var e=d.earliestReference();if(null==e.syncTime)shaka.log.alwaysError("Missing EXT-X-PROGRAM-DATE-TIME for stream",b.verbatimMediaPlaylistUri,"Expect AV sync issues!");else for(this.offsetStreamInfo_(b,e.syncTime-a-e.startTime),b=$jscomp.makeIterator(d),d=b.next();!d.done;d=b.next())d.value.syncAgainst(a)}}};
|
|
1691
1690
|
shaka.hls.HlsParser.prototype.offsetStreamInfo_=function(a,b){a.minTimestamp+=b;a.maxTimestamp+=b;goog.asserts.assert(0<=a.maxTimestamp,"Negative maxTimestamp after adjustment!");for(var c=this.getMediaSequenceToStartTimeFor_(a),d=$jscomp.makeIterator(c),e=d.next();!e.done;e=d.next()){var f=$jscomp.makeIterator(e.value);e=f.next().value;f=f.next().value;c.set(e,f+b)}shaka.log.debug("Offset",b,"applied to",a.verbatimMediaPlaylistUri)};
|
|
1692
|
-
shaka.hls.HlsParser.prototype.parseManifest_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,v,
|
|
1691
|
+
shaka.hls.HlsParser.prototype.parseManifest_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,u,v,w,y,t,x,A,z,B,D,G,C,E,F,I,H,J,L,K,N,O,M;return $jscomp.asyncExecutePromiseGeneratorProgram(function(P){switch(P.nextAddress){case 1:d=shaka.hls.HlsParser;e=shaka.hls.Utils;goog.asserts.assert(c.masterPlaylistUri_,"Master playlist URI must be set before calling parseManifest_!");f=c.manifestTextParser_.parsePlaylist(a,c.masterPlaylistUri_);g=e.filterTagsByName(f.tags,"EXT-X-DEFINE");c.parseMasterVariables_(g);
|
|
1693
1692
|
h=[];k=[];l=[];if(f.type==shaka.hls.PlaylistType.MEDIA)return D=c.config_.hls.mediaPlaylistFullMimeType,f.segments.length&&(G=new goog.Uri(f.segments[0].absoluteUri),C=G.getPath().split(".").pop(),(E=d.RAW_FORMATS_TO_MIME_TYPES_[C])?D=E:"ts"!==C&&"mp4"!==C&&(d.AUDIO_EXTENSIONS_TO_MIME_TYPES_[C]?(E=d.AUDIO_EXTENSIONS_TO_MIME_TYPES_[C],F=c.config_.hls.defaultAudioCodec,D=E+'; codecs="'+F+'"'):d.VIDEO_EXTENSIONS_TO_MIME_TYPES_[C]&&(E=d.VIDEO_EXTENSIONS_TO_MIME_TYPES_[C],I=c.config_.hls.defaultVideoCodec,
|
|
1694
|
-
D=E+'; codecs="'+I+'"'))),H=shaka.util.MimeUtils.getBasicType(D),J=H.split("/")[0],L=shaka.util.MimeUtils.getCodecs(D),K=new Map,P.yield(c.convertParsedPlaylistIntoStreamInfo_(f,b,b,L,J,"",!0,"Media Playlist",null,K,null,!1,!1,H),5);m=e.filterTagsByName(f.tags,"EXT-X-MEDIA");n=e.filterTagsByName(f.tags,"EXT-X-STREAM-INF");p=e.filterTagsByName(f.tags,"EXT-X-IMAGE-STREAM-INF");q=e.filterTagsByName(f.tags,"EXT-X-SESSION-KEY");c.parseCodecs_(n);r=e.filterTagsByName(f.tags,"EXT-X-SESSION-DATA");
|
|
1695
|
-
for(u
|
|
1693
|
+
D=E+'; codecs="'+I+'"'))),H=shaka.util.MimeUtils.getBasicType(D),J=H.split("/")[0],L=shaka.util.MimeUtils.getCodecs(D),K=new Map,P.yield(c.convertParsedPlaylistIntoStreamInfo_(f,b,b,L,J,"",!0,"Media Playlist",null,K,null,!1,!1,H),5);m=e.filterTagsByName(f.tags,"EXT-X-MEDIA");n=e.filterTagsByName(f.tags,"EXT-X-STREAM-INF");p=e.filterTagsByName(f.tags,"EXT-X-IMAGE-STREAM-INF");q=e.filterTagsByName(f.tags,"EXT-X-SESSION-KEY");c.parseCodecs_(n);r=e.filterTagsByName(f.tags,"EXT-X-SESSION-DATA");u=$jscomp.makeIterator(r);
|
|
1694
|
+
for(v=u.next();!v.done;v=u.next())if(w=v.value,y=w.getAttributeValue("DATA-ID"),t=w.getAttributeValue("URI"),x=w.getAttributeValue("LANGUAGE"),A=w.getAttributeValue("VALUE"),z=(new Map).set("id",y),t&&z.set("uri",shaka.hls.Utils.constructAbsoluteUri(c.masterPlaylistUri_,t)),x&&z.set("language",x),A&&z.set("value",A),B=new shaka.util.FakeEvent("sessiondata",z),c.playerInterface_)c.playerInterface_.onEvent(B);c.createStreamInfosFromMediaTags_(m);c.parseClosedCaptions_(m);h=c.createVariantsForTags_(n,
|
|
1696
1695
|
q);k=c.parseTexts_(m);return P.yield(c.parseImages_(p),4);case 4:l=P.yieldResult;P.jumpTo(3);break;case 5:N=P.yieldResult,c.uriToStreamInfosMap_.set(b,N),h.push({id:0,language:"und",disabledUntilTime:0,primary:!0,audio:"audio"==J?N.stream:null,video:"video"==J?N.stream:null,bandwidth:0,allowedByApplication:!0,allowedByKeySystem:!0,decodingInfos:[]});case 3:if(!c.playerInterface_)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.PLAYER,shaka.util.Error.Code.OPERATION_ABORTED);
|
|
1697
|
-
goog.asserts.assert(null==c.presentationTimeline_,"Presentation timeline created early!");c.presentationTimeline_=new shaka.media.PresentationTimeline(null,0);c.presentationTimeline_.setStatic(!0);f.type==shaka.hls.PlaylistType.MEDIA&&(c.isLive_()&&(c.changePresentationTimelineToLive_(),O=c.updatePlaylistDelay_,c.updatePlaylistTimer_.tickAfter(O)),M=Array.from(c.uriToStreamInfosMap_.values()),c.finalizeStreams_(M),c.determineDuration_());c.manifest_={presentationTimeline:c.presentationTimeline_,
|
|
1698
|
-
textStreams:k,imageStreams:l,offlineSessionIds:[],minBufferTime:0,sequenceMode:!0};c.playerInterface_.makeTextStreamsForClosedCaptions(c.manifest_);P.jumpToEnd()}})};
|
|
1696
|
+
goog.asserts.assert(null==c.presentationTimeline_,"Presentation timeline created early!");c.presentationTimeline_=new shaka.media.PresentationTimeline(null,0);c.presentationTimeline_.setStatic(!0);f.type==shaka.hls.PlaylistType.MEDIA&&(c.isLive_()&&(c.changePresentationTimelineToLive_(f),O=c.updatePlaylistDelay_,c.updatePlaylistTimer_.tickAfter(O)),M=Array.from(c.uriToStreamInfosMap_.values()),c.finalizeStreams_(M),c.determineDuration_());c.manifest_={presentationTimeline:c.presentationTimeline_,
|
|
1697
|
+
variants:h,textStreams:k,imageStreams:l,offlineSessionIds:[],minBufferTime:0,sequenceMode:!0};c.playerInterface_.makeTextStreamsForClosedCaptions(c.manifest_);P.jumpToEnd()}})};
|
|
1699
1698
|
shaka.hls.HlsParser.prototype.determineDuration_=function(){goog.asserts.assert(this.presentationTimeline_,"Presentation timeline not created!");if(this.isLive_()){if(this.updatePlaylistDelay_=this.minTargetDuration_,this.presentationType_==shaka.hls.HlsParser.PresentationType_.LIVE){var a=this.getLiveDuration_();this.config_.hls.useSafariBehaviorForLive&&(a=this.presentationTimeline_.getDelay());isNaN(this.config_.availabilityWindowOverride)||(a=this.config_.availabilityWindowOverride);this.presentationTimeline_.setSegmentAvailabilityDuration(a)}}else this.presentationTimeline_.setDuration(this.getMinDuration_());
|
|
1700
1699
|
this.presentationTimeline_.lockStartTime();goog.asserts.assert(!this.presentationTimeline_.usingPresentationStartTime(),"We should not be using the presentation start time in HLS!")};shaka.hls.HlsParser.prototype.parseMasterVariables_=function(a){a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next()){var c=b.value;b=c.getAttributeValue("NAME");c=c.getAttributeValue("VALUE");b&&c&&(this.globalVariables_.has(b)||this.globalVariables_.set(b,c))}};
|
|
1701
1700
|
shaka.hls.HlsParser.prototype.parseMediaVariables_=function(a){var b=new Map;a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next()){var d=c.value;c=d.getAttributeValue("NAME");var e=d.getAttributeValue("VALUE");d=d.getAttributeValue("IMPORT");c&&e&&b.set(c,e);d&&(c=this.globalVariables_.get(d))&&b.set(d,c)}return b};
|
|
@@ -1718,30 +1717,30 @@ shaka.hls.HlsParser.prototype.getType_=function(a){a=a.getRequiredAttrValue("TYP
|
|
|
1718
1717
|
shaka.hls.HlsParser.prototype.createVariants_=function(a,b,c,d,e,f,g,h,k){for(var l=shaka.util.ManifestParserUtils.ContentType,m=shaka.media.DrmEngine,n=$jscomp.makeIterator(b),p=n.next();!p.done;p=n.next())this.addVideoAttributes_(p.value.stream,d,e,f,g);d=this.config_.disableAudio;if(!a.length||d)a=[null];d=this.config_.disableVideo;if(!b.length||d)b=[null];d=[];a=$jscomp.makeIterator(a);for(e=a.next();!e.done;e=a.next())for(e=e.value,f=$jscomp.makeIterator(b),g=f.next();!g.done;g=f.next()){var q=
|
|
1719
1718
|
g.value;if(g=e?e.stream:null)g.drmInfos=h,g.keyIds=k;if(n=q?q.stream:null)n.drmInfos=h,n.keyIds=k;p=e?e.stream.drmInfos:null;var r=q?q.stream.drmInfos:null;q=(q?q.verbatimMediaPlaylistUri:"")+" - "+(e?e.verbatimMediaPlaylistUri:"");g&&n&&!m.areDrmCompatible(p,r)?shaka.log.warning("Incompatible DRM info in HLS variant. Skipping."):this.variantUriSet_.has(q)?shaka.log.debug("Skipping variant which only differs in text streams."):(goog.asserts.assert(!g||g.type==l.AUDIO,"Audio parameter mismatch!"),
|
|
1720
1719
|
goog.asserts.assert(!n||n.type==l.VIDEO,"Video parameter mismatch!"),g={id:this.globalId_++,language:g?g.language:"und",primary:!!g&&g.primary||!!n&&n.primary,audio:g,video:n,bandwidth:c,allowedByApplication:!0,allowedByKeySystem:!0,decodingInfos:[]},d.push(g),this.variantUriSet_.add(q))}return d};
|
|
1721
|
-
shaka.hls.HlsParser.prototype.parseClosedCaptions_=function(a){a=shaka.hls.Utils.filterTagsByType(a,"CLOSED-CAPTIONS");a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next()){var c=b.value;goog.asserts.assert("EXT-X-MEDIA"==c.name,"Should only be called on media tags!");b=this.getLanguage_(c);
|
|
1722
|
-
b)}};
|
|
1723
|
-
shaka.hls.HlsParser.prototype.createStreamInfoFromMediaTag_=function(a){goog.asserts.assert("EXT-X-MEDIA"==a.name,"Should only be called on media tags!");var b=a.getRequiredAttrValue("GROUP-ID"),c="",d=this.getType_(a);d==shaka.util.ManifestParserUtils.ContentType.TEXT?c=a.getAttributeValue("CODECS")||"":b&&this.groupIdToCodecsMap_.has(b)&&(c=this.groupIdToCodecsMap_.get(b));var e=this.variableSubstitution_(a.getRequiredAttrValue("URI"),this.globalVariables_);if(this.uriToStreamInfosMap_.has(e))return this.uriToStreamInfosMap_.get(e);
|
|
1724
|
-
this.getLanguage_(a),g=a.getAttributeValue("NAME"),h="YES"==a.getAttributeValue("DEFAULT"),k="audio"==d?this.getChannelsCount_(a):null,l="audio"==d?this.isSpatialAudio_(a):!1,m=a.getAttributeValue("CHARACTERISTICS");a=a.getAttributeValue("FORCED");c=this.createStreamInfo_(e,c,d,f,h,g,k,null,m,"YES"==a,l);this.groupIdToStreamInfosMap_.has(b)?this.groupIdToStreamInfosMap_.get(b).push(c):this.groupIdToStreamInfosMap_.set(b,[c]);if(this.uriToStreamInfosMap_.has(e))return this.uriToStreamInfosMap_.get(e);
|
|
1720
|
+
shaka.hls.HlsParser.prototype.parseClosedCaptions_=function(a){a=shaka.hls.Utils.filterTagsByType(a,"CLOSED-CAPTIONS");a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next()){var c=b.value;goog.asserts.assert("EXT-X-MEDIA"==c.name,"Should only be called on media tags!");var d=c.getAttributeValue("LANGUAGE");b=this.getLanguage_(c);d||(d=c.getAttributeValue("NAME"))&&(b=d);d=c.getRequiredAttrValue("GROUP-ID");c=c.getRequiredAttrValue("INSTREAM-ID").replace("SERVICE","svc");this.groupIdToClosedCaptionsMap_.get(d)||
|
|
1721
|
+
this.groupIdToClosedCaptionsMap_.set(d,new Map);this.groupIdToClosedCaptionsMap_.get(d).set(c,b)}};
|
|
1722
|
+
shaka.hls.HlsParser.prototype.createStreamInfoFromMediaTag_=function(a){goog.asserts.assert("EXT-X-MEDIA"==a.name,"Should only be called on media tags!");var b=a.getRequiredAttrValue("GROUP-ID"),c="",d=this.getType_(a);d==shaka.util.ManifestParserUtils.ContentType.TEXT?c=a.getAttributeValue("CODECS")||"":b&&this.groupIdToCodecsMap_.has(b)&&(c=this.groupIdToCodecsMap_.get(b));var e=this.variableSubstitution_(a.getRequiredAttrValue("URI"),this.globalVariables_);if(this.uriToStreamInfosMap_.has(e))return this.uriToStreamInfosMap_.get(e);
|
|
1723
|
+
var f=this.getLanguage_(a),g=a.getAttributeValue("NAME"),h="YES"==a.getAttributeValue("DEFAULT"),k="audio"==d?this.getChannelsCount_(a):null,l="audio"==d?this.isSpatialAudio_(a):!1,m=a.getAttributeValue("CHARACTERISTICS");a=a.getAttributeValue("FORCED");c=this.createStreamInfo_(e,c,d,f,h,g,k,null,m,"YES"==a,l);this.groupIdToStreamInfosMap_.has(b)?this.groupIdToStreamInfosMap_.get(b).push(c):this.groupIdToStreamInfosMap_.set(b,[c]);if(this.uriToStreamInfosMap_.has(e))return this.uriToStreamInfosMap_.get(e);
|
|
1725
1724
|
this.uriToStreamInfosMap_.set(e,c);return c};
|
|
1726
1725
|
shaka.hls.HlsParser.prototype.createStreamInfoFromImageTag_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p;return $jscomp.asyncExecutePromiseGeneratorProgram(function(q){if(1==q.nextAddress){goog.asserts.assert("EXT-X-IMAGE-STREAM-INF"==a.name,"Should only be called on image tags!");c=shaka.util.ManifestParserUtils.ContentType.IMAGE;d=b.variableSubstitution_(a.getRequiredAttrValue("URI"),b.globalVariables_);e=a.getAttributeValue("CODECS","jpeg")||"";if(b.uriToStreamInfosMap_.has(d))return q.return(b.uriToStreamInfosMap_.get(d));f=
|
|
1727
1726
|
b.getLanguage_(a);g=a.getAttributeValue("NAME");h=a.getAttributeValue("CHARACTERISTICS");k=b.createStreamInfo_(d,e,c,f,!1,g,null,null,h,!1,!1);return b.uriToStreamInfosMap_.has(d)?q.return(b.uriToStreamInfosMap_.get(d)):(l=a.getAttributeValue("RESOLUTION"))?q.yield(k.stream.createSegmentIndex(),3):q.jumpTo(2)}2!=q.nextAddress&&(m=k.stream.segmentIndex.get(0),n=m.getTilesLayout())&&(k.stream.width=Number(l.split("x")[0])*Number(n.split("x")[0]),k.stream.height=Number(l.split("x")[1])*Number(n.split("x")[1]));
|
|
1728
1727
|
if(p=a.getAttributeValue("BANDWIDTH"))k.stream.bandwidth=Number(p);b.uriToStreamInfosMap_.set(d,k);return q.return(k)})};
|
|
1729
1728
|
shaka.hls.HlsParser.prototype.createStreamInfoFromVariantTag_=function(a,b,c){goog.asserts.assert("EXT-X-STREAM-INF"==a.name,"Should only be called on variant tags!");var d=this.variableSubstitution_(a.getRequiredAttrValue("URI"),this.globalVariables_);if(this.uriToStreamInfosMap_.has(d))return this.uriToStreamInfosMap_.get(d);a=this.getClosedCaptions_(a,c);b=shaka.util.ManifestParserUtils.guessCodecs(c,b);c=this.createStreamInfo_(d,b,c,"und",!1,null,null,a,null,!1,!1);if(this.uriToStreamInfosMap_.has(d))return this.uriToStreamInfosMap_.get(d);
|
|
1730
1729
|
this.uriToStreamInfosMap_.set(d,c);return c};
|
|
1731
|
-
shaka.hls.HlsParser.prototype.createStreamInfo_=function(a,b,c,d,e,f,g,h,k,l,m){var n=this,p=shaka.hls.Utils.constructAbsoluteUri(this.masterPlaylistUri_,a),q=this.makeStreamObject_(b,c,d,e,f,g,h,k,l,m);shaka.media.MediaSourceEngine.RAW_FORMATS.includes(q.mimeType)&&(q.codecs="");var r={stream:q,type:c,verbatimMediaPlaylistUri:a,absoluteMediaPlaylistUri:p,minTimestamp:0,maxTimestamp:0,mediaSequenceToStartTime:new Map,canSkipSegments:!1,hasEndList:!1,firstSequenceNumber:-1,loadedOnce:!1},
|
|
1732
|
-
x,A,
|
|
1730
|
+
shaka.hls.HlsParser.prototype.createStreamInfo_=function(a,b,c,d,e,f,g,h,k,l,m){var n=this,p=shaka.hls.Utils.constructAbsoluteUri(this.masterPlaylistUri_,a),q=this.makeStreamObject_(b,c,d,e,f,g,h,k,l,m);shaka.media.MediaSourceEngine.RAW_FORMATS.includes(q.mimeType)&&(q.codecs="");var r={stream:q,type:c,verbatimMediaPlaylistUri:a,absoluteMediaPlaylistUri:p,minTimestamp:0,maxTimestamp:0,mediaSequenceToStartTime:new Map,canSkipSegments:!1,hasEndList:!1,firstSequenceNumber:-1,loadedOnce:!1},u=function(y){var t,
|
|
1731
|
+
x,A,z,B,D,G,C,E,F,I,H,J,L;return $jscomp.asyncExecutePromiseGeneratorProgram(function(K){if(1==K.nextAddress)return K.yield(n.requestManifest_(r.absoluteMediaPlaylistUri),2);if(3!=K.nextAddress){t=K.yieldResult;if(y.aborted)return K.return();x=t.uri;A=n.manifestTextParser_.parsePlaylist(t.data,x);z=n.isLive_();return K.yield(n.convertParsedPlaylistIntoStreamInfo_(A,a,x,b,c,d,e,f,g,h,k,l,m),3)}B=K.yieldResult;if(y.aborted)return K.return();D=B.stream;n.isLive_()&&!z&&n.changePresentationTimelineToLive_(A);
|
|
1733
1732
|
r.absoluteMediaPlaylistUri=x;r.minTimestamp=B.minTimestamp;r.maxTimestamp=B.maxTimestamp;r.canSkipSegments=B.canSkipSegments;r.hasEndList=B.hasEndList;r.mediaSequenceToStartTime=B.mediaSequenceToStartTime;r.loadedOnce=!0;q.segmentIndex=D.segmentIndex;q.encrypted=D.encrypted;q.drmInfos=D.drmInfos;q.keyIds=D.keyIds;q.mimeType=D.mimeType;shaka.media.MediaSourceEngine.RAW_FORMATS.includes(q.mimeType)&&(q.codecs="");q.drmInfos.length&&n.playerInterface_.newDrmInfo(q);G=shaka.util.ManifestParserUtils.ContentType;
|
|
1734
1733
|
if(c==G.VIDEO||c==G.AUDIO)for(C=$jscomp.makeIterator(n.uriToStreamInfosMap_.values()),E=C.next();!E.done;E=C.next())F=E.value,F.loadedOnce||F.type!=c||(F.stream.mimeType=D.mimeType,shaka.media.MediaSourceEngine.RAW_FORMATS.includes(F.stream.mimeType)&&(F.stream.codecs=""));c==G.TEXT&&(I=D.segmentIndex.get(0))&&I.initSegmentReference&&(q.mimeType="application/mp4");n.hasEnoughInfoToFinalizeStreams_()&&(n.streamsFinalized_?n.finalizeStreams_([r]):(n.streamsFinalized_=!0,H=Array.from(n.uriToStreamInfosMap_.values()),
|
|
1735
|
-
J=H.filter(function(N){return N.stream.segmentIndex}),n.finalizeStreams_(J),n.determineDuration_(),L=n.updatePlaylistDelay_,0<L&&n.updatePlaylistTimer_.tickAfter(L)));K.jumpToEnd()})},
|
|
1734
|
+
J=H.filter(function(N){return N.stream.segmentIndex}),n.finalizeStreams_(J),n.determineDuration_(),L=n.updatePlaylistDelay_,0<L&&n.updatePlaylistTimer_.tickAfter(L)));K.jumpToEnd()})},v=null,w=new AbortController;q.createSegmentIndex=function(){if(v)return v;w=new AbortController;return v=new Promise(function(y){y(u(w.signal))})};q.closeSegmentIndex=function(){v&&!q.segmentIndex&&w.abort();q.segmentIndex&&(q.segmentIndex.release(),q.segmentIndex=null);v=null};return r};
|
|
1736
1735
|
shaka.hls.HlsParser.prototype.getMinDuration_=function(){for(var a=Infinity,b=$jscomp.makeIterator(this.uriToStreamInfosMap_.values()),c=b.next();!c.done;c=b.next())c=c.value,c.stream.segmentIndex&&"text"!=c.stream.type&&(a=Math.min(a,c.maxTimestamp));return a};
|
|
1737
1736
|
shaka.hls.HlsParser.prototype.getLiveDuration_=function(){for(var a=Infinity,b=Infinity,c=$jscomp.makeIterator(this.uriToStreamInfosMap_.values()),d=c.next();!d.done;d=c.next())d=d.value,d.stream.segmentIndex&&"text"!=d.stream.type&&(a=Math.min(a,d.maxTimestamp),b=Math.min(b,d.minTimestamp));return a-b};
|
|
1738
1737
|
shaka.hls.HlsParser.prototype.notifySegmentsForStreams_=function(a){var b=[];a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next())c=c.value,c.segmentIndex&&c.segmentIndex.forEachTopLevelReference(function(d){b.push(d)});this.presentationTimeline_.notifySegments(b)};
|
|
1739
1738
|
shaka.hls.HlsParser.prototype.finalizeStreams_=function(a){if(!this.isLive_())for(var b=this.getMinDuration_(),c=$jscomp.makeIterator(a),d=c.next();!d.done;d=c.next())d.value.stream.segmentIndex.fit(0,b);b=$jscomp.makeIterator(a);for(d=b.next();!d.done;d=b.next())d=d.value.stream,shaka.media.MediaSourceEngine.RAW_FORMATS.includes(d.mimeType)&&(d.codecs="");this.notifySegmentsForStreams_(a.map(function(e){return e.stream}));this.config_.hls.ignoreManifestProgramDateTime?this.syncStreamsWithSequenceNumber_(a):
|
|
1740
1739
|
this.syncStreamsWithProgramDateTime_(a)};shaka.hls.HlsParser.prototype.hasEnoughInfoToFinalizeStreams_=function(){if(!this.manifest_)return!1;for(var a=[],b=[],c=$jscomp.makeIterator(this.manifest_.variants),d=c.next();!d.done;d=c.next())d=d.value,d.video&&a.push(d.video),d.audio&&b.push(d.audio);return 0<a.length&&!a.some(function(e){return e.segmentIndex})||0<b.length&&!b.some(function(e){return e.segmentIndex})?!1:!0};
|
|
1741
|
-
shaka.hls.HlsParser.prototype.convertParsedPlaylistIntoStreamInfo_=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q){var r=this,v,
|
|
1742
|
-
goog.asserts.assert(null!=a.segments,"Media playlist should have segments!");r.determinePresentationType_(a);return q?J.jumpTo(2):J.yield(r.guessMimeType_(e,d,a,
|
|
1743
|
-
new Map;B=r.lowLatencyMode_;D=r.createSegments_(b,a,e,q,
|
|
1744
|
-
minTimestamp:G,maxTimestamp:C,canSkipSegments:I,hasEndList:!1,firstSequenceNumber:-1,mediaSequenceToStartTime:
|
|
1740
|
+
shaka.hls.HlsParser.prototype.convertParsedPlaylistIntoStreamInfo_=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q){var r=this,u,v,w,y,t,x,A,z,B,D,G,C,E,F,I,H;return $jscomp.asyncExecutePromiseGeneratorProgram(function(J){if(1==J.nextAddress){if(a.type!=shaka.hls.PlaylistType.MEDIA)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_INVALID_PLAYLIST_HIERARCHY);u=shaka.hls.Utils.filterTagsByName(a.tags,"EXT-X-DEFINE");v=r.parseMediaVariables_(u);
|
|
1741
|
+
goog.asserts.assert(null!=a.segments,"Media playlist should have segments!");r.determinePresentationType_(a);return q?J.jumpTo(2):J.yield(r.guessMimeType_(e,d,a,v),3)}2!=J.nextAddress&&(q=J.yieldResult);w=r.parseDrmInfo_(a,q);y=w.drmInfos;t=w.keyIds;x=w.encrypted;A=w.aesEncrypted;if(x&&!y.length&&!A)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_KEYFORMATS_NOT_SUPPORTED);z=r.isLive_()?r.mediaSequenceToStartTimeByType_.get(e):
|
|
1742
|
+
new Map;B=r.lowLatencyMode_;D=r.createSegments_(b,a,e,q,z,v);B!=r.lowLatencyMode_&&r.determinePresentationType_(a);G=D[0].startTime;C=D[D.length-1].endTime;E=new shaka.media.SegmentIndex(D);I=(F=shaka.hls.Utils.getFirstTagWithName(a.tags,"EXT-X-SERVER-CONTROL"))?null!=F.getAttribute("CAN-SKIP-UNTIL"):!1;H=r.makeStreamObject_(d,e,f,g,h,k,l,m,n,p);H.segmentIndex=E;H.encrypted=x;H.drmInfos=y;H.keyIds=t;H.mimeType=q;return J.return({stream:H,type:e,verbatimMediaPlaylistUri:b,absoluteMediaPlaylistUri:c,
|
|
1743
|
+
minTimestamp:G,maxTimestamp:C,canSkipSegments:I,hasEndList:!1,firstSequenceNumber:-1,mediaSequenceToStartTime:z,loadedOnce:!1})})};
|
|
1745
1744
|
shaka.hls.HlsParser.prototype.makeStreamObject_=function(a,b,c,d,e,f,g,h,k,l){var m=this.guessMimeTypeBeforeLoading_(b,a)||this.guessMimeTypeFallback_(b),n=[];if(h){h=$jscomp.makeIterator(h.split(","));for(var p=h.next();!p.done;p=h.next())n.push(p.value)}h=b==shaka.util.ManifestParserUtils.ContentType.TEXT?shaka.util.ManifestParserUtils.TextStreamKind.SUBTITLE:void 0;n.length||h!==shaka.util.ManifestParserUtils.TextStreamKind.SUBTITLE||n.push(shaka.util.ManifestParserUtils.TextStreamKind.SUBTITLE);
|
|
1746
1745
|
return{id:this.globalId_++,originalId:e,createSegmentIndex:function(){return Promise.resolve()},segmentIndex:null,mimeType:m,codecs:a,kind:h,encrypted:!1,drmInfos:[],keyIds:new Set,language:c,label:e,type:b,primary:d,trickModeVideo:null,emsgSchemeIdUris:null,frameRate:void 0,pixelAspectRatio:void 0,width:void 0,height:void 0,bandwidth:void 0,roles:n,forced:k,channelsCount:f,audioSamplingRate:null,spatialAudio:l,closedCaptions:g,hdr:void 0,tilesLayout:void 0,external:!1}};
|
|
1747
1746
|
shaka.hls.HlsParser.prototype.parseDrmInfo_=function(a,b){var c=[];if(a.segments){a=$jscomp.makeIterator(a.segments);for(var d=a.next();!d.done;d=a.next())d=shaka.hls.Utils.filterTagsByName(d.value.tags,"EXT-X-KEY"),c.push.apply(c,$jscomp.arrayFromIterable(d))}d=a=!1;var e=[],f=new Set;c=$jscomp.makeIterator(c);for(var g=c.next();!g.done;g=c.next()){g=g.value;var h=g.getRequiredAttrValue("METHOD");if("NONE"!=h)if(a=!0,"AES-128"==h)d=!0;else{h=g.getAttributeValue("KEYFORMAT")||"identity";var k=shaka.hls.HlsParser.KEYFORMATS_TO_DRM_PARSERS_[h];
|
|
@@ -1751,26 +1750,26 @@ shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_AES_128_INVALID_IV_
|
|
|
1751
1750
|
p.nextAddress)return p.yield(c.makeNetworkRequest_(h,g),2);if(3!=p.nextAddress){l=p.yieldResult;if(!l.data||16!=l.data.byteLength)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_AES_128_INVALID_KEY_LENGTH);m={name:"AES-CBC"};n=k;return p.yield(window.crypto.subtle.importKey("raw",l.data,m,!0,["decrypt"]),3)}n.cryptoKey=p.yieldResult;k.fetchKey=void 0;p.jumpToEnd()})}};return k};
|
|
1752
1751
|
shaka.hls.HlsParser.prototype.determinePresentationType_=function(a){var b=shaka.hls.HlsParser.PresentationType_,c=shaka.hls.Utils.getFirstTagWithName(a.tags,"EXT-X-PLAYLIST-TYPE"),d=shaka.hls.Utils.getFirstTagWithName(a.tags,"EXT-X-ENDLIST");d=c&&"VOD"==c.value||d;c=c&&"EVENT"==c.value&&!d;c=!d&&!c;d?this.setPresentationType_(b.VOD):(c?this.setPresentationType_(b.LIVE):this.setPresentationType_(b.EVENT),b=this.getRequiredTag_(a.tags,"EXT-X-TARGETDURATION"),b=Number(b.value),d=shaka.hls.Utils.getFirstTagWithName(a.tags,
|
|
1753
1752
|
"EXT-X-PART-INF"),this.lowLatencyMode_&&d?(this.partialTargetDuration_=Number(d.getRequiredAttrValue("PART-TARGET")),this.minTargetDuration_=Math.min(this.partialTargetDuration_,this.minTargetDuration_),this.lowLatencyPresentationDelay_=(a=shaka.hls.Utils.getFirstTagWithName(a.tags,"EXT-X-SERVER-CONTROL"))?Number(a.getRequiredAttrValue("PART-HOLD-BACK")):0):this.minTargetDuration_=Math.min(b,this.minTargetDuration_),this.maxTargetDuration_=Math.max(b,this.maxTargetDuration_))};
|
|
1754
|
-
shaka.hls.HlsParser.prototype.changePresentationTimelineToLive_=function(){
|
|
1755
|
-
shaka.hls.HlsParser.prototype.getInitSegmentReference_=function(a,b,c){
|
|
1756
|
-
shaka.hls.HlsParser.prototype.createInitSegmentReference_=function(a,b){var
|
|
1757
|
-
shaka.hls.HlsParser.prototype.createSegmentReference_=function(a,b,c,d,e,f,g,h
|
|
1758
|
-
shaka.hls.Utils.getFirstTagWithName(
|
|
1759
|
-
"EXTINF");if(!this.lowLatencyMode_)return null}var u=[];if(this.lowLatencyMode_){
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
Number(g)));return new shaka.media.SegmentReference(d,
|
|
1753
|
+
shaka.hls.HlsParser.prototype.changePresentationTimelineToLive_=function(a){if(this.config_.defaultPresentationDelay)a=this.config_.defaultPresentationDelay;else if(this.lowLatencyPresentationDelay_)a=this.lowLatencyPresentationDelay_;else{a=a.segments.length;var b=this.config_.hls.liveSegmentsDelay;b>a-2&&(b=Math.max(1,a-2));a=this.maxTargetDuration_*b}this.presentationTimeline_.setPresentationStartTime(0);this.presentationTimeline_.setDelay(a);this.presentationTimeline_.setStatic(!1)};
|
|
1754
|
+
shaka.hls.HlsParser.prototype.getInitSegmentReference_=function(a,b,c){var d=shaka.hls.Utils.getFirstTagWithName(b,"EXT-X-MAP");if(!d)return null;var e=d.getRequiredAttrValue("URI");e=this.variableSubstitution_(shaka.hls.Utils.constructAbsoluteUri(a.absoluteUri,e),c);c=[e,d.getAttributeValue("BYTERANGE","")].join("-");if(!this.mapTagToInitSegmentRefMap_.has(c)){var f=void 0;b=$jscomp.makeIterator(b);for(var g=b.next();!g.done;g=b.next())g=g.value,"EXT-X-KEY"==g.name&&"AES-128"==g.getRequiredAttrValue("METHOD")&&
|
|
1755
|
+
g.id<d.id&&(f=this.parseAES128DrmTag_(g,a));a=this.createInitSegmentReference_(e,d,f);this.mapTagToInitSegmentRefMap_.set(c,a)}return this.mapTagToInitSegmentRefMap_.get(c)};shaka.hls.HlsParser.prototype.createInitSegmentReference_=function(a,b,c){var d=0,e=null;if(b=b.getAttributeValue("BYTERANGE"))d=b.split("@"),e=Number(d[0]),d=Number(d[1]),e=d+e-1,c&&(b=e+1-d,b%16&&(e+=16-b%16));return new shaka.media.InitSegmentReference(function(){return[a]},d,e,null,null,c)};
|
|
1756
|
+
shaka.hls.HlsParser.prototype.createSegmentReference_=function(a,b,c,d,e,f,g,h){var k=c.tags,l=this.variableSubstitution_(c.absoluteUri,e),m=shaka.hls.Utils.getFirstTagWithName(k,"EXTINF"),n=0;e=0;var p=null;c.partialSegments.length&&!this.lowLatencyMode_&&shaka.log.alwaysWarn("Low-latency HLS live stream detected, but low-latency streaming mode is not enabled in Shaka Player. Set streaming.lowLatencyMode configuration to true, and see https://bit.ly/3clctcj for details.");var q=null;if(!this.config_.hls.ignoreManifestProgramDateTime){var r=
|
|
1757
|
+
shaka.hls.Utils.getFirstTagWithName(k,"EXT-X-PROGRAM-DATE-TIME");r&&r.value&&(q=shaka.util.XmlUtils.parseDate(r.value),goog.asserts.assert(null!=q,"EXT-X-PROGRAM-DATE-TIME format not valid"))}r=shaka.media.SegmentReference.Status.AVAILABLE;shaka.hls.Utils.getFirstTagWithName(k,"EXT-X-GAP")&&(r=shaka.media.SegmentReference.Status.MISSING);if(!m){if(0==c.partialSegments.length)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_REQUIRED_TAG_MISSING,
|
|
1758
|
+
"EXTINF");if(!this.lowLatencyMode_)return null}var u=[];if(this.lowLatencyMode_){n={};for(var v=0;v<c.partialSegments.length;n={$jscomp$loop$prop$pAbsoluteUri$734:n.$jscomp$loop$prop$pAbsoluteUri$734},v++){var w=c.partialSegments[v],y=0==v?b:u[u.length-1],t=0==v?d:y.endTime,x=Number(w.getAttributeValue("DURATION"))||this.partialTargetDuration_;if(x){x=t+x;var A=0,z=null;"EXT-X-PRELOAD-HINT"==w.name?A=(A=w.getAttributeValue("BYTERANGE-START"))?Number(A):0:(A=w.getAttributeValue("BYTERANGE"),z=$jscomp.makeIterator(this.parseByteRange_(y,
|
|
1759
|
+
A)),A=z.next().value,z=z.next().value);if(y=w.getAttributeValue("URI"))n.$jscomp$loop$prop$pAbsoluteUri$734=shaka.hls.Utils.constructAbsoluteUri(f,y),y=shaka.media.SegmentReference.Status.AVAILABLE,"YES"==w.getAttributeValue("GAP")&&(y=shaka.media.SegmentReference.Status.MISSING),t=new shaka.media.SegmentReference(t,x,function(B){return function(){return[B.$jscomp$loop$prop$pAbsoluteUri$734]}}(n),A,z,a,0,0,Infinity,[],"",null,null,y),"EXT-X-PRELOAD-HINT"==w.name&&t.markAsPreload(),u.push(t)}}}if(m){c=
|
|
1760
|
+
m.value.split(",");c=Number(c[0]);if(0==c)return null;n=d+c}else if(u.length)n=u[u.length-1].endTime;else return null;(c=shaka.hls.Utils.getFirstTagWithName(k,"EXT-X-BYTERANGE"))?(p=$jscomp.makeIterator(this.parseByteRange_(b,c.value)),e=p.next().value,p=p.next().value):u.length&&(e=u[0].startByte,p=u[u.length-1].endByte);b="";c=null;g==shaka.util.ManifestParserUtils.ContentType.IMAGE&&(b="1x1",g=shaka.hls.Utils.getFirstTagWithName(k,"EXT-X-TILES"))&&(b=g.getRequiredAttrValue("LAYOUT"),(g=g.getAttributeValue("DURATION"))&&
|
|
1761
|
+
(c=Number(g)));return new shaka.media.SegmentReference(d,n,function(){return l.length?[l]:[]},e,p,a,0,0,Infinity,u,b,c,q,r,h)};shaka.hls.HlsParser.prototype.parseByteRange_=function(a,b){var c=0,d=null;b&&(c=b.split("@"),b=Number(c[0]),c[1]?c=Number(c[1]):(goog.asserts.assert(a,"Cannot refer back to previous HLS segment!"),c=a.endByte+1),d=c+b-1);return[c,d]};
|
|
1763
1762
|
shaka.hls.HlsParser.prototype.createSegments_=function(a,b,c,d,e,f){a=b.segments;goog.asserts.assert(a.length,"Playlist should have segments!");d=void 0;var g=shaka.hls.Utils.getFirstTagWithNameAsNumber(b.tags,"EXT-X-DISCONTINUITY-SEQUENCE",0),h=shaka.hls.Utils.getFirstTagWithNameAsNumber(b.tags,"EXT-X-MEDIA-SEQUENCE",0),k=shaka.hls.Utils.getFirstTagWithName(b.tags,"EXT-X-SKIP");k=k?Number(k.getAttributeValue("SKIPPED-SEGMENTS")):0;var l=h+k,m=0;this.isLive_()&&e.has(l)&&(m=e.get(l));for(var n=[],
|
|
1764
|
-
p=null,q=
|
|
1765
|
-
this.
|
|
1766
|
-
$jscomp$loop$prop$reference$615$739:c.$jscomp$loop$prop$reference$615$739,$jscomp$loop$prop$backwardAdd$740:c.$jscomp$loop$prop$backwardAdd$740},e++)if(c.$jscomp$loop$prop$reference$615$739=n[e],null==c.$jscomp$loop$prop$reference$615$739.syncTime)for(c.$jscomp$loop$prop$forwardAdd$737=0,c.$jscomp$loop$prop$forwardI$736=e,f=function(
|
|
1767
|
-
|
|
1763
|
+
p=null,q=0;q<a.length;q++){var r=a[q],u=0==q?m:p.endTime;l=h+k+q;shaka.hls.Utils.getFirstTagWithName(r.tags,"EXT-X-DISCONTINUITY")&&g++;var v=$jscomp.makeIterator(r.tags);for(var w=v.next();!w.done;w=v.next())w=w.value,"EXT-X-KEY"==w.name&&(d="AES-128"==w.getRequiredAttrValue("METHOD")?this.parseAES128DrmTag_(w,b):void 0);e.set(l,u);v=this.getInitSegmentReference_(b,r.tags,f);!this.lowLatencyMode_&&this.playerInterface_.isAutoLowLatencyMode()&&(this.playerInterface_.enableLowLatencyMode(),this.lowLatencyMode_=
|
|
1764
|
+
this.playerInterface_.isLowLatencyMode());if(r=this.createSegmentReference_(v,p,r,u,f,b.absoluteUri,c,d))p=r,r.discontinuitySequence=g,this.config_.hls.ignoreManifestProgramDateTime&&null!=this.minSequenceNumber_&&l<this.minSequenceNumber_||n.push(r)}if(b=n.some(function(y){return null!=y.syncTime}))for(c={},e=0;e<n.length;c={$jscomp$loop$prop$forwardI$736:c.$jscomp$loop$prop$forwardI$736,$jscomp$loop$prop$forwardAdd$737:c.$jscomp$loop$prop$forwardAdd$737,$jscomp$loop$prop$backwardI$738:c.$jscomp$loop$prop$backwardI$738,
|
|
1765
|
+
$jscomp$loop$prop$reference$615$739:c.$jscomp$loop$prop$reference$615$739,$jscomp$loop$prop$backwardAdd$740:c.$jscomp$loop$prop$backwardAdd$740},e++)if(c.$jscomp$loop$prop$reference$615$739=n[e],null==c.$jscomp$loop$prop$reference$615$739.syncTime)for(c.$jscomp$loop$prop$forwardAdd$737=0,c.$jscomp$loop$prop$forwardI$736=e,f=function(y){return function(){var t=n[y.$jscomp$loop$prop$forwardI$736];if(t){if(null!=t.syncTime)return t.syncTime+y.$jscomp$loop$prop$forwardAdd$737;y.$jscomp$loop$prop$forwardAdd$737-=
|
|
1766
|
+
t.endTime-t.startTime;y.$jscomp$loop$prop$forwardI$736+=1}return null}}(c),c.$jscomp$loop$prop$backwardAdd$740=0,c.$jscomp$loop$prop$backwardI$738=e,a=function(y){return function(){var t=n[y.$jscomp$loop$prop$backwardI$738];if(t){t!=y.$jscomp$loop$prop$reference$615$739&&(y.$jscomp$loop$prop$backwardAdd$740+=t.endTime-t.startTime);if(null!=t.syncTime)return t.syncTime+y.$jscomp$loop$prop$backwardAdd$740;--y.$jscomp$loop$prop$backwardI$738}return null}}(c);null==c.$jscomp$loop$prop$reference$615$739.syncTime;)c.$jscomp$loop$prop$reference$615$739.syncTime=
|
|
1768
1767
|
a(),null==c.$jscomp$loop$prop$reference$615$739.syncTime&&(c.$jscomp$loop$prop$reference$615$739.syncTime=f());if(b)for(c=$jscomp.makeIterator(n),e=c.next();!e.done;e=c.next())for(f=e.value,e=f.syncTime,f=$jscomp.makeIterator(f.partialReferences),a=f.next();!a.done;a=f.next())a=a.value,a.syncTime=e,e+=a.endTime-a.startTime;c=this.lowestSyncTime_;if(b&&Infinity!=c)for(b=$jscomp.makeIterator(n),e=b.next();!e.done;e=b.next())e.value.syncAgainst(c);return n};
|
|
1769
1768
|
shaka.hls.HlsParser.prototype.variableSubstitution_=function(a,b){if(!b.size)return a;a=String(a).replace(/%7B/g,"{").replace(/%7D/g,"}");var c=a.match(/{\$\w*}/g);if(c){c=$jscomp.makeIterator(c);for(var d=c.next();!d.done;d=c.next()){d=d.value;var e=d.slice(2,d.length-1),f=b.get(e);if(f)a=a.replace(d,f);else throw shaka.log.error("A variable has been found that is not declared",e),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_VARIABLE_NOT_FOUND,
|
|
1770
1769
|
e);}}return a};shaka.hls.HlsParser.prototype.guessMimeTypeBeforeLoading_=function(a,b){if(a==shaka.util.ManifestParserUtils.ContentType.TEXT){if("vtt"==b||"wvtt"==b)return"text/vtt";if(b&&""!==b)return"application/mp4"}return a!=shaka.util.ManifestParserUtils.ContentType.IMAGE||b&&"jpeg"!=b?a==shaka.util.ManifestParserUtils.ContentType.AUDIO&&"mp4a.40.34"==b?"audio/mpeg":null:"image/jpeg"};
|
|
1771
1770
|
shaka.hls.HlsParser.prototype.guessMimeTypeFallback_=function(a){return a==shaka.util.ManifestParserUtils.ContentType.TEXT?"text/vtt":shaka.hls.HlsParser.EXTENSION_MAP_BY_CONTENT_TYPE_[a].mp4};
|
|
1772
|
-
shaka.hls.HlsParser.prototype.guessMimeType_=function(a,b,c,d){var e=this,f,g,h,k,l,m,n,p,q,r,
|
|
1773
|
-
if((p=n[m])||(p=f.RAW_FORMATS_TO_MIME_TYPES_[m])||(p=e.guessMimeTypeBeforeLoading_(a,b)))return
|
|
1771
|
+
shaka.hls.HlsParser.prototype.guessMimeType_=function(a,b,c,d){var e=this,f,g,h,k,l,m,n,p,q,r,u;return $jscomp.asyncExecutePromiseGeneratorProgram(function(v){if(1==v.nextAddress){f=shaka.hls.HlsParser;g=shaka.net.NetworkingEngine.RequestType.SEGMENT;goog.asserts.assert(c.segments.length,"Playlist should have segments!");h=Math.trunc((c.segments.length-1)/2);k=e.variableSubstitution_(c.segments[h].absoluteUri,d);l=new goog.Uri(k);m=l.getPath().split(".").pop();n=f.EXTENSION_MAP_BY_CONTENT_TYPE_[a];
|
|
1772
|
+
if((p=n[m])||(p=f.RAW_FORMATS_TO_MIME_TYPES_[m])||(p=e.guessMimeTypeBeforeLoading_(a,b)))return v.return(p);q=shaka.net.NetworkingEngine.makeRequest([k],e.config_.retryParameters);q.method="HEAD";return v.yield(e.makeNetworkRequest_(q,g),2)}r=v.yieldResult;return(u=r.headers["content-type"])?v.return(u.split(";")[0]):v.return(e.guessMimeTypeFallback_(a))})};
|
|
1774
1773
|
shaka.hls.HlsParser.prototype.getRequiredTag_=function(a,b){a=shaka.hls.Utils.getFirstTagWithName(a,b);if(!a)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_REQUIRED_TAG_MISSING,b);return a};shaka.hls.HlsParser.prototype.addVideoAttributes_=function(a,b,c,d,e){a&&(a.width=Number(b)||void 0,a.height=Number(c)||void 0,a.frameRate=Number(d)||void 0,a.hdr=e||void 0)};
|
|
1775
1774
|
shaka.hls.HlsParser.prototype.requestManifest_=function(a){var b=shaka.net.NetworkingEngine.RequestType.MANIFEST;a=shaka.net.NetworkingEngine.makeRequest([a],this.config_.retryParameters);this.playerInterface_.modifyManifestRequest(a,{format:shaka.util.CmcdManager.StreamingFormat.HLS});return this.makeNetworkRequest_(a,b)};
|
|
1776
1775
|
shaka.hls.HlsParser.prototype.onUpdate_=function(){var a=this,b,c;return $jscomp.asyncExecutePromiseGeneratorProgram(function(d){if(1==d.nextAddress){shaka.log.info("Updating manifest...");goog.asserts.assert(0<a.updatePlaylistDelay_,"We should only call |onUpdate_| when we are suppose to be updating.");if(!a.playerInterface_)return d.return();d.setCatchFinallyBlocks(2);return d.yield(a.update(),4)}if(2!=d.nextAddress)return a.isLive_()&&(b=a.updatePlaylistDelay_,a.updatePlaylistTimer_.tickAfter(b)),
|
|
@@ -1791,16 +1790,16 @@ shaka.util.Platform.isTizen3()||shaka.util.Platform.isTizen2()||shaka.util.Platf
|
|
|
1791
1790
|
shaka.net.HttpPluginUtils.makeResponse=function(a,b,c,d,e,f){if(200<=c&&299>=c&&202!=c)return{uri:e||d,originalUri:d,data:b,status:c,headers:a,fromCache:!!a["x-shaka-from-cache"]};e=null;try{e=shaka.util.StringUtils.fromBytesAutoDetect(b)}catch(g){}shaka.log.debug("HTTP error text:",e);throw new shaka.util.Error(401==c||403==c?shaka.util.Error.Severity.CRITICAL:shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.BAD_HTTP_STATUS,d,c,e,a,f);};shaka.net.HttpFetchPlugin=function(){};
|
|
1792
1791
|
shaka.net.HttpFetchPlugin.parse=function(a,b,c,d,e){var f=new shaka.net.HttpFetchPlugin.Headers_;shaka.util.MapUtils.asMap(b.headers).forEach(function(l,m){f.append(m,l)});var g=new shaka.net.HttpFetchPlugin.AbortController_,h={canceled:!1,timedOut:!1};a=shaka.net.HttpFetchPlugin.request_(a,c,{body:b.body||void 0,headers:f,method:b.method,signal:g.signal,credentials:b.allowCrossSiteCredentials?"include":void 0},h,d,e,b.streamDataCallback);a=new shaka.util.AbortableOperation(a,function(){h.canceled=
|
|
1793
1792
|
!0;g.abort();return Promise.resolve()});if(b=b.retryParameters.timeout){var k=new shaka.util.Timer(function(){h.timedOut=!0;g.abort()});k.tickAfter(b/1E3);a.finally(function(){k.stop()})}return a};
|
|
1794
|
-
shaka.net.HttpFetchPlugin.request_=function(a,b,c,d,e,f,g){var h,k,l,m,n,p,q,r,v,
|
|
1795
|
-
r=l.clone().body.getReader();
|
|
1796
|
-
5);case 5:G=Date.now();if(100<G-q||B.done)e(G-q,n-p,
|
|
1797
|
-
if(d.timedOut)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.TIMEOUT,a,b);throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.HTTP_ERROR,a,
|
|
1793
|
+
shaka.net.HttpFetchPlugin.request_=function(a,b,c,d,e,f,g){var h,k,l,m,n,p,q,r,u,v,w,y,t;return $jscomp.asyncExecutePromiseGeneratorProgram(function(x){switch(x.nextAddress){case 1:return h=shaka.net.HttpFetchPlugin.fetch_,k=shaka.net.HttpFetchPlugin.ReadableStream_,p=n=0,q=Date.now(),x.setCatchFinallyBlocks(2),x.yield(h(a,c),4);case 4:l=x.yieldResult;f(shaka.net.HttpFetchPlugin.headersToGenericObject_(l.headers));if("HEAD"==c.method){x.jumpTo(5);break}goog.asserts.assert(l.body,"non-HEAD responses should have a body");
|
|
1794
|
+
r=l.clone().body.getReader();v=(u=l.headers.get("Content-Length"))?parseInt(u,10):0;w=function(A){var z=function(){var B,D,G;return $jscomp.asyncExecutePromiseGeneratorProgram(function(C){switch(C.nextAddress){case 1:return C.setCatchFinallyBlocks(2),C.yield(r.read(),4);case 4:B=C.yieldResult;C.leaveTryBlock(3);break;case 2:return D=C.enterCatchBlock(),shaka.log.v1("error reading from stream",D.message),C.return();case 3:if(B.done){C.jumpTo(5);break}n+=B.value.byteLength;if(!g){C.jumpTo(5);break}return C.yield(g(B.value),
|
|
1795
|
+
5);case 5:G=Date.now();if(100<G-q||B.done)e(G-q,n-p,v-n),p=n,q=G;B.done?(goog.asserts.assert(!B.value,'readObj should be unset when "done" is true.'),A.close()):(A.enqueue(B.value),z());C.jumpToEnd()}})};z()};new k({start:w});return x.yield(l.arrayBuffer(),6);case 6:m=x.yieldResult;case 5:x.leaveTryBlock(3);break;case 2:y=x.enterCatchBlock();if(d.canceled)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.OPERATION_ABORTED,a,b);
|
|
1796
|
+
if(d.timedOut)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.TIMEOUT,a,b);throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.HTTP_ERROR,a,y,b);case 3:return t=shaka.net.HttpFetchPlugin.headersToGenericObject_(l.headers),x.return(shaka.net.HttpPluginUtils.makeResponse(t,m,l.status,a,l.url,b))}})};
|
|
1798
1797
|
shaka.net.HttpFetchPlugin.headersToGenericObject_=function(a){var b={};a.forEach(function(c,d){b[d.trim()]=c});return b};shaka.net.HttpFetchPlugin.isSupported=function(){if(window.ReadableStream)try{new ReadableStream({})}catch(a){return!1}else return!1;if(window.Response){if(!(new Response("")).body)return!1}else return!1;return!(!window.fetch||!window.AbortController)};goog.exportSymbol("shaka.net.HttpFetchPlugin",shaka.net.HttpFetchPlugin);
|
|
1799
1798
|
goog.exportProperty(shaka.net.HttpFetchPlugin,"isSupported",shaka.net.HttpFetchPlugin.isSupported);goog.exportProperty(shaka.net.HttpFetchPlugin,"parse",shaka.net.HttpFetchPlugin.parse);shaka.net.HttpFetchPlugin.fetch_=window.fetch;shaka.net.HttpFetchPlugin.AbortController_=window.AbortController;shaka.net.HttpFetchPlugin.ReadableStream_=window.ReadableStream;shaka.net.HttpFetchPlugin.Headers_=window.Headers;
|
|
1800
1799
|
shaka.net.HttpFetchPlugin.isSupported()&&(shaka.net.NetworkingEngine.registerScheme("http",shaka.net.HttpFetchPlugin.parse,shaka.net.NetworkingEngine.PluginPriority.PREFERRED,!0),shaka.net.NetworkingEngine.registerScheme("https",shaka.net.HttpFetchPlugin.parse,shaka.net.NetworkingEngine.PluginPriority.PREFERRED,!0),shaka.net.NetworkingEngine.registerScheme("blob",shaka.net.HttpFetchPlugin.parse,shaka.net.NetworkingEngine.PluginPriority.PREFERRED,!0));shaka.net.HttpXHRPlugin=function(){};
|
|
1801
1800
|
shaka.net.HttpXHRPlugin.parse=function(a,b,c,d,e){var f=new shaka.net.HttpXHRPlugin.Xhr_,g=Date.now(),h=0,k=new Promise(function(l,m){f.open(b.method,a,!0);f.responseType="arraybuffer";f.timeout=b.retryParameters.timeout;f.withCredentials=b.allowCrossSiteCredentials;f.onabort=function(){m(new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.OPERATION_ABORTED,a,c))};var n=!1;f.onreadystatechange=function(r){2!=f.readyState||n||(r=shaka.net.HttpXHRPlugin.headersToGenericObject_(f),
|
|
1802
|
-
e(r),n=!0)};f.onload=function(r){r=shaka.net.HttpXHRPlugin.headersToGenericObject_(f);goog.asserts.assert(f.response instanceof ArrayBuffer,"XHR should have a response by now!");var
|
|
1803
|
-
a,r,c))};f.ontimeout=function(r){m(new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.TIMEOUT,a,c))};f.onprogress=function(r){var
|
|
1801
|
+
e(r),n=!0)};f.onload=function(r){r=shaka.net.HttpXHRPlugin.headersToGenericObject_(f);goog.asserts.assert(f.response instanceof ArrayBuffer,"XHR should have a response by now!");var u=f.response;try{var v=shaka.net.HttpPluginUtils.makeResponse(r,u,f.status,a,f.responseURL,c);l(v)}catch(w){goog.asserts.assert(w instanceof shaka.util.Error,"Wrong error type!"),m(w)}};f.onerror=function(r){m(new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.HTTP_ERROR,
|
|
1802
|
+
a,r,c))};f.ontimeout=function(r){m(new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.TIMEOUT,a,c))};f.onprogress=function(r){var u=Date.now();if(100<u-g||r.lengthComputable&&r.loaded==r.total)d(u-g,r.loaded-h,r.total-r.loaded),h=r.loaded,g=u};for(var p in b.headers){var q=p.toLowerCase();f.setRequestHeader(q,b.headers[p])}f.send(b.body)});return new shaka.util.AbortableOperation(k,function(){f.abort();return Promise.resolve()})};
|
|
1804
1803
|
shaka.net.HttpXHRPlugin.headersToGenericObject_=function(a){var b=a.getAllResponseHeaders().trim().split("\r\n");a={};b=$jscomp.makeIterator(b);for(var c=b.next();!c.done;c=b.next())c=c.value.split(": "),a[c[0].toLowerCase()]=c.slice(1).join(": ");return a};goog.exportSymbol("shaka.net.HttpXHRPlugin",shaka.net.HttpXHRPlugin);goog.exportProperty(shaka.net.HttpXHRPlugin,"parse",shaka.net.HttpXHRPlugin.parse);shaka.net.HttpXHRPlugin.Xhr_=window.XMLHttpRequest;
|
|
1805
1804
|
shaka.net.NetworkingEngine.registerScheme("http",shaka.net.HttpXHRPlugin.parse,shaka.net.NetworkingEngine.PluginPriority.FALLBACK,!0);shaka.net.NetworkingEngine.registerScheme("https",shaka.net.HttpXHRPlugin.parse,shaka.net.NetworkingEngine.PluginPriority.FALLBACK,!0);shaka.net.NetworkingEngine.registerScheme("blob",shaka.net.HttpXHRPlugin.parse,shaka.net.NetworkingEngine.PluginPriority.FALLBACK,!0);shaka.offline={};shaka.offline.DownloadInfo=function(a,b,c,d){this.ref=a;this.estimateId=b;this.groupId=c;this.isInitSegment=d};shaka.offline.DownloadInfo.idForSegmentRef=function(a){return a.getUris().map(function(b){return"{"+encodeURI(b)+"}"}).join("")+":"+a.startByte+":"+a.endByte};shaka.offline.DownloadInfo.prototype.getRefId=function(){return shaka.offline.DownloadInfo.idForSegmentRef(this.ref)};
|
|
1806
1805
|
shaka.offline.DownloadInfo.prototype.makeSegmentRequest=function(a){return shaka.util.Networking.createSegmentRequest(this.ref.getUris(),this.ref.startByte,this.ref.endByte,a.streaming.retryParameters)};shaka.offline.DownloadProgressEstimator=function(){this.actualDownloaded_=this.estimatedDownloaded_=this.estimatedTotal_=0;this.pending_=new Map;this.nextId_=0};shaka.offline.DownloadProgressEstimator.prototype.open=function(a){this.estimatedTotal_+=a;var b=this.nextId_;this.nextId_++;this.pending_.set(b,a);return b};
|
|
@@ -1907,22 +1906,22 @@ shaka.offline.Storage.prototype.configure=function(a,b){goog.asserts.assert("obj
|
|
|
1907
1906
|
shaka.offline.Storage.prototype.getConfiguration=function(){goog.asserts.assert(this.config_,"Config must not be null!");var a=shaka.util.PlayerConfiguration.createDefault();shaka.util.PlayerConfiguration.mergeConfigObjects(a,this.config_,shaka.util.PlayerConfiguration.createDefault());return a};shaka.offline.Storage.prototype.getNetworkingEngine=function(){return this.networkingEngine_};
|
|
1908
1907
|
shaka.offline.Storage.prototype.store=function(a,b,c){var d=this;goog.asserts.assert(this.networkingEngine_,"Cannot call |store| after calling |destroy|.");var e=this.getConfiguration(),f=new shaka.offline.DownloadManager(this.networkingEngine_);this.openDownloadManagers_.push(f);b=this.store_(a,b||{},function(){var g;return $jscomp.asyncExecutePromiseGeneratorProgram(function(h){if(1==h.nextAddress)return goog.asserts.assert(d.networkingEngine_,"Should not call |store| after |destroy|"),h.yield(shaka.media.ManifestParser.getFactory(a,
|
|
1909
1908
|
d.networkingEngine_,e.manifest.retryParameters,c||null),2);g=h.yieldResult;return h.return(g())})},e,f);b=new shaka.util.AbortableOperation(b,function(){return f.abortAll()});b.finally(function(){shaka.util.ArrayUtils.remove(d.openDownloadManagers_,f)});return this.startAbortableOperation_(b)};
|
|
1910
|
-
shaka.offline.Storage.prototype.store_=function(a,b,c,d,e){var f=this,g,h,k,l,m,n,p,q,r,v,
|
|
1911
|
-
shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.CANNOT_STORE_LIVE_OFFLINE,a);return x.yield(f.createDrmEngine(p,function(A){n=n||A},d),7);case 7:h=x.yieldResult;f.ensureNotDestroyed_();if(n)throw n;return x.yield(f.filterManifest_(p,h,d),8);case 8:return x.yield(k.init(),9);case 9:return f.ensureNotDestroyed_(),x.yield(k.getActive(),10);case 10:return l=x.yieldResult,f.ensureNotDestroyed_(),goog.asserts.assert(h,"drmEngine should be non-null here."),r=f.makeManifestDB_(h,p,a,b,d,e),
|
|
1912
|
-
|
|
1909
|
+
shaka.offline.Storage.prototype.store_=function(a,b,c,d,e){var f=this,g,h,k,l,m,n,p,q,r,u,v,w,y,t;return $jscomp.asyncExecutePromiseGeneratorProgram(function(x){switch(x.nextAddress){case 1:return f.requireSupport_(),h=g=null,k=new shaka.offline.StorageMuxer,n=m=l=null,x.setCatchFinallyBlocks(2,3),x.yield(c(),5);case 5:return g=x.yieldResult,x.yield(f.parseManifest(a,g,d),6);case 6:p=x.yieldResult;f.ensureNotDestroyed_();q=!p.presentationTimeline.isLive()&&!p.presentationTimeline.isInProgress();if(!q)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
1910
|
+
shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.CANNOT_STORE_LIVE_OFFLINE,a);return x.yield(f.createDrmEngine(p,function(A){n=n||A},d),7);case 7:h=x.yieldResult;f.ensureNotDestroyed_();if(n)throw n;return x.yield(f.filterManifest_(p,h,d),8);case 8:return x.yield(k.init(),9);case 9:return f.ensureNotDestroyed_(),x.yield(k.getActive(),10);case 10:return l=x.yieldResult,f.ensureNotDestroyed_(),goog.asserts.assert(h,"drmEngine should be non-null here."),r=f.makeManifestDB_(h,p,a,b,d,e),u=r.manifestDB,
|
|
1911
|
+
v=r.toDownload,x.yield(l.cell.addManifests([u]),11);case 11:w=x.yieldResult;f.ensureNotDestroyed_();m=w[0];goog.asserts.assert(h,"drmEngine should be non-null here.");f.ensureNotDestroyed_();if(n)throw n;return x.yield(f.downloadSegments_(v,m,u,e,d,l.cell,p,h),12);case 12:return f.ensureNotDestroyed_(),y=shaka.offline.OfflineUri.manifest(l.path.mechanism,l.path.cell,m),x.return(shaka.offline.StoredContentUtils.fromManifestDB(y,u));case 3:return x.enterFinallyBlock(),x.yield(k.destroy(),13);case 13:if(!g){x.jumpTo(14);
|
|
1913
1912
|
break}return x.yield(g.stop(),14);case 14:if(!h){x.jumpTo(16);break}return x.yield(h.destroy(),16);case 16:x.leaveFinallyBlock(0);break;case 2:t=x.enterCatchBlock();if(null==m){x.jumpTo(18);break}return x.yield(shaka.offline.Storage.cleanStoredManifest(m),18);case 18:throw n||t;}})};
|
|
1914
|
-
shaka.offline.Storage.prototype.downloadSegments_=function(a,b,c,d,e,f,g,h){var k=this,l,m,n,p,q,r,v,
|
|
1915
|
-
D.value,G=
|
|
1916
|
-
d.queue(
|
|
1917
|
-
q=l,r=m,l={},m=0,t.yield(shaka.offline.Storage.assignSegmentsToManifest(f,b,c,q,r,function(){return k.ensureNotDestroyed_()}),6);case 6:k.ensureNotDestroyed_();case 4:if(p){t.jumpTo(7);break}return t.yield(n(a,!1),8);case 8:return k.ensureNotDestroyed_(),
|
|
1918
|
-
break;case 2:return w=t.enterCatchBlock(),
|
|
1913
|
+
shaka.offline.Storage.prototype.downloadSegments_=function(a,b,c,d,e,f,g,h){var k=this,l,m,n,p,q,r,u,v,w,y;return $jscomp.asyncExecutePromiseGeneratorProgram(function(t){switch(t.nextAddress){case 1:l={};m=0;n=function(x,A){var z,B,D,G,C,E,F;return $jscomp.asyncExecutePromiseGeneratorProgram(function(I){if(1==I.nextAddress){z={};B=$jscomp.makeIterator(x);for(D=B.next();!D.done;z={$jscomp$loop$prop$download$636$749:z.$jscomp$loop$prop$download$636$749},D=B.next())z.$jscomp$loop$prop$download$636$749=
|
|
1914
|
+
D.value,G=z.$jscomp$loop$prop$download$636$749.makeSegmentRequest(e),C=z.$jscomp$loop$prop$download$636$749.estimateId,E=z.$jscomp$loop$prop$download$636$749.isInitSegment,F=function(H){return function(J){var L,K,N;return $jscomp.asyncExecutePromiseGeneratorProgram(function(O){if(1==O.nextAddress)return O.yield(f.addSegments([{data:J}]),2);L=O.yieldResult;k.ensureNotDestroyed_();K=H.$jscomp$loop$prop$download$636$749.ref;N=shaka.offline.DownloadInfo.idForSegmentRef(K);l[N]=L[0];m+=J.byteLength;O.jumpToEnd()})}}(z),
|
|
1915
|
+
d.queue(z.$jscomp$loop$prop$download$636$749.groupId,G,C,E,F);return I.yield(d.waitToFinish(),2)}if(!A)return I.jumpTo(0);k.ensureNotDestroyed_();k.setManifestDrmFields_(g,c,h,e);return I.yield(f.updateManifest(b,c),0)})};p=!1;t.setCatchFinallyBlocks(2);if(!k.getManifestIsEncrypted_(g)||!p||k.getManifestIncludesInitData_(g)){t.jumpTo(4);break}return t.yield(n(a.filter(function(x){return x.isInitSegment}),!0),5);case 5:return k.ensureNotDestroyed_(),a=a.filter(function(x){return!x.isInitSegment}),
|
|
1916
|
+
q=l,r=m,l={},m=0,t.yield(shaka.offline.Storage.assignSegmentsToManifest(f,b,c,q,r,function(){return k.ensureNotDestroyed_()}),6);case 6:k.ensureNotDestroyed_();case 4:if(p){t.jumpTo(7);break}return t.yield(n(a,!1),8);case 8:return k.ensureNotDestroyed_(),u=l,v=m,l={},m=0,t.yield(shaka.offline.Storage.assignSegmentsToManifest(f,b,c,u,v,function(){return k.ensureNotDestroyed_()}),9);case 9:k.ensureNotDestroyed_(),goog.asserts.assert(!c.isIncomplete,"The manifest should be complete by now");case 7:t.leaveTryBlock(0);
|
|
1917
|
+
break;case 2:return w=t.enterCatchBlock(),y=Object.values(l),t.yield(f.removeSegments(y,function(x){}),10);case 10:throw w;}})};
|
|
1919
1918
|
shaka.offline.Storage.cleanStoredManifest=function(a){var b,c,d,e;return $jscomp.asyncExecutePromiseGeneratorProgram(function(f){switch(f.nextAddress){case 1:return b=new shaka.offline.StorageMuxer,f.yield(b.init(),2);case 2:return f.yield(b.getActive(),3);case 3:return c=f.yieldResult,d=shaka.offline.OfflineUri.manifest(c.path.mechanism,c.path.cell,a),f.yield(b.destroy(),4);case 4:return e=new shaka.offline.Storage,f.yield(e.remove(d.toString()),0)}})};
|
|
1920
|
-
shaka.offline.Storage.assignSegmentsToManifest=function(a,b,c,d,e,f){var g,h,k,l,m,n,p,q,r,v
|
|
1921
|
-
d[q.pendingInitSegmentRefId]:null,null!=r&&(q.initSegmentKey=r,q.pendingInitSegmentRefId=void 0),q.pendingSegmentRefId&&(h=!1),q.pendingInitSegmentRefId&&(h=!1);c.size+=e;h&&(c.isIncomplete=!1);return w.yield(a.updateManifest(b,c),4);case 4:g=!0;f();w.leaveTryBlock(0);break;case 2:return
|
|
1922
|
-
shaka.offline.Storage.prototype.filterManifest_=function(a,b,c){var d,e,f,g,h,k,l,m,n,p,q,r,v,
|
|
1923
|
-
h=c.preferredVideoCodecs;k=c.preferredAudioCodecs;shaka.util.StreamUtils.chooseCodecsAndFilterManifest(a,h,k,f,g);l=$jscomp.makeIterator(a.variants);for(m=l.next();!m.done;m=l.next())n=m.value,goog.asserts.assert(shaka.util.StreamUtils.isPlayable(n),'We should have already filtered by "is playable"'),e.push(shaka.util.StreamUtils.variantToTrack(n));p=$jscomp.makeIterator(a.textStreams);for(q=p.next();!q.done;q=p.next())r=q.value,e.push(shaka.util.StreamUtils.textStreamToTrack(r));
|
|
1924
|
-
for(u
|
|
1925
|
-
shaka.util.Error.Code.STORAGE_LIMIT_REACHED);L.leaveTryBlock(5);break;case 4:C=L.enterCatchBlock();if(C instanceof shaka.util.Error)throw C;shaka.log.warning("downloadSizeCallback has produced an unexpected error",C);throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.DOWNLOAD_SIZE_CALLBACK_ERROR);case 5:E=new Set;F=new Set;I=new Set;H=$jscomp.makeIterator(
|
|
1919
|
+
shaka.offline.Storage.assignSegmentsToManifest=function(a,b,c,d,e,f){var g,h,k,l,m,n,p,q,r,u,v;return $jscomp.asyncExecutePromiseGeneratorProgram(function(w){switch(w.nextAddress){case 1:g=!1;w.setCatchFinallyBlocks(2);h=!0;k=$jscomp.makeIterator(c.streams);for(l=k.next();!l.done;l=k.next())for(m=l.value,n=$jscomp.makeIterator(m.segments),p=n.next();!p.done;p=n.next())q=p.value,r=q.pendingSegmentRefId?d[q.pendingSegmentRefId]:null,null!=r&&(q.dataKey=r,q.pendingSegmentRefId=void 0),r=q.pendingInitSegmentRefId?
|
|
1920
|
+
d[q.pendingInitSegmentRefId]:null,null!=r&&(q.initSegmentKey=r,q.pendingInitSegmentRefId=void 0),q.pendingSegmentRefId&&(h=!1),q.pendingInitSegmentRefId&&(h=!1);c.size+=e;h&&(c.isIncomplete=!1);return w.yield(a.updateManifest(b,c),4);case 4:g=!0;f();w.leaveTryBlock(0);break;case 2:return u=w.enterCatchBlock(),w.yield(shaka.offline.Storage.cleanStoredManifest(b),5);case 5:if(g){w.jumpTo(6);break}v=Object.values(d);return w.yield(a.removeSegments(v,function(y){}),6);case 6:throw u;}})};
|
|
1921
|
+
shaka.offline.Storage.prototype.filterManifest_=function(a,b,c){var d,e,f,g,h,k,l,m,n,p,q,r,u,v,w,y,t,x,A,z,B,D,G,C,E,F,I,H,J;return $jscomp.asyncExecutePromiseGeneratorProgram(function(L){switch(L.nextAddress){case 1:return d={width:Infinity,height:Infinity},shaka.util.StreamUtils.filterByRestrictions(a,c.restrictions,d),L.yield(shaka.util.StreamUtils.filterManifestByMediaCapabilities(a,c.offline.usePersistentLicense),2);case 2:e=[];f=c.preferredAudioChannelCount;g=c.preferredDecodingAttributes;
|
|
1922
|
+
h=c.preferredVideoCodecs;k=c.preferredAudioCodecs;shaka.util.StreamUtils.chooseCodecsAndFilterManifest(a,h,k,f,g);l=$jscomp.makeIterator(a.variants);for(m=l.next();!m.done;m=l.next())n=m.value,goog.asserts.assert(shaka.util.StreamUtils.isPlayable(n),'We should have already filtered by "is playable"'),e.push(shaka.util.StreamUtils.variantToTrack(n));p=$jscomp.makeIterator(a.textStreams);for(q=p.next();!q.done;q=p.next())r=q.value,e.push(shaka.util.StreamUtils.textStreamToTrack(r));u=$jscomp.makeIterator(a.imageStreams);
|
|
1923
|
+
for(v=u.next();!v.done;v=u.next())w=v.value,e.push(shaka.util.StreamUtils.imageStreamToTrack(w));return L.yield(c.offline.trackSelectionCallback(e),3);case 3:y=L.yieldResult;t=a.presentationTimeline.getDuration();x=0;A=$jscomp.makeIterator(y);for(z=A.next();!z.done;z=A.next())B=z.value,D=B.bandwidth*t/8,x+=D;L.setCatchFinallyBlocks(4);return L.yield(c.offline.downloadSizeCallback(x),6);case 6:G=L.yieldResult;if(!G)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,
|
|
1924
|
+
shaka.util.Error.Code.STORAGE_LIMIT_REACHED);L.leaveTryBlock(5);break;case 4:C=L.enterCatchBlock();if(C instanceof shaka.util.Error)throw C;shaka.log.warning("downloadSizeCallback has produced an unexpected error",C);throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.DOWNLOAD_SIZE_CALLBACK_ERROR);case 5:E=new Set;F=new Set;I=new Set;H=$jscomp.makeIterator(y);for(z=H.next();!z.done;z=H.next())J=z.value,"variant"==J.type&&E.add(J.id),
|
|
1926
1925
|
"text"==J.type&&F.add(J.id),"image"==J.type&&I.add(J.id);a.variants=a.variants.filter(function(K){return E.has(K.id)});a.textStreams=a.textStreams.filter(function(K){return F.has(K.id)});a.imageStreams=a.imageStreams.filter(function(K){return I.has(K.id)});shaka.offline.Storage.validateManifest_(a);L.jumpToEnd()}})};
|
|
1927
1926
|
shaka.offline.Storage.prototype.makeManifestDB_=function(a,b,c,d,e,f){var g=shaka.offline.StoredContentUtils.fromManifest(c,b,0,d),h=e.offline.progressCallback;f.setCallbacks(function(q,r){g.size=r;h(g,q)},function(q,r){k&&e.offline.usePersistentLicense&&l==r&&a.newInitData("cenc",q)});var k=this.getManifestIsEncrypted_(b)&&!this.getManifestIncludesInitData_(b),l=null;if(k){var m=a.getDrmInfo();l=shaka.offline.Storage.defaultSystemIds_.get(m.keySystem)}m=new shaka.offline.StreamBandwidthEstimator;
|
|
1928
1927
|
for(var n=$jscomp.makeIterator(b.textStreams),p=n.next();!p.done;p=n.next())m.addText(p.value);n=$jscomp.makeIterator(b.imageStreams);for(p=n.next();!p.done;p=n.next())m.addImage(p.value);p=$jscomp.makeIterator(b.variants);for(n=p.next();!n.done;n=p.next())m.addVariant(n.value);m=this.createStreams_(f,m,a,b,e);f=m.streams;m=m.toDownload;p=a.getDrmInfo();n=e.offline.usePersistentLicense;p&&n&&(p.initData=[]);return{manifestDB:{creationTime:Date.now(),originalManifestUri:c,duration:b.presentationTimeline.getDuration(),
|
|
@@ -1971,10 +1970,10 @@ document.webkitFullscreenElement}}),Object.defineProperty(document,"fullscreenEn
|
|
|
1971
1970
|
a);document.addEventListener("MSFullscreenError",a)}};shaka.polyfill.Fullscreen.proxyEvent_=function(a){var b=a.type.replace(/^(webkit|moz|MS)/,"").toLowerCase(),c=document.createEvent("Event");c.initEvent(b,a.bubbles,a.cancelable);a.target.dispatchEvent(c)};goog.exportProperty(shaka.polyfill,"Fullscreen",shaka.polyfill.Fullscreen);goog.exportProperty(shaka.polyfill.Fullscreen,"install",shaka.polyfill.Fullscreen.install);shaka.polyfill.register(shaka.polyfill.Fullscreen.install);shaka.polyfill.MediaCapabilities=function(){};
|
|
1972
1971
|
shaka.polyfill.MediaCapabilities.install=function(){var a=!0;if(shaka.util.Platform.isApple()||shaka.util.Platform.isPS5()||shaka.util.Platform.isPS4()||shaka.util.Platform.isWebOS()||shaka.util.Platform.isTizen()||shaka.util.Platform.isChromecast()||shaka.util.Platform.isEOS()||shaka.util.Platform.isHisense())a=!1;a&&navigator.mediaCapabilities?shaka.log.info("MediaCapabilities: Native mediaCapabilities support found."):(shaka.log.info("MediaCapabilities: install"),navigator.mediaCapabilities||(navigator.mediaCapabilities=
|
|
1973
1972
|
{}),shaka.polyfill.MediaCapabilities.originalMcap=navigator.mediaCapabilities,navigator.mediaCapabilities.decodingInfo=shaka.polyfill.MediaCapabilities.decodingInfo_)};
|
|
1974
|
-
shaka.polyfill.MediaCapabilities.decodingInfo_=function(a){var b,c,d,e,f,g,h,k,l,m,n,p,q,r,v,
|
|
1973
|
+
shaka.polyfill.MediaCapabilities.decodingInfo_=function(a){var b,c,d,e,f,g,h,k,l,m,n,p,q,r,u,v,w,y,t;return $jscomp.asyncExecutePromiseGeneratorProgram(function(x){switch(x.nextAddress){case 1:b={supported:!1,powerEfficient:!0,smooth:!0,keySystemAccess:null,configuration:a};if(!a)return x.return(b);c=a.video;d=a.audio;e=shaka.media.Capabilities;if("media-source"==a.type){if(!shaka.util.Platform.supportsMediaSource()||c&&(shaka.util.Platform.isChromecast()?f=shaka.polyfill.MediaCapabilities.canCastDisplayType_(c):
|
|
1975
1974
|
shaka.util.Platform.isTizen()?(g=c.contentType,c.width&&c.height&&(g+="; width="+c.width,g+="; height="+c.height),c.framerate&&(g+="; framerate="+c.framerate),c.bitrate&&(g+="; bitrate="+c.bitrate),f=e.isTypeSupported(g)):f=e.isTypeSupported(c.contentType),!f)||d&&(h=d.contentType,k=e.isTypeSupported(h),!k))return x.return(b)}else if("file"==a.type){if(c&&(l=c.contentType,m=shaka.util.Platform.supportsMediaType(l),!m)||d&&(n=d.contentType,p=shaka.util.Platform.supportsMediaType(n),!p))return x.return(b)}else return x.return(b);
|
|
1976
|
-
if(!a.keySystemConfiguration)return b.supported=!0,x.return(Promise.resolve(b));q=a.keySystemConfiguration;r=[];
|
|
1977
|
-
|
|
1975
|
+
if(!a.keySystemConfiguration)return b.supported=!0,x.return(Promise.resolve(b));q=a.keySystemConfiguration;r=[];u=[];q.audio&&(v={robustness:q.audio.robustness||"",contentType:a.audio.contentType},r.push(v));q.video&&(w={robustness:q.video.robustness||"",contentType:a.video.contentType},u.push(w));y={initDataTypes:[q.initDataType],distinctiveIdentifier:q.distinctiveIdentifier,persistentState:q.persistentState,sessionTypes:q.sessionTypes};r.length&&(y.audioCapabilities=r);u.length&&(y.videoCapabilities=
|
|
1976
|
+
u);x.setCatchFinallyBlocks(3);return x.yield(navigator.requestMediaKeySystemAccess(q.keySystem,[y]),5);case 5:t=x.yieldResult;x.leaveTryBlock(4);break;case 3:x.enterCatchBlock(),shaka.log.info("navigator.requestMediaKeySystemAccess failed.");case 4:t&&(b.supported=!0,b.keySystemAccess=t);case 2:return x.return(b)}})};
|
|
1978
1977
|
shaka.polyfill.MediaCapabilities.canCastDisplayType_=function(a){if(!(window.cast&&cast.__platform__&&cast.__platform__.canDisplayType))return shaka.log.warning("Expected cast APIs to be available! Falling back to shaka.media.Capabilities.isTypeSupported() for type support."),shaka.media.Capabilities.isTypeSupported(a.contentType);var b=a.contentType;a.width&&a.height&&(b+="; width="+a.width+"; height="+a.height);a.framerate&&(b+="; framerate="+a.framerate);"pq"===a.transferFunction&&(b+="; eotf=smpte2084");
|
|
1979
1978
|
return cast.__platform__.canDisplayType(b)};goog.exportProperty(shaka.polyfill,"MediaCapabilities",shaka.polyfill.MediaCapabilities);goog.exportProperty(shaka.polyfill.MediaCapabilities,"install",shaka.polyfill.MediaCapabilities.install);shaka.polyfill.MediaCapabilities.originalMcap=null;goog.exportProperty(shaka.polyfill.MediaCapabilities,"originalMcap",shaka.polyfill.MediaCapabilities.originalMcap);shaka.polyfill.register(shaka.polyfill.MediaCapabilities.install,-1);shaka.polyfill.MediaSource=function(){};
|
|
1980
1979
|
shaka.polyfill.MediaSource.install=function(){shaka.log.debug("MediaSource.install");var a=shaka.util.Platform.safariVersion();window.MediaSource?window.cast&&cast.__platform__&&cast.__platform__.canDisplayType?(shaka.log.info("Patching Chromecast MSE bugs."),shaka.polyfill.MediaSource.patchCastIsTypeSupported_()):a?12>=a?(shaka.log.info("Patching Safari 11 & 12 MSE bugs."),shaka.polyfill.MediaSource.stubAbort_(),shaka.polyfill.MediaSource.patchRemovalRange_()):15>=a&&(shaka.log.info("Patching Safari 13 & 14 & 15 MSE bugs."),
|
|
@@ -2080,11 +2079,11 @@ shaka.text.TtmlTextParser.prototype.parseMedia=function(a,b){var c=shaka.text.Tt
|
|
|
2080
2079
|
e,"subFrameRate"),m=d.getAttributeNSList(h,e,"frameRateMultiplier"),n=d.getAttributeNSList(h,e,"tickRate"),p=d.getAttributeNSList(h,e,"cellResolution"),q=h.getAttribute("xml:space")||"default";e=d.getAttributeNSList(h,f,"extent");if("default"!=q&&"preserve"!=q)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.INVALID_XML,"Invalid xml:space value: "+q);f="default"==q;k=new c.RateInfo_(k,l,m,n);l=c.getCellResolution_(p);m=(m=h.getElementsByTagName("metadata")[0])?
|
|
2081
2080
|
d.getChildren(m):[];n=Array.from(h.getElementsByTagName("style"));h=Array.from(h.getElementsByTagName("region"));p=[];q=$jscomp.makeIterator(h);for(var r=q.next();!r.done;r=q.next())(r=c.parseCueRegion_(r.value,n,e))&&p.push(r);if(d.findChildren(g,"p").length)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.INVALID_TEXT_CUE,"<p> can only be inside <div> in TTML");e=$jscomp.makeIterator(d.findChildren(g,"div"));for(q=e.next();!q.done;q=
|
|
2082
2081
|
e.next())if(d.findChildren(q.value,"span").length)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.INVALID_TEXT_CUE,"<span> can only be inside <p> in TTML");if(b=c.parseCue_(g,b,k,m,n,h,p,f,l,null,!1))b.backgroundColor||(b.backgroundColor="transparent"),a.push(b);return a};
|
|
2083
|
-
shaka.text.TtmlTextParser.parseCue_=function(a,b,c,d,e,f,g,h,k,l,m){var n=a.parentNode;if(a.nodeType==Node.COMMENT_NODE)return null;if(a.nodeType==Node.TEXT_NODE){if(!m)return null;var p=document.createElement("span");p.textContent=a.textContent}else goog.asserts.assert(a.nodeType==Node.ELEMENT_NODE,"nodeType should be ELEMENT_NODE!"),p=a;goog.asserts.assert(p,"cueElement should be non-null!");for(var q=null,r=$jscomp.makeIterator(shaka.text.TtmlTextParser.smpteNsList_),
|
|
2084
|
-
"backgroundImage",d,"#",
|
|
2085
|
-
if(!(
|
|
2086
|
-
w=Math.max(w,c.endTime);if("br"==p.tagName)return e=new shaka.text.Cue(
|
|
2087
|
-
!p.getAttribute("style")&&(g=shaka.text.TtmlTextParser.getElementsFromCollection_(l,"region",f,"")[0]);shaka.text.TtmlTextParser.addStyle_(b,p,g,q,e,
|
|
2082
|
+
shaka.text.TtmlTextParser.parseCue_=function(a,b,c,d,e,f,g,h,k,l,m){var n=a.parentNode;if(a.nodeType==Node.COMMENT_NODE)return null;if(a.nodeType==Node.TEXT_NODE){if(!m)return null;var p=document.createElement("span");p.textContent=a.textContent}else goog.asserts.assert(a.nodeType==Node.ELEMENT_NODE,"nodeType should be ELEMENT_NODE!"),p=a;goog.asserts.assert(p,"cueElement should be non-null!");for(var q=null,r=$jscomp.makeIterator(shaka.text.TtmlTextParser.smpteNsList_),u=r.next();!u.done&&!(q=shaka.text.TtmlTextParser.getElementsFromCollection_(p,
|
|
2083
|
+
"backgroundImage",d,"#",u.value)[0]);u=r.next());if("p"==a.nodeName||q)m=!0;a=m;r="default"==(p.getAttribute("xml:space")||(h?"default":"preserve"));u=Array.from(p.childNodes).every(function(x){return x.nodeType==Node.TEXT_NODE});h=[];if(!u)for(var v=$jscomp.makeIterator(p.childNodes),w=v.next();!w.done;w=v.next())(w=shaka.text.TtmlTextParser.parseCue_(w.value,b,c,d,e,f,g,r,k,p,m))&&h.push(w);d=null!=l;v=/\S/.test(p.textContent);var y=p.hasAttribute("begin")||p.hasAttribute("end")||p.hasAttribute("dur");
|
|
2084
|
+
if(!(y||v||"br"==p.tagName||0!=h.length||d&&!r))return null;w=shaka.text.TtmlTextParser.parseTime_(p,c);v=w.start;for(w=w.end;n&&n.nodeType==Node.ELEMENT_NODE&&"tt"!=n.tagName;)w=shaka.text.TtmlTextParser.resolveTime_(n,c,v,w),v=w.start,w=w.end,n=n.parentNode;null==v&&(v=0);v+=b.periodStart;w=null==w?Infinity:w+b.periodStart;v=Math.max(v,b.segmentStart);w=Math.min(w,b.segmentEnd);if(!y&&0<h.length)for(v=Infinity,w=0,b=$jscomp.makeIterator(h),c=b.next();!c.done;c=b.next())c=c.value,v=Math.min(v,c.startTime),
|
|
2085
|
+
w=Math.max(w,c.endTime);if("br"==p.tagName)return e=new shaka.text.Cue(v,w,""),e.lineBreak=!0,e;b="";u&&(b=p.textContent,r&&(b=b.trim(),b=b.replace(/\s+/g," ")));b=new shaka.text.Cue(v,w,b);b.nestedCues=h;m||(b.isContainer=!0);k&&(b.cellResolution=k);k=shaka.text.TtmlTextParser.getElementsFromCollection_(p,"region",f,"")[0];if(p.hasAttribute("region")&&k&&k.getAttribute("xml:id")){var t=k.getAttribute("xml:id");b.region=g.filter(function(x){return x.id==t})[0]}g=k;l&&d&&!p.getAttribute("region")&&
|
|
2086
|
+
!p.getAttribute("style")&&(g=shaka.text.TtmlTextParser.getElementsFromCollection_(l,"region",f,"")[0]);shaka.text.TtmlTextParser.addStyle_(b,p,g,q,e,a,0==h.length);return b};
|
|
2088
2087
|
shaka.text.TtmlTextParser.parseCueRegion_=function(a,b,c){var d=shaka.text.TtmlTextParser,e=new shaka.text.CueRegion,f=a.getAttribute("xml:id");if(!f)return shaka.log.warning("TtmlTextParser parser encountered a region with no id. Region will be ignored."),null;e.id=f;f=null;c&&(f=d.percentValues_.exec(c)||d.pixelValues_.exec(c));c=f?Number(f[1]):null;f=f?Number(f[2]):null;var g,h;if(g=d.getStyleAttributeFromRegion_(a,b,"extent"))g=(h=d.percentValues_.exec(g))||d.pixelValues_.exec(g),null!=g&&(e.width=
|
|
2089
2088
|
Number(g[1]),e.height=Number(g[2]),h||(null!=c&&(e.width=100*e.width/c),null!=f&&(e.height=100*e.height/f)),e.widthUnits=h||null!=c?shaka.text.CueRegion.units.PERCENTAGE:shaka.text.CueRegion.units.PX,e.heightUnits=h||null!=f?shaka.text.CueRegion.units.PERCENTAGE:shaka.text.CueRegion.units.PX);if(a=d.getStyleAttributeFromRegion_(a,b,"origin"))g=(h=d.percentValues_.exec(a))||d.pixelValues_.exec(a),null!=g&&(e.viewportAnchorX=Number(g[1]),e.viewportAnchorY=Number(g[2]),h||(null!=f&&(e.viewportAnchorY=
|
|
2090
2089
|
100*e.viewportAnchorY/f),null!=c&&(e.viewportAnchorX=100*e.viewportAnchorX/c)),e.viewportAnchorUnits=h||null!=c?shaka.text.CueRegion.units.PERCENTAGE:shaka.text.CueRegion.units.PX);return e};
|
|
@@ -2151,8 +2150,8 @@ shaka.util.Error.Category.TEXT,shaka.util.Error.Code.INVALID_MP4_VTT);if(!d)thro
|
|
|
2151
2150
|
shaka.text.Mp4VttParser.prototype.parseMedia=function(a,b){if(!a.length)return[];if(!this.timescale_)throw shaka.log.error("No init segment for MP4+VTT!"),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.INVALID_MP4_VTT);var c=shaka.util.Mp4Parser,d=0,e=[],f,g=[],h=!1,k=!1,l=!1,m=null;(new c).box("moof",c.children).box("traf",c.children).fullBox("tfdt",function(t){h=!0;goog.asserts.assert(0==t.version||1==t.version,"TFDT version can only be 0 or 1");
|
|
2152
2151
|
d=shaka.util.Mp4BoxParsers.parseTFDT(t.reader,t.version).baseMediaDecodeTime}).fullBox("tfhd",function(t){goog.asserts.assert(null!=t.flags,"A TFHD box should have a valid flags value");m=shaka.util.Mp4BoxParsers.parseTFHD(t.reader,t.flags).defaultSampleDuration}).fullBox("trun",function(t){k=!0;goog.asserts.assert(null!=t.version,"A TRUN box should have a valid version value");goog.asserts.assert(null!=t.flags,"A TRUN box should have a valid flags value");e=shaka.util.Mp4BoxParsers.parseTRUN(t.reader,
|
|
2153
2152
|
t.version,t.flags).sampleData}).box("mdat",c.allData(function(t){goog.asserts.assert(!l,"VTT cues in mp4 with multiple MDAT are not currently supported");l=!0;f=t})).parse(a,!1);if(!l&&!h&&!k)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.INVALID_MP4_VTT);a=d;c=new shaka.util.DataViewReader(f,shaka.util.DataViewReader.Endianness.BIG_ENDIAN);for(var n=$jscomp.makeIterator(e),p=n.next();!p.done;p=n.next()){p=p.value;var q=p.sampleDuration||
|
|
2154
|
-
m,r=p.sampleCompositionTimeOffset?d+p.sampleCompositionTimeOffset:a;a=r+(q||0);var
|
|
2155
|
-
goog.asserts.assert(!p.sampleSize||
|
|
2153
|
+
m,r=p.sampleCompositionTimeOffset?d+p.sampleCompositionTimeOffset:a;a=r+(q||0);var u=0;do{var v=c.readUint32();u+=v;var w=c.readUint32();w=shaka.util.Mp4Parser.typeToString(w);var y=null;"vttc"==w?8<v&&(y=c.readBytes(v-8)):("vtte"!=w&&shaka.log.error("Unknown box "+w+"! Skipping!"),c.skip(v-8));q?y&&(goog.asserts.assert(null!=this.timescale_,"Timescale should not be null!"),v=shaka.text.Mp4VttParser.parseVTTC_(y,b.periodStart+r/this.timescale_,b.periodStart+a/this.timescale_),g.push(v)):shaka.log.error("WVTT sample duration unknown, and no default found!");
|
|
2154
|
+
goog.asserts.assert(!p.sampleSize||u<=p.sampleSize,"The samples do not fit evenly into the sample sizes given in the TRUN box!")}while(p.sampleSize&&u<p.sampleSize)}goog.asserts.assert(!c.hasMoreData(),"MDAT which contain VTT cues and non-VTT data are not currently supported!");return g.filter(shaka.util.Functional.isNotNull)};
|
|
2156
2155
|
shaka.text.Mp4VttParser.parseVTTC_=function(a,b,c){var d,e,f;(new shaka.util.Mp4Parser).box("payl",shaka.util.Mp4Parser.allData(function(g){d=shaka.util.StringUtils.fromUTF8(g)})).box("iden",shaka.util.Mp4Parser.allData(function(g){e=shaka.util.StringUtils.fromUTF8(g)})).box("sttg",shaka.util.Mp4Parser.allData(function(g){f=shaka.util.StringUtils.fromUTF8(g)})).parse(a);return d?shaka.text.Mp4VttParser.assembleCue_(d,e,f,b,c):null};
|
|
2157
2156
|
shaka.text.Mp4VttParser.assembleCue_=function(a,b,c,d,e){d=new shaka.text.Cue(d,e,"");e=new Map;shaka.text.VttTextParser.parseCueStyles(a,d,e);b&&(d.id=b);if(c)for(a=new shaka.util.TextParser(c),b=a.readWord();b;)shaka.text.VttTextParser.parseCueSetting(d,b,[])||shaka.log.warning("VTT parser encountered an invalid VTT setting: ",b," The setting will be ignored."),a.skipWhitespace(),b=a.readWord();return d};goog.exportSymbol("shaka.text.Mp4VttParser",shaka.text.Mp4VttParser);
|
|
2158
2157
|
goog.exportProperty(shaka.text.Mp4VttParser.prototype,"parseMedia",shaka.text.Mp4VttParser.prototype.parseMedia);goog.exportProperty(shaka.text.Mp4VttParser.prototype,"setSequenceMode",shaka.text.Mp4VttParser.prototype.setSequenceMode);goog.exportProperty(shaka.text.Mp4VttParser.prototype,"parseInit",shaka.text.Mp4VttParser.prototype.parseInit);shaka.text.TextEngine.registerParser('application/mp4; codecs="wvtt"',function(){return new shaka.text.Mp4VttParser});shaka.text.SbvTextParser=function(){};shaka.text.SbvTextParser.prototype.parseInit=function(a){goog.asserts.assert(!1,"SubViewer does not have init segments")};shaka.text.SbvTextParser.prototype.setSequenceMode=function(a){};
|
|
@@ -2365,11 +2364,11 @@ shaka.ui.Overlay.prototype.defaultConfig_=function(){var a={controlPanelElements
|
|
|
2365
2364
|
contextMenuElements:["loop","picture_in_picture","statistics"],playbackRates:[.5,.75,1,1.25,1.5,1.75,2],fastForwardRates:[2,4,8,1],rewindRates:[-1,-2,-4,-8],addSeekBar:!0,addBigPlayButton:!1,customContextMenu:!1,castReceiverAppId:"",castAndroidReceiverCompatible:!1,clearBufferOnQualityChange:!0,showUnbufferedStart:!1,seekBarColors:{base:"rgba(255, 255, 255, 0.3)",buffered:"rgba(255, 255, 255, 0.54)",played:"rgb(255, 255, 255)",adBreaks:"rgb(255, 204, 0)"},volumeBarColors:{base:"rgba(255, 255, 255, 0.54)",
|
|
2366
2365
|
level:"rgb(255, 255, 255)"},trackLabelFormat:shaka.ui.Overlay.TrackLabelFormat.LANGUAGE,fadeDelay:0,doubleClickForFullscreen:!0,singleClickForPlayAndPause:!0,enableKeyboardPlaybackControls:!0,enableFullscreenOnRotation:!0,forceLandscapeOnFullscreen:!0,enableTooltips:!1,keyboardSeekDistance:5};window.WebKitPlaybackTargetAvailabilityEvent&&a.overflowMenuButtons.push("airplay");this.isMobile()&&(a.addBigPlayButton=!0,a.controlPanelElements=a.controlPanelElements.filter(function(b){return"play_pause"!=
|
|
2367
2366
|
b&&"volume"!=b}));return a};
|
|
2368
|
-
shaka.ui.Overlay.scanPageForShakaElements_=function(){var a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,v,
|
|
2369
|
-
a=document.querySelectorAll("[data-shaka-player-container]");b=document.querySelectorAll("[data-shaka-player]");c=document.querySelectorAll("[data-shaka-player-canvas]");if(!b.length&&!a.length){
|
|
2370
|
-
for(m=l.next();!m.done;m=l.next())if(n=m.value,goog.asserts.assert("canvas"==n.tagName.toLowerCase(),"Should be a canvas element!"),n.parentElement==g){k=n;break}k||(k=document.createElement("canvas"),k.classList.add("shaka-canvas-container"),g.appendChild(k));shaka.ui.Overlay.setupUIandAutoLoad_(g,f,k)}
|
|
2371
|
-
|
|
2372
|
-
|
|
2367
|
+
shaka.ui.Overlay.scanPageForShakaElements_=function(){var a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,u,v,w,y,t,x,A;return $jscomp.asyncExecutePromiseGeneratorProgram(function(z){switch(z.nextAddress){case 1:shaka.polyfill.installAll();if(!shaka.Player.isBrowserSupported())return shaka.log.error("Shaka Player does not support this browser. Please see https://tinyurl.com/y7s4j9tr for the list of supported browsers."),shaka.ui.Overlay.dispatchLoadedEvent_("shaka-ui-load-failed",shaka.ui.Overlay.FailReasonCode.NO_BROWSER_SUPPORT),z.return();
|
|
2368
|
+
a=document.querySelectorAll("[data-shaka-player-container]");b=document.querySelectorAll("[data-shaka-player]");c=document.querySelectorAll("[data-shaka-player-canvas]");if(!b.length&&!a.length){z.jumpTo(2);break}if(b.length&&!a.length){d=$jscomp.makeIterator(b);for(e=d.next();!e.done;e=d.next())if(f=e.value,!f.ui){goog.asserts.assert("video"==f.tagName.toLowerCase(),"Should be a video element!");g=document.createElement("div");h=f.parentElement;h.replaceChild(g,f);g.appendChild(f);k=null;l=$jscomp.makeIterator(c);
|
|
2369
|
+
for(m=l.next();!m.done;m=l.next())if(n=m.value,goog.asserts.assert("canvas"==n.tagName.toLowerCase(),"Should be a canvas element!"),n.parentElement==g){k=n;break}k||(k=document.createElement("canvas"),k.classList.add("shaka-canvas-container"),g.appendChild(k));shaka.ui.Overlay.setupUIandAutoLoad_(g,f,k)}z.jumpTo(2);break}p=$jscomp.makeIterator(a);q=p.next();case 4:if(q.done){z.jumpTo(2);break}r=q.value;if(r.ui){z.jumpTo(5);break}goog.asserts.assert("div"==r.tagName.toLowerCase(),"Container should be a div!");
|
|
2370
|
+
u=null;v=$jscomp.makeIterator(b);for(e=v.next();!e.done;e=v.next())if(w=e.value,goog.asserts.assert("video"==w.tagName.toLowerCase(),"Should be a video element!"),w.parentElement==r){u=w;break}u||(u=document.createElement("video"),u.setAttribute("playsinline",""),r.appendChild(u));y=null;t=$jscomp.makeIterator(c);for(m=t.next();!m.done;m=t.next())if(x=m.value,goog.asserts.assert("canvas"==x.tagName.toLowerCase(),"Should be a canvas element!"),x.parentElement==r){y=x;break}y||(y=document.createElement("canvas"),
|
|
2371
|
+
y.classList.add("shaka-canvas-container"),r.appendChild(y));z.setCatchFinallyBlocks(7);return z.yield(shaka.ui.Overlay.setupUIandAutoLoad_(r,u,y),9);case 9:z.leaveTryBlock(5);break;case 7:return A=z.enterCatchBlock(),shaka.log.error("Error setting up Shaka Player",A),shaka.ui.Overlay.dispatchLoadedEvent_("shaka-ui-load-failed",shaka.ui.Overlay.FailReasonCode.PLAYER_FAILED_TO_LOAD),z.return();case 5:q=p.next();z.jumpTo(4);break;case 2:shaka.ui.Overlay.dispatchLoadedEvent_("shaka-ui-loaded"),z.jumpToEnd()}})};
|
|
2373
2372
|
shaka.ui.Overlay.dispatchLoadedEvent_=function(a,b){var c=null;void 0!=b&&(c={reasonCode:b});a=new CustomEvent(a,{detail:c});document.dispatchEvent(a)};
|
|
2374
2373
|
shaka.ui.Overlay.setupUIandAutoLoad_=function(a,b,c){var d,e,f,g,h,k,l,m,n,p;return $jscomp.asyncExecutePromiseGeneratorProgram(function(q){switch(q.nextAddress){case 1:d=new shaka.Player(shaka.util.Dom.asHTMLMediaElement(b));e=new shaka.ui.Overlay(d,shaka.util.Dom.asHTMLElement(a),shaka.util.Dom.asHTMLMediaElement(b));d.attachCanvas(c);f="";g=!1;a.dataset&&a.dataset.shakaPlayerCastReceiverId?(f=a.dataset.shakaPlayerCastReceiverId,g="true"===a.dataset.shakaPlayerCastAndroidReceiverCompatible):b.dataset&&
|
|
2375
2374
|
b.dataset.shakaPlayerCastReceiverId&&(f=b.dataset.shakaPlayerCastReceiverId,g="true"===b.dataset.shakaPlayerCastAndroidReceiverCompatible);f.length&&e.configure({castReceiverAppId:f,castAndroidReceiverCompatible:g});shaka.util.Dom.asHTMLMediaElement(b).controls&&e.getControls().setEnabledNativeControls(!0);if(h=b.getAttribute("src"))k=document.createElement("source"),k.setAttribute("src",h),b.appendChild(k),b.removeAttribute("src");l=$jscomp.makeIterator(b.querySelectorAll("source"));m=l.next();case 2:if(m.done){q.jumpTo(0);
|
|
@@ -2378,10 +2377,10 @@ goog.exportProperty(shaka.ui.Overlay.prototype,"configure",shaka.ui.Overlay.prot
|
|
|
2378
2377
|
goog.exportProperty(shaka.ui.Overlay,"TrackLabelFormat",shaka.ui.Overlay.TrackLabelFormat);shaka.ui.Overlay.FailReasonCode={NO_BROWSER_SUPPORT:0,PLAYER_FAILED_TO_LOAD:1};goog.exportProperty(shaka.ui.Overlay,"FailReasonCode",shaka.ui.Overlay.FailReasonCode);
|
|
2379
2378
|
"complete"==document.readyState?function(){return $jscomp.asyncExecutePromiseGeneratorProgram(function(a){if(1==a.nextAddress)return a.yield(Promise.resolve(),2);shaka.ui.Overlay.scanPageForShakaElements_();a.jumpToEnd()})}():window.addEventListener("load",shaka.ui.Overlay.scanPageForShakaElements_);shaka.ui.LanguageUtils=function(){};
|
|
2380
2379
|
shaka.ui.LanguageUtils.updateTracks=function(a,b,c,d,e,f,g){var h=a.find(function(t){return 1==t.active}),k=shaka.ui.Utils.getFirstDescendantWithClassName(b,"shaka-back-to-overflow-button");shaka.util.Dom.removeAllChildren(b);b.appendChild(k);k=function(t){return"variant"==t.type?t.audioRoles?t.audioRoles.join(", "):void 0:t.roles.join(", ")};for(var l=function(t,x){return t+": "+x},m=new Map,n=$jscomp.makeIterator(a),p=n.next();!p.done;p=n.next())p=p.value,m.has(p.language)||m.set(p.language,new Set),
|
|
2381
|
-
m.get(p.language).add(k(p));m=new Set;h=h?l(h.language,k(h)):"";n={};a=$jscomp.makeIterator(a);for(p=a.next();!p.done;n={$jscomp$loop$prop$track$679$753:n.$jscomp$loop$prop$track$679$753},p=a.next()){n.$jscomp$loop$prop$track$679$753=p.value;p=n.$jscomp$loop$prop$track$679$753.language;var q=n.$jscomp$loop$prop$track$679$753.forced,r=f.resolve(shaka.ui.Locales.Ids.SUBTITLE_FORCED),
|
|
2382
|
-
function(t){return function(){c(t.$jscomp$loop$prop$track$679$753)}}(n));var
|
|
2383
|
-
"?");q&&(
|
|
2384
|
-
|
|
2380
|
+
m.get(p.language).add(k(p));m=new Set;h=h?l(h.language,k(h)):"";n={};a=$jscomp.makeIterator(a);for(p=a.next();!p.done;n={$jscomp$loop$prop$track$679$753:n.$jscomp$loop$prop$track$679$753},p=a.next()){n.$jscomp$loop$prop$track$679$753=p.value;p=n.$jscomp$loop$prop$track$679$753.language;var q=n.$jscomp$loop$prop$track$679$753.forced,r=f.resolve(shaka.ui.Locales.Ids.SUBTITLE_FORCED),u=k(n.$jscomp$loop$prop$track$679$753),v=l(p,u);if(!m.has(v)){m.add(v);var w=shaka.util.Dom.createButton();w.addEventListener("click",
|
|
2381
|
+
function(t){return function(){c(t.$jscomp$loop$prop$track$679$753)}}(n));var y=shaka.util.Dom.createHTMLElement("span");w.appendChild(y);y.textContent=shaka.ui.LanguageUtils.getLanguageName(p,f);switch(g){case shaka.ui.Overlay.TrackLabelFormat.LANGUAGE:q&&(y.textContent+=" ("+r+")");break;case shaka.ui.Overlay.TrackLabelFormat.ROLE:u?y.textContent=u:(shaka.log.alwaysWarn("Track #"+n.$jscomp$loop$prop$track$679$753.id+" does not have a role, but the UI is configured to only show role."),y.textContent=
|
|
2382
|
+
"?");q&&(y.textContent+=" ("+r+")");break;case shaka.ui.Overlay.TrackLabelFormat.LANGUAGE_ROLE:u&&(y.textContent+=": "+u);q&&(y.textContent+=" ("+r+")");break;case shaka.ui.Overlay.TrackLabelFormat.LABEL:n.$jscomp$loop$prop$track$679$753.label?y.textContent=n.$jscomp$loop$prop$track$679$753.label:(shaka.log.alwaysWarn("Track #"+n.$jscomp$loop$prop$track$679$753.id+" does not have a label, but the UI is configured to only show labels."),y.textContent="?")}d&&v==h&&(w.appendChild(shaka.ui.Utils.checkmarkIcon()),
|
|
2383
|
+
y.classList.add("shaka-chosen-item"),w.ariaSelected="true",e.textContent=y.textContent);b.appendChild(w)}}};
|
|
2385
2384
|
shaka.ui.LanguageUtils.getLanguageName=function(a,b){if(!a&&!b)return"";switch(a){case "mul":return b.resolve(shaka.ui.Locales.Ids.MULTIPLE_LANGUAGES);case "und":return b.resolve(shaka.ui.Locales.Ids.UNDETERMINED_LANGUAGE);case "zxx":return b.resolve(shaka.ui.Locales.Ids.NOT_APPLICABLE)}var c=shaka.util.LanguageUtils.getBase(a);return a in mozilla.LanguageMapping?mozilla.LanguageMapping[a].nativeName:c in mozilla.LanguageMapping?mozilla.LanguageMapping[c].nativeName+" ("+a+")":b.resolve(shaka.ui.Locales.Ids.UNRECOGNIZED_LANGUAGE)+
|
|
2386
2385
|
" ("+a+")"};shaka.ui.SettingsMenu=function(a,b,c){shaka.ui.Element.call(this,a,b);var d=this;this.addButton_(c);this.addMenu_();this.inOverflowMenu_();this.eventManager.listen(this.button,"click",function(){d.onButtonClick_()})};$jscomp.inherits(shaka.ui.SettingsMenu,shaka.ui.Element);
|
|
2387
2386
|
shaka.ui.SettingsMenu.prototype.addButton_=function(a){this.button=shaka.util.Dom.createButton();this.button.classList.add("shaka-overflow-button");this.icon=shaka.util.Dom.createHTMLElement("i");this.icon.classList.add("material-icons-round");this.icon.textContent=a;this.button.appendChild(this.icon);a=shaka.util.Dom.createHTMLElement("label");a.classList.add("shaka-overflow-button-label");a.classList.add("shaka-overflow-menu-only");this.nameSpan=shaka.util.Dom.createHTMLElement("span");a.appendChild(this.nameSpan);
|