shaka-player 2.5.4 → 2.5.5

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.
Files changed (102) hide show
  1. package/.csslintrc +13 -0
  2. package/CHANGELOG.md +56 -0
  3. package/build/build.py +4 -1
  4. package/build/check.py +17 -0
  5. package/build/compiler.py +40 -0
  6. package/build/types/core +1 -0
  7. package/build/types/ui +4 -1
  8. package/demo/asset_card.js +41 -11
  9. package/demo/cast_receiver/receiver_app.css +19 -13
  10. package/demo/close_button.js +0 -6
  11. package/demo/common/asset.js +6 -1
  12. package/demo/common/assets.js +72 -14
  13. package/demo/demo.less +105 -16
  14. package/demo/index.html +8 -5
  15. package/demo/load.js +5 -7
  16. package/demo/main.js +81 -16
  17. package/dist/.csslintstamp +0 -0
  18. package/dist/controls.css +1 -1
  19. package/dist/controls.css.map +1 -1
  20. package/dist/demo.compiled.debug.js +46 -39
  21. package/dist/demo.compiled.debug.map +3 -3
  22. package/dist/demo.compiled.js +46 -39
  23. package/dist/demo.compiled.map +3 -3
  24. package/dist/demo.css +1 -1
  25. package/dist/demo.css.map +1 -1
  26. package/dist/deps.js +11 -7
  27. package/dist/receiver.compiled.debug.js +10 -6
  28. package/dist/receiver.compiled.debug.map +3 -3
  29. package/dist/receiver.compiled.js +10 -6
  30. package/dist/receiver.compiled.map +3 -3
  31. package/dist/shaka-player.compiled.debug.externs.js +123 -92
  32. package/dist/shaka-player.compiled.debug.js +113 -105
  33. package/dist/shaka-player.compiled.debug.map +4 -4
  34. package/dist/shaka-player.compiled.externs.js +123 -92
  35. package/dist/shaka-player.compiled.js +551 -548
  36. package/dist/shaka-player.compiled.map +4 -4
  37. package/dist/shaka-player.ui.debug.externs.js +170 -101
  38. package/dist/shaka-player.ui.debug.js +187 -188
  39. package/dist/shaka-player.ui.debug.map +4 -4
  40. package/dist/shaka-player.ui.externs.js +170 -101
  41. package/dist/shaka-player.ui.js +651 -651
  42. package/dist/shaka-player.ui.map +3 -3
  43. package/docs/tutorials/drm-config.md +1 -0
  44. package/docs/tutorials/fairplay.md +77 -0
  45. package/docs/tutorials/index.json +1 -0
  46. package/docs/tutorials/ui-customization.md +3 -0
  47. package/docs/tutorials/ui.md +3 -1
  48. package/externs/mediasession.js +16 -1
  49. package/externs/shaka/net.js +5 -1
  50. package/externs/shaka/player.js +136 -90
  51. package/externs/webkitmediakeys.js +4 -0
  52. package/lib/dash/content_protection.js +33 -1
  53. package/lib/dash/dash_parser.js +12 -4
  54. package/lib/hls/hls_parser.js +20 -4
  55. package/lib/media/drm_engine.js +29 -2
  56. package/lib/media/media_source_engine.js +7 -3
  57. package/lib/media/playhead.js +8 -3
  58. package/lib/media/streaming_engine.js +24 -8
  59. package/lib/media/video_wrapper.js +8 -3
  60. package/lib/net/networking_engine.js +1 -0
  61. package/lib/player.js +3 -2
  62. package/lib/polyfill/patchedmediakeys_apple.js +2 -72
  63. package/lib/util/error.js +12 -0
  64. package/lib/util/fairplay_utils.js +122 -0
  65. package/lib/util/player_configuration.js +5 -0
  66. package/lib/util/pssh.js +41 -0
  67. package/package.json +4 -3
  68. package/shaka-player.uncompiled.js +5 -1
  69. package/test/dash/dash_parser_content_protection_unit.js +35 -1
  70. package/test/dash/dash_parser_manifest_unit.js +31 -0
  71. package/test/hls/hls_live_unit.js +7 -1
  72. package/test/hls/hls_parser_unit.js +50 -0
  73. package/test/media/media_source_engine_integration.js +12 -0
  74. package/test/media/playhead_unit.js +2 -0
  75. package/test/player_external.js +3 -2
  76. package/test/player_integration.js +75 -0
  77. package/test/test/externs/jasmine.js +6 -0
  78. package/test/test/util/test_scheme.js +32 -1
  79. package/test/test/util/ui_utils.js +41 -0
  80. package/test/ui/ui_unit.js +129 -3
  81. package/ui/audio_language_selection.js +17 -96
  82. package/ui/big_play_button.js +61 -0
  83. package/ui/controls.js +111 -86
  84. package/ui/controls.less +3 -5
  85. package/ui/externs/ui.js +14 -2
  86. package/ui/fullscreen_button.js +2 -52
  87. package/ui/less/buttons.less +8 -8
  88. package/ui/less/containers.less +21 -21
  89. package/ui/less/general.less +11 -0
  90. package/ui/less/other_elements.less +2 -1
  91. package/ui/less/overflow_menu.less +11 -10
  92. package/ui/less/range_elements.less +6 -0
  93. package/ui/less/spinner.less +2 -0
  94. package/ui/pip_button.js +1 -1
  95. package/ui/{play_pause_button.js → play_button.js} +17 -47
  96. package/ui/resolution_selection.js +41 -104
  97. package/ui/seek_bar.js +15 -17
  98. package/ui/settings_menu.js +113 -0
  99. package/ui/small_play_button.js +73 -0
  100. package/ui/text_displayer.js +2 -2
  101. package/ui/text_selection.js +39 -105
  102. package/ui/ui.js +12 -0
@@ -177,9 +177,9 @@ shaka.util.Error.Code={UNSUPPORTED_SCHEME:1E3,BAD_HTTP_STATUS:1001,HTTP_ERROR:10
177
177
  EBML_OVERFLOW:3002,EBML_BAD_FLOATING_POINT_SIZE:3003,MP4_SIDX_WRONG_BOX_TYPE:3004,MP4_SIDX_INVALID_TIMESCALE:3005,MP4_SIDX_TYPE_NOT_SUPPORTED:3006,WEBM_CUES_ELEMENT_MISSING:3007,WEBM_EBML_HEADER_ELEMENT_MISSING:3008,WEBM_SEGMENT_ELEMENT_MISSING:3009,WEBM_INFO_ELEMENT_MISSING:3010,WEBM_DURATION_ELEMENT_MISSING:3011,WEBM_CUE_TRACK_POSITIONS_ELEMENT_MISSING:3012,WEBM_CUE_TIME_ELEMENT_MISSING:3013,MEDIA_SOURCE_OPERATION_FAILED:3014,MEDIA_SOURCE_OPERATION_THREW:3015,VIDEO_ERROR:3016,QUOTA_EXCEEDED_ERROR:3017,
178
178
  TRANSMUXING_FAILED:3018,UNABLE_TO_GUESS_MANIFEST_TYPE:4E3,DASH_INVALID_XML:4001,DASH_NO_SEGMENT_INFO:4002,DASH_EMPTY_ADAPTATION_SET:4003,DASH_EMPTY_PERIOD:4004,DASH_WEBM_MISSING_INIT:4005,DASH_UNSUPPORTED_CONTAINER:4006,DASH_PSSH_BAD_ENCODING:4007,DASH_NO_COMMON_KEY_SYSTEM:4008,DASH_MULTIPLE_KEY_IDS_NOT_SUPPORTED:4009,DASH_CONFLICTING_KEY_IDS:4010,UNPLAYABLE_PERIOD:4011,RESTRICTIONS_CANNOT_BE_MET:4012,NO_PERIODS:4014,HLS_PLAYLIST_HEADER_MISSING:4015,INVALID_HLS_TAG:4016,HLS_INVALID_PLAYLIST_HIERARCHY:4017,
179
179
  DASH_DUPLICATE_REPRESENTATION_ID:4018,HLS_MULTIPLE_MEDIA_INIT_SECTIONS_FOUND:4020,HLS_COULD_NOT_GUESS_MIME_TYPE:4021,HLS_MASTER_PLAYLIST_NOT_PROVIDED:4022,HLS_REQUIRED_ATTRIBUTE_MISSING:4023,HLS_REQUIRED_TAG_MISSING:4024,HLS_COULD_NOT_GUESS_CODECS:4025,HLS_KEYFORMATS_NOT_SUPPORTED:4026,DASH_UNSUPPORTED_XLINK_ACTUATE:4027,DASH_XLINK_DEPTH_LIMIT:4028,HLS_COULD_NOT_PARSE_SEGMENT_START_TIME:4030,CONTENT_UNSUPPORTED_BY_BROWSER:4032,CANNOT_ADD_EXTERNAL_TEXT_TO_LIVE_STREAM:4033,HLS_AES_128_ENCRYPTION_NOT_SUPPORTED:4034,
180
- INVALID_STREAMS_CHOSEN:5005,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,LOAD_INTERRUPTED:7E3,OPERATION_ABORTED:7001,NO_VIDEO_ELEMENT:7002,CAST_API_UNAVAILABLE:8E3,
181
- 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,CAST_RECEIVER_APP_ID_MISSING:8007,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,STORE_ALREADY_IN_PROGRESS:9006,NO_INIT_DATA_FOR_OFFLINE:9007,LOCAL_PLAYER_INSTANCE_REQUIRED:9008,NEW_KEY_OPERATION_NOT_SUPPORTED:9011,
182
- KEY_NOT_FOUND:9012,MISSING_STORAGE_CELL:9013};goog.exportProperty(shaka.util.Error,"Code",shaka.util.Error.Code);shaka.util.PublicPromise=function(){var a,b,c=new Promise(function(c,e){a=c;b=e});c.resolve=a;c.reject=b;return c};shaka.util.PublicPromise.prototype.resolve=function(a){};shaka.util.PublicPromise.prototype.reject=function(a){};shaka.util.AbortableOperation=function(a,b){this.promise=a;this.onAbort_=b;this.aborted_=!1};goog.exportSymbol("shaka.util.AbortableOperation",shaka.util.AbortableOperation);shaka.util.AbortableOperation.failed=function(a){return new shaka.util.AbortableOperation(Promise.reject(a),function(){return Promise.resolve()})};goog.exportProperty(shaka.util.AbortableOperation,"failed",shaka.util.AbortableOperation.failed);
180
+ INVALID_STREAMS_CHOSEN:5005,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,LOAD_INTERRUPTED:7E3,
181
+ OPERATION_ABORTED:7001,NO_VIDEO_ELEMENT:7002,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,CAST_RECEIVER_APP_ID_MISSING:8007,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,STORE_ALREADY_IN_PROGRESS:9006,NO_INIT_DATA_FOR_OFFLINE:9007,LOCAL_PLAYER_INSTANCE_REQUIRED:9008,
182
+ NEW_KEY_OPERATION_NOT_SUPPORTED:9011,KEY_NOT_FOUND:9012,MISSING_STORAGE_CELL:9013};goog.exportProperty(shaka.util.Error,"Code",shaka.util.Error.Code);shaka.util.PublicPromise=function(){var a,b,c=new Promise(function(c,e){a=c;b=e});c.resolve=a;c.reject=b;return c};shaka.util.PublicPromise.prototype.resolve=function(a){};shaka.util.PublicPromise.prototype.reject=function(a){};shaka.util.AbortableOperation=function(a,b){this.promise=a;this.onAbort_=b;this.aborted_=!1};goog.exportSymbol("shaka.util.AbortableOperation",shaka.util.AbortableOperation);shaka.util.AbortableOperation.failed=function(a){return new shaka.util.AbortableOperation(Promise.reject(a),function(){return Promise.resolve()})};goog.exportProperty(shaka.util.AbortableOperation,"failed",shaka.util.AbortableOperation.failed);
183
183
  shaka.util.AbortableOperation.aborted=function(){var a=Promise.reject(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.PLAYER,shaka.util.Error.Code.OPERATION_ABORTED));a["catch"](function(){});return new shaka.util.AbortableOperation(a,function(){return Promise.resolve()})};goog.exportProperty(shaka.util.AbortableOperation,"aborted",shaka.util.AbortableOperation.aborted);
184
184
  shaka.util.AbortableOperation.completed=function(a){return new shaka.util.AbortableOperation(Promise.resolve(a),function(){return Promise.resolve()})};goog.exportProperty(shaka.util.AbortableOperation,"completed",shaka.util.AbortableOperation.completed);shaka.util.AbortableOperation.notAbortable=function(a){return new shaka.util.AbortableOperation(a,function(){return a["catch"](function(){})})};goog.exportProperty(shaka.util.AbortableOperation,"notAbortable",shaka.util.AbortableOperation.notAbortable);
185
185
  shaka.util.AbortableOperation.prototype.abort=function(){this.aborted_=!0;return this.onAbort_()};goog.exportProperty(shaka.util.AbortableOperation.prototype,"abort",shaka.util.AbortableOperation.prototype.abort);shaka.util.AbortableOperation.all=function(a){return new shaka.util.AbortableOperation(Promise.all(a.map(function(a){return a.promise})),function(){return Promise.all(a.map(function(a){return a.abort()}))})};goog.exportProperty(shaka.util.AbortableOperation,"all",shaka.util.AbortableOperation.all);
@@ -193,7 +193,7 @@ shaka.net.NetworkingEngine.registerScheme=function(a,b,c){goog.asserts.assert(vo
193
193
  goog.exportProperty(shaka.net.NetworkingEngine,"unregisterScheme",shaka.net.NetworkingEngine.unregisterScheme);shaka.net.NetworkingEngine.prototype.registerRequestFilter=function(a){this.requestFilters_.add(a)};goog.exportProperty(shaka.net.NetworkingEngine.prototype,"registerRequestFilter",shaka.net.NetworkingEngine.prototype.registerRequestFilter);shaka.net.NetworkingEngine.prototype.unregisterRequestFilter=function(a){this.requestFilters_["delete"](a)};
194
194
  goog.exportProperty(shaka.net.NetworkingEngine.prototype,"unregisterRequestFilter",shaka.net.NetworkingEngine.prototype.unregisterRequestFilter);shaka.net.NetworkingEngine.prototype.clearAllRequestFilters=function(){this.requestFilters_.clear()};goog.exportProperty(shaka.net.NetworkingEngine.prototype,"clearAllRequestFilters",shaka.net.NetworkingEngine.prototype.clearAllRequestFilters);shaka.net.NetworkingEngine.prototype.registerResponseFilter=function(a){this.responseFilters_.add(a)};
195
195
  goog.exportProperty(shaka.net.NetworkingEngine.prototype,"registerResponseFilter",shaka.net.NetworkingEngine.prototype.registerResponseFilter);shaka.net.NetworkingEngine.prototype.unregisterResponseFilter=function(a){this.responseFilters_["delete"](a)};goog.exportProperty(shaka.net.NetworkingEngine.prototype,"unregisterResponseFilter",shaka.net.NetworkingEngine.prototype.unregisterResponseFilter);shaka.net.NetworkingEngine.prototype.clearAllResponseFilters=function(){this.responseFilters_.clear()};
196
- goog.exportProperty(shaka.net.NetworkingEngine.prototype,"clearAllResponseFilters",shaka.net.NetworkingEngine.prototype.clearAllResponseFilters);shaka.net.NetworkingEngine.defaultRetryParameters=shaka.net.Backoff.defaultRetryParameters;shaka.net.NetworkingEngine.makeRequest=function(a,b){return{uris:a,method:"GET",body:null,headers:{},allowCrossSiteCredentials:!1,retryParameters:b,licenseRequestType:null}};
196
+ goog.exportProperty(shaka.net.NetworkingEngine.prototype,"clearAllResponseFilters",shaka.net.NetworkingEngine.prototype.clearAllResponseFilters);shaka.net.NetworkingEngine.defaultRetryParameters=shaka.net.Backoff.defaultRetryParameters;shaka.net.NetworkingEngine.makeRequest=function(a,b){return{uris:a,method:"GET",body:null,headers:{},allowCrossSiteCredentials:!1,retryParameters:b,licenseRequestType:null,sessionId:null}};
197
197
  shaka.net.NetworkingEngine.prototype.destroy=function(){this.destroyed_=!0;this.requestFilters_.clear();this.responseFilters_.clear();return this.operationManager_.destroy()};goog.exportProperty(shaka.net.NetworkingEngine.prototype,"destroy",shaka.net.NetworkingEngine.prototype.destroy);
198
198
  shaka.net.NetworkingEngine.prototype.request=function(a,b){var c=this,d=shaka.util.ObjectUtils,e=new shaka.net.NetworkingEngine.NumBytesRemainingClass;if(this.destroyed_)return d=Promise.reject(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.PLAYER,shaka.util.Error.Code.OPERATION_ABORTED)),d["catch"](function(){}),new shaka.net.NetworkingEngine.PendingRequest(d,function(){return Promise.resolve()},e);goog.asserts.assert(b.uris&&b.uris.length,"Request without URIs!");
199
199
  b.method=b.method||"GET";b.headers=b.headers||{};b.retryParameters=b.retryParameters?d.cloneObject(b.retryParameters):shaka.net.NetworkingEngine.defaultRetryParameters();b.uris=d.cloneObject(b.uris);d=this.filterRequest_(a,b);var f=d.chain(function(){return c.makeRequestWithRetry_(a,b,e)}),g=f.chain(function(b){return c.filterResponse_(a,b)}),h=Date.now(),k=0;d.promise.then(function(){k=Date.now()-h},function(){});var l=0;f.promise.then(function(){l=Date.now()},function(){});d=g.chain(function(b){var d=
@@ -215,7 +215,9 @@ shaka.util.EventManager.prototype.unlisten=function(a,b,c){if(this.bindingMap_){
215
215
  shaka.util.EventManager.prototype.removeAll=function(){if(this.bindingMap_){var a=this.bindingMap_.getAll();a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next())b.value.unlisten();this.bindingMap_.clear()}};goog.exportProperty(shaka.util.EventManager.prototype,"removeAll",shaka.util.EventManager.prototype.removeAll);
216
216
  shaka.util.EventManager.Binding_=function(a,b,c,d){this.target=a;this.type=b;this.listener=c;this.options=shaka.util.EventManager.Binding_.convertOptions_(a,d);this.target.addEventListener(b,c,this.options)};shaka.util.EventManager.Binding_.prototype.unlisten=function(){goog.asserts.assert(this.target,"Missing target");this.target.removeEventListener(this.type,this.listener,this.options);this.listener=this.target=null;this.options=!1};
217
217
  goog.exportProperty(shaka.util.EventManager.Binding_.prototype,"unlisten",shaka.util.EventManager.Binding_.prototype.unlisten);shaka.util.EventManager.Binding_.convertOptions_=function(a,b){if(void 0==b)return!1;if("boolean"==typeof b)return b;var c=new Set(["passive","capture"]),d=Object.keys(b).filter(function(a){return!c.has(a)});goog.asserts.assert(0==d.length,"Unsupported flag(s) to addEventListener: "+d.join(","));return shaka.util.EventManager.Binding_.doesSupportObject_(a)?b:b.capture||!1};
218
- shaka.util.EventManager.Binding_.doesSupportObject_=function(a){var b=shaka.util.EventManager.Binding_.supportsObject_;if(void 0==b){b=!1;try{var c={},d={get:function(){b=!0;return!1}};Object.defineProperty(c,"passive",d);Object.defineProperty(c,"capture",d);d=function(){};a.addEventListener("test",d,c);a.removeEventListener("test",d,c)}catch(e){b=!1}shaka.util.EventManager.Binding_.supportsObject_=b}return b||!1};shaka.util.EventManager.Binding_.supportsObject_=void 0;shaka.util.MapUtils={};shaka.util.MapUtils.asMap=function(a){var b=new Map;Object.keys(a).forEach(function(c){b.set(c,a[c])});return b};shaka.util.MapUtils.asObject=function(a){var b={};a.forEach(function(a,d){b[d]=a});return b};shaka.util.MimeUtils=function(){};shaka.util.MimeUtils.getFullType=function(a,b){var c=a;b&&(c+='; codecs="'+b+'"');return c};shaka.util.MimeUtils.getExtendedType=function(a){var b=[a.mimeType];shaka.util.MimeUtils.EXTENDED_MIME_PARAMETERS_.forEach(function(c,d){var e=a[d];e&&b.push(c+'="'+e+'"')});return b.join(";")};shaka.util.MimeUtils.splitCodecs=function(a){return a.split(",")};shaka.util.MimeUtils.getCodecBase=function(a){return shaka.util.MimeUtils.getCodecParts_(a)[0]};
218
+ shaka.util.EventManager.Binding_.doesSupportObject_=function(a){var b=shaka.util.EventManager.Binding_.supportsObject_;if(void 0==b){b=!1;try{var c={},d={get:function(){b=!0;return!1}};Object.defineProperty(c,"passive",d);Object.defineProperty(c,"capture",d);d=function(){};a.addEventListener("test",d,c);a.removeEventListener("test",d,c)}catch(e){b=!1}shaka.util.EventManager.Binding_.supportsObject_=b}return b||!1};shaka.util.EventManager.Binding_.supportsObject_=void 0;shaka.util.FairPlayUtils=function(){};shaka.util.FairPlayUtils.defaultGetContentId=function(a){a=new Uint8Array(a);if((new DataView(a.buffer,a.byteOffset,a.byteLength)).getUint32(0,!0)+4!=a.byteLength)throw new RangeError("Malformed FairPlay init data");a=shaka.util.StringUtils.fromUTF16(a.subarray(4),!0);return(new goog.Uri(a)).getDomain()};goog.exportSymbol("shaka.util.FairPlayUtils.defaultGetContentId",shaka.util.FairPlayUtils.defaultGetContentId);
219
+ shaka.util.FairPlayUtils.initDataTransform=function(a,b,c){if(!c||!c.byteLength)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.SERVER_CERTIFICATE_REQUIRED);b="string"==typeof b?new Uint8Array(shaka.util.StringUtils.toUTF16(b,!0)):new Uint8Array(b);var d=new Uint8Array(8+a.byteLength+b.byteLength+c.byteLength),e=0,f=function(a){d.set(a,e);e+=a.byteLength},g=function(a){(new DataView(d.buffer)).setUint32(e,a.byteLength,!0);e+=4;f(a)};
220
+ f(new Uint8Array(a));g(b);g(new Uint8Array(c));return d};goog.exportSymbol("shaka.util.FairPlayUtils.initDataTransform",shaka.util.FairPlayUtils.initDataTransform);shaka.util.MapUtils={};shaka.util.MapUtils.asMap=function(a){var b=new Map;Object.keys(a).forEach(function(c){b.set(c,a[c])});return b};shaka.util.MapUtils.asObject=function(a){var b={};a.forEach(function(a,d){b[d]=a});return b};shaka.util.MimeUtils=function(){};shaka.util.MimeUtils.getFullType=function(a,b){var c=a;b&&(c+='; codecs="'+b+'"');return c};shaka.util.MimeUtils.getExtendedType=function(a){var b=[a.mimeType];shaka.util.MimeUtils.EXTENDED_MIME_PARAMETERS_.forEach(function(c,d){var e=a[d];e&&b.push(c+'="'+e+'"')});return b.join(";")};shaka.util.MimeUtils.splitCodecs=function(a){return a.split(",")};shaka.util.MimeUtils.getCodecBase=function(a){return shaka.util.MimeUtils.getCodecParts_(a)[0]};
219
221
  shaka.util.MimeUtils.getCodecParts_=function(a){var b=a.split(".");a=b[0];b.pop();b=b.join(".");return[a,b]};shaka.util.MimeUtils.EXTENDED_MIME_PARAMETERS_=(new Map).set("codecs","codecs").set("frameRate","framerate").set("bandwidth","bitrate").set("width","width").set("height","height").set("channelsCount","channels");shaka.util.MimeUtils.CLOSED_CAPTION_MIMETYPE="application/cea-608";shaka.util.Platform=function(){};shaka.util.Platform.supportsMediaSource=function(){return window.MediaSource&&MediaSource.isTypeSupported?!0:!1};shaka.util.Platform.supportsMediaType=function(a){return""!=shaka.util.Platform.anyMediaElement_().canPlayType(a)};shaka.util.Platform.isEdge=function(){return shaka.util.Platform.userAgentContains_("Edge/")};shaka.util.Platform.isIE=function(){return shaka.util.Platform.userAgentContains_("Trident/")};shaka.util.Platform.isTizen=function(){return shaka.util.Platform.userAgentContains_("Tizen")};
220
222
  shaka.util.Platform.isTizen3=function(){return shaka.util.Platform.userAgentContains_("Tizen 3")};shaka.util.Platform.isWebOS=function(){return shaka.util.Platform.userAgentContains_("Web0S")};shaka.util.Platform.isChromecast=function(){return shaka.util.Platform.userAgentContains_("CrKey")};shaka.util.Platform.isChrome=function(){return shaka.util.Platform.userAgentContains_("Chrome")&&!shaka.util.Platform.isEdge()};shaka.util.Platform.isApple=function(){return!!navigator.vendor&&navigator.vendor.includes("Apple")};
221
223
  shaka.util.Platform.isMobile=function(){return/(?:iPhone|iPad|iPod|Android)/.test(navigator.userAgent)};shaka.util.Platform.userAgentContains_=function(a){return(navigator.userAgent||"").includes(a)};
@@ -264,13 +266,14 @@ licenseServerUri:"data:application/json;base64,"+window.btoa(a),distinctiveIdent
264
266
  shaka.media.DrmEngine.prototype.loadOfflineSession_=function(a){try{shaka.log.v1("Attempting to load an offline session",a);var b=this.mediaKeys_.createSession("persistent-license")}catch(e){var c=new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.FAILED_TO_CREATE_SESSION,e.message);this.onError_(c);return Promise.reject(c)}this.eventManager_.listen(b,"message",this.onSessionMessage_.bind(this));this.eventManager_.listen(b,"keystatuseschange",
265
267
  this.onKeyStatusesChange_.bind(this));var d={initData:null,loaded:!1,oldExpiration:Infinity,updatePromise:null};this.activeSessions_.set(b,d);return b.load(a).then(function(c){if(this.isDestroying_)return Promise.reject();shaka.log.v2("Loaded offline session",a,c);if(c)return d.loaded=!0,this.areAllSessionsLoaded_()&&this.allSessionsLoaded_.resolve(),b;this.activeSessions_["delete"](b);this.onError_(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.OFFLINE_SESSION_REMOVED))}.bind(this),
266
268
  function(a){this.isDestroying_||(this.activeSessions_["delete"](b),this.onError_(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.FAILED_TO_CREATE_SESSION,a.message)))}.bind(this))};
267
- shaka.media.DrmEngine.prototype.createTemporarySession_=function(a,b){var c=this;try{if(this.usePersistentLicenses_){shaka.log.v1("Creating new persistent session");var d=this.mediaKeys_.createSession("persistent-license")}else shaka.log.v1("Creating new temporary session"),d=this.mediaKeys_.createSession()}catch(e){this.onError_(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.FAILED_TO_CREATE_SESSION,e.message));return}this.eventManager_.listen(d,
268
- "message",this.onSessionMessage_.bind(this));this.eventManager_.listen(d,"keystatuseschange",this.onKeyStatusesChange_.bind(this));this.activeSessions_.set(d,{initData:b,loaded:!1,oldExpiration:Infinity,updatePromise:null});d.generateRequest(a,b.buffer)["catch"](function(a){if(!c.isDestroying_){c.activeSessions_["delete"](d);if(a.errorCode&&a.errorCode.systemCode){var b=a.errorCode.systemCode;0>b&&(b+=Math.pow(2,32));b="0x"+b.toString(16)}c.onError_(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
269
- shaka.util.Error.Category.DRM,shaka.util.Error.Code.FAILED_TO_GENERATE_LICENSE_REQUEST,a.message,a,b))}})};shaka.media.DrmEngine.prototype.onSessionMessage_=function(a){this.delayLicenseRequest_()?this.mediaKeyMessageEvents_.push(a):this.sendLicenseRequest_(a)};shaka.media.DrmEngine.prototype.delayLicenseRequest_=function(){return this.config_.delayLicenseRequestUntilPlayed&&this.video_.paused&&!this.initialRequestsSent_};
269
+ shaka.media.DrmEngine.prototype.createTemporarySession_=function(a,b){var c=this;try{if(this.usePersistentLicenses_){shaka.log.v1("Creating new persistent session");var d=this.mediaKeys_.createSession("persistent-license")}else shaka.log.v1("Creating new temporary session"),d=this.mediaKeys_.createSession()}catch(g){this.onError_(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.FAILED_TO_CREATE_SESSION,g.message));return}this.eventManager_.listen(d,
270
+ "message",this.onSessionMessage_.bind(this));this.eventManager_.listen(d,"keystatuseschange",this.onKeyStatusesChange_.bind(this));this.activeSessions_.set(d,{initData:b,loaded:!1,oldExpiration:Infinity,updatePromise:null});try{if(this.config_.initDataTransform)b=this.config_.initDataTransform(b);else if(this.keySystem().startsWith("com.apple.fps")){var e=this.currentDrmInfo_.serverCertificate,f=shaka.util.FairPlayUtils.defaultGetContentId(b);b=shaka.util.FairPlayUtils.initDataTransform(b,f,e)}}catch(g){e=
271
+ g;g instanceof shaka.util.Error||(e=new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.INIT_DATA_TRANSFORM_ERROR,g));this.onError_(e);return}d.generateRequest(a,b.buffer)["catch"](function(a){if(!c.isDestroying_){c.activeSessions_["delete"](d);if(a.errorCode&&a.errorCode.systemCode){var b=a.errorCode.systemCode;0>b&&(b+=Math.pow(2,32));b="0x"+b.toString(16)}c.onError_(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,
272
+ shaka.util.Error.Code.FAILED_TO_GENERATE_LICENSE_REQUEST,a.message,a,b))}})};shaka.media.DrmEngine.prototype.onSessionMessage_=function(a){this.delayLicenseRequest_()?this.mediaKeyMessageEvents_.push(a):this.sendLicenseRequest_(a)};shaka.media.DrmEngine.prototype.delayLicenseRequest_=function(){return this.config_.delayLicenseRequestUntilPlayed&&this.video_.paused&&!this.initialRequestsSent_};
270
273
  shaka.media.DrmEngine.prototype.sendLicenseRequest_=function(a){var b=a.target;shaka.log.v2("Sending license request for session",b.sessionId);var c=this.activeSessions_.get(b),d=this.currentDrmInfo_.licenseServerUri,e=this.config_.advanced[this.currentDrmInfo_.keySystem];"individualization-request"==a.messageType&&e&&e.individualizationServer&&(d=e.individualizationServer);e=shaka.net.NetworkingEngine.RequestType.LICENSE;d=shaka.net.NetworkingEngine.makeRequest([d],this.config_.retryParameters);
271
- d.body=a.message;d.method="POST";d.licenseRequestType=a.messageType;"com.microsoft.playready"!=this.currentDrmInfo_.keySystem&&"com.chromecast.playready"!=this.currentDrmInfo_.keySystem||this.unpackPlayReadyRequest_(d);this.currentDrmInfo_.keySystem.startsWith("com.apple.fps")&&this.formatFairPlayRequest_(d);this.playerInterface_.netEngine.request(e,d).promise.then(function(a){if(this.isDestroying_)return Promise.reject();this.currentDrmInfo_.keySystem.startsWith("com.apple.fps")&&this.parseFairPlayResponse_(a);
272
- return b.update(a.data).then(function(){var a=this,b=new shaka.util.FakeEvent("drmsessionupdate");this.playerInterface_.onEvent(b);c&&(c.updatePromise&&c.updatePromise.resolve(),(new shaka.util.Timer(function(){c.loaded=!0;a.areAllSessionsLoaded_()&&a.allSessionsLoaded_.resolve()})).tickAfter(shaka.media.DrmEngine.SESSION_LOAD_TIMEOUT_))}.bind(this))}.bind(this),function(a){this.isDestroying_||(goog.asserts.assert(a instanceof shaka.util.Error,"Wrong NetworkingEngine error type!"),a=new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
273
- shaka.util.Error.Category.DRM,shaka.util.Error.Code.LICENSE_REQUEST_FAILED,a),this.onError_(a),c&&c.updatePromise&&c.updatePromise.reject(a))}.bind(this))["catch"](function(a){this.isDestroying_||(a=new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.LICENSE_RESPONSE_REJECTED,a.message),this.onError_(a),c&&c.updatePromise&&c.updatePromise.reject(a))}.bind(this))};
274
+ d.body=a.message;d.method="POST";d.licenseRequestType=a.messageType;d.sessionId=b.sessionId;"com.microsoft.playready"!=this.currentDrmInfo_.keySystem&&"com.chromecast.playready"!=this.currentDrmInfo_.keySystem||this.unpackPlayReadyRequest_(d);this.currentDrmInfo_.keySystem.startsWith("com.apple.fps")&&this.config_.fairPlayTransform&&this.formatFairPlayRequest_(d);this.playerInterface_.netEngine.request(e,d).promise.then(function(a){if(this.isDestroying_)return Promise.reject();this.currentDrmInfo_.keySystem.startsWith("com.apple.fps")&&
275
+ this.config_.fairPlayTransform&&this.parseFairPlayResponse_(a);return b.update(a.data).then(function(){var a=this,b=new shaka.util.FakeEvent("drmsessionupdate");this.playerInterface_.onEvent(b);c&&(c.updatePromise&&c.updatePromise.resolve(),(new shaka.util.Timer(function(){c.loaded=!0;a.areAllSessionsLoaded_()&&a.allSessionsLoaded_.resolve()})).tickAfter(shaka.media.DrmEngine.SESSION_LOAD_TIMEOUT_))}.bind(this))}.bind(this),function(a){this.isDestroying_||(goog.asserts.assert(a instanceof shaka.util.Error,
276
+ "Wrong NetworkingEngine error type!"),a=new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.LICENSE_REQUEST_FAILED,a),this.onError_(a),c&&c.updatePromise&&c.updatePromise.reject(a))}.bind(this))["catch"](function(a){this.isDestroying_||(a=new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.LICENSE_RESPONSE_REJECTED,a.message),this.onError_(a),c&&c.updatePromise&&c.updatePromise.reject(a))}.bind(this))};
274
277
  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=(new DOMParser).parseFromString(b,"application/xml");for(var c=b.getElementsByTagName("HttpHeader"),d=0;d<c.length;++d){var e=c[d].querySelector("name"),f=c[d].querySelector("value");goog.asserts.assert(e&&f,"Malformed PlayReady headers!");a.headers[e.textContent]=f.textContent}b=b.querySelector("Challenge");
275
278
  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).buffer}else shaka.log.debug("PlayReady request is already unwrapped."),a.headers["Content-Type"]="text/xml; charset=utf-8"};
276
279
  shaka.media.DrmEngine.prototype.formatFairPlayRequest_=function(a){var b=new Uint8Array(a.body);b=shaka.util.Uint8ArrayUtils.toBase64(b);a.headers["Content-Type"]="application/x-www-form-urlencoded";a.body=shaka.util.StringUtils.toUTF8("spc="+b)};shaka.media.DrmEngine.prototype.parseFairPlayResponse_=function(a){try{var b=shaka.util.StringUtils.fromUTF8(a.data)}catch(c){return}b=b.trim();"<ckc>"===b.substr(0,5)&&"</ckc>"===b.substr(-6)&&(b=b.slice(5,-6));try{b=JSON.parse(b).ckc}catch(c){}a.data=shaka.util.Uint8ArrayUtils.fromBase64(b).buffer};
@@ -345,10 +348,11 @@ shaka.media.MediaSourceEngine.prototype.setSelectedClosedCaptionId=function(a){v
345
348
  shaka.media.MediaSourceEngine.prototype.remove=function(a,b,c){goog.asserts.assert(c<Number.MAX_VALUE,"remove() with MAX_VALUE or Infinity is not IE-compatible!");return a==shaka.util.ManifestParserUtils.ContentType.TEXT?this.textEngine_.remove(b,c):this.enqueueOperation_(a,this.remove_.bind(this,a,b,c))};
346
349
  shaka.media.MediaSourceEngine.prototype.clear=function(a){if(a==shaka.util.ManifestParserUtils.ContentType.TEXT){if(!this.textEngine_)return Promise.resolve();this.captionParser_.reset();return this.textEngine_.remove(0,Infinity)}return this.enqueueOperation_(a,this.remove_.bind(this,a,0,this.mediaSource_.duration))};shaka.media.MediaSourceEngine.prototype.flush=function(a){return a==shaka.util.ManifestParserUtils.ContentType.TEXT?Promise.resolve():this.enqueueOperation_(a,this.flush_.bind(this,a))};
347
350
  shaka.media.MediaSourceEngine.prototype.setStreamProperties=function(a,b,c,d){return a==shaka.util.ManifestParserUtils.ContentType.TEXT?(this.textEngine_.setTimestampOffset(b),this.textEngine_.setAppendWindow(c,d),Promise.resolve()):Promise.all([this.enqueueOperation_(a,this.abort_.bind(this,a)),this.enqueueOperation_(a,this.setTimestampOffset_.bind(this,a,b)),this.enqueueOperation_(a,this.setAppendWindow_.bind(this,a,c,d))])};
348
- shaka.media.MediaSourceEngine.prototype.endOfStream=function(a){return this.enqueueBlockingOperation_(function(){a?this.mediaSource_.endOfStream(a):this.mediaSource_.endOfStream()}.bind(this))};shaka.media.MediaSourceEngine.prototype.setDuration=function(a){goog.asserts.assert(isNaN(this.mediaSource_.duration)||this.mediaSource_.duration<=a,"duration cannot decrease: "+this.mediaSource_.duration+" -> "+a);return this.enqueueBlockingOperation_(function(){this.mediaSource_.duration=a}.bind(this))};
349
- shaka.media.MediaSourceEngine.prototype.getDuration=function(){return this.mediaSource_.duration};shaka.media.MediaSourceEngine.prototype.append_=function(a,b){this.sourceBuffers_[a].appendBuffer(b)};shaka.media.MediaSourceEngine.prototype.remove_=function(a,b,c){if(c<=b)this.onUpdateEnd_(a);else this.sourceBuffers_[a].remove(b,c)};
350
- shaka.media.MediaSourceEngine.prototype.abort_=function(a){var b=this.sourceBuffers_[a].appendWindowStart,c=this.sourceBuffers_[a].appendWindowEnd;this.sourceBuffers_[a].abort();this.sourceBuffers_[a].appendWindowStart=b;this.sourceBuffers_[a].appendWindowEnd=c;this.onUpdateEnd_(a)};shaka.media.MediaSourceEngine.prototype.flush_=function(a){goog.asserts.assert(0==this.video_.buffered.length,"MediaSourceEngine.flush_ should only be used after clearing all data!");this.video_.currentTime-=.001;this.onUpdateEnd_(a)};
351
- shaka.media.MediaSourceEngine.prototype.setTimestampOffset_=function(a,b){0>b&&(b+=.001);this.sourceBuffers_[a].timestampOffset=b;this.onUpdateEnd_(a)};shaka.media.MediaSourceEngine.prototype.setAppendWindow_=function(a,b,c){this.sourceBuffers_[a].appendWindowStart=0;this.sourceBuffers_[a].appendWindowEnd=c;this.sourceBuffers_[a].appendWindowStart=b;this.onUpdateEnd_(a)};
351
+ shaka.media.MediaSourceEngine.prototype.endOfStream=function(a){return this.enqueueBlockingOperation_(function(){this.ended()||(a?this.mediaSource_.endOfStream(a):this.mediaSource_.endOfStream())}.bind(this))};
352
+ shaka.media.MediaSourceEngine.prototype.setDuration=function(a){goog.asserts.assert(isNaN(this.mediaSource_.duration)||this.mediaSource_.duration<=a,"duration cannot decrease: "+this.mediaSource_.duration+" -> "+a);return this.enqueueBlockingOperation_(function(){this.mediaSource_.duration=a}.bind(this))};shaka.media.MediaSourceEngine.prototype.getDuration=function(){return this.mediaSource_.duration};shaka.media.MediaSourceEngine.prototype.append_=function(a,b){this.sourceBuffers_[a].appendBuffer(b)};
353
+ shaka.media.MediaSourceEngine.prototype.remove_=function(a,b,c){if(c<=b)this.onUpdateEnd_(a);else this.sourceBuffers_[a].remove(b,c)};shaka.media.MediaSourceEngine.prototype.abort_=function(a){var b=this.sourceBuffers_[a].appendWindowStart,c=this.sourceBuffers_[a].appendWindowEnd;this.sourceBuffers_[a].abort();this.sourceBuffers_[a].appendWindowStart=b;this.sourceBuffers_[a].appendWindowEnd=c;this.onUpdateEnd_(a)};
354
+ shaka.media.MediaSourceEngine.prototype.flush_=function(a){goog.asserts.assert(0==this.video_.buffered.length,"MediaSourceEngine.flush_ should only be used after clearing all data!");this.video_.currentTime-=.001;this.onUpdateEnd_(a)};shaka.media.MediaSourceEngine.prototype.setTimestampOffset_=function(a,b){0>b&&(b+=.001);this.sourceBuffers_[a].timestampOffset=b;this.onUpdateEnd_(a)};
355
+ shaka.media.MediaSourceEngine.prototype.setAppendWindow_=function(a,b,c){this.sourceBuffers_[a].appendWindowStart=0;this.sourceBuffers_[a].appendWindowEnd=c;this.sourceBuffers_[a].appendWindowStart=b;this.onUpdateEnd_(a)};
352
356
  shaka.media.MediaSourceEngine.prototype.onError_=function(a,b){var c=this.queues_[a][0];goog.asserts.assert(c,"Spurious error event!");goog.asserts.assert(!this.sourceBuffers_[a].updating,"SourceBuffer should not be updating on error!");c.p.reject(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.MEDIA_SOURCE_OPERATION_FAILED,this.video_.error?this.video_.error.code:0))};
353
357
  shaka.media.MediaSourceEngine.prototype.onUpdateEnd_=function(a){var b=this.queues_[a][0];goog.asserts.assert(b,"Spurious updateend event!");b&&(goog.asserts.assert(!this.sourceBuffers_[a].updating,"SourceBuffer should not be updating on updateend!"),b.p.resolve(),this.popFromQueue_(a))};
354
358
  shaka.media.MediaSourceEngine.prototype.enqueueOperation_=function(a,b){if(this.destroyed_)return Promise.reject();var c={start:b,p:new shaka.util.PublicPromise};this.queues_[a].push(c);if(1==this.queues_[a].length)try{c.start()}catch(d){"QuotaExceededError"==d.name?c.p.reject(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.QUOTA_EXCEEDED_ERROR,a)):c.p.reject(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,
@@ -459,7 +463,27 @@ this.sendMediaStatus_(0));break;case "STOP":this.player_.unload().then(function(
459
463
  this.startUpdatingUpdateNumber_=!1;a=b.media;c=b.currentTime;d=this.contentIdCallback_(a.contentId);e=b.autoplay||!0;this.appDataCallback_(a.customData);e&&(this.video_.autoplay=!0);this.player_.load(d,c).then(function(){this.player_&&this.sendMediaInfoMessage_()}.bind(this))["catch"](function(a){var c="LOAD_FAILED";a.category==shaka.util.Error.Category.PLAYER&&a.code==shaka.util.Error.Code.LOAD_INTERRUPTED&&(c="LOAD_CANCELLED");this.sendMessage_({requestId:Number(b.requestId),type:c},this.genericBus_)}.bind(this));
460
464
  break;default:shaka.log.warning("Unrecognized message type from the generic Chromecast controller!",b.type),this.sendMessage_({requestId:Number(b.requestId),type:"INVALID_REQUEST",reason:"INVALID_COMMAND"},this.genericBus_)}};shaka.cast.CastReceiver.prototype.sendAsyncComplete_=function(a,b,c){this.player_&&this.sendMessage_({type:"asyncComplete",id:b,error:c},this.shakaBus_,a)};
461
465
  shaka.cast.CastReceiver.prototype.sendMessage_=function(a,b,c){this.isConnected_&&(a=shaka.cast.CastUtils.serialize(a),c?b.getCastChannel(c).send(a):b.broadcast(a))};shaka.cast.CastReceiver.prototype.getPlayState_=function(){var a=shaka.cast.CastReceiver.PLAY_STATE;return this.isIdle_?a.IDLE:this.player_.isBuffering()?a.BUFFERING:this.video_.paused?a.PAUSED:a.PLAYING};
462
- shaka.cast.CastReceiver.prototype.sendMediaStatus_=function(a,b){var c={mediaSessionId:0,playbackRate:this.video_.playbackRate,playerState:this.getPlayState_(),currentTime:this.video_.currentTime,supportedMediaCommands:15,volume:{level:this.video_.volume,muted:this.video_.muted}};b&&(c.media=b);this.sendMessage_({requestId:a,type:"MEDIA_STATUS",status:[c]},this.genericBus_)};shaka.cast.CastReceiver.PLAY_STATE={IDLE:"IDLE",PLAYING:"PLAYING",BUFFERING:"BUFFERING",PAUSED:"PAUSED"};shaka.util.XmlUtils={};shaka.util.XmlUtils.findChild=function(a,b){var c=shaka.util.XmlUtils.findChildren(a,b);return 1!=c.length?null:c[0]};shaka.util.XmlUtils.findChildNS=function(a,b,c){a=shaka.util.XmlUtils.findChildrenNS(a,b,c);return 1!=a.length?null:a[0]};shaka.util.XmlUtils.findChildren=function(a,b){return Array.prototype.filter.call(a.childNodes,function(a){return a instanceof Element&&a.tagName==b})};
466
+ shaka.cast.CastReceiver.prototype.sendMediaStatus_=function(a,b){var c={mediaSessionId:0,playbackRate:this.video_.playbackRate,playerState:this.getPlayState_(),currentTime:this.video_.currentTime,supportedMediaCommands:15,volume:{level:this.video_.volume,muted:this.video_.muted}};b&&(c.media=b);this.sendMessage_({requestId:a,type:"MEDIA_STATUS",status:[c]},this.genericBus_)};shaka.cast.CastReceiver.PLAY_STATE={IDLE:"IDLE",PLAYING:"PLAYING",BUFFERING:"BUFFERING",PAUSED:"PAUSED"};shaka.util.DataViewReader=function(a,b){this.dataView_=a;this.littleEndian_=b==shaka.util.DataViewReader.Endianness.LITTLE_ENDIAN;this.position_=0};goog.exportSymbol("shaka.util.DataViewReader",shaka.util.DataViewReader);shaka.util.DataViewReader.Endianness={BIG_ENDIAN:0,LITTLE_ENDIAN:1};goog.exportProperty(shaka.util.DataViewReader,"Endianness",shaka.util.DataViewReader.Endianness);shaka.util.DataViewReader.prototype.hasMoreData=function(){return this.position_<this.dataView_.byteLength};
467
+ goog.exportProperty(shaka.util.DataViewReader.prototype,"hasMoreData",shaka.util.DataViewReader.prototype.hasMoreData);shaka.util.DataViewReader.prototype.getPosition=function(){return this.position_};goog.exportProperty(shaka.util.DataViewReader.prototype,"getPosition",shaka.util.DataViewReader.prototype.getPosition);shaka.util.DataViewReader.prototype.getLength=function(){return this.dataView_.byteLength};goog.exportProperty(shaka.util.DataViewReader.prototype,"getLength",shaka.util.DataViewReader.prototype.getLength);
468
+ shaka.util.DataViewReader.prototype.readUint8=function(){try{var a=this.dataView_.getUint8(this.position_);this.position_+=1;return a}catch(b){this.throwOutOfBounds_()}};goog.exportProperty(shaka.util.DataViewReader.prototype,"readUint8",shaka.util.DataViewReader.prototype.readUint8);shaka.util.DataViewReader.prototype.readUint16=function(){try{var a=this.dataView_.getUint16(this.position_,this.littleEndian_);this.position_+=2;return a}catch(b){this.throwOutOfBounds_()}};
469
+ goog.exportProperty(shaka.util.DataViewReader.prototype,"readUint16",shaka.util.DataViewReader.prototype.readUint16);shaka.util.DataViewReader.prototype.readUint32=function(){try{var a=this.dataView_.getUint32(this.position_,this.littleEndian_);this.position_+=4;return a}catch(b){this.throwOutOfBounds_()}};goog.exportProperty(shaka.util.DataViewReader.prototype,"readUint32",shaka.util.DataViewReader.prototype.readUint32);
470
+ shaka.util.DataViewReader.prototype.readInt32=function(){try{var a=this.dataView_.getInt32(this.position_,this.littleEndian_);this.position_+=4;return a}catch(b){this.throwOutOfBounds_()}};goog.exportProperty(shaka.util.DataViewReader.prototype,"readInt32",shaka.util.DataViewReader.prototype.readInt32);
471
+ shaka.util.DataViewReader.prototype.readUint64=function(){try{if(this.littleEndian_){var a=this.dataView_.getUint32(this.position_,!0);var b=this.dataView_.getUint32(this.position_+4,!0)}else b=this.dataView_.getUint32(this.position_,!1),a=this.dataView_.getUint32(this.position_+4,!1)}catch(c){this.throwOutOfBounds_()}if(2097151<b)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.JS_INTEGER_OVERFLOW);this.position_+=8;return b*Math.pow(2,
472
+ 32)+a};goog.exportProperty(shaka.util.DataViewReader.prototype,"readUint64",shaka.util.DataViewReader.prototype.readUint64);shaka.util.DataViewReader.prototype.readBytes=function(a){goog.asserts.assert(0<=a,"Bad call to DataViewReader.readBytes");this.position_+a>this.dataView_.byteLength&&this.throwOutOfBounds_();var b=new Uint8Array(this.dataView_.buffer,this.dataView_.byteOffset+this.position_,a);this.position_+=a;return new Uint8Array(b)};
473
+ goog.exportProperty(shaka.util.DataViewReader.prototype,"readBytes",shaka.util.DataViewReader.prototype.readBytes);shaka.util.DataViewReader.prototype.skip=function(a){goog.asserts.assert(0<=a,"Bad call to DataViewReader.skip");this.position_+a>this.dataView_.byteLength&&this.throwOutOfBounds_();this.position_+=a};goog.exportProperty(shaka.util.DataViewReader.prototype,"skip",shaka.util.DataViewReader.prototype.skip);
474
+ shaka.util.DataViewReader.prototype.rewind=function(a){goog.asserts.assert(0<=a,"Bad call to DataViewReader.rewind");this.position_<a&&this.throwOutOfBounds_();this.position_-=a};goog.exportProperty(shaka.util.DataViewReader.prototype,"rewind",shaka.util.DataViewReader.prototype.rewind);shaka.util.DataViewReader.prototype.seek=function(a){goog.asserts.assert(0<=a,"Bad call to DataViewReader.seek");(0>a||a>this.dataView_.byteLength)&&this.throwOutOfBounds_();this.position_=a};
475
+ goog.exportProperty(shaka.util.DataViewReader.prototype,"seek",shaka.util.DataViewReader.prototype.seek);shaka.util.DataViewReader.prototype.readTerminatedString=function(){for(var a=this.position_;this.hasMoreData()&&0!=this.dataView_.getUint8(this.position_);)this.position_+=1;a=new Uint8Array(this.dataView_.buffer,this.dataView_.byteOffset+a,this.position_-a);this.position_+=1;return shaka.util.StringUtils.fromUTF8(a)};
476
+ goog.exportProperty(shaka.util.DataViewReader.prototype,"readTerminatedString",shaka.util.DataViewReader.prototype.readTerminatedString);shaka.util.DataViewReader.prototype.throwOutOfBounds_=function(){throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.BUFFER_READ_OUT_OF_BOUNDS);};shaka.util.Mp4Parser=function(){this.headers_=[];this.boxDefinitions_=[];this.done_=!1};goog.exportSymbol("shaka.util.Mp4Parser",shaka.util.Mp4Parser);shaka.util.Mp4Parser.BoxType_={BASIC_BOX:0,FULL_BOX:1};shaka.util.Mp4Parser.prototype.box=function(a,b){var c=shaka.util.Mp4Parser.typeFromString_(a);this.headers_[c]=shaka.util.Mp4Parser.BoxType_.BASIC_BOX;this.boxDefinitions_[c]=b;return this};goog.exportProperty(shaka.util.Mp4Parser.prototype,"box",shaka.util.Mp4Parser.prototype.box);
477
+ shaka.util.Mp4Parser.prototype.fullBox=function(a,b){var c=shaka.util.Mp4Parser.typeFromString_(a);this.headers_[c]=shaka.util.Mp4Parser.BoxType_.FULL_BOX;this.boxDefinitions_[c]=b;return this};goog.exportProperty(shaka.util.Mp4Parser.prototype,"fullBox",shaka.util.Mp4Parser.prototype.fullBox);shaka.util.Mp4Parser.prototype.stop=function(){this.done_=!0};goog.exportProperty(shaka.util.Mp4Parser.prototype,"stop",shaka.util.Mp4Parser.prototype.stop);
478
+ shaka.util.Mp4Parser.prototype.parse=function(a,b){var c=new Uint8Array(a);c=new shaka.util.DataViewReader(new DataView(c.buffer,c.byteOffset,c.byteLength),shaka.util.DataViewReader.Endianness.BIG_ENDIAN);for(this.done_=!1;c.hasMoreData()&&!this.done_;)this.parseNext(0,c,b)};goog.exportProperty(shaka.util.Mp4Parser.prototype,"parse",shaka.util.Mp4Parser.prototype.parse);
479
+ shaka.util.Mp4Parser.prototype.parseNext=function(a,b,c){var d=b.getPosition(),e=b.readUint32(),f=b.readUint32(),g=shaka.util.Mp4Parser.typeToString(f);shaka.log.v2("Parsing MP4 box",g);switch(e){case 0:e=b.getLength()-d;break;case 1:e=b.readUint64()}if(g=this.boxDefinitions_[f]){var h=null,k=null;this.headers_[f]==shaka.util.Mp4Parser.BoxType_.FULL_BOX&&(k=b.readUint32(),h=k>>>24,k&=16777215);f=d+e;c&&f>b.getLength()&&(f=b.getLength());f-=b.getPosition();b=0<f?b.readBytes(f):new Uint8Array(0);b=
480
+ new shaka.util.DataViewReader(new DataView(b.buffer,b.byteOffset,b.byteLength),shaka.util.DataViewReader.Endianness.BIG_ENDIAN);g({parser:this,partialOkay:c||!1,version:h,flags:k,reader:b,size:e,start:d+a})}else a=Math.min(d+e-b.getPosition(),b.getLength()-b.getPosition()),b.skip(a)};goog.exportProperty(shaka.util.Mp4Parser.prototype,"parseNext",shaka.util.Mp4Parser.prototype.parseNext);
481
+ shaka.util.Mp4Parser.children=function(a){for(;a.reader.hasMoreData()&&!a.parser.done_;)a.parser.parseNext(a.start,a.reader,a.partialOkay)};goog.exportProperty(shaka.util.Mp4Parser,"children",shaka.util.Mp4Parser.children);shaka.util.Mp4Parser.sampleDescription=function(a){for(var b=a.reader.readUint32();0<b&&!a.parser.done_;--b)a.parser.parseNext(a.start,a.reader,a.partialOkay)};goog.exportProperty(shaka.util.Mp4Parser,"sampleDescription",shaka.util.Mp4Parser.sampleDescription);
482
+ shaka.util.Mp4Parser.allData=function(a){return function(b){var c=b.reader.getLength()-b.reader.getPosition();a(b.reader.readBytes(c))}};goog.exportProperty(shaka.util.Mp4Parser,"allData",shaka.util.Mp4Parser.allData);shaka.util.Mp4Parser.typeFromString_=function(a){goog.asserts.assert(4==a.length,"Mp4 box names must be 4 characters long");for(var b=0,c=0;c<a.length;c++)b=b<<8|a.charCodeAt(c);return b};
483
+ shaka.util.Mp4Parser.typeToString=function(a){return String.fromCharCode(a>>24&255,a>>16&255,a>>8&255,a&255)};goog.exportProperty(shaka.util.Mp4Parser,"typeToString",shaka.util.Mp4Parser.typeToString);shaka.util.Pssh=function(a){this.systemIds=[];this.cencKeyIds=[];this.dataBoundaries=[];(new shaka.util.Mp4Parser).fullBox("pssh",this.parseBox_.bind(this)).parse(a.buffer);0==this.dataBoundaries.length&&shaka.log.warning("No pssh box found!")};
484
+ shaka.util.Pssh.prototype.parseBox_=function(a){goog.asserts.assert(null!=a.version,"PSSH boxes are full boxes and must have a valid version");goog.asserts.assert(null!=a.flags,"PSSH boxes are full boxes and must have a valid flag");if(1<a.version)shaka.log.warning("Unrecognized PSSH version found!");else{var b=shaka.util.Uint8ArrayUtils.toHex(a.reader.readBytes(16)),c=[];if(0<a.version)for(var d=a.reader.readUint32(),e=0;e<d;++e){var f=shaka.util.Uint8ArrayUtils.toHex(a.reader.readBytes(16));c.push(f)}d=
485
+ a.reader.readUint32();a.reader.skip(d);this.cencKeyIds.push.apply(this.cencKeyIds,c);this.systemIds.push(b);this.dataBoundaries.push({start:a.start,end:a.start+a.size-1});a.reader.getPosition()!=a.reader.getLength()&&shaka.log.warning("Mismatch between box size and data size!")}};
486
+ shaka.util.Pssh.createPssh=function(a,b){var c=a.length,d=12+b.length+4+c,e=new ArrayBuffer(d),f=new Uint8Array(e);e=new DataView(e);var g=0;e.setUint32(g,d);g+=4;e.setUint32(g,1886614376);g+=4;e.setUint32(g,0);g+=4;f.set(b,g);g+=b.length;e.setUint32(g,c);g+=4;f.set(a,g);goog.asserts.assert(g+c===d,"MS PRO invalid length.");return f};shaka.util.XmlUtils={};shaka.util.XmlUtils.findChild=function(a,b){var c=shaka.util.XmlUtils.findChildren(a,b);return 1!=c.length?null:c[0]};shaka.util.XmlUtils.findChildNS=function(a,b,c){a=shaka.util.XmlUtils.findChildrenNS(a,b,c);return 1!=a.length?null:a[0]};shaka.util.XmlUtils.findChildren=function(a,b){return Array.prototype.filter.call(a.childNodes,function(a){return a instanceof Element&&a.tagName==b})};
463
487
  shaka.util.XmlUtils.findChildrenNS=function(a,b,c){return Array.prototype.filter.call(a.childNodes,function(a){return a instanceof Element&&a.localName==c&&a.namespaceURI==b})};shaka.util.XmlUtils.getAttributeNS=function(a,b,c){return a.hasAttributeNS(b,c)?a.getAttributeNS(b,c):null};shaka.util.XmlUtils.getContents=function(a){return Array.prototype.every.call(a.childNodes,function(a){return a.nodeType==Node.TEXT_NODE||a.nodeType==Node.CDATA_SECTION_NODE})?a.textContent.trim():null};
464
488
  shaka.util.XmlUtils.parseAttr=function(a,b,c,d){d=void 0===d?null:d;var e=null;a=a.getAttribute(b);null!=a&&(e=c(a));return null==e?d:e};shaka.util.XmlUtils.parseDate=function(a){if(!a)return null;/^\d+-\d+-\d+T\d+:\d+:\d+(\.\d+)?$/.test(a)&&(a+="Z");a=Date.parse(a);return isNaN(a)?null:Math.floor(a/1E3)};
465
489
  shaka.util.XmlUtils.parseDuration=function(a){if(!a)return null;var b=/^P(?:([0-9]*)Y)?(?:([0-9]*)M)?(?:([0-9]*)D)?(?:T(?:([0-9]*)H)?(?:([0-9]*)M)?(?:([0-9.]*)S)?)?$/.exec(a);if(!b)return shaka.log.warning("Invalid duration string:",a),null;a=31536E3*Number(b[1]||null)+2592E3*Number(b[2]||null)+86400*Number(b[3]||null)+3600*Number(b[4]||null)+60*Number(b[5]||null)+Number(b[6]||null);return isFinite(a)?a:null};
@@ -475,8 +499,9 @@ shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_NO_COMMON_KEY_SYST
475
499
  shaka.dash.ContentProtection.parseMsProRecords_=function(a,b){for(var c=[],d=new DataView(a);b<a.byteLength-1;){var e=d.getUint16(b,!0);b+=2;var f=d.getUint16(b,!0);b+=2;goog.asserts.assert(0===(f&1),"expected byteLength to be an even number");var g=new Uint8Array(a,b,f);c.push({type:e,value:g});b+=f}return c};
476
500
  shaka.dash.ContentProtection.parseMsPro_=function(a){var b=0,c=(new DataView(a)).getUint32(b,!0);b+=4;return c!==a.byteLength?(shaka.log.warning("PlayReady Object with invalid length encountered."),[]):shaka.dash.ContentProtection.parseMsProRecords_(a,b+2)};shaka.dash.ContentProtection.getLaurl_=function(a){return(a=a.querySelector("DATA > LA_URL"))?a.textContent:""};
477
501
  shaka.dash.ContentProtection.getPlayReadyLicenseUrl=function(a){var b=shaka.util.XmlUtils.findChildNS(a.node,"urn:microsoft:playready","pro");if(!b)return"";a=shaka.dash.ContentProtection;var c=a.PLAYREADY_RECORD_TYPES;b=shaka.util.Uint8ArrayUtils.fromBase64(b.textContent);b=a.parseMsPro_(b.buffer).filter(function(a){return a.type===c.RIGHTS_MANAGEMENT})[0];if(!b)return"";b=shaka.util.StringUtils.fromUTF16(b.value,!0);return(b=shaka.util.XmlUtils.parseXmlString(b,"WRMHEADER"))?a.getLaurl_(b):""};
478
- shaka.dash.ContentProtection.convertElements_=function(a,b,c){var d=shaka.dash.ContentProtection,e=shaka.util.ManifestParserUtils,f=d.defaultKeySystems_;d=d.licenseUrlParsers_;var g=[];c=$jscomp.makeIterator(c);for(var h=c.next();!h.done;h=c.next()){h=h.value;var k=f.get(h.schemeUri);if(k){goog.asserts.assert(!h.init||h.init.length,"Init data must be null or non-empty.");var l=e.createDrmInfo(k,h.init||a);if(k=d.get(k))l.licenseServerUri=k(h);g.push(l)}else for(goog.asserts.assert(b,"ContentProtection callback is required"),
479
- h=b(h.node)||[],h=$jscomp.makeIterator(h),l=h.next();!l.done;l=h.next())g.push(l.value)}return g};shaka.dash.ContentProtection.licenseUrlParsers_=(new Map).set("com.widevine.alpha",shaka.dash.ContentProtection.getWidevineLicenseUrl).set("com.microsoft.playready",shaka.dash.ContentProtection.getPlayReadyLicenseUrl);
502
+ shaka.dash.ContentProtection.getInitDataFromPro_=function(a){var b=shaka.util.XmlUtils.findChildNS(a.node,"urn:microsoft:playready","pro");if(!b)return null;b=shaka.util.Uint8ArrayUtils.fromBase64(b.textContent);var c=new Uint8Array([154,4,240,121,152,64,66,134,171,146,230,91,224,136,95,149]);return[{initData:shaka.util.Pssh.createPssh(b,c),initDataType:"cenc",keyId:a.keyId}]};
503
+ shaka.dash.ContentProtection.convertElements_=function(a,b,c){var d=shaka.dash.ContentProtection,e=shaka.util.ManifestParserUtils,f=d.defaultKeySystems_,g=d.licenseUrlParsers_,h=[];c=$jscomp.makeIterator(c);for(var k=c.next();!k.done;k=c.next()){k=k.value;var l=f.get(k.schemeUri);if(l){goog.asserts.assert(!k.init||k.init.length,"Init data must be null or non-empty.");var m=d.getInitDataFromPro_(k);m=e.createDrmInfo(l,k.init||a||m);if(l=g.get(l))m.licenseServerUri=l(k);h.push(m)}else for(goog.asserts.assert(b,
504
+ "ContentProtection callback is required"),k=b(k.node)||[],k=$jscomp.makeIterator(k),l=k.next();!l.done;l=k.next())h.push(l.value)}return h};shaka.dash.ContentProtection.licenseUrlParsers_=(new Map).set("com.widevine.alpha",shaka.dash.ContentProtection.getWidevineLicenseUrl).set("com.microsoft.playready",shaka.dash.ContentProtection.getPlayReadyLicenseUrl);
480
505
  shaka.dash.ContentProtection.parseElements_=function(a){var b=[];a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next())(c=shaka.dash.ContentProtection.parseElement_(c.value))&&b.push(c);return b};
481
506
  shaka.dash.ContentProtection.parseElement_=function(a){var b=shaka.dash.ContentProtection.CencNamespaceUri_,c=a.getAttribute("schemeIdUri"),d=shaka.util.XmlUtils.getAttributeNS(a,b,"default_KID");b=shaka.util.XmlUtils.findChildrenNS(a,b,"pssh").map(shaka.util.XmlUtils.getContents);if(!c)return shaka.log.error("Missing required schemeIdUri attribute on","ContentProtection element",a),null;c=c.toLowerCase();if(d&&(d=d.replace(/-/g,"").toLowerCase(),d.includes(" ")))throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
482
507
  shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_MULTIPLE_KEY_IDS_NOT_SUPPORTED);var e=[];try{e=b.map(function(a){return{initDataType:"cenc",initData:shaka.util.Uint8ArrayUtils.fromBase64(a),keyId:null}})}catch(f){throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_PSSH_BAD_ENCODING);}return{node:a,schemeUri:c,keyId:d,init:0<e.length?e:null}};shaka.dash.MpdUtils={};shaka.dash.MpdUtils.XlinkNamespaceUri_="http://www.w3.org/1999/xlink";
@@ -499,24 +524,7 @@ goog.exportProperty(shaka.media.InitSegmentReference.prototype,"getStartByte",sh
499
524
  shaka.media.SegmentReference=function(a,b,c,d,e,f){goog.asserts.assert(b<c,"startTime must be less than endTime");goog.asserts.assert(e<f||null==f,"startByte must be < endByte");this.position=a;this.startTime=b;this.endTime=c;this.getUris=d;this.startByte=e;this.endByte=f};goog.exportSymbol("shaka.media.SegmentReference",shaka.media.SegmentReference);shaka.media.SegmentReference.prototype.getPosition=function(){return this.position};
500
525
  goog.exportProperty(shaka.media.SegmentReference.prototype,"getPosition",shaka.media.SegmentReference.prototype.getPosition);shaka.media.SegmentReference.prototype.getStartTime=function(){return this.startTime};goog.exportProperty(shaka.media.SegmentReference.prototype,"getStartTime",shaka.media.SegmentReference.prototype.getStartTime);shaka.media.SegmentReference.prototype.getEndTime=function(){return this.endTime};goog.exportProperty(shaka.media.SegmentReference.prototype,"getEndTime",shaka.media.SegmentReference.prototype.getEndTime);
501
526
  shaka.media.SegmentReference.prototype.createUris=function(){return this.getUris()};goog.exportProperty(shaka.media.SegmentReference.prototype,"createUris",shaka.media.SegmentReference.prototype.createUris);shaka.media.SegmentReference.prototype.getStartByte=function(){return this.startByte};goog.exportProperty(shaka.media.SegmentReference.prototype,"getStartByte",shaka.media.SegmentReference.prototype.getStartByte);shaka.media.SegmentReference.prototype.getEndByte=function(){return this.endByte};
502
- goog.exportProperty(shaka.media.SegmentReference.prototype,"getEndByte",shaka.media.SegmentReference.prototype.getEndByte);shaka.media.SegmentReference.prototype.getSize=function(){return this.endByte?this.endByte-this.startByte:null};shaka.util.DataViewReader=function(a,b){this.dataView_=a;this.littleEndian_=b==shaka.util.DataViewReader.Endianness.LITTLE_ENDIAN;this.position_=0};goog.exportSymbol("shaka.util.DataViewReader",shaka.util.DataViewReader);shaka.util.DataViewReader.Endianness={BIG_ENDIAN:0,LITTLE_ENDIAN:1};goog.exportProperty(shaka.util.DataViewReader,"Endianness",shaka.util.DataViewReader.Endianness);shaka.util.DataViewReader.prototype.hasMoreData=function(){return this.position_<this.dataView_.byteLength};
503
- goog.exportProperty(shaka.util.DataViewReader.prototype,"hasMoreData",shaka.util.DataViewReader.prototype.hasMoreData);shaka.util.DataViewReader.prototype.getPosition=function(){return this.position_};goog.exportProperty(shaka.util.DataViewReader.prototype,"getPosition",shaka.util.DataViewReader.prototype.getPosition);shaka.util.DataViewReader.prototype.getLength=function(){return this.dataView_.byteLength};goog.exportProperty(shaka.util.DataViewReader.prototype,"getLength",shaka.util.DataViewReader.prototype.getLength);
504
- shaka.util.DataViewReader.prototype.readUint8=function(){try{var a=this.dataView_.getUint8(this.position_);this.position_+=1;return a}catch(b){this.throwOutOfBounds_()}};goog.exportProperty(shaka.util.DataViewReader.prototype,"readUint8",shaka.util.DataViewReader.prototype.readUint8);shaka.util.DataViewReader.prototype.readUint16=function(){try{var a=this.dataView_.getUint16(this.position_,this.littleEndian_);this.position_+=2;return a}catch(b){this.throwOutOfBounds_()}};
505
- goog.exportProperty(shaka.util.DataViewReader.prototype,"readUint16",shaka.util.DataViewReader.prototype.readUint16);shaka.util.DataViewReader.prototype.readUint32=function(){try{var a=this.dataView_.getUint32(this.position_,this.littleEndian_);this.position_+=4;return a}catch(b){this.throwOutOfBounds_()}};goog.exportProperty(shaka.util.DataViewReader.prototype,"readUint32",shaka.util.DataViewReader.prototype.readUint32);
506
- shaka.util.DataViewReader.prototype.readInt32=function(){try{var a=this.dataView_.getInt32(this.position_,this.littleEndian_);this.position_+=4;return a}catch(b){this.throwOutOfBounds_()}};goog.exportProperty(shaka.util.DataViewReader.prototype,"readInt32",shaka.util.DataViewReader.prototype.readInt32);
507
- shaka.util.DataViewReader.prototype.readUint64=function(){try{if(this.littleEndian_){var a=this.dataView_.getUint32(this.position_,!0);var b=this.dataView_.getUint32(this.position_+4,!0)}else b=this.dataView_.getUint32(this.position_,!1),a=this.dataView_.getUint32(this.position_+4,!1)}catch(c){this.throwOutOfBounds_()}if(2097151<b)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.JS_INTEGER_OVERFLOW);this.position_+=8;return b*Math.pow(2,
508
- 32)+a};goog.exportProperty(shaka.util.DataViewReader.prototype,"readUint64",shaka.util.DataViewReader.prototype.readUint64);shaka.util.DataViewReader.prototype.readBytes=function(a){goog.asserts.assert(0<=a,"Bad call to DataViewReader.readBytes");this.position_+a>this.dataView_.byteLength&&this.throwOutOfBounds_();var b=new Uint8Array(this.dataView_.buffer,this.dataView_.byteOffset+this.position_,a);this.position_+=a;return new Uint8Array(b)};
509
- goog.exportProperty(shaka.util.DataViewReader.prototype,"readBytes",shaka.util.DataViewReader.prototype.readBytes);shaka.util.DataViewReader.prototype.skip=function(a){goog.asserts.assert(0<=a,"Bad call to DataViewReader.skip");this.position_+a>this.dataView_.byteLength&&this.throwOutOfBounds_();this.position_+=a};goog.exportProperty(shaka.util.DataViewReader.prototype,"skip",shaka.util.DataViewReader.prototype.skip);
510
- shaka.util.DataViewReader.prototype.rewind=function(a){goog.asserts.assert(0<=a,"Bad call to DataViewReader.rewind");this.position_<a&&this.throwOutOfBounds_();this.position_-=a};goog.exportProperty(shaka.util.DataViewReader.prototype,"rewind",shaka.util.DataViewReader.prototype.rewind);shaka.util.DataViewReader.prototype.seek=function(a){goog.asserts.assert(0<=a,"Bad call to DataViewReader.seek");(0>a||a>this.dataView_.byteLength)&&this.throwOutOfBounds_();this.position_=a};
511
- goog.exportProperty(shaka.util.DataViewReader.prototype,"seek",shaka.util.DataViewReader.prototype.seek);shaka.util.DataViewReader.prototype.readTerminatedString=function(){for(var a=this.position_;this.hasMoreData()&&0!=this.dataView_.getUint8(this.position_);)this.position_+=1;a=new Uint8Array(this.dataView_.buffer,this.dataView_.byteOffset+a,this.position_-a);this.position_+=1;return shaka.util.StringUtils.fromUTF8(a)};
512
- goog.exportProperty(shaka.util.DataViewReader.prototype,"readTerminatedString",shaka.util.DataViewReader.prototype.readTerminatedString);shaka.util.DataViewReader.prototype.throwOutOfBounds_=function(){throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.BUFFER_READ_OUT_OF_BOUNDS);};shaka.util.Mp4Parser=function(){this.headers_=[];this.boxDefinitions_=[];this.done_=!1};goog.exportSymbol("shaka.util.Mp4Parser",shaka.util.Mp4Parser);shaka.util.Mp4Parser.BoxType_={BASIC_BOX:0,FULL_BOX:1};shaka.util.Mp4Parser.prototype.box=function(a,b){var c=shaka.util.Mp4Parser.typeFromString_(a);this.headers_[c]=shaka.util.Mp4Parser.BoxType_.BASIC_BOX;this.boxDefinitions_[c]=b;return this};goog.exportProperty(shaka.util.Mp4Parser.prototype,"box",shaka.util.Mp4Parser.prototype.box);
513
- shaka.util.Mp4Parser.prototype.fullBox=function(a,b){var c=shaka.util.Mp4Parser.typeFromString_(a);this.headers_[c]=shaka.util.Mp4Parser.BoxType_.FULL_BOX;this.boxDefinitions_[c]=b;return this};goog.exportProperty(shaka.util.Mp4Parser.prototype,"fullBox",shaka.util.Mp4Parser.prototype.fullBox);shaka.util.Mp4Parser.prototype.stop=function(){this.done_=!0};goog.exportProperty(shaka.util.Mp4Parser.prototype,"stop",shaka.util.Mp4Parser.prototype.stop);
514
- shaka.util.Mp4Parser.prototype.parse=function(a,b){var c=new Uint8Array(a);c=new shaka.util.DataViewReader(new DataView(c.buffer,c.byteOffset,c.byteLength),shaka.util.DataViewReader.Endianness.BIG_ENDIAN);for(this.done_=!1;c.hasMoreData()&&!this.done_;)this.parseNext(0,c,b)};goog.exportProperty(shaka.util.Mp4Parser.prototype,"parse",shaka.util.Mp4Parser.prototype.parse);
515
- shaka.util.Mp4Parser.prototype.parseNext=function(a,b,c){var d=b.getPosition(),e=b.readUint32(),f=b.readUint32(),g=shaka.util.Mp4Parser.typeToString(f);shaka.log.v2("Parsing MP4 box",g);switch(e){case 0:e=b.getLength()-d;break;case 1:e=b.readUint64()}if(g=this.boxDefinitions_[f]){var h=null,k=null;this.headers_[f]==shaka.util.Mp4Parser.BoxType_.FULL_BOX&&(k=b.readUint32(),h=k>>>24,k&=16777215);f=d+e;c&&f>b.getLength()&&(f=b.getLength());f-=b.getPosition();b=0<f?b.readBytes(f):new Uint8Array(0);b=
516
- new shaka.util.DataViewReader(new DataView(b.buffer,b.byteOffset,b.byteLength),shaka.util.DataViewReader.Endianness.BIG_ENDIAN);g({parser:this,partialOkay:c||!1,version:h,flags:k,reader:b,size:e,start:d+a})}else a=Math.min(d+e-b.getPosition(),b.getLength()-b.getPosition()),b.skip(a)};goog.exportProperty(shaka.util.Mp4Parser.prototype,"parseNext",shaka.util.Mp4Parser.prototype.parseNext);
517
- shaka.util.Mp4Parser.children=function(a){for(;a.reader.hasMoreData()&&!a.parser.done_;)a.parser.parseNext(a.start,a.reader,a.partialOkay)};goog.exportProperty(shaka.util.Mp4Parser,"children",shaka.util.Mp4Parser.children);shaka.util.Mp4Parser.sampleDescription=function(a){for(var b=a.reader.readUint32();0<b&&!a.parser.done_;--b)a.parser.parseNext(a.start,a.reader,a.partialOkay)};goog.exportProperty(shaka.util.Mp4Parser,"sampleDescription",shaka.util.Mp4Parser.sampleDescription);
518
- shaka.util.Mp4Parser.allData=function(a){return function(b){var c=b.reader.getLength()-b.reader.getPosition();a(b.reader.readBytes(c))}};goog.exportProperty(shaka.util.Mp4Parser,"allData",shaka.util.Mp4Parser.allData);shaka.util.Mp4Parser.typeFromString_=function(a){goog.asserts.assert(4==a.length,"Mp4 box names must be 4 characters long");for(var b=0,c=0;c<a.length;c++)b=b<<8|a.charCodeAt(c);return b};
519
- shaka.util.Mp4Parser.typeToString=function(a){return String.fromCharCode(a>>24&255,a>>16&255,a>>8&255,a&255)};goog.exportProperty(shaka.util.Mp4Parser,"typeToString",shaka.util.Mp4Parser.typeToString);shaka.media.Mp4SegmentIndexParser=function(a,b,c,d){var e=shaka.media.Mp4SegmentIndexParser,f,g=(new shaka.util.Mp4Parser).fullBox("sidx",function(a){f=e.parseSIDX_(b,d,c,a)});a&&g.parse(a);if(f)return f;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);};
527
+ goog.exportProperty(shaka.media.SegmentReference.prototype,"getEndByte",shaka.media.SegmentReference.prototype.getEndByte);shaka.media.SegmentReference.prototype.getSize=function(){return this.endByte?this.endByte-this.startByte:null};shaka.media.Mp4SegmentIndexParser=function(a,b,c,d){var e=shaka.media.Mp4SegmentIndexParser,f,g=(new shaka.util.Mp4Parser).fullBox("sidx",function(a){f=e.parseSIDX_(b,d,c,a)});a&&g.parse(a);if(f)return f;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);};
520
528
  shaka.media.Mp4SegmentIndexParser.parseSIDX_=function(a,b,c,d){goog.asserts.assert(null!=d.version,"SIDX is a full box and should have a valid version.");var e=[];d.reader.skip(4);var f=d.reader.readUint32();if(0==f)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==d.version){var g=d.reader.readUint32();var h=d.reader.readUint32()}else g=d.reader.readUint64(),h=
521
529
  d.reader.readUint64();d.reader.skip(2);var k=d.reader.readUint16();a=a+d.size+h;for(h=0;h<k;h++){var l=d.reader.readUint32(),m=(l&2147483648)>>>31;l&=2147483647;var n=d.reader.readUint32();d.reader.skip(4);if(1==m)throw shaka.log.error("Heirarchical SIDXs are not supported."),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.MP4_SIDX_TYPE_NOT_SUPPORTED);e.push(new shaka.media.SegmentReference(e.length,g/f-b,(g+n)/f-b,function(){return c},
522
530
  a,a+l-1));g+=n;a+=l}d.parser.stop();return e};shaka.media.SegmentIndex=function(a){goog.DEBUG&&shaka.media.SegmentIndex.assertCorrectReferences_(a);this.references_=a};goog.exportSymbol("shaka.media.SegmentIndex",shaka.media.SegmentIndex);shaka.media.SegmentIndex.prototype.destroy=function(){this.references_=null;return Promise.resolve()};goog.exportProperty(shaka.media.SegmentIndex.prototype,"destroy",shaka.media.SegmentIndex.prototype.destroy);
@@ -615,10 +623,10 @@ shaka.dash.DashParser.prototype.update=function(){this.requestManifest_()["catch
615
623
  shaka.dash.DashParser.prototype.requestManifest_=function(){var a=this,b=shaka.net.NetworkingEngine.RequestType.MANIFEST,c=shaka.net.NetworkingEngine.makeRequest(this.manifestUris_,this.config_.retryParameters),d=this.playerInterface_.networkingEngine,e=Date.now();b=d.request(b,c);this.operationManager_.manage(b);return b.promise.then(function(b){if(a.playerInterface_)return b.uri&&!a.manifestUris_.includes(b.uri)&&a.manifestUris_.unshift(b.uri),a.parseManifest_(b.data,b.uri)}).then(function(){var b=
616
624
  (Date.now()-e)/1E3;a.averageUpdateDuration_.sample(1,b);return b})};
617
625
  shaka.dash.DashParser.prototype.parseManifest_=function(a,b){var c=this,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);d=e.processXlinks(f,this.config_.retryParameters,this.config_.dash.xlinkFailGracefully,b,this.playerInterface_.networkingEngine);this.operationManager_.manage(d);return d.promise.then(function(a){return c.processManifest_(a,b)})};
618
- shaka.dash.DashParser.prototype.processManifest_=function(a,b){var c=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function e(){var f,g,h,k,l,m,n,p,q,t,r,u,w,x,v,B,D,E,y,A,z,F,C,G;return $jscomp.generator.createGenerator(e,function(e){switch(e.nextAddress){case 1:f=shaka.util.Functional;g=shaka.util.XmlUtils;h=[b];k=g.findChildren(a,"Location").map(g.getContents).filter(f.isNotNull);0<k.length&&(l=shaka.util.ManifestParserUtils.resolveUris(h,k),h=c.manifestUris_=l);m=g.findChildren(a,"BaseURL").map(g.getContents);
619
- n=shaka.util.ManifestParserUtils.resolveUris(h,m);p=c.config_.dash.ignoreMinBufferTime;q=0;p||(q=g.parseAttr(a,"minBufferTime",g.parseDuration));c.updatePeriod_=g.parseAttr(a,"minimumUpdatePeriod",g.parseDuration,-1);t=g.parseAttr(a,"availabilityStartTime",g.parseDate);r=g.parseAttr(a,"timeShiftBufferDepth",g.parseDuration);u=g.parseAttr(a,"suggestedPresentationDelay",g.parseDuration);w=g.parseAttr(a,"maxSegmentDuration",g.parseDuration);x=a.getAttribute("type")||"static";c.manifest_?v=c.manifest_.presentationTimeline:
620
- (B=Math.max(c.config_.dash.defaultPresentationDelay,1.5*q),D=null!=u?u:B,v=new shaka.media.PresentationTimeline(t,D,c.config_.dash.autoCorrectDrift));E={dynamic:"static"!=x,presentationTimeline:v,period:null,periodInfo:null,adaptationSet:null,representation:null,bandwidth:0,indexRangeWarningGiven:!1};y=c.parsePeriods_(E,n,a);A=y.duration;z=y.periods;v.setStatic("static"==x);"static"!=x&&y.durationDerivedFromPeriods||v.setDuration(A||Infinity);(F=v.isLive())&&!isNaN(c.config_.availabilityWindowOverride)&&
621
- (r=c.config_.availabilityWindowOverride);null==r&&(r=Infinity);v.setSegmentAvailabilityDuration(r);v.notifyMaxSegmentDuration(w||1);goog.DEBUG&&v.assertIsValid();if(c.manifest_){e.jumpTo(0);break}c.manifest_={presentationTimeline:v,periods:z,offlineSessionIds:[],minBufferTime:q||0};if(!v.usingPresentationStartTime()){e.jumpTo(0);break}C=g.findChildren(a,"UTCTiming");return e.yield(c.parseUtcTiming_(n,C),4);case 4:G=e.yieldResult;if(!c.playerInterface_)return e["return"]();v.setClockOffset(G);e.jumpToEnd()}})})};
626
+ shaka.dash.DashParser.prototype.processManifest_=function(a,b){var c=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function e(){var f,g,h,k,l,m,n,p,q,t,r,u,v,x,w,z,D,E,y,B,A,F,C,G;return $jscomp.generator.createGenerator(e,function(e){switch(e.nextAddress){case 1:f=shaka.util.Functional;g=shaka.util.XmlUtils;h=[b];k=g.findChildren(a,"Location").map(g.getContents).filter(f.isNotNull);0<k.length&&(l=shaka.util.ManifestParserUtils.resolveUris(h,k),h=c.manifestUris_=l);m=g.findChildren(a,"BaseURL").map(g.getContents);
627
+ n=shaka.util.ManifestParserUtils.resolveUris(h,m);p=c.config_.dash.ignoreMinBufferTime;q=0;p||(q=g.parseAttr(a,"minBufferTime",g.parseDuration));c.updatePeriod_=g.parseAttr(a,"minimumUpdatePeriod",g.parseDuration,-1);t=g.parseAttr(a,"availabilityStartTime",g.parseDate);r=g.parseAttr(a,"timeShiftBufferDepth",g.parseDuration);u=g.parseAttr(a,"suggestedPresentationDelay",g.parseDuration);v=g.parseAttr(a,"maxSegmentDuration",g.parseDuration);x=a.getAttribute("type")||"static";c.manifest_?w=c.manifest_.presentationTimeline:
628
+ (z=Math.max(c.config_.dash.defaultPresentationDelay,1.5*q),D=null!=u?u:z,w=new shaka.media.PresentationTimeline(t,D,c.config_.dash.autoCorrectDrift));E={dynamic:"static"!=x,presentationTimeline:w,period:null,periodInfo:null,adaptationSet:null,representation:null,bandwidth:0,indexRangeWarningGiven:!1};y=c.parsePeriods_(E,n,a);B=y.duration;A=y.periods;w.setStatic("static"==x);"static"!=x&&y.durationDerivedFromPeriods||w.setDuration(B||Infinity);(F=w.isLive())&&!isNaN(c.config_.availabilityWindowOverride)&&
629
+ (r=c.config_.availabilityWindowOverride);null==r&&(r=Infinity);w.setSegmentAvailabilityDuration(r);w.notifyMaxSegmentDuration(v||1);goog.DEBUG&&w.assertIsValid();if(c.manifest_){e.jumpTo(0);break}c.manifest_={presentationTimeline:w,periods:A,offlineSessionIds:[],minBufferTime:q||0};if(!w.usingPresentationStartTime()){e.jumpTo(0);break}C=g.findChildren(a,"UTCTiming");return e.yield(c.parseUtcTiming_(n,C),4);case 4:G=e.yieldResult;if(!c.playerInterface_)return e["return"]();w.setClockOffset(G);e.jumpToEnd()}})})};
622
630
  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];g=d.parseAttr(k,"start",d.parseDuration,g);var l=d.parseAttr(k,"duration",d.parseDuration),m=null;if(h!=c.length-1){var n=d.parseAttr(c[h+1],"start",d.parseDuration);null!=n&&(m=n-g)}else null!=e&&(m=e-g);n=shaka.util.ManifestParserUtils.GAP_OVERLAP_TOLERANCE_SECONDS;m&&l&&Math.abs(m-
623
631
  l)>n&&shaka.log.warning("There is a gap/overlap between Periods",k);null==m&&(m=l);k=this.parsePeriod_(a,b,{start:g,duration:m,node:k,isLastPeriod:null==m||h==c.length-1});f.push(k);l=a.period.id;goog.asserts.assert(l,"Period IDs should not be null!");this.periodIds_.includes(l)||(this.periodIds_.push(l),this.manifest_&&(this.playerInterface_.filterNewPeriod(k),this.manifest_.periods.push(k)));if(null==m){h!=c.length-1&&shaka.log.warning("Skipping Period",h+1,"and any subsequent Periods:","Period",
624
632
  h+1,"does not have a valid start time.",f[h+1]);g=null;break}g+=m}null==this.manifest_&&this.playerInterface_.filterAllPeriods(f);return null!=e?(g!=e&&shaka.log.warning("@mediaPresentationDuration does not match the total duration of all","Periods."),{periods:f,duration:e,durationDerivedFromPeriods:!1}):{periods:f,duration:g,durationDerivedFromPeriods:!0}};
@@ -628,11 +636,12 @@ a.streams[0],c=a.trickModeFor;h.forEach(function(a){a.id==c&&a.streams.forEach(f
628
636
  a=[];for(d=0;d<f.length;d++)a.push.apply(a,f[d].streams);return{startTime:c.start,textStreams:a,variants:b}};shaka.dash.DashParser.prototype.getSetsOfType_=function(a,b){return a.filter(function(a){return a.contentType==b})};
629
637
  shaka.dash.DashParser.prototype.createVariants_=function(a,b,c){var d=shaka.util.ManifestParserUtils.ContentType;goog.asserts.assert(!a||a.contentType==d.AUDIO,"Audio parameter mismatch!");goog.asserts.assert(!b||b.contentType==d.VIDEO,"Video parameter mismatch!");if(a||b)if(a&&b){if(d=shaka.media.DrmEngine,d.areDrmCompatible(a.drmInfos,b.drmInfos))for(var e=d.getCommonDrmInfos(a.drmInfos,b.drmInfos),f=0;f<a.streams.length;f++)for(var g=0;g<b.streams.length;g++)d=(b.streams[g].bandwidth||0)+(a.streams[f].bandwidth||
630
638
  0),d={id:this.globalId_++,language:a.language,primary:a.main||b.main,audio:a.streams[f],video:b.streams[g],bandwidth:d,drmInfos:e,allowedByApplication:!0,allowedByKeySystem:!0},c.push(d)}else for(e=a||b,f=0;f<e.streams.length;f++)d=e.streams[f].bandwidth||0,d={id:this.globalId_++,language:e.language||"und",primary:e.main,audio:a?e.streams[f]:null,video:b?e.streams[f]:null,bandwidth:d,drmInfos:e.drmInfos,allowedByApplication:!0,allowedByKeySystem:!0},c.push(d)};
631
- shaka.dash.DashParser.prototype.parseAdaptationSet_=function(a,b){var c=shaka.util.XmlUtils,d=shaka.util.Functional,e=shaka.util.ManifestParserUtils,f=e.ContentType;a.adaptationSet=this.createFrame_(b,a.period,null);var g=!1,h=c.findChildren(b,"Role"),k=h.map(function(a){return a.getAttribute("value")}).filter(d.isNotNull),l=void 0;if(d=a.adaptationSet.contentType==e.ContentType.TEXT)l=e.TextStreamKind.SUBTITLE;for(e=0;e<h.length;e++){var m=h[e].getAttribute("schemeIdUri");if(null==m||"urn:mpeg:dash:role:2011"==
632
- m)switch(m=h[e].getAttribute("value"),m){case "main":g=!0;break;case "caption":case "subtitle":l=m}}var n=null,p=!1;c.findChildren(b,"EssentialProperty").forEach(function(a){"http://dashif.org/guidelines/trickmode"==a.getAttribute("schemeIdUri")?n=a.getAttribute("value"):p=!0});e=c.findChildren(b,"Accessibility");var q=shaka.util.LanguageUtils,t=new Map;h={};e=$jscomp.makeIterator(e);for(m=e.next();!m.done;h={channelId:h.channelId},m=e.next()){m=m.value;var r=m.getAttribute("schemeIdUri");if("urn:scte:dash:cc:cea-608:2015"==
633
- r||"urn:scte:dash:cc:cea-708:2015"==r)h.channelId=1,m=m.getAttribute("value"),null!=m?m.split(";").forEach(function(a){return function(b){if(b.includes("=")){b=b.split("=");var c=b[0].startsWith("CC")?b[0]:"CC"+b[0];b=b[1].split(",")[0].split(":").pop()}else c="CC"+a.channelId,a.channelId+=2;t.set(c,q.normalize(b))}}(h)):t.set("CC1","und")}if(p)return null;h=c.findChildren(b,"ContentProtection");var u=shaka.dash.ContentProtection.parseFromAdaptationSet(h,this.config_.dash.customScheme,this.config_.dash.ignoreDrmInfo);
634
- h=shaka.util.LanguageUtils.normalize(b.getAttribute("lang")||"und");e=b.getAttribute("label");c=c.findChildren(b,"Representation");k=c.map(this.parseRepresentation_.bind(this,a,u,l,h,e,g,k,t)).filter(function(a){return!!a});if(0==k.length){if(d)return null;throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_EMPTY_ADAPTATION_SET);}a.adaptationSet.contentType&&a.adaptationSet.contentType!=f.APPLICATION||(a.adaptationSet.contentType=
635
- shaka.dash.DashParser.guessContentType_(k[0].mimeType,k[0].codecs),k.forEach(function(b){b.type=a.adaptationSet.contentType}));k.forEach(function(a){u.drmInfos.forEach(function(b){a.keyId&&b.keyIds.push(a.keyId)})});f=c.map(function(a){return a.getAttribute("id")}).filter(shaka.util.Functional.isNotNull);return{id:a.adaptationSet.id||"__fake__"+this.globalId_++,contentType:a.adaptationSet.contentType,language:h,main:g,streams:k,drmInfos:u.drmInfos,trickModeFor:n,representationIds:f}};
639
+ shaka.dash.DashParser.prototype.parseAdaptationSet_=function(a,b){var c=shaka.util.XmlUtils,d=shaka.util.Functional,e=shaka.util.ManifestParserUtils,f=e.ContentType;a.adaptationSet=this.createFrame_(b,a.period,null);var g=!1,h=c.findChildren(b,"Role"),k=h.map(function(a){return a.getAttribute("value")}).filter(d.isNotNull),l=void 0;if(d=a.adaptationSet.contentType==e.ContentType.TEXT)l=e.TextStreamKind.SUBTITLE;for(var m=0;m<h.length;m++){var n=h[m].getAttribute("schemeIdUri");if(null==n||"urn:mpeg:dash:role:2011"==
640
+ n)switch(n=h[m].getAttribute("value"),n){case "main":g=!0;break;case "caption":case "subtitle":l=n}}var p=null,q=!1;c.findChildren(b,"EssentialProperty").forEach(function(a){"http://dashif.org/guidelines/trickmode"==a.getAttribute("schemeIdUri")?p=a.getAttribute("value"):q=!0});m=c.findChildren(b,"Accessibility");var t=shaka.util.LanguageUtils,r=new Map;h={};m=$jscomp.makeIterator(m);for(n=m.next();!n.done;h={channelId:h.channelId},n=m.next()){var u=n.value;n=u.getAttribute("schemeIdUri");u=u.getAttribute("value");
641
+ "urn:scte:dash:cc:cea-608:2015"==n||"urn:scte:dash:cc:cea-708:2015"==n?(h.channelId=1,null!=u?u.split(";").forEach(function(a){return function(b){if(b.includes("=")){b=b.split("=");var c=b[0].startsWith("CC")?b[0]:"CC"+b[0];b=b[1].split(",")[0].split(":").pop()}else c="CC"+a.channelId,a.channelId+=2;r.set(c,t.normalize(b))}}(h)):r.set("CC1","und")):"urn:mpeg:dash:role:2011"==n&&null!=u&&(k.push(u),"captions"==u&&(l=e.TextStreamKind.CLOSED_CAPTION))}if(q)return null;e=c.findChildren(b,"ContentProtection");
642
+ var v=shaka.dash.ContentProtection.parseFromAdaptationSet(e,this.config_.dash.customScheme,this.config_.dash.ignoreDrmInfo);e=shaka.util.LanguageUtils.normalize(b.getAttribute("lang")||"und");h=b.getAttribute("label");c=c.findChildren(b,"Representation");k=c.map(this.parseRepresentation_.bind(this,a,v,l,e,h,g,k,r)).filter(function(a){return!!a});if(0==k.length){if(d)return null;throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_EMPTY_ADAPTATION_SET);
643
+ }a.adaptationSet.contentType&&a.adaptationSet.contentType!=f.APPLICATION||(a.adaptationSet.contentType=shaka.dash.DashParser.guessContentType_(k[0].mimeType,k[0].codecs),k.forEach(function(b){b.type=a.adaptationSet.contentType}));k.forEach(function(a){v.drmInfos.forEach(function(b){a.keyId&&b.keyIds.push(a.keyId)})});f=c.map(function(a){return a.getAttribute("id")}).filter(shaka.util.Functional.isNotNull);return{id:a.adaptationSet.id||"__fake__"+this.globalId_++,contentType:a.adaptationSet.contentType,
644
+ language:e,main:g,streams:k,drmInfos:v.drmInfos,trickModeFor:p,representationIds:f}};
636
645
  shaka.dash.DashParser.prototype.parseRepresentation_=function(a,b,c,d,e,f,g,h,k){var l=shaka.util.XmlUtils,m=shaka.util.ManifestParserUtils.ContentType;a.representation=this.createFrame_(k,a.adaptationSet,null);if(!this.verifyRepresentation_(a.representation))return shaka.log.warning("Skipping Representation",a.representation),null;a.bandwidth=l.parseAttr(k,"bandwidth",l.parsePositiveInt)||0;var n=a.representation.contentType;m=n==m.TEXT||n==m.APPLICATION;try{var p=this.requestInitSegment_.bind(this);
637
646
  if(a.representation.segmentBase)var q=shaka.dash.SegmentBase.createStream(a,p);else if(a.representation.segmentList)q=shaka.dash.SegmentList.createStream(a,this.segmentIndexMap_);else if(a.representation.segmentTemplate)q=shaka.dash.SegmentTemplate.createStream(a,p,this.segmentIndexMap_,!!this.manifest_);else{goog.asserts.assert(m,"Must have Segment* with non-text streams.");var t=a.representation.baseUris,r=a.periodInfo.duration||0;q={createSegmentIndex:Promise.resolve.bind(Promise),findSegmentPosition:function(a){return 0<=
638
647
  a&&a<r?1:null},getSegmentReference:function(a){return 1!=a?null:new shaka.media.SegmentReference(1,0,r,function(){return t},0,null)},initSegmentReference:null,scaledPresentationTimeOffset:0}}}catch(u){if(m&&u.code==shaka.util.Error.Code.DASH_NO_SEGMENT_INFO)return null;throw u;}k=l.findChildren(k,"ContentProtection");k=shaka.dash.ContentProtection.parseFromRepresentation(k,this.config_.dash.customScheme,b,this.config_.dash.ignoreDrmInfo);return{id:this.globalId_++,originalId:a.representation.id,createSegmentIndex:q.createSegmentIndex,
@@ -680,18 +689,19 @@ shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_INVALID_PLAYLIST_HI
680
689
  d.jumpToEnd()}})})};shaka.hls.HlsParser.prototype.onExpirationUpdated=function(a,b){};
681
690
  shaka.hls.HlsParser.prototype.parseManifest_=function(a){var b=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function d(){var e,f,g,h,k,l,m,n,p,q,t,r,u;return $jscomp.generator.createGenerator(d,function(d){switch(d.nextAddress){case 1:goog.asserts.assert(b.masterPlaylistUri_,"Master playlist URI must be set before calling parseManifest_!");e=b.manifestTextParser_.parsePlaylist(a,b.masterPlaylistUri_);if(e.type!=shaka.hls.PlaylistType.MASTER)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
682
691
  shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_MASTER_PLAYLIST_NOT_PROVIDED);return d.yield(b.createPeriod_(e),2);case 2:f=d.yieldResult;if(!b.playerInterface_)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.PLAYER,shaka.util.Error.Code.OPERATION_ABORTED);if(b.aesEncrypted_&&0==f.variants.length)throw shaka.log.info("No stream is created, because we don't support AES-128","encryption yet"),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
683
- shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_AES_128_ENCRYPTION_NOT_SUPPORTED);b.playerInterface_.filterAllPeriods([f]);g=Infinity;k=h=0;l=Infinity;for(var w=$jscomp.makeIterator(b.uriToStreamInfosMap_.values()),v=w.next();!v.done;v=w.next())m=v.value,g=Math.min(g,m.minTimestamp),h=Math.max(h,m.minTimestamp),k=Math.max(k,m.maxTimestamp),"text"!=m.stream.type&&(l=Math.min(l,m.duration));goog.asserts.assert(null==b.presentationTimeline_,"Presentation timeline created early!");b.createPresentationTimeline_(k);
692
+ shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_AES_128_ENCRYPTION_NOT_SUPPORTED);b.playerInterface_.filterAllPeriods([f]);g=Infinity;k=h=0;l=Infinity;for(var v=$jscomp.makeIterator(b.uriToStreamInfosMap_.values()),w=v.next();!w.done;w=v.next())m=w.value,g=Math.min(g,m.minTimestamp),h=Math.max(h,m.minTimestamp),k=Math.max(k,m.maxTimestamp),"text"!=m.stream.type&&(l=Math.min(l,m.duration));goog.asserts.assert(null==b.presentationTimeline_,"Presentation timeline created early!");b.createPresentationTimeline_(k);
684
693
  goog.asserts.assert(b.presentationTimeline_,"Presentation timeline not created!");if(b.isLive_()){b.updatePlaylistDelay_=b.minTargetDuration_;n=shaka.hls.HlsParser.PresentationType_;b.presentationType_==n.LIVE&&(p=b.presentationTimeline_.getDelay(),isNaN(b.config_.availabilityWindowOverride)||(p=b.config_.availabilityWindowOverride),b.presentationTimeline_.setSegmentAvailabilityDuration(p));q=shaka.hls.HlsParser.TS_ROLLOVER_/shaka.hls.HlsParser.TS_TIMESCALE_;for(t=0;h>=q;)t+=q,h-=q;if(t)for(shaka.log.debug("Offsetting live streams by",
685
- t,"to compensate for rollover"),w=$jscomp.makeIterator(b.uriToStreamInfosMap_.values()),v=w.next();!v.done;v=w.next())r=v.value,r.minTimestamp<q?(shaka.log.v1("Offset applied to",r.stream.type),r.stream.presentationTimeOffset=-t,r.segmentIndex.offset(t)):shaka.log.v1("Offset NOT applied to",r.stream.type)}else for(b.presentationTimeline_.setDuration(l),b.presentationTimeline_.offset(-g),w=$jscomp.makeIterator(b.uriToStreamInfosMap_.values()),v=w.next();!v.done;v=w.next())u=v.value,u.stream.presentationTimeOffset=
694
+ t,"to compensate for rollover"),v=$jscomp.makeIterator(b.uriToStreamInfosMap_.values()),w=v.next();!w.done;w=v.next())r=w.value,r.minTimestamp<q?(shaka.log.v1("Offset applied to",r.stream.type),r.stream.presentationTimeOffset=-t,r.segmentIndex.offset(t)):shaka.log.v1("Offset NOT applied to",r.stream.type)}else for(b.presentationTimeline_.setDuration(l),b.presentationTimeline_.offset(-g),v=$jscomp.makeIterator(b.uriToStreamInfosMap_.values()),w=v.next();!w.done;w=v.next())u=w.value,u.stream.presentationTimeOffset=
686
695
  g,u.segmentIndex.offset(-g),u.segmentIndex.fit(l);b.manifest_={presentationTimeline:b.presentationTimeline_,periods:[f],offlineSessionIds:[],minBufferTime:0};d.jumpToEnd()}})})};
687
- shaka.hls.HlsParser.prototype.createPeriod_=function(a){var b=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function d(){var e,f,g,h,k,l,m,n,p,q,t,r;return $jscomp.generator.createGenerator(d,function(d){switch(d.nextAddress){case 1:return e=shaka.hls.Utils,f=shaka.util.Functional,g=a.tags,h=e.filterTagsByName(a.tags,"EXT-X-MEDIA"),k=h.filter(function(a){return"SUBTITLES"==shaka.hls.HlsParser.getRequiredAttributeValue_(a,"TYPE")}.bind(b)),l=k.map(function(b){return this.createTextStream_(b,
688
- a)}.bind(b)),m=h.filter(function(a){return"CLOSED-CAPTIONS"==shaka.hls.HlsParser.getRequiredAttributeValue_(a,"TYPE")}),b.parseClosedCaptions_(m),d.yield(Promise.all(l),2);case 2:return n=d.yieldResult,p=e.filterTagsByName(g,"EXT-X-STREAM-INF"),q=p.map(function(b){return this.createVariantsForTag_(b,a)}.bind(b)),d.yield(Promise.all(q),3);case 3:return t=d.yieldResult,r=t.reduce(f.collapseArrays,[]),r=r.filter(function(a){return null!=a}),d["return"]({startTime:0,variants:r,textStreams:n})}})})};
689
- shaka.hls.HlsParser.prototype.createVariantsForTag_=function(a,b){var c=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function e(){var f,g,h,k,l,m,n,p,q,t,r,u,w,x,v,B,D,E,y,A,z,F,C,G,H,I,J;return $jscomp.generator.createGenerator(e,function(e){switch(e.nextAddress){case 1:goog.asserts.assert("EXT-X-STREAM-INF"==a.name,"Should only be called on variant tags!");f=shaka.util.ManifestParserUtils.ContentType;g=shaka.hls.Utils;h=a.getAttributeValue("CODECS","avc1.42E01E,mp4a.40.2");k=shaka.hls.HlsParser.filterDuplicateCodecs_(h.split(/\s*,\s*/));
690
- l=a.getAttribute("RESOLUTION");n=m=null;p=a.getAttributeValue("FRAME-RATE");q=Number(shaka.hls.HlsParser.getRequiredAttributeValue_(a,"BANDWIDTH"));l&&(t=l.value.split("x"),m=t[0],n=t[1]);r=g.filterTagsByName(b.tags,"EXT-X-MEDIA");r=r.filter(function(a){return"CLOSED-CAPTIONS"!=shaka.hls.HlsParser.getRequiredAttributeValue_(a,"TYPE")});r=r.filter(function(a){var b=a.getAttributeValue("URI")||"";return"SUBTITLES"==(a.getAttributeValue("TYPE")||"")||""!=b});u=a.getAttributeValue("AUDIO");w=a.getAttributeValue("VIDEO");
691
- goog.asserts.assert(null==u||null==w,"Unexpected: both video and audio described by media tags!");u?r=g.findMediaTags(r,"AUDIO",u):w&&(r=g.findMediaTags(r,"VIDEO",w));if(x=c.guessCodecsSafe_(f.TEXT,k)){if(v=a.getAttributeValue("SUBTITLES"))B=g.findMediaTags(r,"SUBTITLES",v),goog.asserts.assert(1==B.length,"Exactly one text tag expected!"),B.length&&(D=c.mediaTagsToStreamInfosMap_.get(B[0].id),D.stream.codecs=x);shaka.util.ArrayUtils.remove(k,x)}E=r.map(function(a){return this.createStreamInfoFromMediaTag_(a,
692
- k)}.bind(c));y=[];A=[];return e.yield(Promise.all(E),2);case 2:F=e.yieldResult;F=F.filter(function(a){return null!=a});u?y=F:w&&(A=F);shaka.log.debug("Guessing stream type for",a.toString());G=!1;y.length||A.length?y.length?(I=shaka.hls.HlsParser.getRequiredAttributeValue_(a,"URI"),J=y[0].verbatimMediaPlaylistUri,I==J?(shaka.log.debug("Guessing audio-only."),C=f.AUDIO,G=!0):(shaka.log.debug("Guessing video."),C=f.VIDEO)):(goog.asserts.assert(A.length,"No video streams! This should have been handled already!"),
693
- shaka.log.debug("Guessing audio."),C=f.AUDIO):1==k.length?(H=c.guessCodecsSafe_(f.VIDEO,k),l||p||H?(shaka.log.debug("Guessing video-only."),C=f.VIDEO):(shaka.log.debug("Guessing audio-only."),C=f.AUDIO)):(shaka.log.debug("Guessing multiplexed audio+video."),C=f.VIDEO,k=[k.join(",")]);goog.asserts.assert(C,"Type should have been set by now!");if(G){e.jumpTo(3);break}return e.yield(c.createStreamInfoFromVariantTag_(a,k,C),4);case 4:z=e.yieldResult;case 3:if(z)z.stream.type==f.AUDIO?y=[z]:A=[z];else if(null===
694
- z)return shaka.log.debug("streamInfo is null"),e["return"]([]);goog.asserts.assert(A.length||y.length,"We should have created a stream!");A&&c.filterLegacyCodecs_(A);y&&c.filterLegacyCodecs_(y);return e["return"](c.createVariants_(y,A,q,m,n,p))}})})};shaka.hls.HlsParser.prototype.filterLegacyCodecs_=function(a){a.forEach(function(a){var b=a.stream.codecs.split(",");b=b.filter(function(a){return"mp4a.40.34"!=a});a.stream.codecs=b.join(",")})};
696
+ shaka.hls.HlsParser.prototype.createPeriod_=function(a){var b=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function d(){var e,f,g,h,k,l,m,n,p,q,t,r;return $jscomp.generator.createGenerator(d,function(d){switch(d.nextAddress){case 1:return e=shaka.hls.Utils,f=shaka.util.Functional,g=a.tags,h=e.filterTagsByName(a.tags,"EXT-X-MEDIA"),k=h.filter(function(a){return"SUBTITLES"==shaka.hls.HlsParser.getRequiredAttributeValue_(a,"TYPE")}.bind(b)),l=k.map(function(b){var d=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function z(){var e;
697
+ return $jscomp.generator.createGenerator(z,function(f){switch(f.nextAddress){case 1:return f.setCatchFinallyBlocks(2),f.yield(d.createTextStream_(b,a),4);case 4:return f["return"](f.yieldResult);case 2:e=f.enterCatchBlock();if(d.config_.hls.ignoreTextStreamFailures)return f["return"](null);throw e;}})})}.bind(b)),m=h.filter(function(a){return"CLOSED-CAPTIONS"==shaka.hls.HlsParser.getRequiredAttributeValue_(a,"TYPE")}),b.parseClosedCaptions_(m),d.yield(Promise.all(l),2);case 2:return n=d.yieldResult,
698
+ p=e.filterTagsByName(g,"EXT-X-STREAM-INF"),q=p.map(function(b){return this.createVariantsForTag_(b,a)}.bind(b)),d.yield(Promise.all(q),3);case 3:return t=d.yieldResult,r=t.reduce(f.collapseArrays,[]),r=r.filter(function(a){return null!=a}),d["return"]({startTime:0,variants:r,textStreams:n.filter(function(a){return null!=a})})}})})};
699
+ shaka.hls.HlsParser.prototype.createVariantsForTag_=function(a,b){var c=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function e(){var f,g,h,k,l,m,n,p,q,t,r,u,v,x,w,z,D,E,y,B,A,F,C,G,H,I,J;return $jscomp.generator.createGenerator(e,function(e){switch(e.nextAddress){case 1:goog.asserts.assert("EXT-X-STREAM-INF"==a.name,"Should only be called on variant tags!");f=shaka.util.ManifestParserUtils.ContentType;g=shaka.hls.Utils;h=a.getAttributeValue("CODECS","avc1.42E01E,mp4a.40.2");k=shaka.hls.HlsParser.filterDuplicateCodecs_(h.split(/\s*,\s*/));
700
+ l=a.getAttribute("RESOLUTION");n=m=null;p=a.getAttributeValue("FRAME-RATE");q=Number(shaka.hls.HlsParser.getRequiredAttributeValue_(a,"BANDWIDTH"));l&&(t=l.value.split("x"),m=t[0],n=t[1]);r=g.filterTagsByName(b.tags,"EXT-X-MEDIA");r=r.filter(function(a){return"CLOSED-CAPTIONS"!=shaka.hls.HlsParser.getRequiredAttributeValue_(a,"TYPE")});r=r.filter(function(a){var b=a.getAttributeValue("URI")||"";return"SUBTITLES"==(a.getAttributeValue("TYPE")||"")||""!=b});u=a.getAttributeValue("AUDIO");v=a.getAttributeValue("VIDEO");
701
+ goog.asserts.assert(null==u||null==v,"Unexpected: both video and audio described by media tags!");u?r=g.findMediaTags(r,"AUDIO",u):v&&(r=g.findMediaTags(r,"VIDEO",v));if(x=c.guessCodecsSafe_(f.TEXT,k)){if(w=a.getAttributeValue("SUBTITLES"))if(z=g.findMediaTags(r,"SUBTITLES",w),goog.asserts.assert(1==z.length,"Exactly one text tag expected!"),z.length&&(D=c.mediaTagsToStreamInfosMap_.get(z[0].id)))D.stream.codecs=x;shaka.util.ArrayUtils.remove(k,x)}E=r.map(function(a){return this.createStreamInfoFromMediaTag_(a,
702
+ k)}.bind(c));y=[];B=[];return e.yield(Promise.all(E),2);case 2:F=e.yieldResult;F=F.filter(function(a){return null!=a});u?y=F:v&&(B=F);shaka.log.debug("Guessing stream type for",a.toString());G=!1;y.length||B.length?y.length?(I=shaka.hls.HlsParser.getRequiredAttributeValue_(a,"URI"),J=y[0].verbatimMediaPlaylistUri,I==J?(shaka.log.debug("Guessing audio-only."),C=f.AUDIO,G=!0):(shaka.log.debug("Guessing video."),C=f.VIDEO)):(goog.asserts.assert(B.length,"No video streams! This should have been handled already!"),
703
+ shaka.log.debug("Guessing audio."),C=f.AUDIO):1==k.length?(H=c.guessCodecsSafe_(f.VIDEO,k),l||p||H?(shaka.log.debug("Guessing video-only."),C=f.VIDEO):(shaka.log.debug("Guessing audio-only."),C=f.AUDIO)):(shaka.log.debug("Guessing multiplexed audio+video."),C=f.VIDEO,k=[k.join(",")]);goog.asserts.assert(C,"Type should have been set by now!");if(G){e.jumpTo(3);break}return e.yield(c.createStreamInfoFromVariantTag_(a,k,C),4);case 4:A=e.yieldResult;case 3:if(A)A.stream.type==f.AUDIO?y=[A]:B=[A];else if(null===
704
+ A)return shaka.log.debug("streamInfo is null"),e["return"]([]);goog.asserts.assert(B.length||y.length,"We should have created a stream!");B&&c.filterLegacyCodecs_(B);y&&c.filterLegacyCodecs_(y);return e["return"](c.createVariants_(y,B,q,m,n,p))}})})};shaka.hls.HlsParser.prototype.filterLegacyCodecs_=function(a){a.forEach(function(a){var b=a.stream.codecs.split(",");b=b.filter(function(a){return"mp4a.40.34"!=a});a.stream.codecs=b.join(",")})};
695
705
  shaka.hls.HlsParser.prototype.createVariants_=function(a,b,c,d,e,f){var g=shaka.media.DrmEngine;b.forEach(function(a){this.addVideoAttributes_(a.stream,d,e,f)}.bind(this));a.length||(a=[null]);b.length||(b=[null]);var h=[];a=$jscomp.makeIterator(a);for(var k=a.next();!k.done;k=a.next()){k=k.value;for(var l=$jscomp.makeIterator(b),m=l.next();!m.done;m=l.next()){var n=m.value;m=k?k.stream:null;var p=n?n.stream:null,q=k?k.drmInfos:null,t=n?n.drmInfos:null;n=(n?n.verbatimMediaPlaylistUri:"")+" - "+(k?
696
706
  k.verbatimMediaPlaylistUri:"");var r=void 0;if(m&&p)if(g.areDrmCompatible(q,t))r=g.getCommonDrmInfos(q,t);else{shaka.log.warning("Incompatible DRM info in HLS variant. Skipping.");continue}else m?r=q:p&&(r=t);this.variantUriSet_.has(n)?shaka.log.debug("Skipping variant which only differs in text streams."):(m=this.createVariant_(m,p,c,r),h.push(m),this.variantUriSet_.add(n))}}return h};
697
707
  shaka.hls.HlsParser.prototype.createVariant_=function(a,b,c,d){var e=shaka.util.ManifestParserUtils.ContentType;goog.asserts.assert(!a||a.type==e.AUDIO,"Audio parameter mismatch!");goog.asserts.assert(!b||b.type==e.VIDEO,"Video parameter mismatch!");return{id:this.globalId_++,language:a?a.language:"und",primary:!!a&&a.primary||!!b&&b.primary,audio:a,video:b,bandwidth:c,drmInfos:d,allowedByApplication:!0,allowedByKeySystem:!0}};
@@ -699,16 +709,16 @@ shaka.hls.HlsParser.prototype.createTextStream_=function(a,b){var c=this;return
699
709
  []),2);case 2:return g=e.yieldResult,goog.asserts.assert(g,"Should always have a streamInfo for text"),e["return"](g.stream)}})})};
700
710
  shaka.hls.HlsParser.prototype.parseClosedCaptions_=function(a){a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next()){b=b.value;goog.asserts.assert("EXT-X-MEDIA"==b.name,"Should only be called on media tags!");var c=shaka.hls.HlsParser.getRequiredAttributeValue_(b,"TYPE");goog.asserts.assert("CLOSED-CAPTIONS"==c,'Should only be called on tags with TYPE="CLOSED-CAPTIONS"!');c=shaka.util.LanguageUtils;var d=b.getAttributeValue("LANGUAGE")||"und";c=c.normalize(d);d=shaka.hls.HlsParser.getRequiredAttributeValue_(b,
701
711
  "GROUP-ID");b=shaka.hls.HlsParser.getRequiredAttributeValue_(b,"INSTREAM-ID");this.groupIdToClosedCaptionsMap_.get(d)||this.groupIdToClosedCaptionsMap_.set(d,new Map);this.groupIdToClosedCaptionsMap_.get(d).set(b,c)}};
702
- shaka.hls.HlsParser.prototype.createStreamInfoFromMediaTag_=function(a,b){var c=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function e(){var f,g,h,k,l,m,n,p,q,t,r,u,w;return $jscomp.generator.createGenerator(e,function(e){switch(e.nextAddress){case 1:goog.asserts.assert("EXT-X-MEDIA"==a.name,"Should only be called on media tags!");f=shaka.hls.HlsParser;g=f.getRequiredAttributeValue_(a,"URI");if(c.uriToStreamInfosMap_.has(g))return e["return"](c.uriToStreamInfosMap_.get(g));h=f.getRequiredAttributeValue_(a,
703
- "TYPE").toLowerCase();k=shaka.util.ManifestParserUtils.ContentType;"subtitles"==h&&(h=k.TEXT);l=shaka.util.LanguageUtils;m=l.normalize(a.getAttributeValue("LANGUAGE","und"));n=a.getAttributeValue("NAME");p=a.getAttribute("DEFAULT");q=a.getAttribute("AUTOSELECT");t=a.getAttributeValue("CHANNELS");r="audio"==h?c.getChannelCount_(t):null;u=!!p||!!q;return e.yield(c.createStreamInfo_(g,b,h,m,u,n,r,null),2);case 2:w=e.yieldResult;if(null==w)return e["return"](null);if(c.uriToStreamInfosMap_.has(g))return e["return"](c.uriToStreamInfosMap_.get(g));
704
- c.mediaTagsToStreamInfosMap_.set(a.id,w);c.uriToStreamInfosMap_.set(g,w);return e["return"](w)}})})};shaka.hls.HlsParser.prototype.getChannelCount_=function(a){if(!a)return null;a=a.split("/")[0];return parseInt(a,10)};
712
+ shaka.hls.HlsParser.prototype.createStreamInfoFromMediaTag_=function(a,b){var c=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function e(){var f,g,h,k,l,m,n,p,q,t,r,u,v;return $jscomp.generator.createGenerator(e,function(e){switch(e.nextAddress){case 1:goog.asserts.assert("EXT-X-MEDIA"==a.name,"Should only be called on media tags!");f=shaka.hls.HlsParser;g=f.getRequiredAttributeValue_(a,"URI");if(c.uriToStreamInfosMap_.has(g))return e["return"](c.uriToStreamInfosMap_.get(g));h=f.getRequiredAttributeValue_(a,
713
+ "TYPE").toLowerCase();k=shaka.util.ManifestParserUtils.ContentType;"subtitles"==h&&(h=k.TEXT);l=shaka.util.LanguageUtils;m=l.normalize(a.getAttributeValue("LANGUAGE","und"));n=a.getAttributeValue("NAME");p=a.getAttribute("DEFAULT");q=a.getAttribute("AUTOSELECT");t=a.getAttributeValue("CHANNELS");r="audio"==h?c.getChannelCount_(t):null;u=!!p||!!q;return e.yield(c.createStreamInfo_(g,b,h,m,u,n,r,null),2);case 2:v=e.yieldResult;if(null==v)return e["return"](null);if(c.uriToStreamInfosMap_.has(g))return e["return"](c.uriToStreamInfosMap_.get(g));
714
+ c.mediaTagsToStreamInfosMap_.set(a.id,v);c.uriToStreamInfosMap_.set(g,v);return e["return"](v)}})})};shaka.hls.HlsParser.prototype.getChannelCount_=function(a){if(!a)return null;a=a.split("/")[0];return parseInt(a,10)};
705
715
  shaka.hls.HlsParser.prototype.createStreamInfoFromVariantTag_=function(a,b,c){var d=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function f(){var g,h,k,l,m,n;return $jscomp.generator.createGenerator(f,function(f){switch(f.nextAddress){case 1:goog.asserts.assert("EXT-X-STREAM-INF"==a.name,"Should only be called on media tags!");g=shaka.util.ManifestParserUtils.ContentType;h=shaka.hls.HlsParser;k=h.getRequiredAttributeValue_(a,"URI");if(d.uriToStreamInfosMap_.has(k))return f["return"](d.uriToStreamInfosMap_.get(k));
706
716
  l=a.getAttributeValue("CLOSED-CAPTIONS");m=null;c==g.VIDEO&&l&&"NONE"!=l&&(m=d.groupIdToClosedCaptionsMap_.get(l));return f.yield(d.createStreamInfo_(k,b,c,"und",!1,null,null,m),2);case 2:n=f.yieldResult;if(null==n)return f["return"](null);if(d.uriToStreamInfosMap_.has(k))return f["return"](d.uriToStreamInfosMap_.get(k));d.uriToStreamInfosMap_.set(k,n);return f["return"](n)}})})};
707
- shaka.hls.HlsParser.prototype.createStreamInfo_=function(a,b,c,d,e,f,g,h){var k=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function m(){var n,p,q,t,r,u,w,x,v,B,D,E,y,A,z,F,C,G,H,I,J,N,K,O,L,P;return $jscomp.generator.createGenerator(m,function(m){switch(m.nextAddress){case 1:return n=shaka.hls.Utils,p=n.constructAbsoluteUri(k.masterPlaylistUri_,a),t="",m.yield(k.requestManifest_(p),2);case 2:u=m.yieldResult;p=u.uri;q=k.manifestTextParser_.parsePlaylist(u.data,p);if(q.type!=shaka.hls.PlaylistType.MEDIA)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
708
- shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_INVALID_PLAYLIST_HIERARCHY);w=[];q.segments.forEach(function(a){a=n.filterTagsByName(a.tags,"EXT-X-KEY");w.push.apply(w,a)});x=!1;v=[];B=null;for(var Q=$jscomp.makeIterator(w),M=Q.next();!M.done;M=Q.next())if(D=M.value,E=shaka.hls.HlsParser.getRequiredAttributeValue_(D,"METHOD"),"NONE"!=E){x=!0;if("AES-128"==E)return shaka.log.warning("Unsupported HLS Encryption",E),k.aesEncrypted_=!0,m["return"](null);y=shaka.hls.HlsParser.getRequiredAttributeValue_(D,
709
- "KEYFORMAT");(z=(A=shaka.hls.HlsParser.KEYFORMATS_TO_DRM_PARSERS_[y])?A(D):null)?(z.keyIds.length&&(B=z.keyIds[0]),v.push(z)):shaka.log.warning("Unsupported HLS KEYFORMAT",y)}if(x&&!v.length)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_KEYFORMATS_NOT_SUPPORTED);goog.asserts.assert(null!=q.segments,"Media playlist should have segments!");k.determinePresentationType_(q);t=k.guessCodecs_(c,b);return m.yield(k.guessMimeType_(c,
717
+ shaka.hls.HlsParser.prototype.createStreamInfo_=function(a,b,c,d,e,f,g,h){var k=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function m(){var n,p,q,t,r,u,v,x,w,z,D,E,y,B,A,F,C,G,H,I,J,N,K,O,L,P;return $jscomp.generator.createGenerator(m,function(m){switch(m.nextAddress){case 1:return n=shaka.hls.Utils,p=n.constructAbsoluteUri(k.masterPlaylistUri_,a),t="",m.yield(k.requestManifest_(p),2);case 2:u=m.yieldResult;p=u.uri;q=k.manifestTextParser_.parsePlaylist(u.data,p);if(q.type!=shaka.hls.PlaylistType.MEDIA)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
718
+ shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_INVALID_PLAYLIST_HIERARCHY);v=[];q.segments.forEach(function(a){a=n.filterTagsByName(a.tags,"EXT-X-KEY");v.push.apply(v,a)});x=!1;w=[];z=null;for(var Q=$jscomp.makeIterator(v),M=Q.next();!M.done;M=Q.next())if(D=M.value,E=shaka.hls.HlsParser.getRequiredAttributeValue_(D,"METHOD"),"NONE"!=E){x=!0;if("AES-128"==E)return shaka.log.warning("Unsupported HLS Encryption",E),k.aesEncrypted_=!0,m["return"](null);y=shaka.hls.HlsParser.getRequiredAttributeValue_(D,
719
+ "KEYFORMAT");(A=(B=shaka.hls.HlsParser.KEYFORMATS_TO_DRM_PARSERS_[y])?B(D):null)?(A.keyIds.length&&(z=A.keyIds[0]),w.push(A)):shaka.log.warning("Unsupported HLS KEYFORMAT",y)}if(x&&!w.length)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_KEYFORMATS_NOT_SUPPORTED);goog.asserts.assert(null!=q.segments,"Media playlist should have segments!");k.determinePresentationType_(q);t=k.guessCodecs_(c,b);return m.yield(k.guessMimeType_(c,
710
720
  t,q),3);case 3:return r=F=m.yieldResult,G=(C=n.getFirstTagWithName(q.tags,"EXT-X-MEDIA-SEQUENCE"))?Number(C.value):0,m.yield(k.createSegments_(a,q,G,r,t),4);case 4:return H=m.yieldResult,I=H[0].startTime,J=H[H.length-1].endTime,N=J-I,K=new shaka.media.SegmentIndex(H),O=k.createInitSegmentReference_(q),L=void 0,c==shaka.util.ManifestParserUtils.ContentType.TEXT&&(L=shaka.util.ManifestParserUtils.TextStreamKind.SUBTITLE),P={id:k.globalId_++,originalId:f,createSegmentIndex:Promise.resolve.bind(Promise),
711
- findSegmentPosition:K.find.bind(K),getSegmentReference:K.get.bind(K),initSegmentReference:O,presentationTimeOffset:0,mimeType:r,codecs:t,kind:L,encrypted:x,keyId:B,language:d,label:f,type:c,primary:e,trickModeVideo:null,emsgSchemeIdUris:null,frameRate:void 0,width:void 0,height:void 0,bandwidth:void 0,roles:[],channelsCount:g,closedCaptions:h},m["return"]({stream:P,segmentIndex:K,drmInfos:v,verbatimMediaPlaylistUri:a,absoluteMediaPlaylistUri:p,minTimestamp:I,maxTimestamp:J,duration:N})}})})};
721
+ findSegmentPosition:K.find.bind(K),getSegmentReference:K.get.bind(K),initSegmentReference:O,presentationTimeOffset:0,mimeType:r,codecs:t,kind:L,encrypted:x,keyId:z,language:d,label:f,type:c,primary:e,trickModeVideo:null,emsgSchemeIdUris:null,frameRate:void 0,width:void 0,height:void 0,bandwidth:void 0,roles:[],channelsCount:g,closedCaptions:h},m["return"]({stream:P,segmentIndex:K,drmInfos:w,verbatimMediaPlaylistUri:a,absoluteMediaPlaylistUri:p,minTimestamp:I,maxTimestamp:J,duration:N})}})})};
712
722
  shaka.hls.HlsParser.prototype.determinePresentationType_=function(a){var b=shaka.hls.Utils,c=shaka.hls.HlsParser.PresentationType_,d=b.getFirstTagWithName(a.tags,"EXT-X-PLAYLIST-TYPE");b=b.getFirstTagWithName(a.tags,"EXT-X-ENDLIST");b=d&&"VOD"==d.value||b;d=d&&"EVENT"==d.value&&!b;d=!b&&!d;b?this.setPresentationType_(c.VOD):(d?this.setPresentationType_(c.LIVE):this.setPresentationType_(c.EVENT),a=this.getRequiredTag_(a.tags,"EXT-X-TARGETDURATION"),a=Number(a.value),this.maxTargetDuration_=Math.max(a,
713
723
  this.maxTargetDuration_),this.minTargetDuration_=Math.min(a,this.minTargetDuration_))};
714
724
  shaka.hls.HlsParser.prototype.createPresentationTimeline_=function(a){this.isLive_()?(this.presentationTimeline_=new shaka.media.PresentationTimeline(0,3*this.maxTargetDuration_),this.presentationTimeline_.setStatic(!1)):(this.presentationTimeline_=new shaka.media.PresentationTimeline(null,0),this.presentationTimeline_.setStatic(!0));this.notifySegments_();goog.asserts.assert(!this.presentationTimeline_.usingPresentationStartTime(),"We should not be using the presentation start time in HLS!")};
@@ -716,16 +726,17 @@ shaka.hls.HlsParser.prototype.createInitSegmentReference_=function(a){var b=shak
716
726
  c=Number(a[0]),a=Number(a[1]),b=a+c-1;return new shaka.media.InitSegmentReference(function(){return[e]},a,b)};
717
727
  shaka.hls.HlsParser.prototype.createSegmentReference_=function(a,b,c,d,e){a=shaka.hls.Utils;var f=c.tags,g=c.absoluteUri;c=this.getRequiredTag_(f,"EXTINF").value.split(",");c=e+Number(c[0]);var h=0,k=null;if(a=a.getFirstTagWithName(f,"EXT-X-BYTERANGE"))f=a.value.split("@"),a=Number(f[0]),f[1]?h=Number(f[1]):(goog.asserts.assert(b,"Cannot refer back to previous HLS segment!"),h=b.endByte+1),k=h+a-1;return new shaka.media.SegmentReference(d,e,c,function(){return[g]},h,k)};
718
728
  shaka.hls.HlsParser.prototype.notifySegments_=function(){var a=this;this.presentationTimeline_&&(this.segmentsToNotifyByStream_.forEach(function(b){a.presentationTimeline_.notifySegments(b,0)}),this.segmentsToNotifyByStream_=[])};
719
- shaka.hls.HlsParser.prototype.createSegments_=function(a,b,c,d,e){var f=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function h(){var k,l,m,n,p,q,t,r,u,w,x;return $jscomp.generator.createGenerator(h,function(h){switch(h.nextAddress){case 1:return k=b.segments,l=[],goog.asserts.assert(k.length,"Playlist should have segments!"),m=k[0].absoluteUri,n=f.createSegmentReference_(b,null,k[0],c,0),p=f.createInitSegmentReference_(b),h.yield(f.getStartTime_(a,p,n,d,e),2);case 2:q=h.yieldResult;shaka.log.debug("First segment",
720
- m.split("/").pop(),"starts at",q);for(var v=0;v<k.length;++v)t=k[v],r=l[l.length-1],u=0==v?q:r.endTime,w=c+v,x=f.createSegmentReference_(b,r,t,w,u),l.push(x);f.segmentsToNotifyByStream_.push(l);f.notifySegments_();return h["return"](l)}})})};
729
+ shaka.hls.HlsParser.prototype.createSegments_=function(a,b,c,d,e){var f=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function h(){var k,l,m,n,p,q,t,r,u,v,x;return $jscomp.generator.createGenerator(h,function(h){switch(h.nextAddress){case 1:return k=b.segments,l=[],goog.asserts.assert(k.length,"Playlist should have segments!"),m=k[0].absoluteUri,n=f.createSegmentReference_(b,null,k[0],c,0),p=f.createInitSegmentReference_(b),h.yield(f.getStartTime_(a,p,n,d,e),2);case 2:q=h.yieldResult;shaka.log.debug("First segment",
730
+ m.split("/").pop(),"starts at",q);for(var w=0;w<k.length;++w)t=k[w],r=l[l.length-1],u=0==w?q:r.endTime,v=c+w,x=f.createSegmentReference_(b,r,t,v,u),l.push(x);f.segmentsToNotifyByStream_.push(l);f.notifySegments_();return h["return"](l)}})})};
721
731
  shaka.hls.HlsParser.prototype.fetchPartialSegment_=function(a){var b=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function d(){var e,f,g,h,k,l;return $jscomp.generator.createGenerator(d,function(d){switch(d.nextAddress){case 1:return e=shaka.net.NetworkingEngine.RequestType,f=shaka.util.Networking.createSegmentRequest(a.getUris(),a.startByte,a.startByte+shaka.hls.HlsParser.PARTIAL_SEGMENT_SIZE_-1,b.config_.retryParameters),g=shaka.util.Networking.createSegmentRequest(a.getUris(),a.startByte,
722
732
  a.endByte,b.config_.retryParameters),d.setCatchFinallyBlocks(2),d.yield(b.makeNetworkRequest_(f,e.SEGMENT),4);case 4:return h=d.yieldResult,d["return"](h);case 2:k=d.enterCatchBlock();if(k.code==shaka.util.Error.Code.OPERATION_ABORTED)throw k;shaka.log.alwaysWarn("Unable to fetch a partial HLS segment! Falling back to a full segment request, which is expensive! Your server should support Range requests and CORS preflights.",f.uris[0]);return d.yield(b.makeNetworkRequest_(g,e.SEGMENT),5);case 5:return l=
723
733
  d.yieldResult,d["return"](l)}})})};
724
734
  shaka.hls.HlsParser.prototype.getStartTime_=function(a,b,c,d,e){var f=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function h(){var k,l,m,n,p,q,t,r,u;return $jscomp.generator.createGenerator(h,function(h){switch(h.nextAddress){case 1:if(f.manifest_){k=f.uriToStreamInfosMap_.get(a);l=k.segmentIndex;if(m=l.get(c.position))return shaka.log.v1("Found segment start time in previous manifest"),h["return"](m.startTime);shaka.log.debug("Unable to find segment start time in previous manifest!")}shaka.log.v1("Fetching segment to find start time");if("audio/mpeg"==
725
735
  d)return h["return"](0);if("video/mp4"!=d&&"audio/mp4"!=d){h.jumpTo(2);break}n=[f.fetchPartialSegment_(c)];b&&n.push(f.fetchPartialSegment_(b));return h.yield(Promise.all(n),3);case 3:return p=h.yieldResult,q=p[0],t=p[1]||p[0],h["return"](f.getStartTimeFromMp4Segment_(q.data,t.data));case 2:if("video/mp2t"!=d){h.jumpTo(4);break}return h.yield(f.fetchPartialSegment_(c),5);case 5:return r=h.yieldResult,goog.asserts.assert(r.data,"Should have a response body!"),h["return"](f.getStartTimeFromTsSegment_(r.data));
726
- case 4:if("application/mp4"!=d&&!d.startsWith("text/")){h.jumpTo(6);break}return h.yield(f.fetchPartialSegment_(c),7);case 7:return u=h.yieldResult,goog.asserts.assert(u.data,"Should have a response body!"),h["return"](f.getStartTimeFromTextSegment_(d,e,u.data));case 6:throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_COULD_NOT_PARSE_SEGMENT_START_TIME);}})})};
727
- shaka.hls.HlsParser.prototype.getStartTimeFromMp4Segment_=function(a,b){var c=shaka.util.Mp4Parser,d=0;(new c).box("moov",c.children).box("trak",c.children).box("mdia",c.children).fullBox("mdhd",function(a){goog.asserts.assert(0==a.version||1==a.version,"MDHD version can only be 0 or 1");a.reader.skip(0==a.version?8:16);d=a.reader.readUint32();a.parser.stop()}).parse(b,!0);if(!d)throw shaka.log.error("Unable to find timescale in init segment!"),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
728
- shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_COULD_NOT_PARSE_SEGMENT_START_TIME);var e=0,f=!1;(new c).box("moof",c.children).box("traf",c.children).fullBox("tfdt",function(a){goog.asserts.assert(0==a.version||1==a.version,"TFDT version can only be 0 or 1");e=(0==a.version?a.reader.readUint32():a.reader.readUint64())/d;f=!0;a.parser.stop()}).parse(a,!0);if(!f)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_COULD_NOT_PARSE_SEGMENT_START_TIME);
736
+ case 4:if("application/mp4"!=d&&!d.startsWith("text/")){h.jumpTo(6);break}return h.yield(f.fetchPartialSegment_(c),7);case 7:return u=h.yieldResult,goog.asserts.assert(u.data,"Should have a response body!"),h["return"](f.getStartTimeFromTextSegment_(d,e,u.data));case 6:if("video/webm"==d)return shaka.log.warning("Hls+WebM combination is not supported at the moment. Skipping."),h["return"](null);throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_COULD_NOT_PARSE_SEGMENT_START_TIME);
737
+ }})})};
738
+ shaka.hls.HlsParser.prototype.getStartTimeFromMp4Segment_=function(a,b){var c=shaka.util.Mp4Parser,d=0;(new c).box("moov",c.children).box("trak",c.children).box("mdia",c.children).fullBox("mdhd",function(a){goog.asserts.assert(0==a.version||1==a.version,"MDHD version can only be 0 or 1");a.reader.skip(0==a.version?8:16);d=a.reader.readUint32();a.parser.stop()}).parse(b,!0);if(!d)throw shaka.log.error("Unable to find timescale in init segment!"),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,
739
+ shaka.util.Error.Code.HLS_COULD_NOT_PARSE_SEGMENT_START_TIME);var e=0,f=!1;(new c).box("moof",c.children).box("traf",c.children).fullBox("tfdt",function(a){goog.asserts.assert(0==a.version||1==a.version,"TFDT version can only be 0 or 1");e=(0==a.version?a.reader.readUint32():a.reader.readUint64())/d;f=!0;a.parser.stop()}).parse(a,!0);if(!f)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_COULD_NOT_PARSE_SEGMENT_START_TIME);
729
740
  return e};
730
741
  shaka.hls.HlsParser.prototype.getStartTimeFromTsSegment_=function(a){a=new shaka.util.DataViewReader(new DataView(a),shaka.util.DataViewReader.Endianness.BIG_ENDIAN);for(var b=function(){throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_COULD_NOT_PARSE_SEGMENT_START_TIME);},c=0,d=0;;)if(c=a.getPosition(),d=a.readUint8(),71!=d&&b(),a.readUint16()&16384||b(),d=(a.readUint8()&48)>>4,0!=d&&2!=d||b(),3==d&&(d=a.readUint8(),a.skip(d)),
731
742
  1!=a.readUint32()>>8)a.seek(c+188),d=a.readUint8(),71!=d&&(a.seek(c+192),d=a.readUint8()),71!=d&&(a.seek(c+204),d=a.readUint8()),71!=d&&b(),a.rewind(1);else return a.skip(3),c=a.readUint8()>>6,0!=c&&1!=c||b(),d=a.readUint8(),0==d&&b(),2==c?goog.asserts.assert(5==d,"Bad PES header?"):3==c&&goog.asserts.assert(10==d,"Bad PES header?"),b=a.readUint8(),c=a.readUint16(),a=a.readUint16(),(1073741824*((b&14)>>1)+((c&65534)<<14|(a&65534)>>1))/shaka.hls.HlsParser.TS_TIMESCALE_};
@@ -769,13 +780,14 @@ e):shaka.log.info("Jumping forward",f,"seconds because of gap starting at",c.end
769
780
  shaka.media.PlayheadObserverManager.prototype.manage=function(a){this.observers_.add(a)};shaka.media.PlayheadObserverManager.prototype.notifyOfSeek=function(){this.pollAllObservers_(!0)};shaka.media.PlayheadObserverManager.prototype.pollAllObservers_=function(a){for(var b=$jscomp.makeIterator(this.observers_),c=b.next();!c.done;c=b.next())c.value.poll(this.mediaElement_.currentTime,a)};shaka.util.Periods=function(){};shaka.util.Periods.getAllVariantsFrom=function(a){var b=[];a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next()){c=$jscomp.makeIterator(c.value.variants);for(var d=c.next();!d.done;d=c.next())b.push(d.value)}return b};shaka.util.Periods.findPeriodForTime=function(a,b){for(var c=null,d=$jscomp.makeIterator(a),e=d.next();!e.done;e=d.next())e=e.value,b>=e.startTime&&(c=e);return c};shaka.media.PeriodObserver=function(a){this.manifest_=a;this.currentPeriod_=null;this.onChangedPeriods_=function(a){}};shaka.media.PeriodObserver.prototype.release=function(){this.currentPeriod_=this.manifest_=null;this.onChangedPeriods_=function(a){}};shaka.media.PeriodObserver.prototype.poll=function(a,b){var c=this.currentPeriod_,d=this.findCurrentPeriod_(a);if(c!=d)this.onChangedPeriods_(d);this.currentPeriod_=d};
770
781
  shaka.media.PeriodObserver.prototype.setListeners=function(a){this.onChangedPeriods_=a};shaka.media.PeriodObserver.prototype.findCurrentPeriod_=function(a){var b=this.manifest_.periods;return shaka.util.Periods.findPeriodForTime(b,a)||b[0]};shaka.media.PlayRateController=function(a){var b=this;this.harness_=a;this.isBuffering_=!1;this.rate_=this.harness_.getRate();this.pollRate_=.25;this.timer_=new shaka.util.Timer(function(){b.harness_.movePlayhead(b.rate_*b.pollRate_)})};shaka.media.PlayRateController.prototype.release=function(){this.timer_&&(this.timer_.stop(),this.timer_=null);this.harness_=null};shaka.media.PlayRateController.prototype.setBuffering=function(a){this.isBuffering_=a;this.apply_()};
771
782
  shaka.media.PlayRateController.prototype.set=function(a){goog.asserts.assert(0!=a,"Should never set rate of 0 explicitly!");this.rate_=a;this.apply_()};shaka.media.PlayRateController.prototype.getActiveRate=function(){return this.calculateCurrentRate_()};shaka.media.PlayRateController.prototype.apply_=function(){this.timer_.stop();var a=this.calculateCurrentRate_();if(0<=a)try{this.applyRate_(a);return}catch(b){}this.timer_.tickEvery(this.pollRate_);this.applyRate_(0)};
772
- shaka.media.PlayRateController.prototype.calculateCurrentRate_=function(){return this.isBuffering_?0:this.rate_};shaka.media.PlayRateController.prototype.applyRate_=function(a){var b=this.harness_.getRate();b!=a&&this.harness_.setRate(a);return b!=a};shaka.media.VideoWrapper=function(a,b,c){this.video_=a;this.onSeek_=b;this.startTime_=c;this.eventManager_=new shaka.util.EventManager;this.mover_=new shaka.media.VideoWrapper.PlayheadMover(a,10);0<a.readyState?this.setStartTime_(c):this.delaySetStartTime_(c)};shaka.media.VideoWrapper.prototype.release=function(){this.eventManager_&&(this.eventManager_.release(),this.eventManager_=null);null!=this.mover_&&(this.mover_.release(),this.mover_=null);this.onSeek_=function(){};this.video_=null};
773
- shaka.media.VideoWrapper.prototype.getTime=function(){return 0<this.video_.readyState?this.video_.currentTime:this.startTime_};shaka.media.VideoWrapper.prototype.setTime=function(a){0<this.video_.readyState?this.mover_.moveTo(a):this.delaySetStartTime_(a)};shaka.media.VideoWrapper.prototype.delaySetStartTime_=function(a){var b=this;this.startTime_=a;this.eventManager_.unlisten(this.video_,"loadedmetadata");this.eventManager_.listenOnce(this.video_,"loadedmetadata",function(){b.setStartTime_(a)})};
783
+ shaka.media.PlayRateController.prototype.calculateCurrentRate_=function(){return this.isBuffering_?0:this.rate_};shaka.media.PlayRateController.prototype.applyRate_=function(a){var b=this.harness_.getRate();b!=a&&this.harness_.setRate(a);return b!=a};shaka.media.VideoWrapper=function(a,b,c){this.video_=a;this.onSeek_=b;this.startTime_=c;this.started_=!1;this.eventManager_=new shaka.util.EventManager;this.mover_=new shaka.media.VideoWrapper.PlayheadMover(a,10);0<a.readyState?this.setStartTime_(c):this.delaySetStartTime_(c)};
784
+ shaka.media.VideoWrapper.prototype.release=function(){this.eventManager_&&(this.eventManager_.release(),this.eventManager_=null);null!=this.mover_&&(this.mover_.release(),this.mover_=null);this.onSeek_=function(){};this.video_=null};shaka.media.VideoWrapper.prototype.getTime=function(){return this.started_?this.video_.currentTime:this.startTime_};shaka.media.VideoWrapper.prototype.setTime=function(a){0<this.video_.readyState?this.mover_.moveTo(a):this.delaySetStartTime_(a)};
785
+ shaka.media.VideoWrapper.prototype.delaySetStartTime_=function(a){var b=this;this.startTime_=a;this.eventManager_.unlisten(this.video_,"loadedmetadata");this.eventManager_.listenOnce(this.video_,"loadedmetadata",function(){b.setStartTime_(a)})};
774
786
  shaka.media.VideoWrapper.prototype.setStartTime_=function(a){var b=this;.001>Math.abs(this.video_.currentTime-a)?this.startListeningToSeeks_():(this.eventManager_.listenOnce(this.video_,"seeking",function(){b.startListeningToSeeks_()}),this.mover_.moveTo(0==this.video_.currentTime?a:this.video_.currentTime))};
775
- shaka.media.VideoWrapper.prototype.startListeningToSeeks_=function(){var a=this;goog.asserts.assert(0<this.video_.readyState,"The media element should be ready before we listen for seeking.");this.eventManager_.listen(this.video_,"seeking",function(){return a.onSeek_()})};shaka.media.VideoWrapper.PlayheadMover=function(a,b){var c=this;this.mediaElement_=a;this.maxAttempts_=b;this.targetTime_=this.originTime_=this.remainingAttempts_=0;this.timer_=new shaka.util.Timer(function(){return c.onTick_()})};
787
+ shaka.media.VideoWrapper.prototype.startListeningToSeeks_=function(){var a=this;goog.asserts.assert(0<this.video_.readyState,"The media element should be ready before we listen for seeking.");this.started_=!0;this.eventManager_.listen(this.video_,"seeking",function(){return a.onSeek_()})};shaka.media.VideoWrapper.PlayheadMover=function(a,b){var c=this;this.mediaElement_=a;this.maxAttempts_=b;this.targetTime_=this.originTime_=this.remainingAttempts_=0;this.timer_=new shaka.util.Timer(function(){return c.onTick_()})};
776
788
  shaka.media.VideoWrapper.PlayheadMover.prototype.release=function(){this.timer_&&(this.timer_.stop(),this.timer_=null);this.mediaElement_=null};shaka.media.VideoWrapper.PlayheadMover.prototype.moveTo=function(a){this.originTime_=this.mediaElement_.currentTime;this.targetTime_=a;this.remainingAttempts_=this.maxAttempts_;this.mediaElement_.currentTime=a;this.timer_.tickEvery(.1)};
777
789
  shaka.media.VideoWrapper.PlayheadMover.prototype.onTick_=function(){0>=this.remainingAttempts_?(shaka.log.warning(["Failed to move playhead from",this.originTime_,"to",this.targetTime_].join(" ")),this.timer_.stop()):this.mediaElement_.currentTime!=this.originTime_?this.timer_.stop():(this.mediaElement_.currentTime=this.targetTime_,this.remainingAttempts_--)};shaka.media.Playhead=function(){};shaka.media.Playhead.prototype.setStartTime=function(a){};shaka.media.Playhead.prototype.getTime=function(){};shaka.media.Playhead.prototype.notifyOfBufferingChange=function(){};
778
- shaka.media.SrcEqualsPlayhead=function(a){var b=this;this.mediaElement_=a;this.started_=!1;this.startTime_=null;this.eventManager_=new shaka.util.EventManager;a=function(){b.started_=!0;null!=b.startTime_&&(b.mediaElement_.currentTime=b.startTime_)};0==this.mediaElement_.readyState?this.eventManager_.listenOnce(this.mediaElement_,"loadedmetadata",a):a()};
790
+ shaka.media.SrcEqualsPlayhead=function(a){var b=this;this.mediaElement_=a;this.started_=!1;this.startTime_=null;this.eventManager_=new shaka.util.EventManager;a=function(){null==b.startTime_?b.started_=!0:(b.eventManager_.listenOnce(b.mediaElement_,"seeking",function(){b.started_=!0}),b.mediaElement_.currentTime=b.startTime_)};0==this.mediaElement_.readyState?this.eventManager_.listenOnce(this.mediaElement_,"loadedmetadata",a):a()};
779
791
  shaka.media.SrcEqualsPlayhead.prototype.release=function(){this.eventManager_&&(this.eventManager_.release(),this.eventManager_=null);this.mediaElement_=null};shaka.media.SrcEqualsPlayhead.prototype.setStartTime=function(a){this.startTime_=this.started_?this.startTime_:a};shaka.media.SrcEqualsPlayhead.prototype.getTime=function(){return(this.started_?this.mediaElement_.currentTime:this.startTime_)||0};shaka.media.SrcEqualsPlayhead.prototype.notifyOfBufferingChange=function(){};
780
792
  shaka.media.MediaSourcePlayhead=function(a,b,c,d,e,f){var g=this;this.minSeekRange_=3;this.mediaElement_=a;this.timeline_=b.presentationTimeline;this.minBufferTime_=b.minBufferTime||0;this.config_=c;this.onSeek_=e;this.lastCorrectiveSeek_=null;this.gapController_=new shaka.media.GapJumpingController(a,b.presentationTimeline,c,this.createStallDetector_(a,c),f);this.videoWrapper_=new shaka.media.VideoWrapper(a,function(){return g.onSeeking_()},this.getStartTime_(d));this.checkWindowTimer_=(new shaka.util.Timer(function(){g.onPollWindow_()})).tickEvery(.25)};
781
793
  shaka.media.MediaSourcePlayhead.prototype.release=function(){this.videoWrapper_&&(this.videoWrapper_.release(),this.videoWrapper_=null);this.gapController_&&(this.gapController_.release(),this.gapController_=null);this.checkWindowTimer_&&(this.checkWindowTimer_.stop(),this.checkWindowTimer_=null);this.mediaElement_=this.videoWrapper_=this.timeline_=this.config_=null;this.onSeek_=function(){}};shaka.media.MediaSourcePlayhead.prototype.setStartTime=function(a){this.videoWrapper_.setTime(a)};
@@ -826,11 +838,10 @@ $jscomp.makeIterator(a);for(q=n.next();!q.done;q=n.next())l=q.value,m=b.canSwitc
826
838
  shaka.media.StreamingEngine.prototype.onUpdate_=function(a){if(!this.destroyed_){var b=shaka.media.StreamingEngine.logPrefix_(a);goog.asserts.assert(!a.performingUpdate&&null!=a.updateTimer,b+" unexpected call to onUpdate_()");if(!a.performingUpdate&&null!=a.updateTimer&&(goog.asserts.assert(!a.clearingBuffer,b+" onUpdate_() should not be called when clearing the buffer"),!a.clearingBuffer))if(a.updateTimer=null,a.waitingToClearBuffer)shaka.log.debug(b,"skipping update and clearing the buffer"),this.clearBuffer_(a,
827
839
  a.waitingToFlushBuffer,a.clearBufferSafeMargin);else{try{var c=this.update_(a);null!=c&&(this.scheduleUpdate_(a,c),a.hasError=!1)}catch(d){this.handleStreamingError_(d);return}c=Array.from(this.mediaStates_.values());this.handlePeriodTransition_(a);this.startupComplete_&&c.every(function(a){return a.endOfStream})&&(shaka.log.v1(b,"calling endOfStream()..."),this.playerInterface_.mediaSourceEngine.endOfStream().then(function(){if(!this.destroyed_){var a=this.playerInterface_.mediaSourceEngine.getDuration();
828
840
  0!=a&&a<this.manifest_.presentationTimeline.getDuration()&&this.manifest_.presentationTimeline.setDuration(a)}}.bind(this)))}}};
829
- shaka.media.StreamingEngine.prototype.update_=function(a){var b=this;goog.asserts.assert(this.manifest_,"manifest_ should not be null");goog.asserts.assert(this.config_,"config_ should not be null");var c=shaka.util.ManifestParserUtils.ContentType;if(a.type==c.TEXT&&a.stream.mimeType==shaka.util.MimeUtils.CLOSED_CAPTION_MIMETYPE)return this.playerInterface_.mediaSourceEngine.setSelectedClosedCaptionId(a.stream.originalId||""),null;var d=shaka.media.StreamingEngine.logPrefix_(a),e=this.playerInterface_.getPresentationTime(),
830
- f=this.getTimeNeeded_(a,e);shaka.log.v2(d,"timeNeeded="+f);var g=this.findPeriodContainingStream_(a.stream),h=this.findPeriodForTime_(f),k=this.playerInterface_.mediaSourceEngine.bufferedAheadOf(a.type,e);shaka.log.v2(d,"update_:","presentationTime="+e,"bufferedAhead="+k);var l=Math.max(this.manifest_.minBufferTime||0,this.config_.rebufferingGoal,this.config_.bufferingGoal)*this.bufferingGoalScale_;if(f>=this.manifest_.presentationTimeline.getDuration())return shaka.log.debug(d,"buffered to end of presentation"),
831
- a.endOfStream=!0,a.type==c.VIDEO&&(a=this.mediaStates_.get(c.TEXT))&&a.stream.mimeType==shaka.util.MimeUtils.CLOSED_CAPTION_MIMETYPE&&(a.endOfStream=!0),null;a.endOfStream=!1;a.needPeriodIndex=h;if(h!=g)return shaka.log.debug(d,"need Period "+h,"presentationTime="+e,"timeNeeded="+f,"currentPeriodIndex="+g),null;if(k>=l)return shaka.log.v2(d,"buffering goal met"),.5;d=this.playerInterface_.mediaSourceEngine.bufferEnd(a.type);d=this.getSegmentReferenceNeeded_(a,e,d,g);if(!d)return 1;var m=Infinity;
832
- Array.from(this.mediaStates_.values()).forEach(function(a){if(a.type!=c.TEXT||a.stream.mimeType!=shaka.util.MimeUtils.CLOSED_CAPTION_MIMETYPE)a=b.getTimeNeeded_(a,e),m=Math.min(m,a)});h=this.manifest_.presentationTimeline.getMaxSegmentDuration()*shaka.media.StreamingEngine.MAX_RUN_AHEAD_SEGMENTS_;if(f>=m+h)return 1;a.resumeAt=0;this.fetchAndAppend_(a,e,g,d);return null};
833
- shaka.media.StreamingEngine.prototype.getTimeNeeded_=function(a,b){if(!a.lastStream||!a.lastSegmentReference)return Math.max(b,a.resumeAt);var c=this.findPeriodContainingStream_(a.lastStream);return this.manifest_.periods[c].startTime+a.lastSegmentReference.endTime};
841
+ shaka.media.StreamingEngine.prototype.update_=function(a){var b=this;goog.asserts.assert(this.manifest_,"manifest_ should not be null");goog.asserts.assert(this.config_,"config_ should not be null");var c=shaka.util.ManifestParserUtils.ContentType;if(shaka.media.StreamingEngine.isEmbeddedText_(a))return this.playerInterface_.mediaSourceEngine.setSelectedClosedCaptionId(a.stream.originalId||""),null;var d=shaka.media.StreamingEngine.logPrefix_(a),e=this.playerInterface_.getPresentationTime(),f=this.getTimeNeeded_(a,
842
+ e);shaka.log.v2(d,"timeNeeded="+f);var g=this.findPeriodContainingStream_(a.stream),h=this.findPeriodForTime_(f),k=this.playerInterface_.mediaSourceEngine.bufferedAheadOf(a.type,e);shaka.log.v2(d,"update_:","presentationTime="+e,"bufferedAhead="+k);var l=Math.max(this.manifest_.minBufferTime||0,this.config_.rebufferingGoal,this.config_.bufferingGoal)*this.bufferingGoalScale_;if(f>=this.manifest_.presentationTimeline.getDuration())return shaka.log.debug(d,"buffered to end of presentation"),a.endOfStream=
843
+ !0,a.type==c.VIDEO&&(a=this.mediaStates_.get(c.TEXT))&&a.stream.mimeType==shaka.util.MimeUtils.CLOSED_CAPTION_MIMETYPE&&(a.endOfStream=!0),null;a.endOfStream=!1;a.needPeriodIndex=h;if(h!=g)return shaka.log.debug(d,"need Period "+h,"presentationTime="+e,"timeNeeded="+f,"currentPeriodIndex="+g),null;if(k>=l)return shaka.log.v2(d,"buffering goal met"),.5;c=this.playerInterface_.mediaSourceEngine.bufferEnd(a.type);c=this.getSegmentReferenceNeeded_(a,e,c,g);if(!c)return 1;var m=Infinity;Array.from(this.mediaStates_.values()).forEach(function(a){shaka.media.StreamingEngine.isEmbeddedText_(a)||
844
+ (a=b.getTimeNeeded_(a,e),m=Math.min(m,a))});d=this.manifest_.presentationTimeline.getMaxSegmentDuration()*shaka.media.StreamingEngine.MAX_RUN_AHEAD_SEGMENTS_;if(f>=m+d)return 1;a.resumeAt=0;this.fetchAndAppend_(a,e,g,c);return null};shaka.media.StreamingEngine.prototype.getTimeNeeded_=function(a,b){if(!a.lastStream||!a.lastSegmentReference)return Math.max(b,a.resumeAt);var c=this.findPeriodContainingStream_(a.lastStream);return this.manifest_.periods[c].startTime+a.lastSegmentReference.endTime};
834
845
  shaka.media.StreamingEngine.prototype.getSegmentReferenceNeeded_=function(a,b,c,d){var e=shaka.media.StreamingEngine.logPrefix_(a);if(a.lastSegmentReference&&a.stream==a.lastStream)return c=a.lastSegmentReference.position+1,shaka.log.v2(e,"next position known:","position="+c),this.getSegmentReferenceIfAvailable_(a,d,c);a.lastSegmentReference?(goog.asserts.assert(a.lastStream,"lastStream should not be null"),shaka.log.v1(e,"next position unknown: another Stream buffered"),e=this.findPeriodContainingStream_(a.lastStream),
835
846
  e=this.lookupSegmentPosition_(a,this.manifest_.periods[e].startTime+a.lastSegmentReference.endTime,d)):(goog.asserts.assert(!a.lastStream,"lastStream should be null"),shaka.log.v1(e,"next position unknown: nothing buffered"),e=this.lookupSegmentPosition_(a,c||b,d));if(null==e)return null;b=null;null==c&&(b=this.getSegmentReferenceIfAvailable_(a,d,Math.max(0,e-1)));return b||this.getSegmentReferenceIfAvailable_(a,d,e)};
836
847
  shaka.media.StreamingEngine.prototype.lookupSegmentPosition_=function(a,b,c){var d=shaka.media.StreamingEngine.logPrefix_(a);c=this.manifest_.periods[c];shaka.log.debug(d,"looking up segment:","presentationTime="+b,"currentPeriod.startTime="+c.startTime);b=Math.max(0,b-c.startTime);a=a.stream.findSegmentPosition(b);null==a&&shaka.log.warning(d,"cannot find segment:","currentPeriod.startTime="+c.startTime,"lookupTime="+b);return a};
@@ -855,12 +866,13 @@ shaka.media.StreamingEngine.prototype.evict_=function(a,b){var c=shaka.media.Str
855
866
  shaka.media.StreamingEngine.prototype.handleStartup_=function(a,b){var c=shaka.util.Functional,d=shaka.util.ManifestParserUtils.ContentType;if(!this.startupComplete_){var e=shaka.media.StreamingEngine.logPrefix_(a),f=Array.from(this.mediaStates_.values());if(1!=f.length||f[0].type!=d.TEXT)this.startupComplete_=f.every(function(a){return a.type==d.TEXT?!0:!a.waitingToClearBuffer&&!a.clearingBuffer&&a.lastSegmentReference});if(this.startupComplete_){shaka.log.debug(e,"startup complete");var g=this.findPeriodContainingStream_(b);
856
867
  goog.asserts.assert(f.every(function(a){return a.needPeriodIndex==g||a.needPeriodIndex==g+1}),e+" expected all MediaStates to need same Period");this.canSwitchPeriod_[g]||this.setupPeriod_(g).then(function(){this.destroyed_||(shaka.log.v1(e,"calling onCanSwitch()..."),this.playerInterface_.onCanSwitch())}.bind(this))["catch"](c.noop);for(f=0;f<this.manifest_.periods.length;++f)this.setupPeriod_(f)["catch"](c.noop);this.playerInterface_.onStartupComplete&&(shaka.log.v1(e,"calling onStartupComplete()..."),
857
868
  this.playerInterface_.onStartupComplete())}}};
858
- shaka.media.StreamingEngine.prototype.handlePeriodTransition_=function(a){var b=shaka.util.Functional,c=shaka.media.StreamingEngine.logPrefix_(a),d=shaka.util.ManifestParserUtils.ContentType,e=this.findPeriodContainingStream_(a.stream);if(a.needPeriodIndex!=e){var f=a.needPeriodIndex,g=Array.from(this.mediaStates_.values());goog.asserts.assert(g.every(function(a){return a.needPeriodIndex==f||a.hasError||!shaka.media.StreamingEngine.isIdle_(a)}),"All MediaStates should need the same Period or be performing updates.");g.every(function(a){return a.needPeriodIndex==
859
- f})?g.every(shaka.media.StreamingEngine.isIdle_)?(shaka.log.debug(c,"all need Period "+f),this.setupPeriod_(f).then(function(){if(!this.destroyed_)if(g.every(function(a){var b=shaka.media.StreamingEngine.isIdle_(a),c=this.findPeriodContainingStream_(a.stream);return b&&a.needPeriodIndex==f&&c!=f}.bind(this))){var a=this.manifest_.periods[f];shaka.log.v1(c,"calling onChooseStreams()...");var b=this.playerInterface_.onChooseStreams(a),e=new Map;b.variant&&b.variant.video&&e.set(d.VIDEO,b.variant.video);
860
- b.variant&&b.variant.audio&&e.set(d.AUDIO,b.variant.audio);b.text&&e.set(d.TEXT,b.text);var m=$jscomp.makeIterator(this.mediaStates_.keys());for(b=m.next();!b.done;b=m.next())if(b=b.value,!e.has(b)&&b!=d.TEXT){shaka.log.error(c,"invalid Streams chosen: missing "+b+" Stream");this.playerInterface_.onError(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STREAMING,shaka.util.Error.Code.INVALID_STREAMS_CHOSEN));return}m=$jscomp.makeIterator(Array.from(e.keys()));for(b=
861
- m.next();!b.done;b=m.next())if(b=b.value,!this.mediaStates_.has(b))if(b==d.TEXT)this.initStreams_(null,null,e.get(d.TEXT),a.startTime),e["delete"](b);else{shaka.log.error(c,"invalid Streams chosen: unusable "+b+" Stream");this.playerInterface_.onError(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STREAMING,shaka.util.Error.Code.INVALID_STREAMS_CHOSEN));return}a=$jscomp.makeIterator(Array.from(this.mediaStates_.keys()));for(b=a.next();!b.done;b=a.next())b=b.value,
862
- (m=e.get(b))?(this.switchInternal_(m,!1,0,!1),this.scheduleUpdate_(this.mediaStates_.get(b),0)):(goog.asserts.assert(b==d.TEXT,"Invalid streams chosen"),this.mediaStates_["delete"](b));shaka.log.v1(c,"calling onCanSwitch()...");this.playerInterface_.onCanSwitch()}else shaka.log.debug(c,"ignoring transition to Period",f,"since another is happening")}.bind(this))["catch"](b.noop)):shaka.log.debug(c,"all MediaStates need Period "+f+", but not all MediaStates are idle"):shaka.log.debug(c,"not all MediaStates need Period "+
863
- f)}};shaka.media.StreamingEngine.isIdle_=function(a){return!a.performingUpdate&&null==a.updateTimer&&!a.waitingToClearBuffer&&!a.clearingBuffer};shaka.media.StreamingEngine.prototype.findPeriodForTime_=function(a){return(a=shaka.util.Periods.findPeriodForTime(this.manifest_.periods,a+shaka.util.ManifestParserUtils.GAP_OVERLAP_TOLERANCE_SECONDS))?this.manifest_.periods.indexOf(a):0};
869
+ shaka.media.StreamingEngine.prototype.handlePeriodTransition_=function(a){var b=shaka.util.Functional,c=shaka.media.StreamingEngine.logPrefix_(a),d=shaka.util.ManifestParserUtils.ContentType,e=this.findPeriodContainingStream_(a.stream);if(a.needPeriodIndex!=e){var f=a.needPeriodIndex,g=Array.from(this.mediaStates_.values());goog.asserts.assert(g.every(function(a){return a.needPeriodIndex==f||a.hasError||!shaka.media.StreamingEngine.isIdle_(a)||shaka.media.StreamingEngine.isEmbeddedText_(a)}),"All MediaStates should need the same Period or be performing updates.");
870
+ g.every(function(a){return a.needPeriodIndex==f||shaka.media.StreamingEngine.isEmbeddedText_(a)})?g.every(shaka.media.StreamingEngine.isIdle_)?(shaka.log.debug(c,"all need Period "+f),this.setupPeriod_(f).then(function(){if(!this.destroyed_)if(g.every(function(a){var b=shaka.media.StreamingEngine.isIdle_(a),c=this.findPeriodContainingStream_(a.stream);return shaka.media.StreamingEngine.isEmbeddedText_(a)?!0:b&&a.needPeriodIndex==f&&c!=f}.bind(this))){var a=this.manifest_.periods[f];shaka.log.v1(c,
871
+ "calling onChooseStreams()...");var b=this.playerInterface_.onChooseStreams(a),e=new Map;b.variant&&b.variant.video&&e.set(d.VIDEO,b.variant.video);b.variant&&b.variant.audio&&e.set(d.AUDIO,b.variant.audio);b.text&&e.set(d.TEXT,b.text);var m=$jscomp.makeIterator(this.mediaStates_.keys());for(b=m.next();!b.done;b=m.next())if(b=b.value,!e.has(b)&&b!=d.TEXT){shaka.log.error(c,"invalid Streams chosen: missing "+b+" Stream");this.playerInterface_.onError(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
872
+ shaka.util.Error.Category.STREAMING,shaka.util.Error.Code.INVALID_STREAMS_CHOSEN));return}m=$jscomp.makeIterator(Array.from(e.keys()));for(b=m.next();!b.done;b=m.next())if(b=b.value,!this.mediaStates_.has(b))if(b==d.TEXT)this.initStreams_(null,null,e.get(d.TEXT),a.startTime),e["delete"](b);else{shaka.log.error(c,"invalid Streams chosen: unusable "+b+" Stream");this.playerInterface_.onError(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STREAMING,shaka.util.Error.Code.INVALID_STREAMS_CHOSEN));
873
+ return}a=$jscomp.makeIterator(Array.from(this.mediaStates_.keys()));for(b=a.next();!b.done;b=a.next())b=b.value,(m=e.get(b))?(this.switchInternal_(m,!1,0,!1),this.scheduleUpdate_(this.mediaStates_.get(b),0)):(goog.asserts.assert(b==d.TEXT,"Invalid streams chosen"),this.mediaStates_["delete"](b));shaka.log.v1(c,"calling onCanSwitch()...");this.playerInterface_.onCanSwitch()}else shaka.log.debug(c,"ignoring transition to Period",f,"since another is happening")}.bind(this))["catch"](b.noop)):shaka.log.debug(c,
874
+ "all MediaStates need Period "+f+", but not all MediaStates are idle"):shaka.log.debug(c,"not all MediaStates need Period "+f)}};shaka.media.StreamingEngine.isEmbeddedText_=function(a){var b=shaka.util.MimeUtils;return a.type==shaka.util.ManifestParserUtils.ContentType.TEXT&&a.stream.mimeType==b.CLOSED_CAPTION_MIMETYPE};shaka.media.StreamingEngine.isIdle_=function(a){return!a.performingUpdate&&null==a.updateTimer&&!a.waitingToClearBuffer&&!a.clearingBuffer};
875
+ shaka.media.StreamingEngine.prototype.findPeriodForTime_=function(a){return(a=shaka.util.Periods.findPeriodForTime(this.manifest_.periods,a+shaka.util.ManifestParserUtils.GAP_OVERLAP_TOLERANCE_SECONDS))?this.manifest_.periods.indexOf(a):0};
864
876
  shaka.media.StreamingEngine.prototype.findPeriodContainingStream_=function(a){goog.asserts.assert(this.manifest_,"Must have a manifest to find a stream.");for(var b=this.manifest_.periods,c=0;c<b.length;c++){for(var d=b[c],e=new Set,f=$jscomp.makeIterator(d.variants),g=f.next();!g.done;g=f.next())g=g.value,g.audio&&e.add(g.audio),g.video&&e.add(g.video),g.video&&g.video.trickModeVideo&&e.add(g.video.trickModeVideo);d=$jscomp.makeIterator(d.textStreams);for(f=d.next();!f.done;f=d.next())e.add(f.value);
865
877
  if(e.has(a))return c}return-1};shaka.media.StreamingEngine.prototype.fetch_=function(a,b){var c=shaka.net.NetworkingEngine.RequestType.SEGMENT,d=shaka.util.Networking.createSegmentRequest(b.getUris(),b.startByte,b.endByte,this.config_.retryParameters);shaka.log.v2("fetching: reference=",b);c=this.playerInterface_.netEngine.request(c,d);a.operation=c;return c.promise.then(function(b){a.operation=null;return b.data})};
866
878
  shaka.media.StreamingEngine.prototype.clearBuffer_=function(a,b,c){var d=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function f(){var g,h,k,l;return $jscomp.generator.createGenerator(f,function(f){switch(f.nextAddress){case 1:return g=shaka.media.StreamingEngine.logPrefix_(a),goog.asserts.assert(!a.performingUpdate&&null==a.updateTimer,g+" unexpected call to clearBuffer_()"),a.waitingToClearBuffer=!1,a.waitingToFlushBuffer=!1,a.clearBufferSafeMargin=0,a.clearingBuffer=!0,shaka.log.debug(g,
@@ -871,13 +883,13 @@ shaka.media.StreamingEngine.prototype.scheduleUpdate_=function(a,b){var c=this,d
871
883
  shaka.media.StreamingEngine.logPrefix_=function(a){return"("+a.type+":"+a.stream.id+")"};shaka.net.HttpPluginUtils={};
872
884
  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,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(a,b,c,d){var e=new shaka.net.HttpFetchPlugin.Headers_;shaka.util.MapUtils.asMap(b.headers).forEach(function(a,b){e.append(b,a)});var f=new shaka.net.HttpFetchPlugin.AbortController_,g={canceled:!1,timedOut:!1};a=shaka.net.HttpFetchPlugin.request_(a,c,{body:b.body||void 0,headers:e,method:b.method,signal:f.signal,credentials:b.allowCrossSiteCredentials?"include":void 0},g,d);a=new shaka.util.AbortableOperation(a,function(){g.canceled=!0;f.abort();return Promise.resolve()});
873
885
  if(b=b.retryParameters.timeout){var h=new shaka.util.Timer(function(){g.timedOut=!0;f.abort()});h.tickAfter(b/1E3);a["finally"](function(){h.stop()})}return a};goog.exportSymbol("shaka.net.HttpFetchPlugin",shaka.net.HttpFetchPlugin);
874
- shaka.net.HttpFetchPlugin.request_=function(a,b,c,d,e){return $jscomp.asyncExecutePromiseGeneratorFunction(function g(){var h,k,l,m,n,p,q,t,r,u,w,x,v,B;return $jscomp.generator.createGenerator(g,function(g){switch(g.nextAddress){case 1:return h=shaka.net.HttpFetchPlugin.fetch_,k=shaka.net.HttpFetchPlugin.ReadableStream_,p=n=0,q=Date.now(),g.setCatchFinallyBlocks(2),g.yield(h(a,c),4);case 4:return l=g.yieldResult,t=l.clone().body.getReader(),u=(r=l.headers.get("Content-Length"))?parseInt(r,10):0,w=
875
- function(a){var b=function(){return $jscomp.asyncExecutePromiseGeneratorFunction(function z(){var c,d,g;return $jscomp.generator.createGenerator(z,function(h){switch(h.nextAddress){case 1:return h.setCatchFinallyBlocks(2),h.yield(t.read(),4);case 4:c=h.yieldResult;h.leaveTryBlock(3);break;case 2:return d=h.enterCatchBlock(),shaka.log.v1("error reading from stream",d.message),h["return"]();case 3:c.done||(n+=c.value.byteLength);g=Date.now();if(100<g-q||c.done)e(g-q,n-p,u-n),p=n,q=g;c.done?(goog.asserts.assert(!c.value,
876
- 'readObj should be unset when "done" is true.'),a.close()):(a.enqueue(c.value),b());h.jumpToEnd()}})})};b()},new k({start:w}),g.yield(l.arrayBuffer(),5);case 5:m=g.yieldResult;g.leaveTryBlock(3);break;case 2:x=g.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);if(d.timedOut)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,
877
- 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,x,b);case 3:return v={},B=l.headers,B.forEach(function(a,b){v[b.trim()]=a}),g["return"](shaka.net.HttpPluginUtils.makeResponse(v,m,l.status,a,l.url,b))}})})};shaka.net.HttpFetchPlugin.isSupported=function(){if(window.ReadableStream)try{new ReadableStream({})}catch(a){return!1}else return!1;return!(!window.fetch||!window.AbortController)};
886
+ shaka.net.HttpFetchPlugin.request_=function(a,b,c,d,e){return $jscomp.asyncExecutePromiseGeneratorFunction(function g(){var h,k,l,m,n,p,q,t,r,u,v,x,w,z;return $jscomp.generator.createGenerator(g,function(g){switch(g.nextAddress){case 1:return h=shaka.net.HttpFetchPlugin.fetch_,k=shaka.net.HttpFetchPlugin.ReadableStream_,p=n=0,q=Date.now(),g.setCatchFinallyBlocks(2),g.yield(h(a,c),4);case 4:return l=g.yieldResult,t=l.clone().body.getReader(),u=(r=l.headers.get("Content-Length"))?parseInt(r,10):0,v=
887
+ function(a){var b=function(){return $jscomp.asyncExecutePromiseGeneratorFunction(function A(){var c,d,g;return $jscomp.generator.createGenerator(A,function(h){switch(h.nextAddress){case 1:return h.setCatchFinallyBlocks(2),h.yield(t.read(),4);case 4:c=h.yieldResult;h.leaveTryBlock(3);break;case 2:return d=h.enterCatchBlock(),shaka.log.v1("error reading from stream",d.message),h["return"]();case 3:c.done||(n+=c.value.byteLength);g=Date.now();if(100<g-q||c.done)e(g-q,n-p,u-n),p=n,q=g;c.done?(goog.asserts.assert(!c.value,
888
+ 'readObj should be unset when "done" is true.'),a.close()):(a.enqueue(c.value),b());h.jumpToEnd()}})})};b()},new k({start:v}),g.yield(l.arrayBuffer(),5);case 5:m=g.yieldResult;g.leaveTryBlock(3);break;case 2:x=g.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);if(d.timedOut)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,
889
+ 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,x,b);case 3:return w={},z=l.headers,z.forEach(function(a,b){w[b.trim()]=a}),g["return"](shaka.net.HttpPluginUtils.makeResponse(w,m,l.status,a,l.url,b))}})})};shaka.net.HttpFetchPlugin.isSupported=function(){if(window.ReadableStream)try{new ReadableStream({})}catch(a){return!1}else return!1;return!(!window.fetch||!window.AbortController)};
878
890
  goog.exportProperty(shaka.net.HttpFetchPlugin,"isSupported",shaka.net.HttpFetchPlugin.isSupported);shaka.net.HttpFetchPlugin.fetch_=window.fetch;shaka.net.HttpFetchPlugin.AbortController_=window.AbortController;shaka.net.HttpFetchPlugin.ReadableStream_=window.ReadableStream;shaka.net.HttpFetchPlugin.Headers_=window.Headers;
879
891
  shaka.net.HttpFetchPlugin.isSupported()&&(shaka.net.NetworkingEngine.registerScheme("http",shaka.net.HttpFetchPlugin,shaka.net.NetworkingEngine.PluginPriority.PREFERRED),shaka.net.NetworkingEngine.registerScheme("https",shaka.net.HttpFetchPlugin,shaka.net.NetworkingEngine.PluginPriority.PREFERRED));shaka.net.HttpXHRPlugin=function(a,b,c,d){var e=new shaka.net.HttpXHRPlugin.Xhr_,f=Date.now(),g=0,h=new Promise(function(h,l){e.open(b.method,a,!0);e.responseType="arraybuffer";e.timeout=b.retryParameters.timeout;e.withCredentials=b.allowCrossSiteCredentials;e.onabort=function(){l(new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.OPERATION_ABORTED,a,c))};e.onload=function(b){b=b.target;goog.asserts.assert(b,"XHR onload has no target!");
880
- var d=b.getAllResponseHeaders().trim().split("\r\n"),e={};d=$jscomp.makeIterator(d);for(var f=d.next();!f.done;f=d.next())f=f.value.split(": "),e[f[0].toLowerCase()]=f.slice(1).join(": ");try{var g=shaka.net.HttpPluginUtils.makeResponse(e,b.response,b.status,a,b.responseURL,c);h(g)}catch(w){goog.asserts.assert(w instanceof shaka.util.Error,"Wrong error type!"),l(w)}};e.onerror=function(b){l(new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.HTTP_ERROR,
892
+ var d=b.getAllResponseHeaders().trim().split("\r\n"),e={};d=$jscomp.makeIterator(d);for(var f=d.next();!f.done;f=d.next())f=f.value.split(": "),e[f[0].toLowerCase()]=f.slice(1).join(": ");try{var g=shaka.net.HttpPluginUtils.makeResponse(e,b.response,b.status,a,b.responseURL,c);h(g)}catch(v){goog.asserts.assert(v instanceof shaka.util.Error,"Wrong error type!"),l(v)}};e.onerror=function(b){l(new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.HTTP_ERROR,
881
893
  a,b,c))};e.ontimeout=function(b){l(new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.TIMEOUT,a,c))};e.onprogress=function(a){var b=Date.now();if(100<b-f||a.lengthComputable&&a.loaded==a.total)d(b-f,a.loaded-g,a.total-a.loaded),g=a.loaded,f=b};for(var k in b.headers){var n=k.toLowerCase();e.setRequestHeader(n,b.headers[k])}e.send(b.body)});return new shaka.util.AbortableOperation(h,function(){e.abort();return Promise.resolve()})};
882
894
  goog.exportSymbol("shaka.net.HttpXHRPlugin",shaka.net.HttpXHRPlugin);shaka.net.HttpXHRPlugin.Xhr_=window.XMLHttpRequest;shaka.net.NetworkingEngine.registerScheme("http",shaka.net.HttpXHRPlugin,shaka.net.NetworkingEngine.PluginPriority.FALLBACK);shaka.net.NetworkingEngine.registerScheme("https",shaka.net.HttpXHRPlugin,shaka.net.NetworkingEngine.PluginPriority.FALLBACK);shaka.offline={};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};
883
895
  shaka.offline.DownloadProgressEstimator.prototype.close=function(a,b){if(this.pending_.has(a)){var c=this.pending_.get(a);this.pending_["delete"](a);this.estimatedDownloaded_+=c;this.actualDownloaded_+=b}};shaka.offline.DownloadProgressEstimator.prototype.getEstimatedProgress=function(){return 0==this.estimatedTotal_?0:this.estimatedDownloaded_/this.estimatedTotal_};shaka.offline.DownloadProgressEstimator.prototype.getTotalDownloaded=function(){return this.actualDownloaded_};shaka.offline.DownloadManager=function(a,b){this.networkingEngine_=a;this.groups_=new Map;this.destroyed_=!1;this.onProgress_=b;this.estimator_=new shaka.offline.DownloadProgressEstimator};shaka.offline.DownloadManager.prototype.destroy=function(){this.destroyed_=!0;return Promise.all(this.groups_.values()).then(function(){},function(){})};
@@ -983,10 +995,10 @@ shaka.text.SimpleTextDisplayer.TextTrackLabel_="Shaka Player TextTrack";shaka.ut
983
995
  shaka.util.ConfigUtils.mergeConfigObjects=function(a,b,c,d,e){goog.asserts.assert(a,"Destination config must not be null!");var f=e in d,g=!0,h;for(h in b){var k=e+"."+h,l=f?d[e]:c[h];f||h in c?void 0===b[h]?void 0===l||f?delete a[h]:a[h]=shaka.util.ObjectUtils.cloneObject(l):l.constructor==Object&&b[h]&&b[h].constructor==Object?(a[h]||(a[h]=shaka.util.ObjectUtils.cloneObject(l)),k=shaka.util.ConfigUtils.mergeConfigObjects(a[h],b[h],l,d,k),g=g&&k):typeof b[h]!=typeof l||null==b[h]||b[h].constructor!=
984
996
  l.constructor?(shaka.log.error("Invalid config, wrong type for "+k),g=!1):("function"==typeof c[h]&&c[h].length!=b[h].length&&shaka.log.warning("Invalid config, wrong number of arguments for "+k),a[h]=b[h]):(shaka.log.error("Invalid config, unrecognized key "+k),g=!1)}return g};goog.exportSymbol("shaka.util.ConfigUtils.mergeConfigObjects",shaka.util.ConfigUtils.mergeConfigObjects);
985
997
  shaka.util.ConfigUtils.convertToConfigObject=function(a,b){for(var c={},d=c,e=0,f=0;;){e=a.indexOf(".",e);if(0>e)break;if(0==e||"\\"!=a[e-1])f=a.substring(f,e).replace(/\\\./g,"."),d[f]={},d=d[f],f=e+1;e+=1}d[a.substring(f).replace(/\\\./g,".")]=b;return c};goog.exportSymbol("shaka.util.ConfigUtils.convertToConfigObject",shaka.util.ConfigUtils.convertToConfigObject);shaka.util.PlayerConfiguration=function(){};goog.exportSymbol("shaka.util.PlayerConfiguration",shaka.util.PlayerConfiguration);
986
- shaka.util.PlayerConfiguration.createDefault=function(){var a=5E5,b=Infinity;navigator.connection&&(a=1E6*navigator.connection.downlink,navigator.connection.saveData&&(b=360));var c={retryParameters:shaka.net.NetworkingEngine.defaultRetryParameters(),servers:{},clearKeys:{},advanced:{},delayLicenseRequestUntilPlayed:!1},d={retryParameters:shaka.net.NetworkingEngine.defaultRetryParameters(),availabilityWindowOverride:NaN,dash:{customScheme:function(a){if(a)return null},clockSyncUri:"",ignoreDrmInfo:!1,
987
- xlinkFailGracefully:!1,defaultPresentationDelay:10,ignoreMinBufferTime:!1,autoCorrectDrift:!0}},e={retryParameters:shaka.net.NetworkingEngine.defaultRetryParameters(),failureCallback:function(a){shaka.log.error("Unhandled streaming error",a)},rebufferingGoal:2,bufferingGoal:10,bufferBehind:30,ignoreTextStreamFailures:!1,alwaysStreamText:!1,startAtSegmentBoundary:!1,smallGapLimit:.5,jumpLargeGaps:!1,durationBackoff:1,forceTransmuxTS:!1,safeSeekOffset:5,stallEnabled:!0,stallThreshold:1,stallSkip:.1};
988
- shaka.util.Platform.isWebOS()&&(e.stallEnabled=!1);var f={trackSelectionCallback:function(a){return a},progressCallback:function(a,b){shaka.log.v2("Offline operation on",a.originalManifestUri,"progress at",b)},usePersistentLicense:!0},g={drm:c,manifest:d,streaming:e,offline:f,abrFactory:shaka.abr.SimpleAbrManager,abr:{enabled:!0,defaultBandwidthEstimate:a,switchInterval:8,bandwidthUpgradeTarget:.85,bandwidthDowngradeTarget:.95,restrictions:{minWidth:0,maxWidth:Infinity,minHeight:0,maxHeight:b,minPixels:0,
989
- maxPixels:Infinity,minBandwidth:0,maxBandwidth:Infinity}},preferredAudioLanguage:"",preferredTextLanguage:"",preferredVariantRole:"",preferredTextRole:"",preferredAudioChannelCount:2,restrictions:{minWidth:0,maxWidth:Infinity,minHeight:0,maxHeight:Infinity,minPixels:0,maxPixels:Infinity,minBandwidth:0,maxBandwidth:Infinity},playRangeStart:0,playRangeEnd:Infinity,textDisplayFactory:function(){return null}};f.trackSelectionCallback=function(a){return shaka.util.PlayerConfiguration.defaultTrackSelect(a,
998
+ shaka.util.PlayerConfiguration.createDefault=function(){var a=5E5,b=Infinity;navigator.connection&&(a=1E6*navigator.connection.downlink,navigator.connection.saveData&&(b=360));var c={retryParameters:shaka.net.NetworkingEngine.defaultRetryParameters(),servers:{},clearKeys:{},advanced:{},delayLicenseRequestUntilPlayed:!1,initDataTransform:function(a){return a},fairPlayTransform:!0},d={retryParameters:shaka.net.NetworkingEngine.defaultRetryParameters(),availabilityWindowOverride:NaN,dash:{customScheme:function(a){if(a)return null},
999
+ clockSyncUri:"",ignoreDrmInfo:!1,xlinkFailGracefully:!1,defaultPresentationDelay:10,ignoreMinBufferTime:!1,autoCorrectDrift:!0},hls:{ignoreTextStreamFailures:!1}},e={retryParameters:shaka.net.NetworkingEngine.defaultRetryParameters(),failureCallback:function(a){shaka.log.error("Unhandled streaming error",a)},rebufferingGoal:2,bufferingGoal:10,bufferBehind:30,ignoreTextStreamFailures:!1,alwaysStreamText:!1,startAtSegmentBoundary:!1,smallGapLimit:.5,jumpLargeGaps:!1,durationBackoff:1,forceTransmuxTS:!1,
1000
+ safeSeekOffset:5,stallEnabled:!0,stallThreshold:1,stallSkip:.1};shaka.util.Platform.isWebOS()&&(e.stallEnabled=!1);var f={trackSelectionCallback:function(a){return a},progressCallback:function(a,b){shaka.log.v2("Offline operation on",a.originalManifestUri,"progress at",b)},usePersistentLicense:!0},g={drm:c,manifest:d,streaming:e,offline:f,abrFactory:shaka.abr.SimpleAbrManager,abr:{enabled:!0,defaultBandwidthEstimate:a,switchInterval:8,bandwidthUpgradeTarget:.85,bandwidthDowngradeTarget:.95,restrictions:{minWidth:0,
1001
+ maxWidth:Infinity,minHeight:0,maxHeight:b,minPixels:0,maxPixels:Infinity,minBandwidth:0,maxBandwidth:Infinity}},preferredAudioLanguage:"",preferredTextLanguage:"",preferredVariantRole:"",preferredTextRole:"",preferredAudioChannelCount:2,restrictions:{minWidth:0,maxWidth:Infinity,minHeight:0,maxHeight:Infinity,minPixels:0,maxPixels:Infinity,minBandwidth:0,maxBandwidth:Infinity},playRangeStart:0,playRangeEnd:Infinity,textDisplayFactory:function(){return null}};f.trackSelectionCallback=function(a){return shaka.util.PlayerConfiguration.defaultTrackSelect(a,
990
1002
  g.preferredAudioLanguage)};return g};shaka.util.PlayerConfiguration.mergeConfigObjects=function(a,b,c){var d={".drm.servers":"",".drm.clearKeys":"",".drm.advanced":{distinctiveIdentifierRequired:!1,persistentStateRequired:!1,videoRobustness:"",audioRobustness:"",serverCertificate:new Uint8Array(0),individualizationServer:""}};return shaka.util.ConfigUtils.mergeConfigObjects(a,b,c||shaka.util.PlayerConfiguration.createDefault(),d,"")};
991
1003
  goog.exportProperty(shaka.util.PlayerConfiguration,"mergeConfigObjects",shaka.util.PlayerConfiguration.mergeConfigObjects);
992
1004
  shaka.util.PlayerConfiguration.defaultTrackSelect=function(a,b){var c=shaka.util.ManifestParserUtils.ContentType,d=shaka.util.LanguageUtils,e=a.filter(function(a){return"variant"==a.type}),f=[],g=d.findClosestLocale(b,e.map(function(a){return a.language}));g&&(f=e.filter(function(a){return d.normalize(a.language)==g}));0==f.length&&(f=e.filter(function(a){return a.primary}));0==f.length&&(1<(new Set(e.map(function(a){return a.language}))).size&&shaka.log.warning("Could not choose a good audio track based on language preferences or primary tracks. An arbitrary language will be stored!"),
@@ -1006,7 +1018,7 @@ b){return c.onSrcEquals_(a,b)});this.walker_=new shaka.routing.Walker(this.detac
1006
1018
  b instanceof shaka.util.Error?shaka.log.warning("Error Code:",b.code):(shaka.log.warning("Error Message:",b.message),shaka.log.warning("Error Stack:",b.stack)),d.yield(c.onUnload_(a,c.createEmptyPayload_()),2);case 2:return d["return"](a.mediaElement?c.attachNode_:c.detachNode_)}})})},onIdle:function(a){c.dispatchEvent(new shaka.util.FakeEvent("onstateidle",{state:a.name}))}});a&&this.attach(a,!0)};goog.inherits(shaka.Player,shaka.util.FakeEventTarget);goog.exportSymbol("shaka.Player",shaka.Player);
1007
1019
  shaka.Player.prototype.destroy=function(){var a=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function c(){var d;return $jscomp.generator.createGenerator(c,function(c){switch(c.nextAddress){case 1:if(a.loadMode_==shaka.Player.LoadMode.DESTROYED)return c["return"]();a.loadMode_=shaka.Player.LoadMode.DESTROYED;d=a.walker_.startNewRoute(function(c){return{node:a.detachNode_,payload:a.createEmptyPayload_(),interruptible:!1}});return c.yield(new Promise(function(a){d.onStart=function(){shaka.log.info("Preparing to destroy walker...")};
1008
1020
  d.onEnd=function(){a()};d.onCancel=function(){goog.asserts.assert(!1,"Our final detach call should never be cancelled.");a()};d.onError=function(){goog.asserts.assert(!1,"Our final detach call should never see an error");a()};d.onSkip=function(){goog.asserts.assert(!1,"Our final detach call should never be skipped");a()}}),2);case 2:return c.yield(a.walker_.destroy(),3);case 3:a.eventManager_&&(a.eventManager_.release(),a.eventManager_=null);a.abrManagerFactory_=null;a.abrManager_=null;a.config_=
1009
- null;if(!a.networkingEngine_){c.jumpTo(0);break}return c.yield(a.networkingEngine_.destroy(),5);case 5:a.networkingEngine_=null,c.jumpToEnd()}})})};goog.exportProperty(shaka.Player.prototype,"destroy",shaka.Player.prototype.destroy);shaka.Player.version="v2.5.4-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_={};
1021
+ null;if(!a.networkingEngine_){c.jumpTo(0);break}return c.yield(a.networkingEngine_.destroy(),5);case 5:a.networkingEngine_=null,c.jumpToEnd()}})})};goog.exportProperty(shaka.Player.prototype,"destroy",shaka.Player.prototype.destroy);shaka.Player.version="v2.5.5-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_={};
1010
1022
  shaka.Player.registerSupportPlugin=function(a,b){shaka.Player.supportPlugins_[a]=b};goog.exportProperty(shaka.Player,"registerSupportPlugin",shaka.Player.registerSupportPlugin);shaka.Player.isBrowserSupported=function(){return window.Promise&&window.Uint8Array&&Array.prototype.forEach&&shaka.media.DrmEngine.isBrowserSupported()?shaka.util.Platform.supportsMediaSource()?!0:shaka.util.Platform.supportsMediaType("application/x-mpegurl"):!1};goog.exportProperty(shaka.Player,"isBrowserSupported",shaka.Player.isBrowserSupported);
1011
1023
  shaka.Player.probeSupport=function(){goog.asserts.assert(shaka.Player.isBrowserSupported(),"Must have basic support");return shaka.media.DrmEngine.probeSupport().then(function(a){var b=shaka.media.ManifestParser.probeSupport(),c=shaka.media.MediaSourceEngine.probeSupport();a={manifest:b,media:c,drm:a};b=shaka.Player.supportPlugins_;for(var d in b)a[d]=b[d]();return a})};goog.exportProperty(shaka.Player,"probeSupport",shaka.Player.probeSupport);
1012
1024
  shaka.Player.prototype.attach=function(a,b){b=void 0===b?!0:b;if(this.loadMode_==shaka.Player.LoadMode.DESTROYED)return Promise.reject(this.createAbortLoadError_());var c=this.createEmptyPayload_();c.mediaElement=a;shaka.util.Platform.supportsMediaSource()||(b=!1);var d=b?this.mediaSourceNode_:this.attachNode_,e=this.walker_.startNewRoute(function(a){return{node:d,payload:c,interruptible:!1}});e.onStart=function(){return shaka.log.info("Starting attach...")};return this.wrapWalkerListenersWithPromise_(e)};
@@ -1042,7 +1054,7 @@ goog.asserts.assert(a.mediaElement,"We should have a media element when loading.
1042
1054
  k),l=c.config_.abrFactory,c.abrManager_&&c.abrManagerFactory_==l||(c.abrManagerFactory_=l,c.abrManager_=new l,c.abrManager_.configure(c.config_.abr)),c.createTextStreamsForClosedCaptions_(c.manifest_.periods),c.currentAdaptationSetCriteria_=new shaka.media.PreferenceBasedCriteria(c.config_.preferredAudioLanguage,c.config_.preferredVariantRole,c.config_.preferredAudioChannelCount),c.currentTextLanguage_=c.config_.preferredTextLanguage,shaka.Player.applyPlayRange_(c.manifest_.presentationTimeline,c.config_.playRangeStart,
1043
1055
  c.config_.playRangeEnd),e.yield(c.drmEngine_.attach(f),2);case 2:return c.abrManager_.init(function(a,b,e){return c.switch_(a,b,e)}),c.playhead_=c.createPlayhead(a.startTime),c.playheadObservers_=c.createPlayheadObserversForMSE_(),c.playRateController_=new shaka.media.PlayRateController({getRate:function(){return a.mediaElement.playbackRate},setRate:function(b){a.mediaElement.playbackRate=b},movePlayhead:function(b){a.mediaElement.currentTime+=b}}),m=Math.max(c.manifest_.minBufferTime,c.config_.streaming.rebufferingGoal),
1044
1056
  c.startBufferManagement_(m),c.streamingEngine_=c.createStreamingEngine(),c.streamingEngine_.configure(c.config_.streaming),c.chooseCodecsAndFilterManifest_(),c.loadMode_=shaka.Player.LoadMode.MEDIA_SOURCE,c.dispatchEvent(new shaka.util.FakeEvent("streaming")),e.yield(c.streamingEngine_.start(),3);case 3:c.config_.streaming.startAtSegmentBoundary&&(n=c.playhead_.getTime(),p=c.adjustStartTime_(n),c.playhead_.setStartTime(p)),c.manifest_.periods.forEach(c.filterNewPeriod_.bind(c)),c.onTracksChanged_(),
1045
- c.onAdaptation_(),q=c.getPresentationPeriod_(),t=q.variants.some(function(a){return a.primary}),c.config_.preferredAudioLanguage||t||shaka.log.warning("No preferred audio language set. We will choose an arbitrary language initially"),c.chooseVariant_(q.variants),c.eventManager_.listenOnce(f,"loadeddata",function(){var a=Date.now()/1E3-b.startTimeOfLoad;c.stats_.setLoadLatency(a)}),e.jumpToEnd()}})})};
1057
+ c.onAdaptation_(),q=c.getPresentationPeriod_()||c.manifest_.periods[0],t=q.variants.some(function(a){return a.primary}),c.config_.preferredAudioLanguage||t||shaka.log.warning("No preferred audio language set. We will choose an arbitrary language initially"),c.chooseVariant_(q.variants),c.eventManager_.listenOnce(f,"loadeddata",function(){var a=Date.now()/1E3-b.startTimeOfLoad;c.stats_.setLoadLatency(a)}),e.jumpToEnd()}})})};
1046
1058
  shaka.Player.prototype.onInitializeSrcEqualsDrm_=function(a,b){var c=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function e(){var b,g;return $jscomp.generator.createGenerator(e,function(e){switch(e.nextAddress){case 1:return b=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|"),c.drmEngine_=
1047
1059
  c.createDrmEngine({netEngine:c.networkingEngine_,onError:function(a){c.onError_(a)},onKeyStatus:function(a){c.onKeyStatus_(a)},onExpirationUpdated:function(a,b){c.onExpirationUpdated_(a,b)},onEvent:function(a){c.dispatchEvent(a)}}),c.drmEngine_.configure(c.config_.drm),g={id:0,language:"und",primary:!1,audio:null,video:{id:0,originalId:null,createSegmentIndex:Promise.resolve.bind(Promise),findSegmentPosition:function(a){return null},getSegmentReference:function(a){return null},initSegmentReference:null,
1048
1060
  presentationTimeOffset:0,mimeType:"video/mp4",codecs:"",encrypted:!0,keyId:null,language:"und",label:null,type:b.VIDEO,primary:!1,trickModeVideo:null,emsgSchemeIdUris:null,roles:[],channelsCount:null,closedCaptions:null},bandwidth:100,drmInfos:[],allowedByApplication:!0,allowedByKeySystem:!0},e.yield(c.drmEngine_.initForPlayback([g],[]),2);case 2:return e.yield(c.drmEngine_.attach(a.mediaElement),0)}})})};
@@ -1107,10 +1119,10 @@ return null};goog.exportProperty(shaka.Player.prototype,"getPresentationStartTim
1107
1119
  goog.exportProperty(shaka.Player.prototype,"getBufferedInfo",shaka.Player.prototype.getBufferedInfo);
1108
1120
  shaka.Player.prototype.getStats=function(){if(this.loadMode_!=shaka.Player.LoadMode.MEDIA_SOURCE&&this.loadMode_!=shaka.Player.LoadMode.SRC_EQUALS)return shaka.util.Stats.getEmptyBlob();this.updateStateHistory_();goog.asserts.assert(this.video_,"If we have stats, we should have video_");var a=this.video_;a.getVideoPlaybackQuality&&(a=a.getVideoPlaybackQuality(),this.stats_.setDroppedFrames(Number(a.droppedVideoFrames),Number(a.totalVideoFrames)));this.loadMode_==shaka.Player.LoadMode.MEDIA_SOURCE&&
1109
1121
  ((a=this.getPresentationVariant_())&&this.stats_.setVariantBandwidth(a.bandwidth),a&&a.video&&this.stats_.setResolution(a.video.width||NaN,a.video.height||NaN),a=this.abrManager_.getBandwidthEstimate(),this.stats_.setBandwidthEstimate(a));return this.stats_.getBlob()};goog.exportProperty(shaka.Player.prototype,"getStats",shaka.Player.prototype.getStats);
1110
- shaka.Player.prototype.addTextTrack=function(a,b,c,d,e,f){var g=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function k(){var l,m,n,p,q,t,r,u,w;return $jscomp.generator.createGenerator(k,function(k){switch(k.nextAddress){case 1:if(g.loadMode_==shaka.Player.LoadMode.SRC_EQUALS)throw shaka.log.error("Cannot add text when loaded with src="),Error("State error!");if(g.loadMode_!=shaka.Player.LoadMode.MEDIA_SOURCE)throw shaka.log.error("Must call load() and wait for it to resolve before adding text tracks."),
1122
+ shaka.Player.prototype.addTextTrack=function(a,b,c,d,e,f){var g=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function k(){var l,m,n,p,q,t,r,u,v;return $jscomp.generator.createGenerator(k,function(k){switch(k.nextAddress){case 1:if(g.loadMode_==shaka.Player.LoadMode.SRC_EQUALS)throw shaka.log.error("Cannot add text when loaded with src="),Error("State error!");if(g.loadMode_!=shaka.Player.LoadMode.MEDIA_SOURCE)throw shaka.log.error("Must call load() and wait for it to resolve before adding text tracks."),
1111
1123
  Error("State error!");l=g.getPresentationPeriod_();m=shaka.util.ManifestParserUtils.ContentType;n=g.manifest_.periods.indexOf(l);p=n+1;q=p>=g.manifest_.periods.length?g.manifest_.presentationTimeline.getDuration():g.manifest_.periods[p].startTime;t=q-l.startTime;if(Infinity==t)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);r=new shaka.media.SegmentReference(1,0,t,function(){return[a]},
1112
1124
  0,null);u={id:g.nextExternalStreamId_++,originalId:null,createSegmentIndex:Promise.resolve.bind(Promise),findSegmentPosition:function(a){return 1},getSegmentReference:function(a){return 1==a?r:null},initSegmentReference:null,presentationTimeOffset:0,mimeType:d,codecs:e||"",kind:c,encrypted:!1,keyId:null,language:b,label:f||null,type:m.TEXT,primary:!1,trickModeVideo:null,emsgSchemeIdUris:null,roles:[],channelsCount:null,closedCaptions:null};g.loadingTextStreams_.add(u);l.textStreams.push(u);return k.yield(g.streamingEngine_.loadNewTextStream(u),
1113
- 2);case 2:return goog.asserts.assert(l,"The period should still be non-null here."),(w=g.streamingEngine_.getBufferingText())&&g.activeStreams_.useText(l,w),g.loadingTextStreams_["delete"](u),shaka.log.debug("Choosing new streams after adding a text stream"),g.chooseStreamsAndSwitch_(l),g.onTracksChanged_(),k["return"](shaka.util.StreamUtils.textStreamToTrack(u))}})})};goog.exportProperty(shaka.Player.prototype,"addTextTrack",shaka.Player.prototype.addTextTrack);
1125
+ 2);case 2:return goog.asserts.assert(l,"The period should still be non-null here."),(v=g.streamingEngine_.getBufferingText())&&g.activeStreams_.useText(l,v),g.loadingTextStreams_["delete"](u),shaka.log.debug("Choosing new streams after adding a text stream"),g.chooseStreamsAndSwitch_(l),g.onTracksChanged_(),k["return"](shaka.util.StreamUtils.textStreamToTrack(u))}})})};goog.exportProperty(shaka.Player.prototype,"addTextTrack",shaka.Player.prototype.addTextTrack);
1114
1126
  shaka.Player.prototype.setMaxHardwareResolution=function(a,b){this.maxHwRes_.width=a;this.maxHwRes_.height=b};goog.exportProperty(shaka.Player.prototype,"setMaxHardwareResolution",shaka.Player.prototype.setMaxHardwareResolution);shaka.Player.prototype.retryStreaming=function(){return this.loadMode_==shaka.Player.LoadMode.MEDIA_SOURCE?this.streamingEngine_.retry():!1};goog.exportProperty(shaka.Player.prototype,"retryStreaming",shaka.Player.prototype.retryStreaming);
1115
1127
  shaka.Player.prototype.getManifest=function(){return this.manifest_};goog.exportProperty(shaka.Player.prototype,"getManifest",shaka.Player.prototype.getManifest);shaka.Player.prototype.getManifestParserFactory=function(){return this.parser_?this.parser_.constructor:null};goog.exportProperty(shaka.Player.prototype,"getManifestParserFactory",shaka.Player.prototype.getManifestParserFactory);
1116
1128
  shaka.Player.prototype.addVariantToSwitchHistory_=function(a,b,c){this.activeStreams_.useVariant(a,b);this.stats_.getSwitchHistory().updateCurrentVariant(b,c)};shaka.Player.prototype.addTextStreamToSwitchHistory_=function(a,b,c){this.activeStreams_.useText(a,b);this.stats_.getSwitchHistory().updateCurrentText(b,c)};
@@ -1255,22 +1267,18 @@ shaka.polyfill.PatchedMediaKeysApple.MediaKeys.prototype.setServerCertificate=fu
1255
1267
  shaka.polyfill.PatchedMediaKeysApple.MediaKeys.prototype.setMedia=function(a){var b=this,c=shaka.polyfill.PatchedMediaKeysApple;this.eventManager_.removeAll();if(!a)return Promise.resolve();this.eventManager_.listen(a,"webkitneedkey",c.onWebkitNeedKey_);try{return 1<=a.readyState?a.webkitSetMediaKeys(this.nativeMediaKeys_):this.eventManager_.listenOnce(a,"loadedmetadata",function(){a.webkitSetMediaKeys(b.nativeMediaKeys_)}),Promise.resolve()}catch(d){return Promise.reject(d)}};
1256
1268
  shaka.polyfill.PatchedMediaKeysApple.MediaKeySession=function(a,b){shaka.log.debug("PatchedMediaKeysApple.MediaKeySession");shaka.util.FakeEventTarget.call(this);this.nativeMediaKeySession_=null;this.nativeMediaKeys_=a;this.updatePromise_=this.generateRequestPromise_=null;this.eventManager_=new shaka.util.EventManager;this.sessionId="";this.expiration=NaN;this.closed=new shaka.util.PublicPromise;this.keyStatuses=new shaka.polyfill.PatchedMediaKeysApple.MediaKeyStatusMap};
1257
1269
  goog.inherits(shaka.polyfill.PatchedMediaKeysApple.MediaKeySession,shaka.util.FakeEventTarget);
1258
- shaka.polyfill.PatchedMediaKeysApple.MediaKeySession.prototype.generateRequest=function(a,b){shaka.log.debug("PatchedMediaKeysApple.MediaKeySession.generateRequest");this.generateRequestPromise_=new shaka.util.PublicPromise;try{this.nativeMediaKeySession_=this.nativeMediaKeys_.createSession("video/mp4",new Uint8Array(b)),this.eventManager_.listen(this.nativeMediaKeySession_,"webkitkeymessage",this.onWebkitKeyMessage_.bind(this)),this.eventManager_.listen(this.nativeMediaKeySession_,"webkitkeyadded",
1259
- this.onWebkitKeyAdded_.bind(this)),this.eventManager_.listen(this.nativeMediaKeySession_,"webkitkeyerror",this.onWebkitKeyError_.bind(this)),this.updateKeyStatus_("status-pending")}catch(c){this.generateRequestPromise_.reject(c)}return this.generateRequestPromise_};shaka.polyfill.PatchedMediaKeysApple.MediaKeySession.prototype.load=function(){shaka.log.debug("PatchedMediaKeysApple.MediaKeySession.load");return Promise.reject(Error("MediaKeySession.load not yet supported"))};
1270
+ shaka.polyfill.PatchedMediaKeysApple.MediaKeySession.prototype.generateRequest=function(a,b){shaka.log.debug("PatchedMediaKeysApple.MediaKeySession.generateRequest");this.generateRequestPromise_=new shaka.util.PublicPromise;try{this.nativeMediaKeySession_=this.nativeMediaKeys_.createSession("video/mp4",new Uint8Array(b)),this.sessionId=this.nativeMediaKeySession_.sessionId||"",this.eventManager_.listen(this.nativeMediaKeySession_,"webkitkeymessage",this.onWebkitKeyMessage_.bind(this)),this.eventManager_.listen(this.nativeMediaKeySession_,
1271
+ "webkitkeyadded",this.onWebkitKeyAdded_.bind(this)),this.eventManager_.listen(this.nativeMediaKeySession_,"webkitkeyerror",this.onWebkitKeyError_.bind(this)),this.updateKeyStatus_("status-pending")}catch(c){this.generateRequestPromise_.reject(c)}return this.generateRequestPromise_};shaka.polyfill.PatchedMediaKeysApple.MediaKeySession.prototype.load=function(){shaka.log.debug("PatchedMediaKeysApple.MediaKeySession.load");return Promise.reject(Error("MediaKeySession.load not yet supported"))};
1260
1272
  shaka.polyfill.PatchedMediaKeysApple.MediaKeySession.prototype.update=function(a){shaka.log.debug("PatchedMediaKeysApple.MediaKeySession.update");this.updatePromise_=new shaka.util.PublicPromise;try{this.nativeMediaKeySession_.update(new Uint8Array(a))}catch(b){this.updatePromise_.reject(b)}return this.updatePromise_};
1261
1273
  shaka.polyfill.PatchedMediaKeysApple.MediaKeySession.prototype.close=function(){shaka.log.debug("PatchedMediaKeysApple.MediaKeySession.close");try{this.nativeMediaKeySession_.close(),this.closed.resolve(),this.eventManager_.removeAll()}catch(a){this.closed.reject(a)}return this.closed};shaka.polyfill.PatchedMediaKeysApple.MediaKeySession.prototype.remove=function(){shaka.log.debug("PatchedMediaKeysApple.MediaKeySession.remove");return Promise.reject(Error("MediaKeySession.remove is only applicable for persistent licenses, which are not supported on this platform"))};
1262
- shaka.polyfill.PatchedMediaKeysApple.rebuildInitData_=function(a,b){var c=new Uint8Array(a);if((new DataView(c.buffer)).getUint32(0,!0)+4!=c.byteLength)throw Error("Malformed init data!");var d=shaka.util.StringUtils.fromUTF16(c.slice(4),!0);d=(new goog.Uri(d)).getDomain();d=new Uint8Array(shaka.util.StringUtils.toUTF16(d,!0));var e=new Uint8Array(c.byteLength+4+d.byteLength+4+b.byteLength),f=0,g=function(a){(new DataView(e.buffer)).setUint32(f,a.byteLength,!0);f+=4;e.set(a,f);f+=a.byteLength};e.set(c,
1263
- f);f+=c.byteLength;g(d);g(new Uint8Array(b));return e};
1264
- shaka.polyfill.PatchedMediaKeysApple.onWebkitNeedKey_=function(a){shaka.log.debug("PatchedMediaKeysApple.onWebkitNeedKey_",a);var b=shaka.polyfill.PatchedMediaKeysApple,c=this.mediaKeys;goog.asserts.assert(c instanceof b.MediaKeys,"non-polyfill instance of newMediaKeys");goog.asserts.assert(null!=a.initData,"missing init data!");c=c.certificate;goog.asserts.assert(null!=c,"missing certificate!");var d=new Event("encrypted");d.initDataType="cenc";d.initData=b.rebuildInitData_(a.initData,c);this.dispatchEvent(d)};
1274
+ shaka.polyfill.PatchedMediaKeysApple.onWebkitNeedKey_=function(a){shaka.log.debug("PatchedMediaKeysApple.onWebkitNeedKey_",a);goog.asserts.assert(this.mediaKeys instanceof shaka.polyfill.PatchedMediaKeysApple.MediaKeys,"non-polyfill instance of newMediaKeys");goog.asserts.assert(null!=a.initData,"missing init data!");var b=new Event("encrypted");b.initDataType="cenc";b.initData=a.initData;this.dispatchEvent(b)};
1265
1275
  shaka.polyfill.PatchedMediaKeysApple.MediaKeySession.prototype.onWebkitKeyMessage_=function(a){shaka.log.debug("PatchedMediaKeysApple.onWebkitKeyMessage_",a);goog.asserts.assert(this.generateRequestPromise_,"generateRequestPromise_ should be set before now!");this.generateRequestPromise_&&(this.generateRequestPromise_.resolve(),this.generateRequestPromise_=null);var b=void 0==this.keyStatuses.getStatus();a=new shaka.util.FakeEvent("message",{messageType:b?"license-request":"license-renewal",message:a.message.buffer});
1266
1276
  this.dispatchEvent(a)};shaka.polyfill.PatchedMediaKeysApple.MediaKeySession.prototype.onWebkitKeyAdded_=function(a){shaka.log.debug("PatchedMediaKeysApple.onWebkitKeyAdded_",a);goog.asserts.assert(!this.generateRequestPromise_,"Key added during generate!");goog.asserts.assert(this.updatePromise_,"updatePromise_ should be set before now!");this.updatePromise_&&(this.updateKeyStatus_("usable"),this.updatePromise_.resolve(),this.updatePromise_=null)};
1267
1277
  shaka.polyfill.PatchedMediaKeysApple.MediaKeySession.prototype.onWebkitKeyError_=function(a){shaka.log.debug("PatchedMediaKeysApple.onWebkitKeyError_",a);a=Error("EME PatchedMediaKeysApple key error");a.errorCode=this.nativeMediaKeySession_.error;if(null!=this.generateRequestPromise_)this.generateRequestPromise_.reject(a),this.generateRequestPromise_=null;else if(null!=this.updatePromise_)this.updatePromise_.reject(a),this.updatePromise_=null;else switch(this.nativeMediaKeySession_.error.code){case WebKitMediaKeyError.MEDIA_KEYERR_OUTPUT:case WebKitMediaKeyError.MEDIA_KEYERR_HARDWARECHANGE:this.updateKeyStatus_("output-not-allowed");
1268
1278
  break;default:this.updateKeyStatus_("internal-error")}};shaka.polyfill.PatchedMediaKeysApple.MediaKeySession.prototype.updateKeyStatus_=function(a){this.keyStatuses.setStatus(a);a=new shaka.util.FakeEvent("keystatuseschange");this.dispatchEvent(a)};shaka.polyfill.PatchedMediaKeysApple.MediaKeyStatusMap=function(){this.size=0;this.status_=void 0};shaka.polyfill.PatchedMediaKeysApple.MediaKeyStatusMap.prototype.setStatus=function(a){this.size=void 0==a?0:1;this.status_=a};
1269
1279
  shaka.polyfill.PatchedMediaKeysApple.MediaKeyStatusMap.prototype.getStatus=function(){return this.status_};shaka.polyfill.PatchedMediaKeysApple.MediaKeyStatusMap.prototype.forEach=function(a){this.status_&&a(this.status_,shaka.polyfill.PatchedMediaKeysApple.MediaKeyStatusMap.KEY_ID_)};shaka.polyfill.PatchedMediaKeysApple.MediaKeyStatusMap.prototype.get=function(a){if(this.has(a))return this.status_};
1270
1280
  shaka.polyfill.PatchedMediaKeysApple.MediaKeyStatusMap.prototype.has=function(a){var b=shaka.polyfill.PatchedMediaKeysApple.MediaKeyStatusMap.KEY_ID_;return this.status_&&shaka.util.Uint8ArrayUtils.equal(new Uint8Array(a),new Uint8Array(b))?!0:!1};shaka.polyfill.PatchedMediaKeysApple.MediaKeyStatusMap.prototype.entries=function(){goog.asserts.assert(!1,"Not used! Provided only for the compiler.")};
1271
- shaka.polyfill.PatchedMediaKeysApple.MediaKeyStatusMap.prototype.keys=function(){goog.asserts.assert(!1,"Not used! Provided only for the compiler.")};shaka.polyfill.PatchedMediaKeysApple.MediaKeyStatusMap.prototype.values=function(){goog.asserts.assert(!1,"Not used! Provided only for the compiler.")};shaka.polyfill.register(shaka.polyfill.PatchedMediaKeysApple.install);shaka.util.Pssh=function(a){this.systemIds=[];this.cencKeyIds=[];this.dataBoundaries=[];(new shaka.util.Mp4Parser).fullBox("pssh",this.parseBox_.bind(this)).parse(a.buffer);0==this.dataBoundaries.length&&shaka.log.warning("No pssh box found!")};
1272
- shaka.util.Pssh.prototype.parseBox_=function(a){goog.asserts.assert(null!=a.version,"PSSH boxes are full boxes and must have a valid version");goog.asserts.assert(null!=a.flags,"PSSH boxes are full boxes and must have a valid flag");if(1<a.version)shaka.log.warning("Unrecognized PSSH version found!");else{var b=shaka.util.Uint8ArrayUtils.toHex(a.reader.readBytes(16)),c=[];if(0<a.version)for(var d=a.reader.readUint32(),e=0;e<d;++e){var f=shaka.util.Uint8ArrayUtils.toHex(a.reader.readBytes(16));c.push(f)}d=
1273
- a.reader.readUint32();a.reader.skip(d);this.cencKeyIds.push.apply(this.cencKeyIds,c);this.systemIds.push(b);this.dataBoundaries.push({start:a.start,end:a.start+a.size-1});a.reader.getPosition()!=a.reader.getLength()&&shaka.log.warning("Mismatch between box size and data size!")}};shaka.polyfill.PatchedMediaKeysMs={};
1281
+ shaka.polyfill.PatchedMediaKeysApple.MediaKeyStatusMap.prototype.keys=function(){goog.asserts.assert(!1,"Not used! Provided only for the compiler.")};shaka.polyfill.PatchedMediaKeysApple.MediaKeyStatusMap.prototype.values=function(){goog.asserts.assert(!1,"Not used! Provided only for the compiler.")};shaka.polyfill.register(shaka.polyfill.PatchedMediaKeysApple.install);shaka.polyfill.PatchedMediaKeysMs={};
1274
1282
  shaka.polyfill.PatchedMediaKeysMs.install=function(){if(window.HTMLVideoElement&&window.MSMediaKeys&&(!navigator.requestMediaKeySystemAccess||!MediaKeySystemAccess.prototype.getConfiguration)){shaka.log.info("Using ms-prefixed EME v20140218");var a=shaka.polyfill.PatchedMediaKeysMs;a.MediaKeyStatusMap.KEY_ID_=(new Uint8Array([0])).buffer;delete HTMLMediaElement.prototype.mediaKeys;HTMLMediaElement.prototype.mediaKeys=null;HTMLMediaElement.prototype.setMediaKeys=a.setMediaKeys;window.MediaKeys=a.MediaKeys;
1275
1283
  window.MediaKeySystemAccess=a.MediaKeySystemAccess;navigator.requestMediaKeySystemAccess=a.requestMediaKeySystemAccess}};shaka.polyfill.PatchedMediaKeysMs.requestMediaKeySystemAccess=function(a,b){shaka.log.debug("PatchedMediaKeysMs.requestMediaKeySystemAccess");goog.asserts.assert(this==navigator,'bad "this" for requestMediaKeySystemAccess');var c=shaka.polyfill.PatchedMediaKeysMs;try{var d=new c.MediaKeySystemAccess(a,b);return Promise.resolve(d)}catch(e){return Promise.reject(e)}};
1276
1284
  shaka.polyfill.PatchedMediaKeysMs.MediaKeySystemAccess=function(a,b){shaka.log.debug("PatchedMediaKeysMs.MediaKeySystemAccess");this.keySystem=a;for(var c=!1,d=0;d<b.length;++d){var e=b[d],f={audioCapabilities:[],videoCapabilities:[],persistentState:"optional",distinctiveIdentifier:"optional",initDataTypes:e.initDataTypes,sessionTypes:["temporary"],label:e.label},g=!1;if(e.audioCapabilities)for(var h=0;h<e.audioCapabilities.length;++h){var k=e.audioCapabilities[h];if(k.contentType){g=!0;var l=k.contentType.split(";")[0];
@@ -1287,8 +1295,8 @@ this.eventManager_.listen(this.nativeMediaKeySession_,"mskeyerror",this.onMsKeyE
1287
1295
  shaka.polyfill.PatchedMediaKeysMs.MediaKeySession.prototype.update=function(a){shaka.log.debug("PatchedMediaKeysMs.MediaKeySession.update");this.updatePromise_=new shaka.util.PublicPromise;try{this.nativeMediaKeySession_.update(new Uint8Array(a))}catch(b){this.updatePromise_.reject(b)}return this.updatePromise_};
1288
1296
  shaka.polyfill.PatchedMediaKeysMs.MediaKeySession.prototype.close=function(){shaka.log.debug("PatchedMediaKeysMs.MediaKeySession.close");try{this.nativeMediaKeySession_.close(),this.closed.resolve(),this.eventManager_.removeAll()}catch(a){this.closed.reject(a)}return this.closed};shaka.polyfill.PatchedMediaKeysMs.MediaKeySession.prototype.remove=function(){shaka.log.debug("PatchedMediaKeysMs.MediaKeySession.remove");return Promise.reject(Error("MediaKeySession.remove is only applicable for persistent licenses, which are not supported on this platform"))};
1289
1297
  shaka.polyfill.PatchedMediaKeysMs.onMsNeedKey_=function(a){shaka.log.debug("PatchedMediaKeysMs.onMsNeedKey_",a);if(a.initData){var b=shaka.polyfill.PatchedMediaKeysMs,c=document.createEvent("CustomEvent");c.initCustomEvent("encrypted",!1,!1,null);c.initDataType="cenc";c.initData=b.normaliseInitData_(a.initData);this.dispatchEvent(c)}};
1290
- shaka.polyfill.PatchedMediaKeysMs.normaliseInitData_=function(a){if(!a)return a;var b=new shaka.util.Pssh(a);if(1>=b.dataBoundaries.length)return a;for(var c=[],d=0;d<b.dataBoundaries.length;d++){var e=a.subarray(b.dataBoundaries[d].start,b.dataBoundaries[d].end+1);c.push(e)}a=[];b={};d=$jscomp.makeIterator(c);for(c=d.next();!c.done;b={initData$271:b.initData$271},c=d.next())b.initData$271=c.value,a.some(function(a){return function(b){return shaka.util.Uint8ArrayUtils.equal(b,a.initData$271)}}(b))||
1291
- a.push(b.initData$271);b=0;d=$jscomp.makeIterator(a);for(c=d.next();!c.done;c=d.next())b+=c.value.length;b=new Uint8Array(b);d=0;a=$jscomp.makeIterator(a);for(c=a.next();!c.done;c=a.next())c=c.value,b.set(c,d),d+=c.length;return b};
1298
+ shaka.polyfill.PatchedMediaKeysMs.normaliseInitData_=function(a){if(!a)return a;var b=new shaka.util.Pssh(a);if(1>=b.dataBoundaries.length)return a;for(var c=[],d=0;d<b.dataBoundaries.length;d++){var e=a.subarray(b.dataBoundaries[d].start,b.dataBoundaries[d].end+1);c.push(e)}a=[];b={};d=$jscomp.makeIterator(c);for(c=d.next();!c.done;b={initData$274:b.initData$274},c=d.next())b.initData$274=c.value,a.some(function(a){return function(b){return shaka.util.Uint8ArrayUtils.equal(b,a.initData$274)}}(b))||
1299
+ a.push(b.initData$274);b=0;d=$jscomp.makeIterator(a);for(c=d.next();!c.done;c=d.next())b+=c.value.length;b=new Uint8Array(b);d=0;a=$jscomp.makeIterator(a);for(c=a.next();!c.done;c=a.next())c=c.value,b.set(c,d),d+=c.length;return b};
1292
1300
  shaka.polyfill.PatchedMediaKeysMs.MediaKeySession.prototype.onMsKeyMessage_=function(a){shaka.log.debug("PatchedMediaKeysMs.onMsKeyMessage_",a);goog.asserts.assert(this.generateRequestPromise_,"generateRequestPromise_ not set in onMsKeyMessage_");this.generateRequestPromise_&&(this.generateRequestPromise_.resolve(),this.generateRequestPromise_=null);var b=void 0==this.keyStatuses.getStatus();a=new shaka.util.FakeEvent("message",{messageType:b?"license-request":"license-renewal",message:a.message.buffer});
1293
1301
  this.dispatchEvent(a)};
1294
1302
  shaka.polyfill.PatchedMediaKeysMs.MediaKeySession.prototype.onMsKeyAdded_=function(a){shaka.log.debug("PatchedMediaKeysMs.onMsKeyAdded_",a);this.generateRequestPromise_?(shaka.log.debug("Simulating completion for a PR persistent license."),goog.asserts.assert(!this.updatePromise_,"updatePromise_ and generateRequestPromise_ set in onMsKeyAdded_"),this.updateKeyStatus_("usable"),this.generateRequestPromise_.resolve(),this.generateRequestPromise_=null):(goog.asserts.assert(this.updatePromise_,"updatePromise_ not set in onMsKeyAdded_"),
@@ -1451,14 +1459,14 @@ tl:{nativeName:"Filipino",englishName:"Filipino"},"tl-PH":{nativeName:"Filipino"
1451
1459
  englishName:"Ukrainian"},ur:{nativeName:"\u0627\u0631\u062f\u0648",englishName:"Urdu"},"ur-PK":{nativeName:"\u0627\u0631\u062f\u0648",englishName:"Urdu"},uz:{nativeName:"O'zbek",englishName:"Uzbek"},"uz-UZ":{nativeName:"O'zbek",englishName:"Uzbek"},vi:{nativeName:"Ti\u1ebfng Vi\u1ec7t",englishName:"Vietnamese"},"vi-VN":{nativeName:"Ti\u1ebfng Vi\u1ec7t",englishName:"Vietnamese"},"xh-ZA":{nativeName:"isiXhosa",englishName:"Xhosa"},yi:{nativeName:"\u05d9\u05d9\u05b4\u05d3\u05d9\u05e9",englishName:"Yiddish"},
1452
1460
  "yi-DE":{nativeName:"\u05d9\u05d9\u05b4\u05d3\u05d9\u05e9 (German)",englishName:"Yiddish (German)"},zh:{nativeName:"\u4e2d\u6587",englishName:"Chinese"},"zh-HANS":{nativeName:"\u4e2d\u6587\u7b80\u4f53",englishName:"Chinese Simplified"},"zh-HANT":{nativeName:"\u4e2d\u6587\u7e41\u9ad4",englishName:"Chinese Traditional"},"zh-CN":{nativeName:"\u4e2d\u6587\uff08\u4e2d\u56fd\uff09",englishName:"Chinese Simplified (China)"},"zh-HK":{nativeName:"\u4e2d\u6587\uff08\u9999\u6e2f\uff09",englishName:"Chinese Traditional (Hong Kong)"},
1453
1461
  "zh-SG":{nativeName:"\u4e2d\u6587\uff08\u65b0\u52a0\u5761\uff09",englishName:"Chinese Simplified (Singapore)"},"zh-TW":{nativeName:"\u4e2d\u6587\uff08\u53f0\u7063\uff09",englishName:"Chinese Traditional (Taiwan)"},"zu-ZA":{nativeName:"isiZulu",englishName:"Zulu"}}},$jscomp$iter$160=$jscomp.makeIterator(Object.keys(mozilla.LanguageMapping)),$jscomp$key$key=$jscomp$iter$160.next();!$jscomp$key$key.done;$jscomp$key$key=$jscomp$iter$160.next()){var key=$jscomp$key$key.value;mozilla.LanguageMapping[key.toLowerCase()]=
1454
- mozilla.LanguageMapping[key]};shaka.ui.Element=function(a,b){this.parent=a;this.controls=b;this.eventManager=new shaka.util.EventManager;this.localization=this.controls.getLocalization();this.player=this.controls.getPlayer();this.video=this.controls.getVideo()};goog.exportSymbol("shaka.ui.Element",shaka.ui.Element);shaka.ui.Element.prototype.destroy=function(){this.eventManager.release();this.video=this.player=this.localization=this.eventManager=this.controls=this.parent=null;return Promise.resolve()};
1455
- goog.exportProperty(shaka.ui.Element.prototype,"destroy",shaka.ui.Element.prototype.destroy);shaka.ui.Enums={};shaka.ui.Enums.MaterialDesignIcons={FULLSCREEN:"fullscreen",EXIT_FULLSCREEN:"fullscreen_exit",CLOSED_CAPTIONS:"closed_caption",CHECKMARK:"done",LANGUAGE:"language",PIP:"picture_in_picture_alt",EXIT_PIP:"branding_watermark",BACK:"arrow_back",RESOLUTION:"settings",MUTE:"volume_up",UNMUTE:"volume_off",CAST:"cast",EXIT_CAST:"cast_connected",OPEN_OVERFLOW:"more_vert",REWIND:"fast_rewind",FAST_FORWARD:"fast_forward",PLAY:"play_arrow",PAUSE:"pause"};
1462
+ mozilla.LanguageMapping[key]};shaka.ui.Enums={};shaka.ui.Enums.MaterialDesignIcons={FULLSCREEN:"fullscreen",EXIT_FULLSCREEN:"fullscreen_exit",CLOSED_CAPTIONS:"closed_caption",CHECKMARK:"done",LANGUAGE:"language",PIP:"picture_in_picture_alt",EXIT_PIP:"branding_watermark",BACK:"arrow_back",RESOLUTION:"settings",MUTE:"volume_up",UNMUTE:"volume_off",CAST:"cast",EXIT_CAST:"cast_connected",OPEN_OVERFLOW:"more_vert",REWIND:"fast_rewind",FAST_FORWARD:"fast_forward",PLAY:"play_arrow",PAUSE:"pause"};
1456
1463
  shaka.ui.Enums.Opacity={TRANSPARENT:0,OPAQUE:1};shaka.ui.LanguageUtils=function(){};
1457
1464
  shaka.ui.LanguageUtils.updateLanguages=function(a,b,c,d,e,f,g){var h=a.filter(function(a){return 1==a.active})[0];a=shaka.ui.Utils.getFirstDescendantWithClassName(b,"shaka-back-to-overflow-button");shaka.ui.Utils.removeAllChildren(b);b.appendChild(a);c.forEach(function(a){var c=shaka.util.Dom.createHTMLElement("button");c.addEventListener("click",function(){d(a)});var k=shaka.util.Dom.createHTMLElement("span");k.textContent=shaka.ui.LanguageUtils.getLanguageName(a,g);c.appendChild(k);e&&a==h.language&&
1458
1465
  (c.appendChild(shaka.ui.Utils.checkmarkIcon()),k.classList.add("shaka-chosen-item"),c.setAttribute("aria-selected","true"),f.textContent=k.textContent);b.appendChild(c)})};
1459
1466
  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)+
1460
1467
  " ("+a+")"};shaka.ui.Constants={};shaka.ui.Constants.ARIA_LABEL="aria-label";shaka.ui.Constants.SEEK_BAR_BASE_COLOR="rgba(255, 255, 255, 0.3)";shaka.ui.Constants.SEEK_BAR_PLAYED_COLOR="rgb(255, 255, 255)";shaka.ui.Constants.SEEK_BAR_BUFFERED_COLOR="rgba(255, 255, 255, 0.54)";shaka.ui.Constants.VOLUME_BAR_VOLUME_LEVEL_COLOR="rgb(255, 255, 255)";shaka.ui.Constants.VOLUME_BAR_BASE_COLOR="rgba(255, 255, 255, 0.54)";shaka.ui.Constants.MIN_SEEK_WINDOW_TO_SHOW_SEEKBAR=5;shaka.ui.Constants.KEYCODE_TAB=9;
1461
- shaka.ui.Constants.KEYCODE_SHIFT=16;shaka.ui.Constants.KEYCODE_ESCAPE=27;shaka.ui.RangeElement=function(a,b,c,d){shaka.ui.Element.call(this,a,b);var e=this;this.container=shaka.util.Dom.createHTMLElement("div");this.container.classList.add("shaka-range-container");this.container.classList.add.apply(this.container.classList,$jscomp.arrayFromIterable(c));this.isChanging_=!1;this.bar=document.createElement("input");this.bar.classList.add("shaka-range-element");this.bar.classList.add.apply(this.bar.classList,$jscomp.arrayFromIterable(d));this.bar.type="range";this.bar.step=
1468
+ shaka.ui.Constants.KEYCODE_SHIFT=16;shaka.ui.Constants.KEYCODE_ESCAPE=27;shaka.ui.Element=function(a,b){this.parent=a;this.controls=b;this.eventManager=new shaka.util.EventManager;this.localization=this.controls.getLocalization();this.player=this.controls.getPlayer();this.video=this.controls.getVideo()};goog.exportSymbol("shaka.ui.Element",shaka.ui.Element);shaka.ui.Element.prototype.destroy=function(){this.eventManager.release();this.video=this.player=this.localization=this.eventManager=this.controls=this.parent=null;return Promise.resolve()};
1469
+ goog.exportProperty(shaka.ui.Element.prototype,"destroy",shaka.ui.Element.prototype.destroy);shaka.ui.RangeElement=function(a,b,c,d){shaka.ui.Element.call(this,a,b);var e=this;this.container=shaka.util.Dom.createHTMLElement("div");this.container.classList.add("shaka-range-container");this.container.classList.add.apply(this.container.classList,$jscomp.arrayFromIterable(c));this.isChanging_=!1;this.bar=document.createElement("input");this.bar.classList.add("shaka-range-element");this.bar.classList.add.apply(this.bar.classList,$jscomp.arrayFromIterable(d));this.bar.type="range";this.bar.step=
1462
1470
  "any";this.bar.min="0";this.bar.max="1";this.bar.value="0";this.container.appendChild(this.bar);this.parent.appendChild(this.container);this.eventManager.listen(this.bar,"mousedown",function(){e.isChanging_=!0;e.onChangeStart()});this.eventManager.listen(this.bar,"touchstart",function(a){e.isChanging_=!0;e.setBarValueForTouch_(a);e.onChangeStart()},{passive:!0});this.eventManager.listen(this.bar,"input",function(){e.onChange()});this.eventManager.listen(this.bar,"touchmove",function(a){e.setBarValueForTouch_(a);
1463
1471
  e.onChange()});this.eventManager.listen(this.bar,"touchend",function(a){e.isChanging_=!1;e.setBarValueForTouch_(a);e.onChangeEnd()});this.eventManager.listen(this.bar,"mouseup",function(){e.isChanging_=!1;e.onChangeEnd()})};$jscomp.inherits(shaka.ui.RangeElement,shaka.ui.Element);goog.exportSymbol("shaka.ui.RangeElement",shaka.ui.RangeElement);shaka.ui.RangeElement.prototype.setRange=function(a,b){this.bar.min=a;this.bar.max=b};shaka.ui.RangeElement.prototype.onChangeStart=function(){};
1464
1472
  shaka.ui.RangeElement.prototype.onChange=function(){};shaka.ui.RangeElement.prototype.onChangeEnd=function(){};shaka.ui.RangeElement.prototype.getValue=function(){return parseFloat(this.bar.value)};shaka.ui.RangeElement.prototype.setValue=function(a){this.isChanging_||(this.bar.value=a)};
@@ -1467,45 +1475,47 @@ shaka.ui.Utils.focusOnTheChosenItem=function(a){a&&(a=shaka.ui.Utils.getDescenda
1467
1475
  shaka.ui.Utils.setDisplay=function(a,b){a&&(goog.asserts.assert(!(a instanceof SVGElement),"Do not use setDisplay with SVG elements!"),b?(a.classList.add("shaka-displayed"),a.classList.remove("shaka-hidden")):(a.classList.add("shaka-hidden"),a.classList.remove("shaka-displayed")))};goog.exportSymbol("shaka.ui.Utils.setDisplay",shaka.ui.Utils.setDisplay);shaka.ui.Utils.removeAllChildren=function(a){for(;a.firstChild;)a.removeChild(a.firstChild)};
1468
1476
  goog.exportSymbol("shaka.ui.Utils.removeAllChildren",shaka.ui.Utils.removeAllChildren);shaka.ui.SeekBar=function(a,b){shaka.ui.RangeElement.call(this,a,b,["shaka-seek-bar-container"],["shaka-seek-bar","shaka-no-propagation","shaka-show-controls-on-mouse-over"]);var c=this;this.seekTimer_=new shaka.util.Timer(function(){c.video.currentTime=c.getValue()});this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_UPDATED,function(){return c.updateAriaLabel_()});this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_CHANGED,function(){return c.updateAriaLabel_()});
1469
1477
  this.setValue(this.video.currentTime);this.update();this.updateAriaLabel_()};$jscomp.inherits(shaka.ui.SeekBar,shaka.ui.RangeElement);goog.exportSymbol("shaka.ui.SeekBar",shaka.ui.SeekBar);
1470
- shaka.ui.SeekBar.prototype.destroy=function(){var a=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function c(){return $jscomp.generator.createGenerator(c,function(c){switch(c.nextAddress){case 1:return a.seekTimer_&&(a.seekTimer_.stop(),a.seekTimer_=null),c.yield(shaka.ui.RangeElement.prototype.destroy.call(a),0)}})})};shaka.ui.SeekBar.prototype.onChangeStart=function(){this.video.pause()};shaka.ui.SeekBar.prototype.onChange=function(){this.video.duration&&(this.update(),this.seekTimer_.tickAfter(.125))};
1471
- shaka.ui.SeekBar.prototype.onChangeEnd=function(){this.seekTimer_.tickNow();this.video.play()};shaka.ui.SeekBar.prototype.isShowing=function(){return!this.container.classList.contains("shaka-hidden")};
1472
- shaka.ui.SeekBar.prototype.update=function(){var a=shaka.ui.Constants,b=this.getValue(),c=this.video.buffered.length,d=c?this.video.buffered.start(0):0,e=c?this.video.buffered.end(c-1):0,f=this.player.seekRange(),g=f.end-f.start;this.setRange(f.start,f.end);if(this.player.isLive()&&g<a.MIN_SEEK_WINDOW_TO_SHOW_SEEKBAR)shaka.ui.Utils.setDisplay(this.container,!1);else{shaka.ui.Utils.setDisplay(this.container,!0);var h=["to right"];0==c?h.push("#000 0%"):(c=(Math.max(d,f.start)-f.start)/g||0,e=(Math.min(e,
1473
- f.end)-f.start)/g||0,b=(Math.min(Math.max(b,f.start),f.end)-f.start)/g||0,h.push(a.SEEK_BAR_BASE_COLOR+" "+100*c+"%"),h.push(a.SEEK_BAR_PLAYED_COLOR+" "+100*c+"%"),h.push(a.SEEK_BAR_PLAYED_COLOR+" "+100*b+"%"),h.push(a.SEEK_BAR_BUFFERED_COLOR+" "+100*b+"%"),h.push(a.SEEK_BAR_BUFFERED_COLOR+" "+100*e+"%"),h.push(a.SEEK_BAR_BASE_COLOR+" "+100*e+"%"));this.container.style.background="linear-gradient("+h.join(",")+")"}};
1478
+ shaka.ui.SeekBar.prototype.destroy=function(){var a=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function c(){return $jscomp.generator.createGenerator(c,function(c){switch(c.nextAddress){case 1:return a.seekTimer_&&(a.seekTimer_.stop(),a.seekTimer_=null),c.yield(shaka.ui.RangeElement.prototype.destroy.call(a),0)}})})};shaka.ui.SeekBar.prototype.onChangeStart=function(){this.controls.setSeeking(!0);this.video.pause()};
1479
+ shaka.ui.SeekBar.prototype.onChange=function(){this.video.duration&&(this.update(),this.seekTimer_.tickAfter(.125))};shaka.ui.SeekBar.prototype.onChangeEnd=function(){this.seekTimer_.tickNow();this.controls.setSeeking(!1);this.video.play()};shaka.ui.SeekBar.prototype.isShowing=function(){return!this.container.classList.contains("shaka-hidden")};
1480
+ shaka.ui.SeekBar.prototype.update=function(){var a=shaka.ui.Constants,b=this.getValue(),c=this.video.buffered.length,d=c?this.video.buffered.start(0):0,e=c?this.video.buffered.end(c-1):0,f=this.player.seekRange(),g=f.end-f.start;this.setRange(f.start,f.end);this.player.isLive()&&g<a.MIN_SEEK_WINDOW_TO_SHOW_SEEKBAR?shaka.ui.Utils.setDisplay(this.container,!1):(shaka.ui.Utils.setDisplay(this.container,!0),0==c?this.container.style.background=a.SEEK_BAR_BASE_COLOR:(c=(Math.max(d,f.start)-f.start)/g||
1481
+ 0,e=(Math.min(e,f.end)-f.start)/g||0,b=(Math.min(Math.max(b,f.start),f.end)-f.start)/g||0,this.container.style.background="linear-gradient("+["to right",a.SEEK_BAR_BASE_COLOR+" "+100*c+"%",a.SEEK_BAR_PLAYED_COLOR+" "+100*c+"%",a.SEEK_BAR_PLAYED_COLOR+" "+100*b+"%",a.SEEK_BAR_BUFFERED_COLOR+" "+100*b+"%",a.SEEK_BAR_BUFFERED_COLOR+" "+100*e+"%",a.SEEK_BAR_BASE_COLOR+" "+100*e+"%"].join()+")"))};
1474
1482
  shaka.ui.SeekBar.prototype.updateAriaLabel_=function(){this.bar.setAttribute(shaka.ui.Constants.ARIA_LABEL,this.localization.resolve(shaka.ui.Locales.Ids.SEEK))};shaka.ui.ControlsPanel={};
1475
1483
  shaka.ui.Controls=function(a,b,c,d){var e=this;shaka.util.FakeEventTarget.call(this);this.enabled_=!0;this.overrideCssShowControls_=!1;this.config_=d;this.castProxy_=new shaka.cast.CastProxy(c,a,this.config_.castReceiverAppId);this.castAllowed_=!0;this.video_=this.castProxy_.getVideo();this.localVideo_=c;this.player_=this.castProxy_.getPlayer();this.localPlayer_=a;this.videoContainer_=b;this.seekBar_=null;this.isSeeking_=!1;this.settingsMenus_=[];this.mouseStillTimer_=new shaka.util.Timer(function(){e.onMouseStill_()});this.hideSettingsMenusTimer_=
1476
- new shaka.util.Timer(function(){for(var a=$jscomp.makeIterator(e.settingsMenus_),b=a.next();!b.done;b=a.next())shaka.ui.Utils.setDisplay(b.value,!1)});this.timeAndSeekRangeTimer_=new shaka.util.Timer(function(){e.isOpaque_()&&e.updateTimeAndSeekRange_()});this.lastTouchEventTime_=null;this.elements_=[];this.localization_=shaka.ui.Controls.createLocalization_();this.eventManager_=new shaka.util.EventManager;this.configure(this.config_);this.updateLocalizedStrings_();this.addEventListeners_();this.pressedKeys_=
1477
- new Set;this.onCastStatusChange_(null);this.timeAndSeekRangeTimer_.tickEvery(.125)};goog.inherits(shaka.ui.Controls,shaka.util.FakeEventTarget);goog.exportSymbol("shaka.ui.Controls",shaka.ui.Controls);shaka.ui.ControlsPanel.elementNamesToFactories_=new Map;
1484
+ new shaka.util.Timer(function(){for(var a=$jscomp.makeIterator(e.settingsMenus_),b=a.next();!b.done;b=a.next())shaka.ui.Utils.setDisplay(b.value,!1)});this.timeAndSeekRangeTimer_=new shaka.util.Timer(function(){e.isOpaque_()&&e.updateTimeAndSeekRange_()});this.lastTouchEventTime_=null;this.elements_=[];this.localization_=shaka.ui.Controls.createLocalization_();this.eventManager_=new shaka.util.EventManager;this.configure(this.config_);this.addEventListeners_();this.pressedKeys_=new Set;this.onCastStatusChange_(null);
1485
+ this.timeAndSeekRangeTimer_.tickEvery(.125)};goog.inherits(shaka.ui.Controls,shaka.util.FakeEventTarget);goog.exportSymbol("shaka.ui.Controls",shaka.ui.Controls);shaka.ui.ControlsPanel.elementNamesToFactories_=new Map;
1478
1486
  shaka.ui.Controls.prototype.destroy=function(){var a=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function c(){return $jscomp.generator.createGenerator(c,function(c){switch(c.nextAddress){case 1:a.eventManager_&&(a.eventManager_.release(),a.eventManager_=null);a.mouseStillTimer_&&(a.mouseStillTimer_.stop(),a.mouseStillTimer_=null);a.hideSettingsMenusTimer_&&(a.hideSettingsMenusTimer_.stop(),a.hideSettingsMenusTimer_=null);a.timeAndSeekRangeTimer_&&(a.timeAndSeekRangeTimer_.stop(),a.timeAndSeekRangeTimer_=
1479
1487
  null);if(!a.castProxy_){c.jumpTo(2);break}return c.yield(a.castProxy_.destroy(),3);case 3:a.castProxy_=null;case 2:if(!a.localPlayer_){c.jumpTo(4);break}return c.yield(a.localPlayer_.destroy(),5);case 5:a.localPlayer_=null;case 4:return a.player_=null,a.localVideo_=null,a.video_=null,a.localization_=null,a.pressedKeys_.clear(),c.yield(Promise.all(a.elements_.map(function(a){return a.destroy()})),6);case 6:a.elements_=[];if(a.seekBar_)return c.yield(a.seekBar_.destroy(),0);c.jumpTo(0)}})})};
1480
1488
  goog.exportProperty(shaka.ui.Controls.prototype,"destroy",shaka.ui.Controls.prototype.destroy);shaka.ui.Controls.registerElement=function(a,b){shaka.ui.ControlsPanel.elementNamesToFactories_.set(a,b)};goog.exportProperty(shaka.ui.Controls,"registerElement",shaka.ui.Controls.registerElement);shaka.ui.Controls.prototype.allowCast=function(a){this.castAllowed_=a;this.onCastStatusChange_(null)};goog.exportProperty(shaka.ui.Controls.prototype,"allowCast",shaka.ui.Controls.prototype.allowCast);
1481
- shaka.ui.Controls.prototype.loadComplete=function(){this.onPlayStateChange_()};goog.exportProperty(shaka.ui.Controls.prototype,"loadComplete",shaka.ui.Controls.prototype.loadComplete);shaka.ui.Controls.prototype.configure=function(a){this.config_=a;this.castProxy_.changeReceiverId(a.castReceiverAppId);this.controlsContainer_?(shaka.util.Dom.removeAllChildren(this.controlsContainer_),this.videoContainer_.removeChild(this.spinnerContainer_)):this.addControlsContainer_();this.createDOM_();this.addEventListeners_()};
1482
- goog.exportProperty(shaka.ui.Controls.prototype,"configure",shaka.ui.Controls.prototype.configure);shaka.ui.Controls.prototype.setEnabledShakaControls=function(a){(this.enabled_=a)?(shaka.ui.Utils.setDisplay(this.controlsContainer_,!0),shaka.ui.Utils.setDisplay(this.spinnerContainer_,this.player_.isBuffering()),this.video_.tabIndex=-1,this.video_.controls=!1):(shaka.ui.Utils.setDisplay(this.controlsContainer_,!1),shaka.ui.Utils.setDisplay(this.spinnerContainer_,!1));this.onPlayStateChange_()};
1483
- goog.exportProperty(shaka.ui.Controls.prototype,"setEnabledShakaControls",shaka.ui.Controls.prototype.setEnabledShakaControls);shaka.ui.Controls.prototype.setEnabledNativeControls=function(a){this.video_.controls=a;this.video_.tabIndex=a?0:-1;a&&this.setEnabledShakaControls(!1)};goog.exportProperty(shaka.ui.Controls.prototype,"setEnabledNativeControls",shaka.ui.Controls.prototype.setEnabledNativeControls);shaka.ui.Controls.prototype.getCastProxy=function(){return this.castProxy_};
1484
- goog.exportProperty(shaka.ui.Controls.prototype,"getCastProxy",shaka.ui.Controls.prototype.getCastProxy);shaka.ui.Controls.prototype.getLocalization=function(){return this.localization_};goog.exportProperty(shaka.ui.Controls.prototype,"getLocalization",shaka.ui.Controls.prototype.getLocalization);shaka.ui.Controls.prototype.getVideoContainer=function(){return this.videoContainer_};goog.exportProperty(shaka.ui.Controls.prototype,"getVideoContainer",shaka.ui.Controls.prototype.getVideoContainer);
1485
- shaka.ui.Controls.prototype.getVideo=function(){return this.video_};goog.exportProperty(shaka.ui.Controls.prototype,"getVideo",shaka.ui.Controls.prototype.getVideo);shaka.ui.Controls.prototype.getLocalVideo=function(){return this.localVideo_};goog.exportProperty(shaka.ui.Controls.prototype,"getLocalVideo",shaka.ui.Controls.prototype.getLocalVideo);shaka.ui.Controls.prototype.getPlayer=function(){return this.player_};goog.exportProperty(shaka.ui.Controls.prototype,"getPlayer",shaka.ui.Controls.prototype.getPlayer);
1486
- shaka.ui.Controls.prototype.getLocalPlayer=function(){return this.localPlayer_};goog.exportProperty(shaka.ui.Controls.prototype,"getLocalPlayer",shaka.ui.Controls.prototype.getLocalPlayer);shaka.ui.Controls.prototype.getControlsContainer=function(){return this.controlsContainer_};goog.exportProperty(shaka.ui.Controls.prototype,"getControlsContainer",shaka.ui.Controls.prototype.getControlsContainer);shaka.ui.Controls.prototype.getConfig=function(){return this.config_};
1487
- goog.exportProperty(shaka.ui.Controls.prototype,"getConfig",shaka.ui.Controls.prototype.getConfig);shaka.ui.Controls.prototype.isSeeking=function(){return this.isSeeking_};goog.exportProperty(shaka.ui.Controls.prototype,"isSeeking",shaka.ui.Controls.prototype.isSeeking);shaka.ui.Controls.prototype.isCastAllowed=function(){return this.castAllowed_};goog.exportProperty(shaka.ui.Controls.prototype,"isCastAllowed",shaka.ui.Controls.prototype.isCastAllowed);
1488
- shaka.ui.Controls.prototype.getDisplayTime=function(){return this.seekBar_?this.seekBar_.getValue():this.video_.currentTime};goog.exportProperty(shaka.ui.Controls.prototype,"getDisplayTime",shaka.ui.Controls.prototype.getDisplayTime);shaka.ui.Controls.prototype.setLastTouchEventTime=function(a){this.lastTouchEventTime_=a};goog.exportProperty(shaka.ui.Controls.prototype,"setLastTouchEventTime",shaka.ui.Controls.prototype.setLastTouchEventTime);
1489
- shaka.ui.Controls.prototype.overrideCssShowControls=function(){this.overrideCssShowControls_=!0};goog.exportProperty(shaka.ui.Controls.prototype,"overrideCssShowControls",shaka.ui.Controls.prototype.overrideCssShowControls);shaka.ui.Controls.prototype.anySettingsMenusAreOpen=function(){return this.settingsMenus_.some(function(a){return a.classList.contains("shaka-displayed")})};goog.exportProperty(shaka.ui.Controls.prototype,"anySettingsMenusAreOpen",shaka.ui.Controls.prototype.anySettingsMenusAreOpen);
1490
- shaka.ui.Controls.prototype.hideSettingsMenus=function(){this.hideSettingsMenusTimer_.tickNow()};goog.exportProperty(shaka.ui.Controls.prototype,"hideSettingsMenus",shaka.ui.Controls.prototype.hideSettingsMenus);shaka.ui.Controls.prototype.updateLocalizedStrings_=function(){var a=shaka.ui.Locales.Ids;this.playButton_.setAttribute(shaka.ui.Constants.ARIA_LABEL,this.localization_.resolve(this.video_.paused&&!this.isSeeking_?a.PLAY:a.PAUSE))};
1491
- shaka.ui.Controls.prototype.createDOM_=function(){this.seekBar_&&(this.seekBar_.destroy(),this.seekBar_=null);this.videoContainer_.classList.add("shaka-video-container");this.video_.classList.add("shaka-video");this.addPlayButton_();this.addBufferingSpinner_();this.addControlsButtonPanel_();this.settingsMenus_=Array.from(this.videoContainer_.getElementsByClassName("shaka-settings-menu"));if(this.config_.addSeekBar)this.seekBar_=new shaka.ui.SeekBar(this.bottomControls_,this);else for(var a=$jscomp.makeIterator(this.settingsMenus_),
1489
+ shaka.ui.Controls.prototype.loadComplete=function(){this.onPlayStateChange_()};goog.exportProperty(shaka.ui.Controls.prototype,"loadComplete",shaka.ui.Controls.prototype.loadComplete);
1490
+ shaka.ui.Controls.prototype.configure=function(a){var b=this;this.config_=a;this.castProxy_.changeReceiverId(a.castReceiverAppId);this.seekBar_&&(this.seekBar_.destroy(),this.seekBar_=null);this.playButton_&&(this.playButton_.destroy(),this.playButton_=null);this.controlsContainer_?(shaka.util.Dom.removeAllChildren(this.controlsContainer_),this.videoContainer_.removeChild(this.spinnerContainer_)):this.addControlsContainer_();this.createDOM_();this.onPlayStateChange_();a=this.videoContainer_.getElementsByClassName("shaka-no-propagation");
1491
+ a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next()){c=c.value;var d=function(a){return a.stopPropagation()};this.eventManager_.listen(c,"click",d);this.eventManager_.listen(c,"dblclick",d)}a=this.videoContainer_.getElementsByClassName("shaka-show-controls-on-mouse-over");a=$jscomp.makeIterator(a);for(c=a.next();!c.done;c=a.next())c=c.value,this.eventManager_.listen(c,"mouseover",function(){b.overrideCssShowControls_=!0}),this.eventManager_.listen(c,"mouseleave",function(){b.overrideCssShowControls_=
1492
+ !1})};goog.exportProperty(shaka.ui.Controls.prototype,"configure",shaka.ui.Controls.prototype.configure);shaka.ui.Controls.prototype.setEnabledShakaControls=function(a){(this.enabled_=a)?(shaka.ui.Utils.setDisplay(this.controlsContainer_,!0),shaka.ui.Utils.setDisplay(this.spinnerContainer_,this.player_.isBuffering()),this.video_.tabIndex=-1,this.video_.controls=!1):(shaka.ui.Utils.setDisplay(this.controlsContainer_,!1),shaka.ui.Utils.setDisplay(this.spinnerContainer_,!1));this.onPlayStateChange_()};
1493
+ goog.exportProperty(shaka.ui.Controls.prototype,"setEnabledShakaControls",shaka.ui.Controls.prototype.setEnabledShakaControls);shaka.ui.Controls.prototype.setSeeking=function(a){this.isSeeking_=a};goog.exportProperty(shaka.ui.Controls.prototype,"setSeeking",shaka.ui.Controls.prototype.setSeeking);shaka.ui.Controls.prototype.setEnabledNativeControls=function(a){this.video_.controls=a;this.video_.tabIndex=a?0:-1;a&&this.setEnabledShakaControls(!1)};
1494
+ goog.exportProperty(shaka.ui.Controls.prototype,"setEnabledNativeControls",shaka.ui.Controls.prototype.setEnabledNativeControls);shaka.ui.Controls.prototype.getCastProxy=function(){return this.castProxy_};goog.exportProperty(shaka.ui.Controls.prototype,"getCastProxy",shaka.ui.Controls.prototype.getCastProxy);shaka.ui.Controls.prototype.getLocalization=function(){return this.localization_};goog.exportProperty(shaka.ui.Controls.prototype,"getLocalization",shaka.ui.Controls.prototype.getLocalization);
1495
+ shaka.ui.Controls.prototype.toggleFullScreen=function(){var a=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function c(){var d;return $jscomp.generator.createGenerator(c,function(c){switch(c.nextAddress){case 1:if(document.fullscreenElement){document.exitFullscreen();c.jumpTo(0);break}c.setCatchFinallyBlocks(3);if(!document.pictureInPictureElement){c.jumpTo(5);break}return c.yield(document.exitPictureInPicture(),5);case 5:c.leaveTryBlock(4);break;case 3:d=c.enterCatchBlock(),a.dispatchEvent(new shaka.util.FakeEvent("error",
1496
+ {detail:d}));case 4:return c.yield(a.videoContainer_.requestFullscreen(),0)}})})};goog.exportProperty(shaka.ui.Controls.prototype,"toggleFullScreen",shaka.ui.Controls.prototype.toggleFullScreen);shaka.ui.Controls.prototype.getVideoContainer=function(){return this.videoContainer_};goog.exportProperty(shaka.ui.Controls.prototype,"getVideoContainer",shaka.ui.Controls.prototype.getVideoContainer);shaka.ui.Controls.prototype.getVideo=function(){return this.video_};
1497
+ goog.exportProperty(shaka.ui.Controls.prototype,"getVideo",shaka.ui.Controls.prototype.getVideo);shaka.ui.Controls.prototype.getLocalVideo=function(){return this.localVideo_};goog.exportProperty(shaka.ui.Controls.prototype,"getLocalVideo",shaka.ui.Controls.prototype.getLocalVideo);shaka.ui.Controls.prototype.getPlayer=function(){return this.player_};goog.exportProperty(shaka.ui.Controls.prototype,"getPlayer",shaka.ui.Controls.prototype.getPlayer);shaka.ui.Controls.prototype.getLocalPlayer=function(){return this.localPlayer_};
1498
+ goog.exportProperty(shaka.ui.Controls.prototype,"getLocalPlayer",shaka.ui.Controls.prototype.getLocalPlayer);shaka.ui.Controls.prototype.getControlsContainer=function(){return this.controlsContainer_};goog.exportProperty(shaka.ui.Controls.prototype,"getControlsContainer",shaka.ui.Controls.prototype.getControlsContainer);shaka.ui.Controls.prototype.getConfig=function(){return this.config_};goog.exportProperty(shaka.ui.Controls.prototype,"getConfig",shaka.ui.Controls.prototype.getConfig);
1499
+ shaka.ui.Controls.prototype.isSeeking=function(){return this.isSeeking_};goog.exportProperty(shaka.ui.Controls.prototype,"isSeeking",shaka.ui.Controls.prototype.isSeeking);shaka.ui.Controls.prototype.isCastAllowed=function(){return this.castAllowed_};goog.exportProperty(shaka.ui.Controls.prototype,"isCastAllowed",shaka.ui.Controls.prototype.isCastAllowed);shaka.ui.Controls.prototype.getDisplayTime=function(){return this.seekBar_?this.seekBar_.getValue():this.video_.currentTime};
1500
+ goog.exportProperty(shaka.ui.Controls.prototype,"getDisplayTime",shaka.ui.Controls.prototype.getDisplayTime);shaka.ui.Controls.prototype.setLastTouchEventTime=function(a){this.lastTouchEventTime_=a};goog.exportProperty(shaka.ui.Controls.prototype,"setLastTouchEventTime",shaka.ui.Controls.prototype.setLastTouchEventTime);shaka.ui.Controls.prototype.overrideCssShowControls=function(){this.overrideCssShowControls_=!0};goog.exportProperty(shaka.ui.Controls.prototype,"overrideCssShowControls",shaka.ui.Controls.prototype.overrideCssShowControls);
1501
+ shaka.ui.Controls.prototype.anySettingsMenusAreOpen=function(){return this.settingsMenus_.some(function(a){return a.classList.contains("shaka-displayed")})};goog.exportProperty(shaka.ui.Controls.prototype,"anySettingsMenusAreOpen",shaka.ui.Controls.prototype.anySettingsMenusAreOpen);shaka.ui.Controls.prototype.hideSettingsMenus=function(){this.hideSettingsMenusTimer_.tickNow()};goog.exportProperty(shaka.ui.Controls.prototype,"hideSettingsMenus",shaka.ui.Controls.prototype.hideSettingsMenus);
1502
+ shaka.ui.Controls.prototype.createDOM_=function(){this.videoContainer_.classList.add("shaka-video-container");this.video_.classList.add("shaka-video");this.config_.addBigPlayButton&&this.addPlayButton_();this.addBufferingSpinner_();this.addControlsButtonPanel_();this.settingsMenus_=Array.from(this.videoContainer_.getElementsByClassName("shaka-settings-menu"));if(this.config_.addSeekBar)this.seekBar_=new shaka.ui.SeekBar(this.bottomControls_,this);else for(var a=$jscomp.makeIterator(this.settingsMenus_),
1492
1503
  b=a.next();!b.done;b=a.next())b.value.classList.add("shaka-low-position")};
1493
1504
  shaka.ui.Controls.prototype.addControlsContainer_=function(){var a=this;this.controlsContainer_=shaka.util.Dom.createHTMLElement("div");this.controlsContainer_.classList.add("shaka-controls-container");this.videoContainer_.appendChild(this.controlsContainer_);this.eventManager_.listen(this.controlsContainer_,"touchstart",function(b){a.onContainerTouch_(b)},{passive:!1});this.eventManager_.listen(this.controlsContainer_,"click",function(b){a.onContainerClick_(b)})};
1494
- shaka.ui.Controls.prototype.addPlayButton_=function(){this.playButtonContainer_=shaka.util.Dom.createHTMLElement("div");this.playButtonContainer_.classList.add("shaka-play-button-container");this.controlsContainer_.appendChild(this.playButtonContainer_);this.playButton_=shaka.util.Dom.createHTMLElement("button");this.playButton_.classList.add("shaka-play-button");this.playButtonContainer_.appendChild(this.playButton_);this.onPlayStateChange_()};
1505
+ shaka.ui.Controls.prototype.addPlayButton_=function(){var a=shaka.util.Dom.createHTMLElement("div");a.classList.add("shaka-play-button-container");this.controlsContainer_.appendChild(a);this.playButton_=new shaka.ui.BigPlayButton(a,this)};
1495
1506
  shaka.ui.Controls.prototype.addBufferingSpinner_=function(){this.spinnerContainer_=shaka.util.Dom.createHTMLElement("div");this.spinnerContainer_.classList.add("shaka-spinner-container");this.videoContainer_.appendChild(this.spinnerContainer_);var a=shaka.util.Dom.createHTMLElement("div");a.classList.add("shaka-spinner");this.spinnerContainer_.appendChild(a);var b=document.createElementNS("http://www.w3.org/2000/svg","svg");b.setAttribute("class","shaka-spinner-svg");b.setAttribute("viewBox","0 0 30 30");
1496
1507
  a.appendChild(b);a=document.createElementNS("http://www.w3.org/2000/svg","circle");a.setAttribute("class","shaka-spinner-path");a.setAttribute("cx","15");a.setAttribute("cy","15");a.setAttribute("r","14.5");a.setAttribute("fill","none");a.setAttribute("stroke-width","1");a.setAttribute("stroke-miterlimit","10");b.appendChild(a)};
1497
- shaka.ui.Controls.prototype.addControlsButtonPanel_=function(){this.bottomControls_=shaka.util.Dom.createHTMLElement("div");this.bottomControls_.classList.add("shaka-bottom-controls");this.controlsContainer_.appendChild(this.bottomControls_);this.controlsButtonPanel_=shaka.util.Dom.createHTMLElement("div");this.controlsButtonPanel_.classList.add("shaka-controls-button-panel");this.controlsButtonPanel_.classList.add("shaka-no-propagation");this.controlsButtonPanel_.classList.add("shaka-show-controls-on-mouse-over");
1498
- this.bottomControls_.appendChild(this.controlsButtonPanel_);for(var a=0;a<this.config_.controlPanelElements.length;a++){var b=this.config_.controlPanelElements[a];shaka.ui.ControlsPanel.elementNamesToFactories_.get(b)?(b=shaka.ui.ControlsPanel.elementNamesToFactories_.get(b),this.elements_.push(b.create(this.controlsButtonPanel_,this))):shaka.log.alwaysWarn("Unrecognized control panel element requested:",b)}};
1499
- shaka.ui.Controls.prototype.addEventListeners_=function(){var a=this;this.eventManager_.listen(this.player_,"buffering",function(){a.onBufferingStateChange_()});this.onBufferingStateChange_();this.eventManager_.listen(window,"keydown",this.onKeyDown_.bind(this));this.eventManager_.listen(this.video_,"play",this.onPlayStateChange_.bind(this));this.eventManager_.listen(this.video_,"pause",this.onPlayStateChange_.bind(this));this.eventManager_.listen(this.video_,"ended",this.onPlayStateChange_.bind(this));
1500
- for(var b=this.videoContainer_.getElementsByClassName("shaka-no-propagation"),c=0;c<b.length;c++)this.eventManager_.listen(b[c],"click",function(a){a.stopPropagation()});b=this.videoContainer_.getElementsByClassName("shaka-show-controls-on-mouse-over");for(c=0;c<b.length;c++){var d=b[c];this.eventManager_.listen(d,"mouseover",function(){a.overrideCssShowControls_=!0});this.eventManager_.listen(d,"mouseleave",function(){a.overrideCssShowControls_=!1})}this.eventManager_.listen(this.videoContainer_,
1501
- "mousemove",this.onMouseMove_.bind(this));this.eventManager_.listen(this.videoContainer_,"touchmove",this.onMouseMove_.bind(this),{passive:!0});this.eventManager_.listen(this.videoContainer_,"touchend",this.onMouseMove_.bind(this),{passive:!0});this.eventManager_.listen(this.videoContainer_,"mouseleave",this.onMouseLeave_.bind(this));this.eventManager_.listen(this.controlsButtonPanel_,"click",function(){a.hideSettingsMenusTimer_.tickNow()});this.eventManager_.listen(this.castProxy_,"caststatuschanged",
1502
- function(b){a.onCastStatusChange_(b)});this.eventManager_.listen(this.videoContainer_,"keyup",this.onKeyUp_.bind(this));this.eventManager_.listen(this.localization_,shaka.ui.Localization.LOCALE_UPDATED,function(b){return a.updateLocalizedStrings_()});this.eventManager_.listen(this.localization_,shaka.ui.Localization.LOCALE_CHANGED,function(b){return a.updateLocalizedStrings_()})};
1508
+ shaka.ui.Controls.prototype.addControlsButtonPanel_=function(){var a=this;this.bottomControls_=shaka.util.Dom.createHTMLElement("div");this.bottomControls_.classList.add("shaka-bottom-controls");this.controlsContainer_.appendChild(this.bottomControls_);this.controlsButtonPanel_=shaka.util.Dom.createHTMLElement("div");this.controlsButtonPanel_.classList.add("shaka-controls-button-panel");this.controlsButtonPanel_.classList.add("shaka-no-propagation");this.controlsButtonPanel_.classList.add("shaka-show-controls-on-mouse-over");
1509
+ this.bottomControls_.appendChild(this.controlsButtonPanel_);this.eventManager_.listen(this.controlsButtonPanel_,"click",function(){a.hideSettingsMenus()});for(var b=0;b<this.config_.controlPanelElements.length;b++){var c=this.config_.controlPanelElements[b];shaka.ui.ControlsPanel.elementNamesToFactories_.get(c)?(c=shaka.ui.ControlsPanel.elementNamesToFactories_.get(c),this.elements_.push(c.create(this.controlsButtonPanel_,this))):shaka.log.alwaysWarn("Unrecognized control panel element requested:",
1510
+ c)}};shaka.ui.Controls.prototype.onScreenRotation_=function(){this.video_&&0!=this.video_.readyState&&!this.castProxy_.isCasting()&&(screen.orientation.type.includes("landscape")&&!document.fullscreenElement?this.videoContainer_.requestFullscreen():screen.orientation.type.includes("portrait")&&document.fullscreenElement&&document.exitFullscreen())};
1511
+ shaka.ui.Controls.prototype.addEventListeners_=function(){var a=this;this.eventManager_.listen(this.player_,"buffering",function(){a.onBufferingStateChange_()});this.onBufferingStateChange_();this.eventManager_.listen(window,"keydown",this.onKeyDown_.bind(this));this.eventManager_.listen(this.controlsContainer_,"dblclick",function(){return a.toggleFullScreen()});this.eventManager_.listen(this.video_,"play",this.onPlayStateChange_.bind(this));this.eventManager_.listen(this.video_,"pause",this.onPlayStateChange_.bind(this));
1512
+ this.eventManager_.listen(this.video_,"ended",this.onPlayStateChange_.bind(this));this.eventManager_.listen(this.videoContainer_,"mousemove",this.onMouseMove_.bind(this));this.eventManager_.listen(this.videoContainer_,"touchmove",this.onMouseMove_.bind(this),{passive:!0});this.eventManager_.listen(this.videoContainer_,"touchend",this.onMouseMove_.bind(this),{passive:!0});this.eventManager_.listen(this.videoContainer_,"mouseleave",this.onMouseLeave_.bind(this));this.eventManager_.listen(this.castProxy_,
1513
+ "caststatuschanged",function(b){a.onCastStatusChange_(b)});this.eventManager_.listen(this.videoContainer_,"keyup",this.onKeyUp_.bind(this));screen.orientation&&this.eventManager_.listen(screen.orientation,"change",function(){a.onScreenRotation_()})};
1503
1514
  shaka.ui.Controls.prototype.onMouseMove_=function(a){"mousemove"==a.type&&this.controlsContainer_.classList.remove("shaka-keyboard-navigation");"touchstart"==a.type||"touchmove"==a.type||"touchend"==a.type||"keyup"==a.type?this.lastTouchEventTime_=Date.now():this.lastTouchEventTime_+1E3<Date.now()&&(this.lastTouchEventTime_=null);this.lastTouchEventTime_&&"mousemove"==a.type||(this.videoContainer_.style.cursor="",this.hideSettingsMenusTimer_.stop(),this.isOpaque_()||(this.updateTimeAndSeekRange_(),
1504
1515
  this.setControlsOpacity_(shaka.ui.Enums.Opacity.OPAQUE)),this.mouseStillTimer_.stop(),"touchend"!=a.type&&"keyup"!=a.type&&this.lastTouchEventTime_||this.mouseStillTimer_.tickAfter(3))};shaka.ui.Controls.prototype.onMouseLeave_=function(){this.lastTouchEventTime_||this.mouseStillTimer_.tickNow()};
1505
1516
  shaka.ui.Controls.prototype.onMouseStill_=function(){this.videoContainer_.style.cursor="none";this.video_.paused&&!this.isSeeking_||this.overrideCssShowControls_?this.setControlsOpacity_(shaka.ui.Enums.Opacity.OPAQUE):this.setControlsOpacity_(shaka.ui.Enums.Opacity.TRANSPARENT)};shaka.ui.Controls.prototype.onContainerTouch_=function(a){this.video_.duration&&(this.isOpaque_()?this.lastTouchEventTime_=Date.now():(this.onMouseMove_(a),a.preventDefault()))};
1506
1517
  shaka.ui.Controls.prototype.onContainerClick_=function(a){if(this.enabled_)if(this.anySettingsMenusAreOpen())this.hideSettingsMenusTimer_.tickNow();else this.onPlayPauseClick_()};shaka.ui.Controls.prototype.onPlayPauseClick_=function(){this.enabled_&&this.video_.duration&&(this.player_.cancelTrickPlay(),this.video_.paused?this.video_.play():this.video_.pause())};
1507
- shaka.ui.Controls.prototype.onCastStatusChange_=function(a){a=this.castProxy_.isCasting();this.dispatchEvent(new shaka.util.FakeEvent("caststatuschanged",{newStatus:a}));a?this.controlsContainer_.setAttribute("casting","true"):this.controlsContainer_.removeAttribute("casting")};
1508
- shaka.ui.Controls.prototype.onPlayStateChange_=function(){this.video_.ended&&!this.video_.paused&&this.video_.pause();this.enabled_&&this.video_.paused&&!this.isSeeking_?(this.playButton_.setAttribute("icon","play"),this.playButton_.setAttribute(shaka.ui.Constants.ARIA_LABEL,this.localization_.resolve(shaka.ui.Locales.Ids.PLAY))):(this.playButton_.setAttribute("icon","pause"),this.playButton_.setAttribute(shaka.ui.Constants.ARIA_LABEL,this.localization_.resolve(shaka.ui.Locales.Ids.PAUSE)))};
1518
+ shaka.ui.Controls.prototype.onCastStatusChange_=function(a){a=this.castProxy_.isCasting();this.dispatchEvent(new shaka.util.FakeEvent("caststatuschanged",{newStatus:a}));a?this.controlsContainer_.setAttribute("casting","true"):this.controlsContainer_.removeAttribute("casting")};shaka.ui.Controls.prototype.onPlayStateChange_=function(){this.video_.ended&&!this.video_.paused&&this.video_.pause()};
1509
1519
  shaka.ui.Controls.prototype.onKeyUp_=function(a){var b=a.key,c=document.activeElement,d=c&&c.classList?c.classList.contains("shaka-volume-bar"):!1,e=c&&c.classList&&c.classList.contains("shaka-seek-bar");if(this.controlsContainer_.contains(c))this.onMouseMove_(a);this.pressedKeys_["delete"](a.keyCode);switch(b){case "ArrowLeft":d||this.seek_(this.video_.currentTime-5,a);break;case "ArrowRight":d||this.seek_(this.video_.currentTime+5,a);break;case "Home":this.seek_(this.player_.seekRange().start,a);
1510
1520
  break;case "End":this.seek_(this.player_.seekRange().end,a);break;case " ":if(e)this.onPlayPauseClick_()}};shaka.ui.Controls.prototype.onBufferingStateChange_=function(){this.enabled_&&shaka.ui.Utils.setDisplay(this.spinnerContainer_,this.player_.isBuffering())};shaka.ui.Controls.prototype.isOpaque_=function(){return this.enabled_?this.castProxy_&&this.castProxy_.isCasting()?!0:null!=this.controlsContainer_.getAttribute("shown"):!1};
1511
1521
  shaka.ui.Controls.prototype.seek_=function(a,b){this.video_.currentTime=a;this.isOpaque_()&&this.updateTimeAndSeekRange_()};
@@ -1522,17 +1532,19 @@ shaka.ui.OverflowMenu.prototype.addOverflowMenu_=function(){this.overflowMenu_=s
1522
1532
  shaka.ui.OverflowMenu.prototype.addOverflowMenuButton_=function(){this.overflowMenuButton_=shaka.util.Dom.createHTMLElement("button");this.overflowMenuButton_.classList.add("shaka-overflow-menu-button");this.overflowMenuButton_.classList.add("shaka-no-propagation");this.overflowMenuButton_.classList.add("material-icons");this.overflowMenuButton_.textContent=shaka.ui.Enums.MaterialDesignIcons.OPEN_OVERFLOW;this.parent.appendChild(this.overflowMenuButton_)};
1523
1533
  shaka.ui.OverflowMenu.prototype.createChildren_=function(){for(var a=0;a<this.config_.overflowMenuButtons.length;a++){var b=this.config_.overflowMenuButtons[a];shaka.ui.OverflowMenu.elementNamesToFactories_.get(b)?(b=shaka.ui.OverflowMenu.elementNamesToFactories_.get(b),goog.asserts.assert(this.controls,"Controls should not be null!"),this.children_.push(b.create(this.overflowMenu_,this.controls))):shaka.log.alwaysWarn("Unrecognized overflow menu element requested:",b)}};
1524
1534
  shaka.ui.OverflowMenu.prototype.onOverflowMenuButtonClick_=function(){if(this.controls.anySettingsMenusAreOpen())this.controls.hideSettingsMenus();else{shaka.ui.Utils.setDisplay(this.overflowMenu_,!0);this.controls.overrideCssShowControls();var a=function(a){return 0==a.classList.contains("shaka-hidden")},b=shaka.util.Iterables;b.some(this.overflowMenu_.childNodes,a)&&b.filter(this.overflowMenu_.childNodes,a)[0].focus()}};
1525
- shaka.ui.OverflowMenu.prototype.updateAriaLabel_=function(){this.overflowMenuButton_.setAttribute(shaka.ui.Constants.ARIA_LABEL,this.localization.resolve(shaka.ui.Locales.Ids.MORE_SETTINGS))};shaka.ui.OverflowMenu.Factory=function(){};shaka.ui.OverflowMenu.Factory.prototype.create=function(a,b){return new shaka.ui.OverflowMenu(a,b)};shaka.ui.Controls.registerElement("overflow_menu",new shaka.ui.OverflowMenu.Factory);shaka.ui.OverflowMenu.elementNamesToFactories_=new Map;shaka.ui.AudioLanguageSelection=function(a,b){shaka.ui.Element.call(this,a,b);var c=this;this.addLanguagesButton_();this.addAudioLangMenu_();this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_UPDATED,function(){c.updateLocalizedStrings_()});this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_CHANGED,function(){c.updateLocalizedStrings_()});this.eventManager.listen(this.player,"trackschanged",function(){c.onTracksChanged_()});this.eventManager.listen(this.player,
1526
- "variantchanged",function(){c.updateAudioLanguages_()});this.eventManager.listen(this.languagesButton_,"click",function(){c.onLanguagesClick_()});this.updateLocalizedStrings_();this.updateAudioLanguages_()};$jscomp.inherits(shaka.ui.AudioLanguageSelection,shaka.ui.Element);goog.exportSymbol("shaka.ui.AudioLanguageSelection",shaka.ui.AudioLanguageSelection);
1527
- shaka.ui.AudioLanguageSelection.prototype.addAudioLangMenu_=function(){this.audioLangMenu_=shaka.util.Dom.createHTMLElement("div");this.audioLangMenu_.classList.add("shaka-audio-languages");this.audioLangMenu_.classList.add("shaka-no-propagation");this.audioLangMenu_.classList.add("shaka-show-controls-on-mouse-over");this.audioLangMenu_.classList.add("shaka-settings-menu");this.backFromLanguageButton_=shaka.util.Dom.createHTMLElement("button");this.backFromLanguageButton_.classList.add("shaka-back-to-overflow-button");
1528
- this.audioLangMenu_.appendChild(this.backFromLanguageButton_);var a=shaka.util.Dom.createHTMLElement("i");a.classList.add("material-icons");a.textContent=shaka.ui.Enums.MaterialDesignIcons.BACK;this.backFromLanguageButton_.appendChild(a);this.backFromLanguageSpan_=shaka.util.Dom.createHTMLElement("span");this.backFromLanguageButton_.appendChild(this.backFromLanguageSpan_);this.controls.getControlsContainer().appendChild(this.audioLangMenu_)};
1529
- shaka.ui.AudioLanguageSelection.prototype.addLanguagesButton_=function(){this.languagesButton_=shaka.util.Dom.createHTMLElement("button");this.languagesButton_.classList.add("shaka-language-button");var a=shaka.util.Dom.createHTMLElement("i");a.classList.add("material-icons");a.textContent=shaka.ui.Enums.MaterialDesignIcons.LANGUAGE;this.languagesButton_.appendChild(a);a=shaka.util.Dom.createHTMLElement("label");a.classList.add("shaka-overflow-button-label");this.languageNameSpan_=shaka.util.Dom.createHTMLElement("span");
1530
- this.languageNameSpan_.classList.add("languageSpan");a.appendChild(this.languageNameSpan_);this.currentAudioLanguage_=shaka.util.Dom.createHTMLElement("span");this.currentAudioLanguage_.classList.add("shaka-current-selection-span");var b=this.player.getConfiguration().preferredAudioLanguage;this.currentAudioLanguage_.textContent=shaka.ui.LanguageUtils.getLanguageName(b,this.localization);a.appendChild(this.currentAudioLanguage_);this.languagesButton_.appendChild(a);this.parent.appendChild(this.languagesButton_)};
1531
- shaka.ui.AudioLanguageSelection.prototype.onLanguagesClick_=function(){this.controls.dispatchEvent(new shaka.util.FakeEvent("submenuopen"));shaka.ui.Utils.setDisplay(this.audioLangMenu_,!0);shaka.ui.Utils.focusOnTheChosenItem(this.audioLangMenu_)};
1532
- shaka.ui.AudioLanguageSelection.prototype.updateAudioLanguages_=function(){var a=this.player.getVariantTracks(),b=this.player.getAudioLanguages();shaka.ui.LanguageUtils.updateLanguages(a,this.audioLangMenu_,b,this.onAudioLanguageSelected_.bind(this),!0,this.currentAudioLanguage_,this.localization);shaka.ui.Utils.focusOnTheChosenItem(this.audioLangMenu_);this.controls.dispatchEvent(new shaka.util.FakeEvent("languageselectionupdated"))};
1533
- shaka.ui.AudioLanguageSelection.prototype.onTracksChanged_=function(){var a=0<this.player.getVariantTracks().length;shaka.ui.Utils.setDisplay(this.languagesButton_,a);this.updateAudioLanguages_()};shaka.ui.AudioLanguageSelection.prototype.onAudioLanguageSelected_=function(a){this.player.selectAudioLanguage(a)};
1534
- shaka.ui.AudioLanguageSelection.prototype.updateLocalizedStrings_=function(){var a=shaka.ui.Locales.Ids;this.backFromLanguageButton_.setAttribute(shaka.ui.Constants.ARIA_LABEL,this.localization.resolve(a.BACK));this.languagesButton_.setAttribute(shaka.ui.Constants.ARIA_LABEL,this.localization.resolve(a.LANGUAGE));this.languageNameSpan_.textContent=this.localization.resolve(a.LANGUAGE);this.backFromLanguageSpan_.textContent=this.localization.resolve(a.LANGUAGE)};
1535
- shaka.ui.AudioLanguageSelection.Factory=function(){};shaka.ui.AudioLanguageSelection.Factory.prototype.create=function(a,b){return new shaka.ui.AudioLanguageSelection(a,b)};shaka.ui.OverflowMenu.registerElement("language",new shaka.ui.AudioLanguageSelection.Factory);shaka.ui.CastButton=function(a,b){shaka.ui.Element.call(this,a,b);var c=this;this.castProxy_=this.controls.getCastProxy();this.castButton_=shaka.util.Dom.createHTMLElement("button");this.castButton_.classList.add("shaka-cast-button");this.castButton_.setAttribute("aria-pressed","false");this.castIcon_=shaka.util.Dom.createHTMLElement("i");this.castIcon_.classList.add("material-icons");this.castIcon_.textContent=shaka.ui.Enums.MaterialDesignIcons.CAST;this.castButton_.appendChild(this.castIcon_);var d=
1535
+ shaka.ui.OverflowMenu.prototype.updateAriaLabel_=function(){this.overflowMenuButton_.setAttribute(shaka.ui.Constants.ARIA_LABEL,this.localization.resolve(shaka.ui.Locales.Ids.MORE_SETTINGS))};shaka.ui.OverflowMenu.Factory=function(){};shaka.ui.OverflowMenu.Factory.prototype.create=function(a,b){return new shaka.ui.OverflowMenu(a,b)};shaka.ui.Controls.registerElement("overflow_menu",new shaka.ui.OverflowMenu.Factory);shaka.ui.OverflowMenu.elementNamesToFactories_=new Map;shaka.ui.SettingsMenu=function(a,b,c){shaka.ui.Element.call(this,a,b);var d=this;this.addButton_(c);this.addMenu_();this.eventManager.listen(this.button,"click",function(){d.onButtonClick_()})};$jscomp.inherits(shaka.ui.SettingsMenu,shaka.ui.Element);goog.exportSymbol("shaka.ui.SettingsMenu",shaka.ui.SettingsMenu);
1536
+ shaka.ui.SettingsMenu.prototype.addButton_=function(a){this.button=shaka.util.Dom.createHTMLElement("button");this.icon=shaka.util.Dom.createHTMLElement("i");this.icon.classList.add("material-icons");this.icon.textContent=a;this.button.appendChild(this.icon);a=shaka.util.Dom.createHTMLElement("label");a.classList.add("shaka-overflow-button-label");this.nameSpan=shaka.util.Dom.createHTMLElement("span");a.appendChild(this.nameSpan);this.currentSelection=shaka.util.Dom.createHTMLElement("span");this.currentSelection.classList.add("shaka-current-selection-span");
1537
+ a.appendChild(this.currentSelection);this.button.appendChild(a);this.parent.appendChild(this.button)};
1538
+ shaka.ui.SettingsMenu.prototype.addMenu_=function(){this.menu=shaka.util.Dom.createHTMLElement("div");this.menu.classList.add("shaka-no-propagation");this.menu.classList.add("shaka-show-controls-on-mouse-over");this.menu.classList.add("shaka-settings-menu");this.backButton=shaka.util.Dom.createHTMLElement("button");this.backButton.classList.add("shaka-back-to-overflow-button");this.menu.appendChild(this.backButton);var a=shaka.util.Dom.createHTMLElement("i");a.classList.add("material-icons");a.textContent=
1539
+ shaka.ui.Enums.MaterialDesignIcons.BACK;this.backButton.appendChild(a);this.backSpan=shaka.util.Dom.createHTMLElement("span");this.backButton.appendChild(this.backSpan);this.controls.getControlsContainer().appendChild(this.menu)};shaka.ui.SettingsMenu.prototype.onButtonClick_=function(){this.controls.dispatchEvent(new shaka.util.FakeEvent("submenuopen"));shaka.ui.Utils.setDisplay(this.menu,!0);shaka.ui.Utils.focusOnTheChosenItem(this.menu)};shaka.ui.AudioLanguageSelection=function(a,b){shaka.ui.SettingsMenu.call(this,a,b,shaka.ui.Enums.MaterialDesignIcons.LANGUAGE);var c=this;this.button.classList.add("shaka-language-button");this.menu.classList.add("shaka-audio-languages");this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_UPDATED,function(){c.updateLocalizedStrings_()});this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_CHANGED,function(){c.updateLocalizedStrings_()});this.eventManager.listen(this.player,
1540
+ "trackschanged",function(){c.onTracksChanged_()});this.eventManager.listen(this.player,"variantchanged",function(){c.updateAudioLanguages_()});this.updateLocalizedStrings_();this.updateAudioLanguages_()};$jscomp.inherits(shaka.ui.AudioLanguageSelection,shaka.ui.SettingsMenu);goog.exportSymbol("shaka.ui.AudioLanguageSelection",shaka.ui.AudioLanguageSelection);
1541
+ shaka.ui.AudioLanguageSelection.prototype.updateAudioLanguages_=function(){var a=this,b=this.player.getVariantTracks(),c=this.player.getAudioLanguages();shaka.ui.LanguageUtils.updateLanguages(b,this.menu,c,function(b){return a.onAudioLanguageSelected_(b)},!0,this.currentSelection,this.localization);shaka.ui.Utils.focusOnTheChosenItem(this.menu);this.controls.dispatchEvent(new shaka.util.FakeEvent("languageselectionupdated"))};
1542
+ shaka.ui.AudioLanguageSelection.prototype.onTracksChanged_=function(){var a=0<this.player.getVariantTracks().length;shaka.ui.Utils.setDisplay(this.button,a);this.updateAudioLanguages_()};shaka.ui.AudioLanguageSelection.prototype.onAudioLanguageSelected_=function(a){this.player.selectAudioLanguage(a)};
1543
+ shaka.ui.AudioLanguageSelection.prototype.updateLocalizedStrings_=function(){var a=shaka.ui.Locales.Ids;this.backButton.setAttribute(shaka.ui.Constants.ARIA_LABEL,this.localization.resolve(a.BACK));this.button.setAttribute(shaka.ui.Constants.ARIA_LABEL,this.localization.resolve(a.LANGUAGE));this.nameSpan.textContent=this.localization.resolve(a.LANGUAGE);this.backSpan.textContent=this.localization.resolve(a.LANGUAGE)};shaka.ui.AudioLanguageSelection.Factory=function(){};
1544
+ shaka.ui.AudioLanguageSelection.Factory.prototype.create=function(a,b){return new shaka.ui.AudioLanguageSelection(a,b)};shaka.ui.OverflowMenu.registerElement("language",new shaka.ui.AudioLanguageSelection.Factory);shaka.ui.PlayButton=function(a,b){shaka.ui.Element.call(this,a,b);var c=this;this.button=shaka.util.Dom.createHTMLElement("button");this.parent.appendChild(this.button);this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_UPDATED,function(){c.updateAriaLabel()});this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_CHANGED,function(){c.updateAriaLabel()});this.eventManager.listen(this.video,"play",function(){c.updateAriaLabel()});this.eventManager.listen(this.video,
1545
+ "pause",function(){c.updateAriaLabel()});this.eventManager.listen(this.button,"click",function(){c.isPaused()?c.video.play():c.video.pause()})};$jscomp.inherits(shaka.ui.PlayButton,shaka.ui.Element);goog.exportSymbol("shaka.ui.PlayButton",shaka.ui.PlayButton);shaka.ui.PlayButton.prototype.isPaused=function(){return this.video.paused&&!this.controls.isSeeking()};
1546
+ shaka.ui.PlayButton.prototype.updateAriaLabel=function(){var a=shaka.ui.Locales.Ids;a=this.isPaused()?a.PLAY:a.PAUSE;this.button.setAttribute(shaka.ui.Constants.ARIA_LABEL,this.localization.resolve(a))};shaka.ui.BigPlayButton=function(a,b){shaka.ui.PlayButton.call(this,a,b);var c=this;this.button.classList.add("shaka-play-button");this.button.classList.add("shaka-no-propagation");this.updateIcon_();this.updateAriaLabel();this.eventManager.listen(this.video,"play",function(){c.updateIcon_()});this.eventManager.listen(this.video,"pause",function(){c.updateIcon_()})};$jscomp.inherits(shaka.ui.BigPlayButton,shaka.ui.PlayButton);goog.exportSymbol("shaka.ui.BigPlayButton",shaka.ui.BigPlayButton);
1547
+ shaka.ui.BigPlayButton.prototype.updateIcon_=function(){this.isPaused()?this.button.setAttribute("icon","play"):this.button.setAttribute("icon","pause")};shaka.ui.CastButton=function(a,b){shaka.ui.Element.call(this,a,b);var c=this;this.castProxy_=this.controls.getCastProxy();this.castButton_=shaka.util.Dom.createHTMLElement("button");this.castButton_.classList.add("shaka-cast-button");this.castButton_.setAttribute("aria-pressed","false");this.castIcon_=shaka.util.Dom.createHTMLElement("i");this.castIcon_.classList.add("material-icons");this.castIcon_.textContent=shaka.ui.Enums.MaterialDesignIcons.CAST;this.castButton_.appendChild(this.castIcon_);var d=
1536
1548
  shaka.util.Dom.createHTMLElement("label");d.classList.add("shaka-overflow-button-label");this.castNameSpan_=shaka.util.Dom.createHTMLElement("span");d.appendChild(this.castNameSpan_);this.castCurrentSelectionSpan_=shaka.util.Dom.createHTMLElement("span");this.castCurrentSelectionSpan_.classList.add("shaka-current-selection-span");d.appendChild(this.castCurrentSelectionSpan_);this.castButton_.appendChild(d);this.parent.appendChild(this.castButton_);this.updateLocalizedStrings_();this.onCastStatusChange_();
1537
1549
  this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_UPDATED,function(){c.updateLocalizedStrings_()});this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_CHANGED,function(){c.updateLocalizedStrings_()});this.eventManager.listen(this.castButton_,"click",function(){c.onCastClick_()});this.eventManager.listen(this.controls,"caststatuschanged",function(){c.onCastStatusChange_()})};$jscomp.inherits(shaka.ui.CastButton,shaka.ui.Element);
1538
1550
  goog.exportSymbol("shaka.ui.CastButton",shaka.ui.CastButton);
@@ -1542,76 +1554,63 @@ shaka.ui.CastButton.prototype.onCastStatusChange_=function(){var a=this.castProx
1542
1554
  shaka.ui.CastButton.prototype.setCurrentCastSelection_=function(){this.castProxy_.isCasting()?this.castCurrentSelectionSpan_.textContent=this.castProxy_.receiverName():this.castCurrentSelectionSpan_.textContent=this.localization.resolve(shaka.ui.Locales.Ids.OFF)};
1543
1555
  shaka.ui.CastButton.prototype.updateLocalizedStrings_=function(){var a=shaka.ui.Locales.Ids;this.castButton_.setAttribute(shaka.ui.Constants.ARIA_LABEL,this.localization.resolve(a.CAST));this.castNameSpan_.textContent=this.localization.resolve(a.CAST);this.setCurrentCastSelection_()};shaka.ui.CastButton.Factory=function(){};shaka.ui.CastButton.Factory.prototype.create=function(a,b){return new shaka.ui.CastButton(a,b)};shaka.ui.OverflowMenu.registerElement("cast",new shaka.ui.CastButton.Factory);shaka.ui.FastForwardButton=function(a,b){shaka.ui.Element.call(this,a,b);var c=this;this.button_=shaka.util.Dom.createHTMLElement("button");this.button_.classList.add("material-icons");this.button_.classList.add("shaka-fast-forward-button");this.button_.textContent=shaka.ui.Enums.MaterialDesignIcons.FAST_FORWARD;this.parent.appendChild(this.button_);this.updateAriaLabel_();this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_UPDATED,function(){c.updateAriaLabel_()});this.eventManager.listen(this.localization,
1544
1556
  shaka.ui.Localization.LOCALE_CHANGED,function(){c.updateAriaLabel_()});this.eventManager.listen(this.button_,"click",function(){c.fastForward_()})};$jscomp.inherits(shaka.ui.FastForwardButton,shaka.ui.Element);goog.exportSymbol("shaka.ui.FastForwardButton",shaka.ui.FastForwardButton);shaka.ui.FastForwardButton.prototype.updateAriaLabel_=function(){this.button_.setAttribute(shaka.ui.Constants.ARIA_LABEL,this.localization.resolve(shaka.ui.Locales.Ids.FAST_FORWARD))};
1545
- shaka.ui.FastForwardButton.prototype.fastForward_=function(){if(this.video.duration){var a=this.player.getPlaybackRate();this.player.trickPlay(0>a||4<a?1:2*a)}};shaka.ui.FastForwardButton.Factory=function(){};shaka.ui.FastForwardButton.Factory.prototype.create=function(a,b){return new shaka.ui.FastForwardButton(a,b)};shaka.ui.Controls.registerElement("fast_forward",new shaka.ui.FastForwardButton.Factory);shaka.ui.FullscreenButton=function(a,b){shaka.ui.Element.call(this,a,b);var c=this;this.button_=shaka.util.Dom.createHTMLElement("button");this.button_.classList.add("shaka-fullscreen-button");this.button_.classList.add("material-icons");document.fullscreenEnabled||this.button_.classList.add("shaka-hidden");this.button_.textContent=shaka.ui.Enums.MaterialDesignIcons.FULLSCREEN;this.parent.appendChild(this.button_);this.updateAriaLabel_();this.videoContainer_=this.controls.getVideoContainer();this.eventManager.listen(this.localization,
1546
- shaka.ui.Localization.LOCALE_UPDATED,function(){c.updateAriaLabel_()});this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_CHANGED,function(){c.updateAriaLabel_()});this.eventManager.listen(this.button_,"click",function(){c.toggleFullScreen_()});screen.orientation&&this.eventManager.listen(screen.orientation,"change",function(){c.onScreenRotation_()});this.eventManager.listen(document,"fullscreenchange",function(){c.updateIcon_();c.updateAriaLabel_()})};
1547
- $jscomp.inherits(shaka.ui.FullscreenButton,shaka.ui.Element);goog.exportSymbol("shaka.ui.FullscreenButton",shaka.ui.FullscreenButton);shaka.ui.FullscreenButton.prototype.updateAriaLabel_=function(){var a=shaka.ui.Locales.Ids;this.button_.setAttribute(shaka.ui.Constants.ARIA_LABEL,this.localization.resolve(document.fullscreenElement?a.EXIT_FULL_SCREEN:a.FULL_SCREEN))};
1548
- shaka.ui.FullscreenButton.prototype.updateIcon_=function(){this.button_.textContent=document.fullscreenElement?shaka.ui.Enums.MaterialDesignIcons.EXIT_FULLSCREEN:shaka.ui.Enums.MaterialDesignIcons.FULLSCREEN};
1549
- shaka.ui.FullscreenButton.prototype.toggleFullScreen_=function(){var a=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function c(){var d;return $jscomp.generator.createGenerator(c,function(c){switch(c.nextAddress){case 1:if(document.fullscreenElement){document.exitFullscreen();c.jumpTo(0);break}c.setCatchFinallyBlocks(3);if(!document.pictureInPictureElement){c.jumpTo(5);break}return c.yield(document.exitPictureInPicture(),5);case 5:c.leaveTryBlock(4);break;case 3:d=c.enterCatchBlock(),a.controls.dispatchEvent(new shaka.util.FakeEvent("error",
1550
- {detail:d}));case 4:return c.yield(a.videoContainer_.requestFullscreen(),0)}})})};shaka.ui.FullscreenButton.prototype.onScreenRotation_=function(){this.video&&0!=this.video.readyState&&!this.controls.getCastProxy().isCasting()&&(screen.orientation.type.includes("landscape")&&!document.fullscreenElement?this.videoContainer_.requestFullscreen():screen.orientation.type.includes("portrait")&&document.fullscreenElement&&document.exitFullscreen())};shaka.ui.FullscreenButton.Factory=function(){};
1557
+ shaka.ui.FastForwardButton.prototype.fastForward_=function(){if(this.video.duration){var a=this.player.getPlaybackRate();this.player.trickPlay(0>a||4<a?1:2*a)}};shaka.ui.FastForwardButton.Factory=function(){};shaka.ui.FastForwardButton.Factory.prototype.create=function(a,b){return new shaka.ui.FastForwardButton(a,b)};shaka.ui.Controls.registerElement("fast_forward",new shaka.ui.FastForwardButton.Factory);shaka.ui.FullscreenButton=function(a,b){shaka.ui.Element.call(this,a,b);var c=this;this.button_=shaka.util.Dom.createHTMLElement("button");this.button_.classList.add("shaka-fullscreen-button");this.button_.classList.add("material-icons");document.fullscreenEnabled||this.button_.classList.add("shaka-hidden");this.button_.textContent=shaka.ui.Enums.MaterialDesignIcons.FULLSCREEN;this.parent.appendChild(this.button_);this.updateAriaLabel_();this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_UPDATED,
1558
+ function(){c.updateAriaLabel_()});this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_CHANGED,function(){c.updateAriaLabel_()});this.eventManager.listen(this.button_,"click",function(){c.controls.toggleFullScreen()});this.eventManager.listen(document,"fullscreenchange",function(){c.updateIcon_();c.updateAriaLabel_()})};$jscomp.inherits(shaka.ui.FullscreenButton,shaka.ui.Element);goog.exportSymbol("shaka.ui.FullscreenButton",shaka.ui.FullscreenButton);
1559
+ shaka.ui.FullscreenButton.prototype.updateAriaLabel_=function(){var a=shaka.ui.Locales.Ids;this.button_.setAttribute(shaka.ui.Constants.ARIA_LABEL,this.localization.resolve(document.fullscreenElement?a.EXIT_FULL_SCREEN:a.FULL_SCREEN))};shaka.ui.FullscreenButton.prototype.updateIcon_=function(){this.button_.textContent=document.fullscreenElement?shaka.ui.Enums.MaterialDesignIcons.EXIT_FULLSCREEN:shaka.ui.Enums.MaterialDesignIcons.FULLSCREEN};shaka.ui.FullscreenButton.Factory=function(){};
1551
1560
  shaka.ui.FullscreenButton.Factory.prototype.create=function(a,b){return new shaka.ui.FullscreenButton(a,b)};shaka.ui.Controls.registerElement("fullscreen",new shaka.ui.FullscreenButton.Factory);shaka.ui.MuteButton=function(a,b){shaka.ui.Element.call(this,a,b);var c=this;this.button_=shaka.util.Dom.createHTMLElement("button");this.button_.classList.add("shaka-mute-button");this.button_.classList.add("material-icons");this.button_.textContent=shaka.ui.Enums.MaterialDesignIcons.MUTE;this.parent.appendChild(this.button_);this.updateAriaLabel_();this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_UPDATED,function(){c.updateAriaLabel_()});this.eventManager.listen(this.localization,
1552
1561
  shaka.ui.Localization.LOCALE_CHANGED,function(){c.updateAriaLabel_()});this.eventManager.listen(this.button_,"click",function(){c.video.muted=!c.video.muted});this.eventManager.listen(this.video,"volumechange",function(){c.updateAriaLabel_();c.updateIcon_()})};$jscomp.inherits(shaka.ui.MuteButton,shaka.ui.Element);goog.exportSymbol("shaka.ui.MuteButton",shaka.ui.MuteButton);
1553
1562
  shaka.ui.MuteButton.prototype.updateAriaLabel_=function(){var a=shaka.ui.Locales.Ids;this.button_.setAttribute(shaka.ui.Constants.ARIA_LABEL,this.localization.resolve(this.video.muted?a.UNMUTE:a.MUTE))};shaka.ui.MuteButton.prototype.updateIcon_=function(){this.button_.textContent=this.video.muted?shaka.ui.Enums.MaterialDesignIcons.UNMUTE:shaka.ui.Enums.MaterialDesignIcons.MUTE};shaka.ui.MuteButton.Factory=function(){};
1554
1563
  shaka.ui.MuteButton.Factory.prototype.create=function(a,b){return new shaka.ui.MuteButton(a,b)};shaka.ui.Controls.registerElement("mute",new shaka.ui.MuteButton.Factory);shaka.ui.PipButton=function(a,b){shaka.ui.Element.call(this,a,b);var c=this;this.localVideo_=this.controls.getLocalVideo();var d=shaka.ui.Locales.Ids;this.pipButton_=shaka.util.Dom.createHTMLElement("button");this.pipButton_.classList.add("shaka-pip-button");this.pipIcon_=shaka.util.Dom.createHTMLElement("i");this.pipIcon_.classList.add("material-icons");this.pipIcon_.textContent=shaka.ui.Enums.MaterialDesignIcons.PIP;this.pipButton_.appendChild(this.pipIcon_);var e=shaka.util.Dom.createHTMLElement("label");
1555
1564
  e.classList.add("shaka-overflow-button-label");this.pipNameSpan_=shaka.util.Dom.createHTMLElement("span");this.pipNameSpan_.textContent=this.localization.resolve(d.PICTURE_IN_PICTURE);e.appendChild(this.pipNameSpan_);this.currentPipState_=shaka.util.Dom.createHTMLElement("span");this.currentPipState_.classList.add("shaka-current-selection-span");e.appendChild(this.currentPipState_);this.pipButton_.appendChild(e);this.updateLocalizedStrings_();this.parent.appendChild(this.pipButton_);this.isPipAllowed_()||
1556
1565
  shaka.ui.Utils.setDisplay(this.pipButton_,!1);this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_UPDATED,function(){c.updateLocalizedStrings_()});this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_CHANGED,function(){c.updateLocalizedStrings_()});this.eventManager.listen(this.pipButton_,"click",function(){c.onPipClick_()});this.eventManager.listen(this.localVideo_,"enterpictureinpicture",function(){c.onEnterPictureInPicture_()});this.eventManager.listen(this.localVideo_,
1557
- "leavepictureinpicture",function(){c.onLeavePictureInPicture_()});this.eventManager.listen(this.controls,"caststatuschange",function(a){c.onCastStatusChange_(a)});this.eventManager.listen(this.player,"trackschanged",function(){c.onTracksChanged_()})};$jscomp.inherits(shaka.ui.PipButton,shaka.ui.Element);goog.exportSymbol("shaka.ui.PipButton",shaka.ui.PipButton);shaka.ui.PipButton.prototype.isPipAllowed_=function(){return document.pictureInPictureEnabled&&!this.video.disablePictureInPicture};
1566
+ "leavepictureinpicture",function(){c.onLeavePictureInPicture_()});this.eventManager.listen(this.controls,"caststatuschanged",function(a){c.onCastStatusChange_(a)});this.eventManager.listen(this.player,"trackschanged",function(){c.onTracksChanged_()})};$jscomp.inherits(shaka.ui.PipButton,shaka.ui.Element);goog.exportSymbol("shaka.ui.PipButton",shaka.ui.PipButton);shaka.ui.PipButton.prototype.isPipAllowed_=function(){return document.pictureInPictureEnabled&&!this.video.disablePictureInPicture};
1558
1567
  shaka.ui.PipButton.prototype.onPipClick_=function(){var a=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function c(){var d;return $jscomp.generator.createGenerator(c,function(c){switch(c.nextAddress){case 1:return c.setCatchFinallyBlocks(2),document.pictureInPictureElement?c.yield(document.exitPictureInPicture(),5):(document.fullscreenElement&&document.exitFullscreen(),c.yield(a.video.requestPictureInPicture(),5));case 5:c.leaveTryBlock(0);break;case 2:d=c.enterCatchBlock(),a.controls.dispatchEvent(new shaka.util.FakeEvent("error",
1559
1568
  {detail:d})),c.jumpToEnd()}})})};shaka.ui.PipButton.prototype.onEnterPictureInPicture_=function(){var a=shaka.ui.Locales.Ids;this.pipIcon_.textContent=shaka.ui.Enums.MaterialDesignIcons.EXIT_PIP;this.pipButton_.setAttribute(shaka.ui.Constants.ARIA_LABEL,this.localization.resolve(a.EXIT_PICTURE_IN_PICTURE));this.currentPipState_.textContent=this.localization.resolve(a.ON)};
1560
1569
  shaka.ui.PipButton.prototype.onLeavePictureInPicture_=function(){var a=shaka.ui.Locales.Ids;this.pipIcon_.textContent=shaka.ui.Enums.MaterialDesignIcons.PIP;this.pipButton_.setAttribute(shaka.ui.Constants.ARIA_LABEL,this.localization.resolve(a.ENTER_PICTURE_IN_PICTURE));this.currentPipState_.textContent=this.localization.resolve(a.OFF)};
1561
1570
  shaka.ui.PipButton.prototype.updateLocalizedStrings_=function(){var a=shaka.ui.Locales.Ids;this.pipNameSpan_.textContent=this.localization.resolve(a.PICTURE_IN_PICTURE);this.pipButton_.setAttribute(shaka.ui.Constants.ARIA_LABEL,this.localization.resolve(document.pictureInPictureElement?a.EXIT_PICTURE_IN_PICTURE:a.ENTER_PICTURE_IN_PICTURE));this.currentPipState_.textContent=this.localization.resolve(document.pictureInPictureElement?a.ON:a.OFF)};
1562
1571
  shaka.ui.PipButton.prototype.onCastStatusChange_=function(a){a.newStatus?this.isPipAllowed_()&&shaka.ui.Utils.setDisplay(this.pipButton_,!1):this.isPipAllowed_()&&shaka.ui.Utils.setDisplay(this.pipButton_,!0)};
1563
1572
  shaka.ui.PipButton.prototype.onTracksChanged_=function(){var a=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function c(){return $jscomp.generator.createGenerator(c,function(c){switch(c.nextAddress){case 1:if(a.isPipAllowed_())if(a.player&&a.player.isAudioOnly()){if(shaka.ui.Utils.setDisplay(a.pipButton_,!1),document.pictureInPictureElement)return c.yield(document.exitPictureInPicture(),0)}else shaka.ui.Utils.setDisplay(a.pipButton_,!0);else shaka.ui.Utils.setDisplay(a.pipButton_,!1);c.jumpTo(0)}})})};
1564
- shaka.ui.PipButton.Factory=function(){};shaka.ui.PipButton.Factory.prototype.create=function(a,b){return new shaka.ui.PipButton(a,b)};shaka.ui.OverflowMenu.registerElement("picture_in_picture",new shaka.ui.PipButton.Factory);shaka.ui.PlayPauseButton=function(a,b){shaka.ui.Element.call(this,a,b);var c=this;this.button_=shaka.util.Dom.createHTMLElement("button");this.button_.classList.add("shaka-play-pause-button");this.button_.classList.add("material-icons");this.parent.appendChild(this.button_);this.updateIcon_();this.updateAriaLabel_();this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_UPDATED,function(){c.updateAriaLabel_()});this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_CHANGED,
1565
- function(){c.updateAriaLabel_()});this.eventManager.listen(this.video,"play",function(){c.updateAriaLabel_();c.updateIcon_()});this.eventManager.listen(this.video,"pause",function(){c.updateAriaLabel_();c.updateIcon_()});this.eventManager.listen(this.button_,"click",function(){c.isPaused_()?c.video.play():c.video.pause()})};$jscomp.inherits(shaka.ui.PlayPauseButton,shaka.ui.Element);goog.exportSymbol("shaka.ui.PlayPauseButton",shaka.ui.PlayPauseButton);
1566
- shaka.ui.PlayPauseButton.prototype.isPaused_=function(){return this.video.paused&&!this.controls.isSeeking()};shaka.ui.PlayPauseButton.prototype.updateAriaLabel_=function(){var a=shaka.ui.Locales.Ids;a=this.isPaused_()?a.PLAY:a.PAUSE;this.button_.setAttribute(shaka.ui.Constants.ARIA_LABEL,this.localization.resolve(a))};shaka.ui.PlayPauseButton.prototype.updateIcon_=function(){var a=shaka.ui.Enums.MaterialDesignIcons;this.button_.textContent=this.isPaused_()?a.PLAY:a.PAUSE};
1567
- shaka.ui.PlayPauseButton.Factory=function(){};shaka.ui.PlayPauseButton.Factory.prototype.create=function(a,b){return new shaka.ui.PlayPauseButton(a,b)};shaka.ui.Controls.registerElement("play_pause",new shaka.ui.PlayPauseButton.Factory);shaka.ui.PresentationTimeTracker=function(a,b){shaka.ui.Element.call(this,a,b);var c=this;this.currentTime_=shaka.util.Dom.createHTMLElement("button");this.currentTime_.classList.add("shaka-current-time");this.setValue_("0:00");this.parent.appendChild(this.currentTime_);this.eventManager.listen(this.currentTime_,"click",function(){c.player.isLive()&&(c.video.currentTime=c.player.seekRange().end)});this.eventManager.listen(this.controls,"timeandseekrangeupdated",function(){c.updateTime_()});this.eventManager.listen(this.player,
1573
+ shaka.ui.PipButton.Factory=function(){};shaka.ui.PipButton.Factory.prototype.create=function(a,b){return new shaka.ui.PipButton(a,b)};shaka.ui.OverflowMenu.registerElement("picture_in_picture",new shaka.ui.PipButton.Factory);shaka.ui.PresentationTimeTracker=function(a,b){shaka.ui.Element.call(this,a,b);var c=this;this.currentTime_=shaka.util.Dom.createHTMLElement("button");this.currentTime_.classList.add("shaka-current-time");this.setValue_("0:00");this.parent.appendChild(this.currentTime_);this.eventManager.listen(this.currentTime_,"click",function(){c.player.isLive()&&(c.video.currentTime=c.player.seekRange().end)});this.eventManager.listen(this.controls,"timeandseekrangeupdated",function(){c.updateTime_()});this.eventManager.listen(this.player,
1568
1574
  "trackschanged",function(){c.onTracksChanged_()})};$jscomp.inherits(shaka.ui.PresentationTimeTracker,shaka.ui.Element);goog.exportSymbol("shaka.ui.PresentationTimeTracker",shaka.ui.PresentationTimeTracker);shaka.ui.PresentationTimeTracker.prototype.setValue_=function(a){a!=this.currentTime_.textContent&&(this.currentTime_.textContent=a)};
1569
1575
  shaka.ui.PresentationTimeTracker.prototype.updateTime_=function(){var a=this.controls.isSeeking(),b=this.controls.getDisplayTime(),c=this.video.duration,d=this.player.seekRange(),e=d.end-d.start;this.player.isLive()?(b=Math.max(0,Math.floor(d.end-b)),c=3600<=e,1<=b||a?(this.setValue_("- "+this.buildTimeString_(b,c)),this.currentTime_.disabled=!1):(this.setValue_(this.localization.resolve(shaka.ui.Locales.Ids.LIVE)),this.currentTime_.disabled=!0)):(a=3600<=c,b=this.buildTimeString_(b,a),c&&(b+=" / "+
1570
1576
  this.buildTimeString_(c,a)),this.setValue_(b),this.currentTime_.disabled=!0)};shaka.ui.PresentationTimeTracker.prototype.buildTimeString_=function(a,b){var c=Math.floor(a/3600),d=Math.floor(a/60%60),e=Math.floor(a%60);10>e&&(e="0"+e);e=d+":"+e;b&&(10>d&&(e="0"+e),e=c+":"+e);return e};shaka.ui.PresentationTimeTracker.prototype.onTracksChanged_=function(){this.player.isLive()&&this.currentTime_.setAttribute(shaka.ui.Constants.ARIA_LABEL,this.localization.resolve(shaka.ui.Locales.Ids.SKIP_TO_LIVE))};
1571
- shaka.ui.PresentationTimeTracker.Factory=function(){};shaka.ui.PresentationTimeTracker.Factory.prototype.create=function(a,b){return new shaka.ui.PresentationTimeTracker(a,b)};shaka.ui.Controls.registerElement("time_and_duration",new shaka.ui.PresentationTimeTracker.Factory);shaka.ui.ResolutionSelection=function(a,b){shaka.ui.Element.call(this,a,b);var c=this;this.addResolutionButton_();this.addResolutionMenu_();this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_UPDATED,function(){c.updateLocalizedStrings_()});this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_CHANGED,function(){c.updateLocalizedStrings_()});this.eventManager.listen(this.resolutionButton_,"click",function(){c.onResolutionClick_()});this.eventManager.listen(this.player,
1572
- "variantchanged",function(){c.updateResolutionSelection_()});this.eventManager.listen(this.player,"trackschanged",function(){c.updateResolutionSelection_()});this.eventManager.listen(this.player,"abrstatuschanged",function(){c.updateResolutionSelection_()});this.updateResolutionSelection_();this.updateLocalizedStrings_()};$jscomp.inherits(shaka.ui.ResolutionSelection,shaka.ui.Element);goog.exportSymbol("shaka.ui.ResolutionSelection",shaka.ui.ResolutionSelection);
1573
- shaka.ui.ResolutionSelection.prototype.addResolutionButton_=function(){this.resolutionButton_=shaka.util.Dom.createHTMLElement("button");this.resolutionButton_.classList.add("shaka-resolution-button");var a=shaka.util.Dom.createHTMLElement("i");a.classList.add("material-icons");a.textContent=shaka.ui.Enums.MaterialDesignIcons.RESOLUTION;this.resolutionButton_.appendChild(a);a=shaka.util.Dom.createHTMLElement("label");a.classList.add("shaka-overflow-button-label");this.resolutionNameSpan_=shaka.util.Dom.createHTMLElement("span");
1574
- a.appendChild(this.resolutionNameSpan_);this.currentResolution_=shaka.util.Dom.createHTMLElement("span");this.currentResolution_.classList.add("shaka-current-selection-span");a.appendChild(this.currentResolution_);this.resolutionButton_.appendChild(a);this.parent.appendChild(this.resolutionButton_)};
1575
- shaka.ui.ResolutionSelection.prototype.addResolutionMenu_=function(){this.resolutionMenu_=shaka.util.Dom.createHTMLElement("div");this.resolutionMenu_.classList.add("shaka-resolutions");this.resolutionMenu_.classList.add("shaka-no-propagation");this.resolutionMenu_.classList.add("shaka-show-controls-on-mouse-over");this.resolutionMenu_.classList.add("shaka-settings-menu");this.backFromResolutionButton_=shaka.util.Dom.createHTMLElement("button");this.backFromResolutionButton_.classList.add("shaka-back-to-overflow-button");
1576
- this.resolutionMenu_.appendChild(this.backFromResolutionButton_);var a=shaka.util.Dom.createHTMLElement("i");a.classList.add("material-icons");a.textContent=shaka.ui.Enums.MaterialDesignIcons.BACK;this.backFromResolutionButton_.appendChild(a);this.backFromResolutionSpan_=shaka.util.Dom.createHTMLElement("span");this.backFromResolutionButton_.appendChild(this.backFromResolutionSpan_);this.controls.getControlsContainer().appendChild(this.resolutionMenu_)};
1577
- shaka.ui.ResolutionSelection.prototype.updateResolutionSelection_=function(){var a=this,b=this.player.getVariantTracks();if(b.length&&!b[0].height)shaka.ui.Utils.setDisplay(this.resolutionMenu_,!1),shaka.ui.Utils.setDisplay(this.resolutionButton_,!1);else{shaka.ui.Utils.setDisplay(this.resolutionButton_,!0);b.sort(function(a,b){return a.height-b.height});b.reverse();var c=b.find(function(a){return a.active});if(c){var d=c.language;b=b.filter(function(a){return a.language==d})}var e=shaka.ui.Utils.getFirstDescendantWithClassName(this.resolutionMenu_,
1578
- "shaka-back-to-overflow-button");shaka.ui.Utils.removeAllChildren(this.resolutionMenu_);this.resolutionMenu_.appendChild(e);var f=this.player.getConfiguration().abr.enabled;b.forEach(function(b){var d=shaka.util.Dom.createHTMLElement("button");d.classList.add("explicit-resolution");a.eventManager.listen(d,"click",a.onTrackSelected_.bind(a,b));var e=shaka.util.Dom.createHTMLElement("span");e.textContent=b.height+"p";d.appendChild(e);f||b!=c||(d.setAttribute("aria-selected","true"),d.appendChild(shaka.ui.Utils.checkmarkIcon()),
1579
- e.classList.add("shaka-chosen-item"),a.currentResolution_.textContent=e.textContent);a.resolutionMenu_.appendChild(d)});b=shaka.util.Dom.createHTMLElement("button");b.classList.add("shaka-enable-abr-button");this.eventManager.listen(b,"click",function(){this.player.configure({abr:{enabled:!0}});this.updateResolutionSelection_()}.bind(this));this.abrOnSpan_=shaka.util.Dom.createHTMLElement("span");this.abrOnSpan_.classList.add("shaka-auto-span");this.abrOnSpan_.textContent=this.localization.resolve(shaka.ui.Locales.Ids.AUTO_QUALITY);
1580
- b.appendChild(this.abrOnSpan_);f&&(b.setAttribute("aria-selected","true"),b.appendChild(shaka.ui.Utils.checkmarkIcon()),this.abrOnSpan_.classList.add("shaka-chosen-item"),this.currentResolution_.textContent=this.localization.resolve(shaka.ui.Locales.Ids.AUTO_QUALITY));this.resolutionMenu_.appendChild(b);shaka.ui.Utils.focusOnTheChosenItem(this.resolutionMenu_);this.controls.dispatchEvent(new shaka.util.FakeEvent("resolutionselectionupdated"))}};
1581
- shaka.ui.ResolutionSelection.prototype.onResolutionClick_=function(){this.controls.dispatchEvent(new shaka.util.FakeEvent("submenuopen"));shaka.ui.Utils.setDisplay(this.resolutionMenu_,!0);shaka.ui.Utils.focusOnTheChosenItem(this.resolutionMenu_)};shaka.ui.ResolutionSelection.prototype.onTrackSelected_=function(a){this.player.configure({abr:{enabled:!1}});this.player.selectVariantTrack(a,!0)};
1582
- shaka.ui.ResolutionSelection.prototype.updateLocalizedStrings_=function(){var a=shaka.ui.Locales.Ids;this.resolutionButton_.setAttribute(shaka.ui.Constants.ARIA_LABEL,this.localization.resolve(a.RESOLUTION));this.backFromResolutionButton_.setAttribute(shaka.ui.Constants.ARIA_LABEL,this.localization.resolve(a.RESOLUTION));this.backFromResolutionSpan_.textContent=this.localization.resolve(a.RESOLUTION);this.resolutionNameSpan_.textContent=this.localization.resolve(a.RESOLUTION);this.abrOnSpan_.textContent=
1583
- this.localization.resolve(a.AUTO_QUALITY);this.player.getConfiguration().abr.enabled&&(this.currentResolution_.textContent=this.localization.resolve(shaka.ui.Locales.Ids.AUTO_QUALITY))};shaka.ui.ResolutionSelection.Factory=function(){};shaka.ui.ResolutionSelection.Factory.prototype.create=function(a,b){return new shaka.ui.ResolutionSelection(a,b)};shaka.ui.OverflowMenu.registerElement("quality",new shaka.ui.ResolutionSelection.Factory);shaka.ui.RewindButton=function(a,b){shaka.ui.Element.call(this,a,b);var c=this;this.button_=shaka.util.Dom.createHTMLElement("button");this.button_.classList.add("material-icons");this.button_.classList.add("shaka-rewind-button");this.button_.textContent=shaka.ui.Enums.MaterialDesignIcons.REWIND;this.parent.appendChild(this.button_);this.updateAriaLabel_();this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_UPDATED,function(){c.updateAriaLabel_()});this.eventManager.listen(this.localization,
1577
+ shaka.ui.PresentationTimeTracker.Factory=function(){};shaka.ui.PresentationTimeTracker.Factory.prototype.create=function(a,b){return new shaka.ui.PresentationTimeTracker(a,b)};shaka.ui.Controls.registerElement("time_and_duration",new shaka.ui.PresentationTimeTracker.Factory);shaka.ui.ResolutionSelection=function(a,b){shaka.ui.SettingsMenu.call(this,a,b,shaka.ui.Enums.MaterialDesignIcons.RESOLUTION);var c=this;this.button.classList.add("shaka-resolution-button");this.menu.classList.add("shaka-resolutions");this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_UPDATED,function(){c.updateLocalizedStrings_()});this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_CHANGED,function(){c.updateLocalizedStrings_()});this.eventManager.listen(this.player,
1578
+ "variantchanged",function(){c.updateResolutionSelection_()});this.eventManager.listen(this.player,"trackschanged",function(){c.updateResolutionSelection_()});this.eventManager.listen(this.player,"abrstatuschanged",function(){c.updateResolutionSelection_()});this.updateResolutionSelection_();this.updateLocalizedStrings_()};$jscomp.inherits(shaka.ui.ResolutionSelection,shaka.ui.SettingsMenu);goog.exportSymbol("shaka.ui.ResolutionSelection",shaka.ui.ResolutionSelection);
1579
+ shaka.ui.ResolutionSelection.prototype.updateResolutionSelection_=function(){var a=this,b=this.player.getVariantTracks();if(b.length&&!b[0].height)shaka.ui.Utils.setDisplay(this.menu,!1),shaka.ui.Utils.setDisplay(this.button,!1);else{shaka.ui.Utils.setDisplay(this.button,!0);b.sort(function(a,b){return b.height-a.height});var c=b.find(function(a){return a.active});c&&(b=b.filter(function(a){return a.language==c.language&&a.channelsCount==c.channelsCount}));b=b.filter(function(a,c){return b.findIndex(function(b){return b.height==
1580
+ a.height})==c});var d=shaka.ui.Utils.getFirstDescendantWithClassName(this.menu,"shaka-back-to-overflow-button");shaka.ui.Utils.removeAllChildren(this.menu);this.menu.appendChild(d);var e=this.player.getConfiguration().abr.enabled;b.forEach(function(b){var d=shaka.util.Dom.createHTMLElement("button");d.classList.add("explicit-resolution");a.eventManager.listen(d,"click",a.onTrackSelected_.bind(a,b));var f=shaka.util.Dom.createHTMLElement("span");f.textContent=b.height+"p";d.appendChild(f);e||b!=c||
1581
+ (d.setAttribute("aria-selected","true"),d.appendChild(shaka.ui.Utils.checkmarkIcon()),f.classList.add("shaka-chosen-item"),a.currentSelection.textContent=f.textContent);a.menu.appendChild(d)});d=shaka.util.Dom.createHTMLElement("button");d.classList.add("shaka-enable-abr-button");this.eventManager.listen(d,"click",function(){this.player.configure({abr:{enabled:!0}});this.updateResolutionSelection_()}.bind(this));this.abrOnSpan_=shaka.util.Dom.createHTMLElement("span");this.abrOnSpan_.classList.add("shaka-auto-span");
1582
+ this.abrOnSpan_.textContent=this.localization.resolve(shaka.ui.Locales.Ids.AUTO_QUALITY);d.appendChild(this.abrOnSpan_);e&&(d.setAttribute("aria-selected","true"),d.appendChild(shaka.ui.Utils.checkmarkIcon()),this.abrOnSpan_.classList.add("shaka-chosen-item"),this.currentSelection.textContent=this.localization.resolve(shaka.ui.Locales.Ids.AUTO_QUALITY));this.menu.appendChild(d);shaka.ui.Utils.focusOnTheChosenItem(this.menu);this.controls.dispatchEvent(new shaka.util.FakeEvent("resolutionselectionupdated"))}};
1583
+ shaka.ui.ResolutionSelection.prototype.onTrackSelected_=function(a){this.player.configure({abr:{enabled:!1}});var b=this.controls.getConfig().clearBufferOnQualityChange;this.player.selectVariantTrack(a,b)};
1584
+ shaka.ui.ResolutionSelection.prototype.updateLocalizedStrings_=function(){var a=shaka.ui.Locales.Ids;this.button.setAttribute(shaka.ui.Constants.ARIA_LABEL,this.localization.resolve(a.RESOLUTION));this.backButton.setAttribute(shaka.ui.Constants.ARIA_LABEL,this.localization.resolve(a.RESOLUTION));this.backSpan.textContent=this.localization.resolve(a.RESOLUTION);this.nameSpan.textContent=this.localization.resolve(a.RESOLUTION);this.abrOnSpan_.textContent=this.localization.resolve(a.AUTO_QUALITY);this.player.getConfiguration().abr.enabled&&
1585
+ (this.currentSelection.textContent=this.localization.resolve(shaka.ui.Locales.Ids.AUTO_QUALITY))};shaka.ui.ResolutionSelection.Factory=function(){};shaka.ui.ResolutionSelection.Factory.prototype.create=function(a,b){return new shaka.ui.ResolutionSelection(a,b)};shaka.ui.OverflowMenu.registerElement("quality",new shaka.ui.ResolutionSelection.Factory);shaka.ui.RewindButton=function(a,b){shaka.ui.Element.call(this,a,b);var c=this;this.button_=shaka.util.Dom.createHTMLElement("button");this.button_.classList.add("material-icons");this.button_.classList.add("shaka-rewind-button");this.button_.textContent=shaka.ui.Enums.MaterialDesignIcons.REWIND;this.parent.appendChild(this.button_);this.updateAriaLabel_();this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_UPDATED,function(){c.updateAriaLabel_()});this.eventManager.listen(this.localization,
1584
1586
  shaka.ui.Localization.LOCALE_CHANGED,function(){c.updateAriaLabel_()});this.eventManager.listen(this.button_,"click",function(){c.rewind_()})};$jscomp.inherits(shaka.ui.RewindButton,shaka.ui.Element);goog.exportSymbol("shaka.ui.RewindButton",shaka.ui.RewindButton);shaka.ui.RewindButton.prototype.updateAriaLabel_=function(){this.button_.setAttribute(shaka.ui.Constants.ARIA_LABEL,this.localization.resolve(shaka.ui.Locales.Ids.REWIND))};
1585
- shaka.ui.RewindButton.prototype.rewind_=function(){if(this.video.duration){var a=this.player.getPlaybackRate();this.player.trickPlay(0<a||-4>a?-1:2*a)}};shaka.ui.RewindButton.Factory=function(){};shaka.ui.RewindButton.Factory.prototype.create=function(a,b){return new shaka.ui.RewindButton(a,b)};shaka.ui.Controls.registerElement("rewind",new shaka.ui.RewindButton.Factory);shaka.ui.Spacer=function(a,b){shaka.ui.Element.call(this,a,b);var c=shaka.util.Dom.createHTMLElement("div");c.classList.add("shaka-spacer");c.setAttribute("aria-hidden",!0);this.parent.appendChild(c)};$jscomp.inherits(shaka.ui.Spacer,shaka.ui.Element);goog.exportSymbol("shaka.ui.Spacer",shaka.ui.Spacer);shaka.ui.Spacer.Factory=function(){};shaka.ui.Spacer.Factory.prototype.create=function(a,b){return new shaka.ui.Spacer(a,b)};shaka.ui.Controls.registerElement("spacer",new shaka.ui.Spacer.Factory);shaka.ui.TextDisplayer=function(a,b){var c=this;this.isTextVisible_=!1;this.cues_=[];this.video_=a;this.videoContainer_=b;this.textContainer_=shaka.util.Dom.createHTMLElement("div");this.textContainer_.classList.add("shaka-text-container");this.videoContainer_.appendChild(this.textContainer_);this.captionsTimer_=(new shaka.util.Timer(function(){c.updateCaptions_()})).tickEvery(.25);this.currentCuesMap_=new Map};goog.exportSymbol("shaka.ui.TextDisplayer",shaka.ui.TextDisplayer);
1587
+ shaka.ui.RewindButton.prototype.rewind_=function(){if(this.video.duration){var a=this.player.getPlaybackRate();this.player.trickPlay(0<a||-4>a?-1:2*a)}};shaka.ui.RewindButton.Factory=function(){};shaka.ui.RewindButton.Factory.prototype.create=function(a,b){return new shaka.ui.RewindButton(a,b)};shaka.ui.Controls.registerElement("rewind",new shaka.ui.RewindButton.Factory);shaka.ui.SmallPlayButton=function(a,b){shaka.ui.PlayButton.call(this,a,b);var c=this;this.button.classList.add("shaka-small-play-button");this.button.classList.add("material-icons");this.updateIcon_();this.updateAriaLabel();this.eventManager.listen(this.video,"play",function(){c.updateIcon_()});this.eventManager.listen(this.video,"pause",function(){c.updateIcon_()})};$jscomp.inherits(shaka.ui.SmallPlayButton,shaka.ui.PlayButton);goog.exportSymbol("shaka.ui.SmallPlayButton",shaka.ui.SmallPlayButton);
1588
+ shaka.ui.SmallPlayButton.prototype.updateIcon_=function(){var a=shaka.ui.Enums.MaterialDesignIcons;this.button.textContent=this.isPaused()?a.PLAY:a.PAUSE};shaka.ui.SmallPlayButton.Factory=function(){};shaka.ui.SmallPlayButton.Factory.prototype.create=function(a,b){return new shaka.ui.SmallPlayButton(a,b)};shaka.ui.Controls.registerElement("play_pause",new shaka.ui.SmallPlayButton.Factory);shaka.ui.Spacer=function(a,b){shaka.ui.Element.call(this,a,b);var c=shaka.util.Dom.createHTMLElement("div");c.classList.add("shaka-spacer");c.setAttribute("aria-hidden",!0);this.parent.appendChild(c)};$jscomp.inherits(shaka.ui.Spacer,shaka.ui.Element);goog.exportSymbol("shaka.ui.Spacer",shaka.ui.Spacer);shaka.ui.Spacer.Factory=function(){};shaka.ui.Spacer.Factory.prototype.create=function(a,b){return new shaka.ui.Spacer(a,b)};shaka.ui.Controls.registerElement("spacer",new shaka.ui.Spacer.Factory);shaka.ui.TextDisplayer=function(a,b){var c=this;this.isTextVisible_=!1;this.cues_=[];this.video_=a;this.videoContainer_=b;this.textContainer_=shaka.util.Dom.createHTMLElement("div");this.textContainer_.classList.add("shaka-text-container");this.videoContainer_.appendChild(this.textContainer_);this.captionsTimer_=(new shaka.util.Timer(function(){c.updateCaptions_()})).tickEvery(.25);this.currentCuesMap_=new Map};goog.exportSymbol("shaka.ui.TextDisplayer",shaka.ui.TextDisplayer);
1586
1589
  shaka.ui.TextDisplayer.prototype.append=function(a){this.cues_=this.cues_.concat(a)};goog.exportProperty(shaka.ui.TextDisplayer.prototype,"append",shaka.ui.TextDisplayer.prototype.append);shaka.ui.TextDisplayer.prototype.destroy=function(){this.videoContainer_.removeChild(this.textContainer_);this.textContainer_=null;this.isTextVisible_=!1;this.cues_=[];this.captionsTimer_&&this.captionsTimer_.stop();this.currentCuesMap_.clear()};goog.exportProperty(shaka.ui.TextDisplayer.prototype,"destroy",shaka.ui.TextDisplayer.prototype.destroy);
1587
1590
  shaka.ui.TextDisplayer.prototype.remove=function(a,b){if(!this.textContainer_)return!1;for(var c=new Set,d=$jscomp.makeIterator(this.cues_),e=d.next();!e.done;e=d.next())e=e.value,e.startTime>a&&e.endTime<b&&c.add(e);d=$jscomp.makeIterator(c);for(e=d.next();!e.done;e=d.next()){e=e.value;var f=this.currentCuesMap_.get(e);f&&(this.textContainer_.removeChild(f),this.currentCuesMap_["delete"](e))}this.cues_=this.cues_.filter(function(a){return!c.has(a)});return!0};
1588
1591
  goog.exportProperty(shaka.ui.TextDisplayer.prototype,"remove",shaka.ui.TextDisplayer.prototype.remove);shaka.ui.TextDisplayer.prototype.isTextVisible=function(){return this.isTextVisible_};goog.exportProperty(shaka.ui.TextDisplayer.prototype,"isTextVisible",shaka.ui.TextDisplayer.prototype.isTextVisible);shaka.ui.TextDisplayer.prototype.setTextVisibility=function(a){this.isTextVisible_=a};goog.exportProperty(shaka.ui.TextDisplayer.prototype,"setTextVisibility",shaka.ui.TextDisplayer.prototype.setTextVisibility);
1589
1592
  shaka.ui.TextDisplayer.prototype.updateCaptions_=function(){for(var a=this,b=this.video_.currentTime,c=$jscomp.makeIterator(this.currentCuesMap_.keys()),d=c.next();!d.done;d=c.next())if(d=d.value,!(a.isTextVisible_&&d.startTime<=b&&d.endTime>=b)){var e=this.currentCuesMap_.get(d);this.textContainer_.removeChild(e);this.currentCuesMap_["delete"](d)}c=this.cues_.filter(function(c){return a.isTextVisible_&&c.startTime<=b&&c.endTime>=b&&!a.currentCuesMap_.has(c)}).sort(function(a,b){return a.startTime!=
1590
1593
  b.startTime?a.startTime-b.startTime:a.endTime-b.endTime});c=$jscomp.makeIterator(c);for(d=c.next();!d.done;d=c.next())d=d.value,e=shaka.util.Dom.createHTMLElement("span"),this.setCaptionStyles_(e,d),this.currentCuesMap_.set(d,e),this.textContainer_.appendChild(e)};
1591
- shaka.ui.TextDisplayer.prototype.setCaptionStyles_=function(a,b){var c=shaka.text.Cue,d=a.style,e=this.textContainer_.style;d.whiteSpace="pre";a.textContent=b.payload;d.backgroundColor=b.backgroundColor;d.color=b.color;d.direction=b.direction;b.backgroundImage&&(d.backgroundImage="url('"+b.backgroundImage+"')",d.backgroundRepeat="no-repeat",d.backgroundSize="contain",d.backgroundPosition="center",""==b.backgroundColor&&(d.backgroundColor="transparent"));if(b.backgroundImage&&b.region){var f=shaka.text.CueRegion.units.PERCENTAGE,
1592
- g=b.region.widthUnits==f?"%":"px";d.height=b.region.height+(b.region.heightUnits==f?"%":"px");d.width=b.region.width+g}e.alignItems=b.displayAlign==c.displayAlign.BEFORE?"flex-start":b.displayAlign==c.displayAlign.CENTER?"flex-top":"flex-end";d.fontFamily=b.fontFamily;d.fontWeight=b.fontWeight.toString();d.fontSize=b.fontSize;d.fontStyle=b.fontStyle;b.line&&b.lineInterpretation==c.lineInterpretation.PERCENTAGE&&(b.writingMode==c.writingMode.HORIZONTAL_TOP_TO_BOTTOM?b.lineAlign==c.lineAlign.START?
1593
- e.top=b.line+"%":b.lineAlign==c.lineAlign.END&&(e.bottom=b.line+"%"):b.writingMode==c.writingMode.VERTICAL_LEFT_TO_RIGHT?b.lineAlign==c.lineAlign.START?e.left=b.line+"%":b.lineAlign==c.lineAlign.END&&(e.right=b.line+"%"):b.lineAlign==c.lineAlign.START?e.right=b.line+"%":b.lineAlign==c.lineAlign.END&&(e.left=b.line+"%"));d.lineHeight=b.lineHeight;b.position&&(b.writingMode==c.writingMode.HORIZONTAL_TOP_TO_BOTTOM?e.paddingLeft=b.position:e.paddingTop=b.position);b.positionAlign==c.positionAlign.LEFT?
1594
- e.cssFloat="left":b.positionAlign==c.positionAlign.RIGHT?e.cssFloat="right":e.margin="auto";d.textAlign=b.textAlign;d.textDecoration=b.textDecoration.join(" ");d.writingMode=b.writingMode;b.writingMode==c.writingMode.HORIZONTAL_TOP_TO_BOTTOM?e.width=b.size+"%":e.height=b.size+"%"};shaka.ui.TextSelection=function(a,b){shaka.ui.Element.call(this,a,b);var c=this;this.addCaptionButton_();this.addTextLangMenu_();this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_UPDATED,function(){c.updateLocalizedStrings_();c.updateTextLanguages_()});this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_CHANGED,function(){c.updateLocalizedStrings_();c.updateTextLanguages_()});this.eventManager.listen(this.player,"texttrackvisibility",function(){c.onCaptionStateChange_()});
1595
- this.eventManager.listen(this.captionButton_,"click",function(){c.onCaptionClick_()});this.eventManager.listen(this.player,"textchanged",function(){c.updateTextLanguages_()});this.eventManager.listen(this.player,"trackschanged",function(){c.onTracksChanged_()});this.onCaptionStateChange_();this.updateLocalizedStrings_();this.updateTextLanguages_()};$jscomp.inherits(shaka.ui.TextSelection,shaka.ui.Element);goog.exportSymbol("shaka.ui.TextSelection",shaka.ui.TextSelection);
1596
- shaka.ui.TextSelection.prototype.addCaptionButton_=function(){this.captionButton_=shaka.util.Dom.createHTMLElement("button");this.captionButton_.classList.add("shaka-caption-button");this.captionIcon_=shaka.util.Dom.createHTMLElement("i");this.captionIcon_.classList.add("material-icons");this.captionIcon_.textContent=shaka.ui.Enums.MaterialDesignIcons.CLOSED_CAPTIONS;this.player&&this.player.isTextTrackVisible()?this.captionButton_.setAttribute("aria-pressed","true"):this.captionButton_.setAttribute("aria-pressed",
1597
- "false");this.captionButton_.appendChild(this.captionIcon_);var a=shaka.util.Dom.createHTMLElement("label");a.classList.add("shaka-overflow-button-label");this.captionsNameSpan_=shaka.util.Dom.createHTMLElement("span");a.appendChild(this.captionsNameSpan_);this.currentCaptions_=shaka.util.Dom.createHTMLElement("span");this.currentCaptions_.classList.add("shaka-current-selection-span");a.appendChild(this.currentCaptions_);this.captionButton_.appendChild(a);this.parent.appendChild(this.captionButton_)};
1598
- shaka.ui.TextSelection.prototype.addTextLangMenu_=function(){this.textLangMenu_=shaka.util.Dom.createHTMLElement("div");this.textLangMenu_.classList.add("shaka-text-languages");this.textLangMenu_.classList.add("shaka-no-propagation");this.textLangMenu_.classList.add("shaka-show-controls-on-mouse-over");this.textLangMenu_.classList.add("shaka-settings-menu");this.backFromCaptionsButton_=shaka.util.Dom.createHTMLElement("button");this.backFromCaptionsButton_.classList.add("shaka-back-to-overflow-button");
1599
- this.textLangMenu_.appendChild(this.backFromCaptionsButton_);var a=shaka.util.Dom.createHTMLElement("i");a.classList.add("material-icons");a.textContent=shaka.ui.Enums.MaterialDesignIcons.BACK;this.backFromCaptionsButton_.appendChild(a);this.backFromCaptionsSpan_=shaka.util.Dom.createHTMLElement("span");this.backFromCaptionsButton_.appendChild(this.backFromCaptionsSpan_);a=shaka.util.Dom.createHTMLElement("button");a.setAttribute("aria-selected","true");this.textLangMenu_.appendChild(a);a.appendChild(shaka.ui.Utils.checkmarkIcon());
1600
- this.captionsOffSpan_=shaka.util.Dom.createHTMLElement("span");this.captionsOffSpan_.classList.add("shaka-auto-span");a.appendChild(this.captionsOffSpan_);this.controls.getControlsContainer().appendChild(this.textLangMenu_)};shaka.ui.TextSelection.prototype.onCaptionClick_=function(){this.controls.dispatchEvent(new shaka.util.FakeEvent("submenuopen"));shaka.ui.Utils.setDisplay(this.textLangMenu_,!0);shaka.ui.Utils.focusOnTheChosenItem(this.textLangMenu_)};
1601
- shaka.ui.TextSelection.prototype.onCaptionStateChange_=function(){this.player.isTextTrackVisible()?(this.captionIcon_.classList.add("shaka-captions-on"),this.captionIcon_.classList.remove("shaka-captions-off"),this.captionButton_.setAttribute("aria-pressed","true")):(this.captionIcon_.classList.add("shaka-captions-off"),this.captionIcon_.classList.remove("shaka-captions-on"),this.captionButton_.setAttribute("aria-pressed","false"));this.controls.dispatchEvent(new shaka.util.FakeEvent("captionselectionupdated"))};
1602
- shaka.ui.TextSelection.prototype.updateTextLanguages_=function(){var a=this,b=this.player.getTextTracks(),c=this.player.getTextLanguagesAndRoles().map(function(a){return a.language});shaka.ui.LanguageUtils.updateLanguages(b,this.textLangMenu_,c,this.onTextLanguageSelected_.bind(this),this.player.isTextTrackVisible(),this.currentCaptions_,this.localization);b=shaka.util.Dom.createHTMLElement("button");b.classList.add("shaka-turn-captions-off-button");this.eventManager.listen(b,"click",function(){a.player.setTextTrackVisibility(!1)["catch"](function(){});
1603
- a.updateTextLanguages_()});b.appendChild(this.captionsOffSpan_);this.textLangMenu_.appendChild(b);this.player.isTextTrackVisible()||(b.setAttribute("aria-selected","true"),b.appendChild(shaka.ui.Utils.checkmarkIcon()),this.captionsOffSpan_.classList.add("shaka-chosen-item"),this.currentCaptions_.textContent=this.localization.resolve(shaka.ui.Locales.Ids.OFF));shaka.ui.Utils.focusOnTheChosenItem(this.textLangMenu_);this.controls.dispatchEvent(new shaka.util.FakeEvent("captionselectionupdated"))};
1594
+ shaka.ui.TextDisplayer.prototype.setCaptionStyles_=function(a,b){var c=shaka.text.Cue,d=a.style,e=this.textContainer_.style;d.whiteSpace="pre-line";a.textContent=b.payload;d.backgroundColor=b.backgroundColor;d.color=b.color;d.direction=b.direction;b.backgroundImage&&(d.backgroundImage="url('"+b.backgroundImage+"')",d.backgroundRepeat="no-repeat",d.backgroundSize="contain",d.backgroundPosition="center",""==b.backgroundColor&&(d.backgroundColor="transparent"));if(b.backgroundImage&&b.region){var f=
1595
+ shaka.text.CueRegion.units.PERCENTAGE,g=b.region.widthUnits==f?"%":"px";d.height=b.region.height+(b.region.heightUnits==f?"%":"px");d.width=b.region.width+g}e.alignItems=b.displayAlign==c.displayAlign.BEFORE?"flex-start":b.displayAlign==c.displayAlign.CENTER?"flex-top":"flex-end";d.fontFamily=b.fontFamily;d.fontWeight=b.fontWeight.toString();d.fontSize=b.fontSize;d.fontStyle=b.fontStyle;b.line&&b.lineInterpretation==c.lineInterpretation.PERCENTAGE&&(b.writingMode==c.writingMode.HORIZONTAL_TOP_TO_BOTTOM?
1596
+ b.lineAlign==c.lineAlign.START?e.top=b.line+"%":b.lineAlign==c.lineAlign.END&&(e.bottom=b.line+"%"):b.writingMode==c.writingMode.VERTICAL_LEFT_TO_RIGHT?b.lineAlign==c.lineAlign.START?e.left=b.line+"%":b.lineAlign==c.lineAlign.END&&(e.right=b.line+"%"):b.lineAlign==c.lineAlign.START?e.right=b.line+"%":b.lineAlign==c.lineAlign.END&&(e.left=b.line+"%"));d.lineHeight=b.lineHeight;b.position&&(b.writingMode==c.writingMode.HORIZONTAL_TOP_TO_BOTTOM?e.paddingLeft=b.position:e.paddingTop=b.position);b.positionAlign==
1597
+ c.positionAlign.LEFT?e.cssFloat="left":b.positionAlign==c.positionAlign.RIGHT?e.cssFloat="right":e.margin="auto";d.textAlign=b.textAlign;d.textDecoration=b.textDecoration.join(" ");d.writingMode=b.writingMode;b.writingMode==c.writingMode.HORIZONTAL_TOP_TO_BOTTOM?e.width=b.size+"%":e.height=b.size+"%"};shaka.ui.TextSelection=function(a,b){shaka.ui.SettingsMenu.call(this,a,b,shaka.ui.Enums.MaterialDesignIcons.CLOSED_CAPTIONS);var c=this;this.button.classList.add("shaka-caption-button");this.menu.classList.add("shaka-text-languages");this.player&&this.player.isTextTrackVisible()?this.button.setAttribute("aria-pressed","true"):this.button.setAttribute("aria-pressed","false");this.addOffOption_();this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_UPDATED,function(){c.updateLocalizedStrings_();
1598
+ c.updateTextLanguages_()});this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_CHANGED,function(){c.updateLocalizedStrings_();c.updateTextLanguages_()});this.eventManager.listen(this.player,"texttrackvisibility",function(){c.onCaptionStateChange_()});this.eventManager.listen(this.player,"textchanged",function(){c.updateTextLanguages_()});this.eventManager.listen(this.player,"trackschanged",function(){c.onTracksChanged_()});this.onCaptionStateChange_();this.updateLocalizedStrings_();
1599
+ this.updateTextLanguages_()};$jscomp.inherits(shaka.ui.TextSelection,shaka.ui.SettingsMenu);goog.exportSymbol("shaka.ui.TextSelection",shaka.ui.TextSelection);shaka.ui.TextSelection.prototype.addOffOption_=function(){var a=shaka.util.Dom.createHTMLElement("button");a.setAttribute("aria-selected","true");this.menu.appendChild(a);a.appendChild(shaka.ui.Utils.checkmarkIcon());this.captionsOffSpan_=shaka.util.Dom.createHTMLElement("span");this.captionsOffSpan_.classList.add("shaka-auto-span");a.appendChild(this.captionsOffSpan_)};
1600
+ shaka.ui.TextSelection.prototype.onCaptionStateChange_=function(){this.player.isTextTrackVisible()?(this.icon.classList.add("shaka-captions-on"),this.icon.classList.remove("shaka-captions-off"),this.button.setAttribute("aria-pressed","true")):(this.icon.classList.add("shaka-captions-off"),this.icon.classList.remove("shaka-captions-on"),this.button.setAttribute("aria-pressed","false"));this.controls.dispatchEvent(new shaka.util.FakeEvent("captionselectionupdated"))};
1601
+ shaka.ui.TextSelection.prototype.updateTextLanguages_=function(){var a=this,b=this.player.getTextTracks(),c=this.player.getTextLanguagesAndRoles().map(function(a){return a.language});shaka.ui.LanguageUtils.updateLanguages(b,this.menu,c,function(b){return a.onTextLanguageSelected_(b)},this.player.isTextTrackVisible(),this.currentSelection,this.localization);b=shaka.util.Dom.createHTMLElement("button");b.classList.add("shaka-turn-captions-off-button");this.eventManager.listen(b,"click",function(){a.player.setTextTrackVisibility(!1)["catch"](function(){});
1602
+ a.updateTextLanguages_()});b.appendChild(this.captionsOffSpan_);this.menu.appendChild(b);this.player.isTextTrackVisible()||(b.setAttribute("aria-selected","true"),b.appendChild(shaka.ui.Utils.checkmarkIcon()),this.captionsOffSpan_.classList.add("shaka-chosen-item"),this.currentSelection.textContent=this.localization.resolve(shaka.ui.Locales.Ids.OFF));shaka.ui.Utils.focusOnTheChosenItem(this.menu);this.controls.dispatchEvent(new shaka.util.FakeEvent("captionselectionupdated"))};
1604
1603
  shaka.ui.TextSelection.prototype.onTextLanguageSelected_=function(a){var b=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function d(){return $jscomp.generator.createGenerator(d,function(d){switch(d.nextAddress){case 1:return d.yield(b.player.setTextTrackVisibility(!0),2);case 2:b.player&&b.player.selectTextLanguage(a),d.jumpToEnd()}})})};
1605
- shaka.ui.TextSelection.prototype.updateLocalizedStrings_=function(){var a=shaka.ui.Locales.Ids;this.captionButton_.setAttribute(shaka.ui.Constants.ARIA_LABEL,this.localization.resolve(a.CAPTIONS));this.backFromCaptionsButton_.setAttribute(shaka.ui.Constants.ARIA_LABEL,this.localization.resolve(a.BACK));this.captionsNameSpan_.textContent=this.localization.resolve(a.CAPTIONS);this.backFromCaptionsSpan_.textContent=this.localization.resolve(a.CAPTIONS);this.captionsOffSpan_.textContent=this.localization.resolve(a.OFF)};
1606
- shaka.ui.TextSelection.prototype.onTracksChanged_=function(){var a=0<this.player.getTextTracks().length;shaka.ui.Utils.setDisplay(this.captionButton_,a);this.updateTextLanguages_()};shaka.ui.TextSelection.Factory=function(){};shaka.ui.TextSelection.Factory.prototype.create=function(a,b){return new shaka.ui.TextSelection(a,b)};shaka.ui.OverflowMenu.registerElement("captions",new shaka.ui.TextSelection.Factory);shaka.ui.Overlay=function(a,b,c){this.player_=a;this.config_=this.defaultConfig_();b.dataset.shakaPlayerContainer="";b.ui=this;this.isMobile()&&b.classList.add("shaka-mobile");this.controls_=new shaka.ui.Controls(a,b,c,this.config_);this.configure({})};goog.exportSymbol("shaka.ui.Overlay",shaka.ui.Overlay);
1604
+ shaka.ui.TextSelection.prototype.updateLocalizedStrings_=function(){var a=shaka.ui.Locales.Ids;this.button.setAttribute(shaka.ui.Constants.ARIA_LABEL,this.localization.resolve(a.CAPTIONS));this.backButton.setAttribute(shaka.ui.Constants.ARIA_LABEL,this.localization.resolve(a.BACK));this.nameSpan.textContent=this.localization.resolve(a.CAPTIONS);this.backSpan.textContent=this.localization.resolve(a.CAPTIONS);this.captionsOffSpan_.textContent=this.localization.resolve(a.OFF)};
1605
+ shaka.ui.TextSelection.prototype.onTracksChanged_=function(){var a=0<this.player.getTextTracks().length;shaka.ui.Utils.setDisplay(this.button,a);this.updateTextLanguages_()};shaka.ui.TextSelection.Factory=function(){};shaka.ui.TextSelection.Factory.prototype.create=function(a,b){return new shaka.ui.TextSelection(a,b)};shaka.ui.OverflowMenu.registerElement("captions",new shaka.ui.TextSelection.Factory);shaka.ui.Overlay=function(a,b,c){this.player_=a;this.config_=this.defaultConfig_();b.dataset.shakaPlayerContainer="";b.ui=this;this.isMobile()&&b.classList.add("shaka-mobile");this.controls_=new shaka.ui.Controls(a,b,c,this.config_);this.configure({})};goog.exportSymbol("shaka.ui.Overlay",shaka.ui.Overlay);
1607
1606
  shaka.ui.Overlay.prototype.destroy=function(){var a=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function c(){return $jscomp.generator.createGenerator(c,function(c){switch(c.nextAddress){case 1:return c.yield(a.controls_.destroy(),2);case 2:return a.controls_=null,c.yield(a.player_.destroy(),3);case 3:a.player_=null,c.jumpToEnd()}})})};goog.exportProperty(shaka.ui.Overlay.prototype,"destroy",shaka.ui.Overlay.prototype.destroy);shaka.ui.Overlay.prototype.isMobile=function(){return shaka.util.Platform.isMobile()};
1608
1607
  goog.exportProperty(shaka.ui.Overlay.prototype,"isMobile",shaka.ui.Overlay.prototype.isMobile);shaka.ui.Overlay.prototype.getConfiguration=function(){var a=this.defaultConfig_();shaka.util.ConfigUtils.mergeConfigObjects(a,this.config_,this.defaultConfig_(),{},"");return a};goog.exportProperty(shaka.ui.Overlay.prototype,"getConfiguration",shaka.ui.Overlay.prototype.getConfiguration);
1609
1608
  shaka.ui.Overlay.prototype.configure=function(a,b){goog.asserts.assert("object"==typeof a||2==arguments.length,"String configs should have values!");2==arguments.length&&"string"==typeof a&&(a=shaka.util.ConfigUtils.convertToConfigObject(a,b));goog.asserts.assert("object"==typeof a,"Should be an object!");shaka.util.ConfigUtils.mergeConfigObjects(this.config_,a,this.defaultConfig_(),{},"");this.config_.castReceiverAppId&&!this.config_.overflowMenuButtons.includes("cast")&&this.config_.overflowMenuButtons.push("cast");
1610
1609
  goog.asserts.assert(null!=this.player_,"Should have a player!");this.controls_.configure(this.config_);this.controls_.dispatchEvent(new shaka.util.FakeEvent("uiupdated"))};goog.exportProperty(shaka.ui.Overlay.prototype,"configure",shaka.ui.Overlay.prototype.configure);shaka.ui.Overlay.prototype.getPlayer=function(){shaka.Deprecate.deprecateFeature(2,6,"ui.Overlay.getPlayer()","Please use getControls().getPlayer() instead.");return this.controls_.getPlayer()};
1611
1610
  goog.exportProperty(shaka.ui.Overlay.prototype,"getPlayer",shaka.ui.Overlay.prototype.getPlayer);shaka.ui.Overlay.prototype.getControls=function(){return this.controls_};goog.exportProperty(shaka.ui.Overlay.prototype,"getControls",shaka.ui.Overlay.prototype.getControls);shaka.ui.Overlay.prototype.setEnabled=function(a){this.controls_.setEnabledShakaControls(a)};goog.exportProperty(shaka.ui.Overlay.prototype,"setEnabled",shaka.ui.Overlay.prototype.setEnabled);
1612
- shaka.ui.Overlay.prototype.defaultConfig_=function(){return{controlPanelElements:"time_and_duration spacer mute volume fullscreen overflow_menu".split(" "),overflowMenuButtons:["captions","quality","language","picture_in_picture","cast"],addSeekBar:!0,castReceiverAppId:""}};
1613
- shaka.ui.Overlay.scanPageForShakaElements_=function(){shaka.polyfill.installAll();if(shaka.Player.isBrowserSupported()){var a=document.querySelectorAll("[data-shaka-player-container]"),b=document.querySelectorAll("[data-shaka-player]");if(b.length||a.length)if(b.length&&!a.length)for(a=0;a<b.length;a++){var c=b[a];goog.asserts.assert("video"==c.tagName.toLowerCase(),"Should be a video element!");var d=document.createElement("div");c.parentElement.replaceChild(d,c);d.appendChild(c);var e="";c.dataset&&
1614
- c.dataset.shakaPlayerCastReceiverId&&(e=c.dataset.shakaPlayerCastReceiverId);d=shaka.ui.Overlay.createUI_(shaka.util.Dom.asHTMLElement(d),shaka.util.Dom.asHTMLMediaElement(c));d.configure({castReceiverAppId:e});shaka.util.Dom.asHTMLMediaElement(c).controls&&d.getControls().setEnabledNativeControls(!0)}else for(c=0;c<a.length;c++){e=a[c];goog.asserts.assert("div"==e.tagName.toLowerCase(),"Container should be a div!");d="";e.dataset&&e.dataset.shakaPlayerCastReceiverId&&(d=e.dataset.shakaPlayerCastReceiverId);
1611
+ shaka.ui.Overlay.prototype.defaultConfig_=function(){return{controlPanelElements:"time_and_duration spacer mute volume fullscreen overflow_menu".split(" "),overflowMenuButtons:["captions","quality","language","picture_in_picture","cast"],addSeekBar:!0,addBigPlayButton:!0,castReceiverAppId:"",clearBufferOnQualityChange:!0}};
1612
+ shaka.ui.Overlay.scanPageForShakaElements_=function(){shaka.polyfill.installAll();if(shaka.Player.isBrowserSupported()){var a=document.querySelectorAll("[data-shaka-player-container]"),b=document.querySelectorAll("[data-shaka-player]");if(b.length||a.length)if(b.length&&!a.length)for(a=0;a<b.length;a++){var c=b[a];if(!c.ui){goog.asserts.assert("video"==c.tagName.toLowerCase(),"Should be a video element!");var d=document.createElement("div");c.parentElement.replaceChild(d,c);d.appendChild(c);var e=
1613
+ "";c.dataset&&c.dataset.shakaPlayerCastReceiverId&&(e=c.dataset.shakaPlayerCastReceiverId);d=shaka.ui.Overlay.createUI_(shaka.util.Dom.asHTMLElement(d),shaka.util.Dom.asHTMLMediaElement(c));d.configure({castReceiverAppId:e});shaka.util.Dom.asHTMLMediaElement(c).controls&&d.getControls().setEnabledNativeControls(!0)}}else for(c=0;c<a.length;c++)if(e=a[c],!e.ui){goog.asserts.assert("div"==e.tagName.toLowerCase(),"Container should be a div!");d="";e.dataset&&e.dataset.shakaPlayerCastReceiverId&&(d=e.dataset.shakaPlayerCastReceiverId);
1615
1614
  for(var f=null,g=0;g<b.length;g++)if(goog.asserts.assert("video"==b[g].tagName.toLowerCase(),"Should be a video element!"),b[g].parentElement==e){f=b[g];break}f||(f=document.createElement("video"),f.setAttribute("playsinline",""),e.appendChild(f));f.dataset&&f.dataset.shakaPlayerCastReceiverId&&(d=f.dataset.shakaPlayerCastReceiverId);shaka.ui.Overlay.createUI_(shaka.util.Dom.asHTMLElement(e),shaka.util.Dom.asHTMLMediaElement(f)).configure({castReceiverAppId:d})}shaka.ui.Overlay.dispatchLoadedEvent_("shaka-ui-loaded")}else shaka.log.error("Shaka Player does not support this browser. Please see https://tinyurl.com/y7s4j9tr for the list of supported browsers."),
1616
1615
  shaka.ui.Overlay.dispatchLoadedEvent_("shaka-ui-load-failed")};shaka.ui.Overlay.dispatchLoadedEvent_=function(a){var b=document.createEvent("CustomEvent");b.initCustomEvent(a,!1,!1,null);document.dispatchEvent(b)};shaka.ui.Overlay.createUI_=function(a,b){var c=new shaka.Player(b),d=new shaka.ui.Overlay(c,a,b);b.controls||c.configure("textDisplayFactory",function(){return new shaka.ui.TextDisplayer(b,a)});a.ui=d;return b.ui=d};
1617
1616
  "complete"==document.readyState?Promise.resolve().then(shaka.ui.Overlay.scanPageForShakaElements_):window.addEventListener("load",shaka.ui.Overlay.scanPageForShakaElements_);shaka.ui.VolumeBar=function(a,b){shaka.ui.RangeElement.call(this,a,b,["shaka-volume-bar-container"],["shaka-volume-bar"]);var c=this;this.eventManager.listen(this.video,"volumechange",function(){return c.onVolumeStateChange_()});this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_UPDATED,function(){return c.updateAriaLabel_()});this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_CHANGED,function(){return c.updateAriaLabel_()});this.onVolumeStateChange_();this.updateAriaLabel_()};