shaka-player 2.5.1 → 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 (166) hide show
  1. package/.csslintrc +13 -0
  2. package/AUTHORS +3 -0
  3. package/CHANGELOG.md +156 -0
  4. package/CONTRIBUTORS +3 -0
  5. package/README.md +3 -0
  6. package/build/README.md +5 -5
  7. package/build/apps.py +3 -1
  8. package/build/build.py +5 -2
  9. package/build/check.py +17 -0
  10. package/build/compiler.py +49 -0
  11. package/build/conformance.textproto +1 -0
  12. package/build/docs.py +0 -6
  13. package/build/generateExterns.js +72 -20
  14. package/build/install-linux-prereqs.sh +4 -4
  15. package/build/shakaBuildHelpers.py +7 -8
  16. package/build/test.py +21 -9
  17. package/build/types/core +1 -0
  18. package/build/types/ui +6 -1
  19. package/demo/asset_card.js +129 -41
  20. package/demo/cast_receiver/receiver_app.css +27 -13
  21. package/demo/close_button.js +10 -15
  22. package/demo/common/asset.js +6 -6
  23. package/demo/common/assets.js +72 -14
  24. package/demo/config.js +28 -25
  25. package/demo/custom.js +20 -16
  26. package/demo/demo.less +107 -16
  27. package/demo/demo_uncompiled.js +33 -0
  28. package/demo/demo_utils.js +4 -3
  29. package/demo/front.js +12 -8
  30. package/demo/index.html +14 -17
  31. package/demo/input.js +30 -23
  32. package/demo/input_container.js +15 -11
  33. package/demo/load.js +5 -7
  34. package/demo/main.js +138 -49
  35. package/demo/search.js +40 -36
  36. package/demo/service_worker.js +1 -1
  37. package/demo/tooltip.js +16 -24
  38. package/dist/.csslintstamp +0 -0
  39. package/dist/controls.css +1 -1
  40. package/dist/controls.css.map +1 -1
  41. package/dist/demo.compiled.debug.js +165 -152
  42. package/dist/demo.compiled.debug.map +4 -4
  43. package/dist/demo.compiled.js +165 -152
  44. package/dist/demo.compiled.map +4 -4
  45. package/dist/demo.css +1 -1
  46. package/dist/demo.css.map +1 -1
  47. package/dist/deps.js +28 -11
  48. package/dist/receiver.compiled.debug.js +11 -11
  49. package/dist/receiver.compiled.debug.map +3 -3
  50. package/dist/receiver.compiled.js +11 -11
  51. package/dist/receiver.compiled.map +3 -3
  52. package/dist/shaka-player.compiled.debug.externs.js +232 -102
  53. package/dist/shaka-player.compiled.debug.js +189 -165
  54. package/dist/shaka-player.compiled.debug.map +4 -4
  55. package/dist/shaka-player.compiled.externs.js +232 -102
  56. package/dist/shaka-player.compiled.js +567 -553
  57. package/dist/shaka-player.compiled.map +4 -4
  58. package/dist/shaka-player.ui.debug.externs.js +338 -113
  59. package/dist/shaka-player.ui.debug.js +296 -276
  60. package/dist/shaka-player.ui.debug.map +4 -4
  61. package/dist/shaka-player.ui.externs.js +338 -113
  62. package/dist/shaka-player.ui.js +685 -671
  63. package/dist/shaka-player.ui.map +4 -4
  64. package/docs/tutorials/drm-config.md +1 -0
  65. package/docs/tutorials/fairplay.md +77 -0
  66. package/docs/tutorials/index.json +1 -0
  67. package/docs/tutorials/manifest-parser.md +1 -1
  68. package/docs/tutorials/ui-customization.md +5 -2
  69. package/docs/tutorials/ui.md +10 -4
  70. package/docs/tutorials/welcome.md +2 -2
  71. package/externs/mediasession.js +16 -1
  72. package/externs/shaka/net.js +14 -4
  73. package/externs/shaka/player.js +136 -90
  74. package/externs/tippy.js +30 -0
  75. package/externs/webkitmediakeys.js +4 -0
  76. package/karma.conf.js +30 -24
  77. package/lib/cast/cast_proxy.js +94 -23
  78. package/lib/cast/cast_receiver.js +8 -1
  79. package/lib/dash/content_protection.js +33 -1
  80. package/lib/dash/dash_parser.js +13 -5
  81. package/lib/hls/hls_parser.js +20 -4
  82. package/lib/media/drm_engine.js +29 -2
  83. package/lib/media/media_source_engine.js +9 -6
  84. package/lib/media/play_rate_controller.js +14 -3
  85. package/lib/media/playhead.js +8 -3
  86. package/lib/media/streaming_engine.js +68 -20
  87. package/lib/media/transmuxer.js +2 -2
  88. package/lib/media/video_wrapper.js +8 -3
  89. package/lib/net/data_uri_plugin.js +5 -2
  90. package/lib/net/http_fetch_plugin.js +3 -3
  91. package/lib/net/http_plugin_utils.js +2 -4
  92. package/lib/net/http_xhr_plugin.js +2 -2
  93. package/lib/net/networking_engine.js +1 -0
  94. package/lib/offline/offline_scheme.js +7 -2
  95. package/lib/player.js +18 -8
  96. package/lib/polyfill/input_event.js +7 -11
  97. package/lib/polyfill/mediasource.js +1 -1
  98. package/lib/polyfill/patchedmediakeys_apple.js +2 -72
  99. package/lib/text/cue.js +1 -1
  100. package/lib/text/ttml_text_parser.js +1 -1
  101. package/lib/util/config_utils.js +1 -0
  102. package/lib/util/error.js +45 -11
  103. package/lib/util/event_manager.js +211 -100
  104. package/lib/util/fairplay_utils.js +122 -0
  105. package/lib/util/i_releasable.js +1 -0
  106. package/lib/util/player_configuration.js +7 -0
  107. package/lib/util/pssh.js +41 -0
  108. package/lib/util/string_utils.js +42 -6
  109. package/lib/util/timer.js +1 -1
  110. package/package.json +33 -33
  111. package/roadmap.md +96 -0
  112. package/shaka-player.uncompiled.js +5 -1
  113. package/test/dash/dash_parser_content_protection_unit.js +35 -1
  114. package/test/dash/dash_parser_manifest_unit.js +60 -0
  115. package/test/hls/hls_live_unit.js +7 -1
  116. package/test/hls/hls_parser_unit.js +50 -0
  117. package/test/media/drm_engine_unit.js +10 -4
  118. package/test/media/media_source_engine_integration.js +12 -0
  119. package/test/media/media_source_engine_unit.js +3 -1
  120. package/test/media/playhead_unit.js +7 -5
  121. package/test/media/streaming_engine_unit.js +46 -1
  122. package/test/media/transmuxer_integration.js +13 -0
  123. package/test/net/data_uri_plugin_unit.js +13 -2
  124. package/test/net/http_plugin_unit.js +17 -12
  125. package/test/net/networking_engine_unit.js +17 -8
  126. package/test/offline/offline_scheme_unit.js +18 -8
  127. package/test/player_external.js +3 -2
  128. package/test/player_integration.js +94 -3
  129. package/test/player_src_equals_integration.js +2 -2
  130. package/test/player_unit.js +21 -8
  131. package/test/test/boot.js +20 -5
  132. package/test/test/externs/jasmine.js +48 -0
  133. package/test/test/util/expect_async_polyfill.js +145 -0
  134. package/test/test/util/fake_networking_engine.js +1 -0
  135. package/test/test/util/manifest_generator.js +2 -1
  136. package/test/test/util/test_scheme.js +34 -2
  137. package/test/test/util/ui_utils.js +41 -0
  138. package/test/test/util/util.js +16 -8
  139. package/test/ui/ui_unit.js +130 -4
  140. package/ui/audio_language_selection.js +17 -96
  141. package/ui/big_play_button.js +61 -0
  142. package/ui/controls.js +226 -335
  143. package/ui/controls.less +3 -5
  144. package/ui/element.js +24 -6
  145. package/ui/externs/ui.js +62 -9
  146. package/ui/fullscreen_button.js +2 -52
  147. package/ui/less/buttons.less +10 -16
  148. package/ui/less/containers.less +75 -20
  149. package/ui/less/general.less +18 -2
  150. package/ui/less/other_elements.less +2 -1
  151. package/ui/less/overflow_menu.less +11 -10
  152. package/ui/less/range_elements.less +12 -10
  153. package/ui/less/spinner.less +2 -0
  154. package/ui/overflow_menu.js +1 -1
  155. package/ui/pip_button.js +1 -1
  156. package/ui/{play_pause_button.js → play_button.js} +17 -47
  157. package/ui/presentation_time.js +17 -12
  158. package/ui/range_element.js +176 -0
  159. package/ui/resolution_selection.js +43 -106
  160. package/ui/seek_bar.js +204 -0
  161. package/ui/settings_menu.js +113 -0
  162. package/ui/small_play_button.js +73 -0
  163. package/ui/text_displayer.js +17 -14
  164. package/ui/text_selection.js +42 -107
  165. package/ui/ui.js +17 -40
  166. package/ui/volume_bar.js +40 -68
@@ -28,7 +28,8 @@ $jscomp.generator.Engine_.prototype.throw_=function(a){this.context_.start_();if
28
28
  $jscomp.generator.Engine_.prototype.yieldAllStep_=function(a,b,c){try{var d=a.call(this.context_.yieldAllIterator_,b);$jscomp.generator.ensureIteratorResultIsObject_(d);if(!d.done)return this.context_.stop_(),d;var e=d.value}catch(f){return this.context_.yieldAllIterator_=null,this.context_.throw_(f),this.nextStep_()}this.context_.yieldAllIterator_=null;c.call(this.context_,e);return this.nextStep_()};
29
29
  $jscomp.generator.Engine_.prototype.nextStep_=function(){for(;this.context_.nextAddress;)try{var a=this.program_(this.context_);if(a)return this.context_.stop_(),{value:a.value,done:!1}}catch(b){this.context_.yieldResult=void 0,this.context_.throw_(b)}this.context_.stop_();if(this.context_.abruptCompletion_){a=this.context_.abruptCompletion_;this.context_.abruptCompletion_=null;if(a.isException)throw a.exception;return{value:a["return"],done:!0}}return{value:void 0,done:!0}};
30
30
  $jscomp.generator.Generator_=function(a){this.next=function(b){return a.next_(b)};this["throw"]=function(b){return a.throw_(b)};this["return"]=function(b){return a.return_(b)};$jscomp.initSymbolIterator();this[Symbol.iterator]=function(){return this}};$jscomp.generator.createGenerator=function(a,b){$jscomp.generator.Generator_.prototype=a.prototype;return new $jscomp.generator.Generator_(new $jscomp.generator.Engine_(b))};
31
- $jscomp.checkEs6ConformanceViaProxy=function(){try{var a={},b=Object.create(new $jscomp.global.Proxy(a,{get:function(c,d,e){return c==a&&"q"==d&&e==b}}));return!0===b.q}catch(c){return!1}};$jscomp.USE_PROXY_FOR_ES6_CONFORMANCE_CHECKS=!1;$jscomp.ES6_CONFORMANCE=$jscomp.USE_PROXY_FOR_ES6_CONFORMANCE_CHECKS&&$jscomp.checkEs6ConformanceViaProxy();$jscomp.owns=function(a,b){return Object.prototype.hasOwnProperty.call(a,b)};
31
+ $jscomp.arrayFromIterator=function(a){for(var b,c=[];!(b=a.next()).done;)c.push(b.value);return c};$jscomp.arrayFromIterable=function(a){return a instanceof Array?a:$jscomp.arrayFromIterator($jscomp.makeIterator(a))};$jscomp.checkEs6ConformanceViaProxy=function(){try{var a={},b=Object.create(new $jscomp.global.Proxy(a,{get:function(c,d,e){return c==a&&"q"==d&&e==b}}));return!0===b.q}catch(c){return!1}};$jscomp.USE_PROXY_FOR_ES6_CONFORMANCE_CHECKS=!1;
32
+ $jscomp.ES6_CONFORMANCE=$jscomp.USE_PROXY_FOR_ES6_CONFORMANCE_CHECKS&&$jscomp.checkEs6ConformanceViaProxy();$jscomp.owns=function(a,b){return Object.prototype.hasOwnProperty.call(a,b)};
32
33
  $jscomp.polyfill("WeakMap",function(a){function b(){if(!a||!Object.seal)return!1;try{var b=Object.seal({}),c=Object.seal({}),d=new a([[b,2],[c,3]]);if(2!=d.get(b)||3!=d.get(c))return!1;d["delete"](b);d.set(c,4);return!d.has(b)&&4==d.get(c)}catch(m){return!1}}function c(a){$jscomp.owns(a,e)||$jscomp.defineProperty(a,e,{value:{}})}function d(a){var b=Object[a];b&&(Object[a]=function(a){c(a);return b(a)})}if($jscomp.USE_PROXY_FOR_ES6_CONFORMANCE_CHECKS){if(a&&$jscomp.ES6_CONFORMANCE)return a}else if(b())return a;
33
34
  var e="$jscomp_hidden_"+Math.random();d("freeze");d("preventExtensions");d("seal");var f=0,g=function(a){this.id_=(f+=Math.random()+1).toString();if(a){$jscomp.initSymbol();$jscomp.initSymbolIterator();a=$jscomp.makeIterator(a);for(var b;!(b=a.next()).done;)b=b.value,this.set(b[0],b[1])}};g.prototype.set=function(a,b){c(a);if(!$jscomp.owns(a,e))throw Error("WeakMap key fail: "+a);a[e][this.id_]=b;return this};g.prototype.get=function(a){return $jscomp.owns(a,e)?a[e][this.id_]:void 0};g.prototype.has=
34
35
  function(a){return $jscomp.owns(a,e)&&$jscomp.owns(a[e],this.id_)};g.prototype["delete"]=function(a){return $jscomp.owns(a,e)&&$jscomp.owns(a[e],this.id_)?delete a[e][this.id_]:!1};return g},"es6","es3");$jscomp.MapEntry=function(){};
@@ -169,15 +170,16 @@ shaka.net.Backoff=function(a,b){b=void 0===b?!1:b;var c=shaka.net.Backoff.defaul
169
170
  null==a.backoffFactor?c.backoffFactor:a.backoffFactor;goog.asserts.assert(0<=this.backoffFactor_,"backoffFactor should be >= 0");this.numAttempts_=0;this.nextUnfuzzedDelay_=this.baseDelay_;if(this.autoReset_=b)goog.asserts.assert(2<=this.maxAttempts_,"maxAttempts must be >= 2 for autoReset == true"),this.numAttempts_=1};
170
171
  shaka.net.Backoff.prototype.attempt=function(){var a=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function c(){var d,e;return $jscomp.generator.createGenerator(c,function(c){switch(c.nextAddress){case 1:if(a.numAttempts_>=a.maxAttempts_)if(a.autoReset_)a.reset_();else return c["return"](Promise.reject());d=a.numAttempts_;a.numAttempts_++;if(0==d)return goog.asserts.assert(!a.autoReset_,"Failed to delay with auto-reset!"),c["return"]();e=shaka.net.Backoff.fuzz_(a.nextUnfuzzedDelay_,a.fuzzFactor_);
171
172
  return c.yield(new Promise(function(a){shaka.net.Backoff.defer(e,a)}),2);case 2:a.nextUnfuzzedDelay_*=a.backoffFactor_,c.jumpToEnd()}})})};shaka.net.Backoff.defaultRetryParameters=function(){return{maxAttempts:2,baseDelay:1E3,backoffFactor:2,fuzzFactor:.5,timeout:0}};shaka.net.Backoff.fuzz_=function(a,b){return a*(1+(2*Math.random()-1)*b)};
172
- shaka.net.Backoff.prototype.reset_=function(){goog.asserts.assert(this.autoReset_,"Should only be used for auto-reset!");this.numAttempts_=1;this.nextUnfuzzedDelay_=this.baseDelay_};shaka.net.Backoff.defer=function(a,b){(new shaka.util.Timer(b)).tickAfter(a/1E3)};shaka.util.Error=function(a,b,c,d){for(var e=[],f=3;f<arguments.length;++f)e[f-3]=arguments[f];this.severity=a;this.category=b;this.code=c;this.data=e;this.handled=!1;if(goog.DEBUG){f=e="UNKNOWN";for(var g in shaka.util.Error.Category)shaka.util.Error.Category[g]==this.category&&(e=g);for(var h in shaka.util.Error.Code)shaka.util.Error.Code[h]==this.code&&(f=h);this.message="Shaka Error "+e+"."+f+" ("+this.data.toString()+")";try{throw Error(this.message);}catch(k){this.stack=k.stack}}};
173
- goog.exportSymbol("shaka.util.Error",shaka.util.Error);shaka.util.Error.prototype.toString=function(){return"shaka.util.Error "+JSON.stringify(this,null," ")};shaka.util.Error.Severity={RECOVERABLE:1,CRITICAL:2};goog.exportProperty(shaka.util.Error,"Severity",shaka.util.Error.Severity);shaka.util.Error.Category={NETWORK:1,TEXT:2,MEDIA:3,MANIFEST:4,STREAMING:5,DRM:6,PLAYER:7,CAST:8,STORAGE:9};goog.exportProperty(shaka.util.Error,"Category",shaka.util.Error.Category);
173
+ shaka.net.Backoff.prototype.reset_=function(){goog.asserts.assert(this.autoReset_,"Should only be used for auto-reset!");this.numAttempts_=1;this.nextUnfuzzedDelay_=this.baseDelay_};shaka.net.Backoff.defer=function(a,b){(new shaka.util.Timer(b)).tickAfter(a/1E3)};shaka.util.Error=function(a,b,c,d){for(var e=[],f=3;f<arguments.length;++f)e[f-3]=arguments[f];this.severity=a;this.category=b;this.code=c;this.data=e;this.handled=!1;if(goog.DEBUG){f=e="UNKNOWN";for(var g in shaka.util.Error.Category)shaka.util.Error.Category[g]==this.category&&(e=g);for(var h in shaka.util.Error.Code)shaka.util.Error.Code[h]==this.code&&(f=h);this.message="Shaka Error "+e+"."+f+" ("+this.data.toString()+")";if(shaka.util.Error.createStack)try{throw Error(this.message);}catch(k){this.stack=
174
+ k.stack}}};goog.exportSymbol("shaka.util.Error",shaka.util.Error);shaka.util.Error.prototype.toString=function(){return"shaka.util.Error "+JSON.stringify(this,null," ")};goog.DEBUG&&(shaka.util.Error.createStack=!0);shaka.util.Error.Severity={RECOVERABLE:1,CRITICAL:2};goog.exportProperty(shaka.util.Error,"Severity",shaka.util.Error.Severity);shaka.util.Error.Category={NETWORK:1,TEXT:2,MEDIA:3,MANIFEST:4,STREAMING:5,DRM:6,PLAYER:7,CAST:8,STORAGE:9};
175
+ goog.exportProperty(shaka.util.Error,"Category",shaka.util.Error.Category);
174
176
  shaka.util.Error.Code={UNSUPPORTED_SCHEME:1E3,BAD_HTTP_STATUS:1001,HTTP_ERROR:1002,TIMEOUT:1003,MALFORMED_DATA_URI:1004,UNKNOWN_DATA_URI_ENCODING:1005,REQUEST_FILTER_ERROR:1006,RESPONSE_FILTER_ERROR:1007,MALFORMED_TEST_URI:1008,UNEXPECTED_TEST_REQUEST:1009,INVALID_TEXT_HEADER:2E3,INVALID_TEXT_CUE:2001,UNABLE_TO_DETECT_ENCODING:2003,BAD_ENCODING:2004,INVALID_XML:2005,INVALID_MP4_TTML:2007,INVALID_MP4_VTT:2008,UNABLE_TO_EXTRACT_CUE_START_TIME:2009,BUFFER_READ_OUT_OF_BOUNDS:3E3,JS_INTEGER_OVERFLOW:3001,
175
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,
176
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,
177
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,
178
- 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,
179
- NO_CAST_RECEIVERS:8001,ALREADY_CASTING:8002,UNEXPECTED_CAST_ERROR:8003,CAST_CANCELED_BY_USER:8004,CAST_CONNECTION_TIMED_OUT:8005,CAST_RECEIVER_APP_UNAVAILABLE:8006,STORAGE_NOT_SUPPORTED:9E3,INDEXED_DB_ERROR:9001,DEPRECATED_OPERATION_ABORTED:9002,REQUESTED_ITEM_NOT_FOUND:9003,MALFORMED_OFFLINE_URI:9004,CANNOT_STORE_LIVE_OFFLINE:9005,STORE_ALREADY_IN_PROGRESS:9006,NO_INIT_DATA_FOR_OFFLINE:9007,LOCAL_PLAYER_INSTANCE_REQUIRED:9008,NEW_KEY_OPERATION_NOT_SUPPORTED:9011,KEY_NOT_FOUND:9012,MISSING_STORAGE_CELL:9013};
180
- 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);
181
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);
182
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);
183
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);
@@ -191,7 +193,7 @@ shaka.net.NetworkingEngine.registerScheme=function(a,b,c){goog.asserts.assert(vo
191
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)};
192
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)};
193
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()};
194
- 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}};
195
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);
196
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!");
197
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=
@@ -207,9 +209,15 @@ shaka.util.Error.Code.RESPONSE_FILTER_ERROR,a);})};shaka.net.NetworkingEngine.ge
207
209
  shaka.net.NetworkingEngine.NumBytesRemainingClass.prototype.getBytes=function(){return this.bytesToLoad_};shaka.net.NetworkingEngine.PendingRequest=function(a,b,c){shaka.util.AbortableOperation.call(this,a,b);this.bytesRemaining_=c};$jscomp.inherits(shaka.net.NetworkingEngine.PendingRequest,shaka.util.AbortableOperation);goog.exportProperty(shaka.net.NetworkingEngine,"PendingRequest",shaka.net.NetworkingEngine.PendingRequest);shaka.net.NetworkingEngine.PendingRequest.wrapChainCallback_=shaka.util.AbortableOperation.wrapChainCallback_;
208
210
  shaka.net.NetworkingEngine.PendingRequest.all=shaka.util.AbortableOperation.all;goog.exportProperty(shaka.net.NetworkingEngine.PendingRequest,"all",shaka.net.NetworkingEngine.PendingRequest.all);shaka.net.NetworkingEngine.PendingRequest.notAbortable=shaka.util.AbortableOperation.notAbortable;goog.exportProperty(shaka.net.NetworkingEngine.PendingRequest,"notAbortable",shaka.net.NetworkingEngine.PendingRequest.notAbortable);shaka.net.NetworkingEngine.PendingRequest.completed=shaka.util.AbortableOperation.completed;
209
211
  goog.exportProperty(shaka.net.NetworkingEngine.PendingRequest,"completed",shaka.net.NetworkingEngine.PendingRequest.completed);shaka.net.NetworkingEngine.PendingRequest.aborted=shaka.util.AbortableOperation.aborted;goog.exportProperty(shaka.net.NetworkingEngine.PendingRequest,"aborted",shaka.net.NetworkingEngine.PendingRequest.aborted);shaka.net.NetworkingEngine.PendingRequest.failed=shaka.util.AbortableOperation.failed;goog.exportProperty(shaka.net.NetworkingEngine.PendingRequest,"failed",shaka.net.NetworkingEngine.PendingRequest.failed);
210
- shaka.net.NetworkingEngine.PendingRequest.prototype.getBytesRemaining=function(){return this.bytesRemaining_.getBytes()};shaka.util.IReleasable=function(){};shaka.util.IReleasable.prototype.release=function(){};shaka.util.EventManager=function(){this.bindingMap_=new shaka.util.MultiMap};shaka.util.EventManager.prototype.release=function(){this.removeAll();this.bindingMap_=null};shaka.util.EventManager.prototype.listen=function(a,b,c){this.bindingMap_&&(a=new shaka.util.EventManager.Binding_(a,b,c),this.bindingMap_.push(b,a))};shaka.util.EventManager.prototype.listenOnce=function(a,b,c){var d=this,e=function(f){d.unlisten(a,b,e);c(f)};this.listen(a,b,e)};
211
- shaka.util.EventManager.prototype.unlisten=function(a,b,c){if(this.bindingMap_)for(var d=this.bindingMap_.get(b)||[],e=0;e<d.length;++e){var f=d[e];f.target!=a||c!=f.listener&&c||(f.unlisten(),this.bindingMap_.remove(b,f))}};shaka.util.EventManager.prototype.removeAll=function(){if(this.bindingMap_){for(var a=this.bindingMap_.getAll(),b=0;b<a.length;++b)a[b].unlisten();this.bindingMap_.clear()}};
212
- shaka.util.EventManager.Binding_=function(a,b,c){this.target=a;this.type=b;this.listener=c;this.target.addEventListener(b,c,!1)};shaka.util.EventManager.Binding_.prototype.unlisten=function(){goog.asserts.assert(this.target,"Missing target");this.target.removeEventListener(this.type,this.listener,!1);this.listener=this.target=null};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]};
212
+ shaka.net.NetworkingEngine.PendingRequest.prototype.getBytesRemaining=function(){return this.bytesRemaining_.getBytes()};shaka.util.IReleasable=function(){};goog.exportSymbol("shaka.util.IReleasable",shaka.util.IReleasable);shaka.util.IReleasable.prototype.release=function(){};shaka.util.EventManager=function(){this.bindingMap_=new shaka.util.MultiMap};goog.exportSymbol("shaka.util.EventManager",shaka.util.EventManager);shaka.util.EventManager.prototype.release=function(){this.removeAll();this.bindingMap_=null};goog.exportProperty(shaka.util.EventManager.prototype,"release",shaka.util.EventManager.prototype.release);shaka.util.EventManager.prototype.listen=function(a,b,c,d){this.bindingMap_&&(a=new shaka.util.EventManager.Binding_(a,b,c,d),this.bindingMap_.push(b,a))};
213
+ goog.exportProperty(shaka.util.EventManager.prototype,"listen",shaka.util.EventManager.prototype.listen);shaka.util.EventManager.prototype.listenOnce=function(a,b,c,d){var e=this,f=function(d){e.unlisten(a,b,f);c(d)};this.listen(a,b,f,d)};goog.exportProperty(shaka.util.EventManager.prototype,"listenOnce",shaka.util.EventManager.prototype.listenOnce);
214
+ shaka.util.EventManager.prototype.unlisten=function(a,b,c){if(this.bindingMap_){var d=this.bindingMap_.get(b)||[];d=$jscomp.makeIterator(d);for(var e=d.next();!e.done;e=d.next())e=e.value,e.target!=a||c!=e.listener&&c||(e.unlisten(),this.bindingMap_.remove(b,e))}};goog.exportProperty(shaka.util.EventManager.prototype,"unlisten",shaka.util.EventManager.prototype.unlisten);
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
+ 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
+ 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.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]};
213
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")};
214
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")};
215
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)};
@@ -219,7 +227,9 @@ shaka.util.StringUtils.fromUTF16=function(a,b,c){if(!a)return"";if(!c&&0!=a.byte
219
227
  return shaka.util.StringUtils.fromCharCode(c)};goog.exportSymbol("shaka.util.StringUtils.fromUTF16",shaka.util.StringUtils.fromUTF16);
220
228
  shaka.util.StringUtils.fromBytesAutoDetect=function(a){var b=shaka.util.StringUtils,c=new Uint8Array(a);if(239==c[0]&&187==c[1]&&191==c[2])return b.fromUTF8(c);if(254==c[0]&&255==c[1])return b.fromUTF16(c.subarray(2),!1);if(255==c[0]&&254==c[1])return b.fromUTF16(c.subarray(2),!0);var d=function(a,b){return a.byteLength<=b||32<=a[b]&&126>=a[b]}.bind(null,c);shaka.log.debug("Unable to find byte-order-mark, making an educated guess.");if(0==c[0]&&0==c[2])return b.fromUTF16(a,!1);if(0==c[1]&&0==c[3])return b.fromUTF16(a,
221
229
  !0);if(d(0)&&d(1)&&d(2)&&d(3))return b.fromUTF8(a);throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.UNABLE_TO_DETECT_ENCODING);};goog.exportSymbol("shaka.util.StringUtils.fromBytesAutoDetect",shaka.util.StringUtils.fromBytesAutoDetect);shaka.util.StringUtils.toUTF8=function(a){a=encodeURIComponent(a);a=unescape(a);for(var b=new Uint8Array(a.length),c=0;c<a.length;++c)b[c]=a.charCodeAt(c);return b.buffer};
222
- goog.exportSymbol("shaka.util.StringUtils.toUTF8",shaka.util.StringUtils.toUTF8);shaka.util.StringUtils.toUTF16=function(a,b){for(var c=new Uint8Array(2*a.length),d=new DataView(c.buffer),e=0;e<a.length;++e){var f=a.charCodeAt(e);d.setUint16(2*e,f,b)}return c.buffer};goog.exportSymbol("shaka.util.StringUtils.toUTF16",shaka.util.StringUtils.toUTF16);shaka.util.StringUtils.fromCharCode=function(a){for(var b="",c=0;c<a.length;c+=16E3){var d=a.subarray(c,c+16E3);b+=String.fromCharCode.apply(null,d)}return b};shaka.util.Uint8ArrayUtils={};shaka.util.Uint8ArrayUtils.toBase64=function(a,b){var c=shaka.util.StringUtils.fromCharCode(a);b=void 0==b?!0:b;c=window.btoa(c).replace(/\+/g,"-").replace(/\//g,"_");return b?c:c.replace(/=*$/,"")};goog.exportSymbol("shaka.util.Uint8ArrayUtils.toBase64",shaka.util.Uint8ArrayUtils.toBase64);shaka.util.Uint8ArrayUtils.fromBase64=function(a){a=window.atob(a.replace(/-/g,"+").replace(/_/g,"/"));for(var b=new Uint8Array(a.length),c=0;c<a.length;++c)b[c]=a.charCodeAt(c);return b};
230
+ goog.exportSymbol("shaka.util.StringUtils.toUTF8",shaka.util.StringUtils.toUTF8);shaka.util.StringUtils.toUTF16=function(a,b){for(var c=new Uint8Array(2*a.length),d=new DataView(c.buffer),e=0;e<a.length;++e){var f=a.charCodeAt(e);d.setUint16(2*e,f,b)}return c.buffer};goog.exportSymbol("shaka.util.StringUtils.toUTF16",shaka.util.StringUtils.toUTF16);
231
+ shaka.util.StringUtils.fromCharCode=function(a){if(!shaka.util.StringUtils.fromCharCodeImpl_)for(var b=function(a){try{var b=new Uint8Array(a),c=String.fromCharCode.apply(String,$jscomp.arrayFromIterable(b));goog.asserts.assert(c,"Should get value");return!0}catch(g){return!1}},c={size:65536};0<c.size;c={size:c.size},c.size/=2)if(b(c.size)){shaka.util.StringUtils.fromCharCodeImpl_=function(a){return function(b){for(var c="",d=0;d<b.length;d+=a.size){var e=b.subarray(d,d+a.size);c+=String.fromCharCode.apply(String,
232
+ $jscomp.arrayFromIterable(e))}return c}}(c);break}goog.asserts.assert(shaka.util.StringUtils.fromCharCodeImpl_,"Unable to create a fromCharCode method");return shaka.util.StringUtils.fromCharCodeImpl_(a)};shaka.util.StringUtils.fromCharCodeImpl_=null;shaka.util.Uint8ArrayUtils={};shaka.util.Uint8ArrayUtils.toBase64=function(a,b){var c=shaka.util.StringUtils.fromCharCode(a);b=void 0==b?!0:b;c=window.btoa(c).replace(/\+/g,"-").replace(/\//g,"_");return b?c:c.replace(/=*$/,"")};goog.exportSymbol("shaka.util.Uint8ArrayUtils.toBase64",shaka.util.Uint8ArrayUtils.toBase64);shaka.util.Uint8ArrayUtils.fromBase64=function(a){a=window.atob(a.replace(/-/g,"+").replace(/_/g,"/"));for(var b=new Uint8Array(a.length),c=0;c<a.length;++c)b[c]=a.charCodeAt(c);return b};
223
233
  goog.exportSymbol("shaka.util.Uint8ArrayUtils.fromBase64",shaka.util.Uint8ArrayUtils.fromBase64);shaka.util.Uint8ArrayUtils.fromHex=function(a){for(var b=new Uint8Array(a.length/2),c=0;c<a.length;c+=2)b[c/2]=window.parseInt(a.substr(c,2),16);return b};goog.exportSymbol("shaka.util.Uint8ArrayUtils.fromHex",shaka.util.Uint8ArrayUtils.fromHex);shaka.util.Uint8ArrayUtils.toHex=function(a){for(var b="",c=0;c<a.length;++c){var d=a[c].toString(16);1==d.length&&(d="0"+d);b+=d}return b};
224
234
  goog.exportSymbol("shaka.util.Uint8ArrayUtils.toHex",shaka.util.Uint8ArrayUtils.toHex);shaka.util.Uint8ArrayUtils.equal=function(a,b){if(!a&&!b)return!0;if(!a||!b||a.length!=b.length)return!1;for(var c=0;c<a.length;++c)if(a[c]!=b[c])return!1;return!0};goog.exportSymbol("shaka.util.Uint8ArrayUtils.equal",shaka.util.Uint8ArrayUtils.equal);
225
235
  shaka.util.Uint8ArrayUtils.concat=function(a){for(var b=[],c=0;c<arguments.length;++c)b[c-0]=arguments[c];for(var d=c=0;d<b.length;++d)c+=b[d].length;c=new Uint8Array(c);for(var e=d=0;e<b.length;++e)c.set(b[e],d),d+=b[e].length;return c};goog.exportSymbol("shaka.util.Uint8ArrayUtils.concat",shaka.util.Uint8ArrayUtils.concat);shaka.media={};
@@ -256,13 +266,14 @@ licenseServerUri:"data:application/json;base64,"+window.btoa(a),distinctiveIdent
256
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",
257
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),
258
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))};
259
- 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,
260
- "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,
261
- 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_};
262
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);
263
- 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);
264
- 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,
265
- 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))};
266
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");
267
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"};
268
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};
@@ -294,13 +305,13 @@ shaka.media.TimeRangesUtils.bufferedAheadOf=function(a,b){if(!a||!a.length||1==a
294
305
  shaka.media.TimeRangesUtils.getBufferedInfo=function(a){if(!a)return[];for(var b=[],c=0;c<a.length;c++)b.push({start:a.start(c),end:a.end(c)});return b};shaka.util.Functional={};shaka.util.Functional.createFallbackPromiseChain=function(a,b){return a.reduce(function(a,b,e){return b["catch"](a.bind(null,e))}.bind(null,b),Promise.reject())};shaka.util.Functional.collapseArrays=function(a,b){return a.concat(b)};shaka.util.Functional.noop=function(){};shaka.util.Functional.isNotNull=function(a){return null!=a};shaka.util.ManifestParserUtils={};shaka.util.ManifestParserUtils.resolveUris=function(a,b){var c=shaka.util.Functional;if(0==b.length)return a;var d=b.map(function(a){return new goog.Uri(a)});return a.map(function(a){return new goog.Uri(a)}).map(function(a){return d.map(a.resolve.bind(a))}).reduce(c.collapseArrays,[]).map(function(a){return a.toString()})};
295
306
  shaka.util.ManifestParserUtils.createDrmInfo=function(a,b){return{keySystem:a,licenseServerUri:"",distinctiveIdentifierRequired:!1,persistentStateRequired:!1,audioRobustness:"",videoRobustness:"",serverCertificate:null,initData:b||[],keyIds:[]}};shaka.util.ManifestParserUtils.ContentType={VIDEO:"video",AUDIO:"audio",TEXT:"text",APPLICATION:"application"};shaka.util.ManifestParserUtils.TextStreamKind={SUBTITLE:"subtitle",CLOSED_CAPTION:"caption"};
296
307
  shaka.util.ManifestParserUtils.GAP_OVERLAP_TOLERANCE_SECONDS=1/15;shaka.media.Transmuxer=function(){this.muxTransmuxer_=new muxjs.mp4.Transmuxer({keepOriginalTimestamps:!0});this.transmuxPromise_=null;this.transmuxedData_=[];this.captions_=[];this.isTransmuxing_=!1;this.muxTransmuxer_.on("data",this.onTransmuxed_.bind(this));this.muxTransmuxer_.on("done",this.onTransmuxDone_.bind(this))};shaka.media.Transmuxer.prototype.destroy=function(){this.muxTransmuxer_.dispose();this.muxTransmuxer_=null;return Promise.resolve()};
297
- shaka.media.Transmuxer.isSupported=function(a,b){if(!window.muxjs||!shaka.media.Transmuxer.isTsContainer(a))return!1;var c=shaka.media.Transmuxer.convertTsCodecs;if(b)return MediaSource.isTypeSupported(c(b,a));var d=shaka.util.ManifestParserUtils.ContentType;return MediaSource.isTypeSupported(c(d.AUDIO,a))||MediaSource.isTypeSupported(c(d.VIDEO,a))};shaka.media.Transmuxer.isTsContainer=function(a){return"mp2t"==a.split(";")[0].split("/")[1]};
298
- shaka.media.Transmuxer.convertTsCodecs=function(a,b){var c=shaka.util.ManifestParserUtils.ContentType,d=b.replace("mp2t","mp4");a==c.AUDIO&&(d=d.replace("video","audio"));if(c=/avc1\.(66|77|100)\.(\d+)/.exec(d)){var e="avc1.",f=c[1];"66"==f?e+="4200":"77"==f?e+="4d00":(goog.asserts.assert("100"==f,"Legacy avc1 parsing code out of sync with regex!"),e+="6400");f=Number(c[2]);goog.asserts.assert(256>f,"Invalid legacy avc1 level number!");e+=(f>>4).toString(16);e+=(f&15).toString(16);d=d.replace(c[0],
308
+ shaka.media.Transmuxer.isSupported=function(a,b){if(!window.muxjs||!shaka.media.Transmuxer.isTsContainer(a))return!1;var c=shaka.media.Transmuxer.convertTsCodecs;if(b)return MediaSource.isTypeSupported(c(b,a));var d=shaka.util.ManifestParserUtils.ContentType;return MediaSource.isTypeSupported(c(d.AUDIO,a))||MediaSource.isTypeSupported(c(d.VIDEO,a))};shaka.media.Transmuxer.isTsContainer=function(a){return"mp2t"==a.toLowerCase().split(";")[0].split("/")[1]};
309
+ shaka.media.Transmuxer.convertTsCodecs=function(a,b){var c=shaka.util.ManifestParserUtils.ContentType,d=b.replace(/mp2t/i,"mp4");a==c.AUDIO&&(d=d.replace("video","audio"));if(c=/avc1\.(66|77|100)\.(\d+)/.exec(d)){var e="avc1.",f=c[1];"66"==f?e+="4200":"77"==f?e+="4d00":(goog.asserts.assert("100"==f,"Legacy avc1 parsing code out of sync with regex!"),e+="6400");f=Number(c[2]);goog.asserts.assert(256>f,"Invalid legacy avc1 level number!");e+=(f>>4).toString(16);e+=(f&15).toString(16);d=d.replace(c[0],
299
310
  e)}return d};
300
311
  shaka.media.Transmuxer.prototype.transmux=function(a){goog.asserts.assert(!this.isTransmuxing_,"No transmuxing should be in progress.");this.isTransmuxing_=!0;this.transmuxPromise_=new shaka.util.PublicPromise;this.transmuxedData_=[];this.captions_=[];a=new Uint8Array(a);this.muxTransmuxer_.push(a);this.muxTransmuxer_.flush();this.isTransmuxing_&&this.transmuxPromise_.reject(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.TRANSMUXING_FAILED));return this.transmuxPromise_};
301
312
  shaka.media.Transmuxer.prototype.onTransmuxed_=function(a){this.captions_=a.captions;var b=new Uint8Array(a.data.byteLength+a.initSegment.byteLength);b.set(a.initSegment,0);b.set(a.data,a.initSegment.byteLength);this.transmuxedData_.push(b)};shaka.media.Transmuxer.prototype.onTransmuxDone_=function(){var a={data:shaka.util.Uint8ArrayUtils.concat.apply(null,this.transmuxedData_),captions:this.captions_};this.transmuxPromise_.resolve(a);this.isTransmuxing_=!1};shaka.text={};
302
313
  shaka.text.Cue=function(a,b,c){var d=shaka.text.Cue;this.startTime=a;this.direction=d.direction.HORIZONTAL_LEFT_TO_RIGHT;this.endTime=b;this.payload=c;this.region=new shaka.text.CueRegion;this.position=null;this.positionAlign=d.positionAlign.AUTO;this.size=100;this.textAlign=d.textAlign.CENTER;this.writingMode=d.writingMode.HORIZONTAL_TOP_TO_BOTTOM;this.lineInterpretation=d.lineInterpretation.LINE_NUMBER;this.line=null;this.lineHeight="";this.lineAlign=d.lineAlign.START;this.displayAlign=d.displayAlign.AFTER;
303
- this.backgroundColor=this.color="";this.backgroundImage=null;this.fontSize="";this.fontWeight=d.fontWeight.NORMAL;this.fontStyle=d.fontStyle.NORMAL;this.fontFamily="";this.textDecoration=[];this.wrapLine=!0;this.id=""};goog.exportSymbol("shaka.text.Cue",shaka.text.Cue);shaka.text.Cue.positionAlign={LEFT:"line-left",RIGHT:"line-right",CENTER:"center",AUTO:"auto"};goog.exportProperty(shaka.text.Cue,"positionAlign",shaka.text.Cue.positionAlign);
314
+ this.fontSize=this.backgroundImage=this.backgroundColor=this.color="";this.fontWeight=d.fontWeight.NORMAL;this.fontStyle=d.fontStyle.NORMAL;this.fontFamily="";this.textDecoration=[];this.wrapLine=!0;this.id=""};goog.exportSymbol("shaka.text.Cue",shaka.text.Cue);shaka.text.Cue.positionAlign={LEFT:"line-left",RIGHT:"line-right",CENTER:"center",AUTO:"auto"};goog.exportProperty(shaka.text.Cue,"positionAlign",shaka.text.Cue.positionAlign);
304
315
  shaka.text.Cue.textAlign={LEFT:"left",RIGHT:"right",CENTER:"center",START:"start",END:"end"};goog.exportProperty(shaka.text.Cue,"textAlign",shaka.text.Cue.textAlign);shaka.text.Cue.displayAlign={BEFORE:"before",CENTER:"center",AFTER:"after"};goog.exportProperty(shaka.text.Cue,"displayAlign",shaka.text.Cue.displayAlign);shaka.text.Cue.direction={HORIZONTAL_LEFT_TO_RIGHT:"ltr",HORIZONTAL_RIGHT_TO_LEFT:"rtl"};goog.exportProperty(shaka.text.Cue,"direction",shaka.text.Cue.direction);
305
316
  shaka.text.Cue.writingMode={HORIZONTAL_TOP_TO_BOTTOM:"horizontal-tb",VERTICAL_LEFT_TO_RIGHT:"vertical-lr",VERTICAL_RIGHT_TO_LEFT:"vertical-rl"};goog.exportProperty(shaka.text.Cue,"writingMode",shaka.text.Cue.writingMode);shaka.text.Cue.lineInterpretation={LINE_NUMBER:0,PERCENTAGE:1};goog.exportProperty(shaka.text.Cue,"lineInterpretation",shaka.text.Cue.lineInterpretation);shaka.text.Cue.lineAlign={CENTER:"center",START:"start",END:"end"};goog.exportProperty(shaka.text.Cue,"lineAlign",shaka.text.Cue.lineAlign);
306
317
  shaka.text.Cue.fontWeight={NORMAL:400,BOLD:700};goog.exportProperty(shaka.text.Cue,"fontWeight",shaka.text.Cue.fontWeight);shaka.text.Cue.fontStyle={NORMAL:"normal",ITALIC:"italic",OBLIQUE:"oblique"};goog.exportProperty(shaka.text.Cue,"fontStyle",shaka.text.Cue.fontStyle);shaka.text.Cue.textDecoration={UNDERLINE:"underline",LINE_THROUGH:"lineThrough",OVERLINE:"overline"};goog.exportProperty(shaka.text.Cue,"textDecoration",shaka.text.Cue.textDecoration);
@@ -322,7 +333,7 @@ shaka.media.MediaSourceEngine.prototype.createMediaSource=function(a){var b=new
322
333
  shaka.media.MediaSourceEngine.isStreamSupported=function(a){var b=shaka.util.MimeUtils.getFullType(a.mimeType,a.codecs),c=shaka.util.MimeUtils.getExtendedType(a);return shaka.text.TextEngine.isTypeSupported(b)||MediaSource.isTypeSupported(c)||shaka.media.Transmuxer.isSupported(b,a.type)};
323
334
  shaka.media.MediaSourceEngine.probeSupport=function(){for(var a={},b=$jscomp.makeIterator('video/mp4; codecs="avc1.42E01E",video/mp4; codecs="avc3.42E01E",video/mp4; codecs="hev1.1.6.L93.90",video/mp4; codecs="hvc1.1.6.L93.90",video/mp4; codecs="hev1.2.4.L153.B0"; eotf="smpte2084",video/mp4; codecs="hvc1.2.4.L153.B0"; eotf="smpte2084",video/mp4; codecs="vp9",video/mp4; codecs="vp09.00.10.08",audio/mp4; codecs="mp4a.40.2",audio/mp4; codecs="ac-3",audio/mp4; codecs="ec-3",audio/mp4; codecs="opus",audio/mp4; codecs="flac",video/webm; codecs="vp8",video/webm; codecs="vp9",video/webm; codecs="vp09.00.10.08",audio/webm; codecs="vorbis",audio/webm; codecs="opus",video/mp2t; codecs="avc1.42E01E",video/mp2t; codecs="avc3.42E01E",video/mp2t; codecs="hvc1.1.6.L93.90",video/mp2t; codecs="mp4a.40.2",video/mp2t; codecs="ac-3",video/mp2t; codecs="ec-3",text/vtt,application/mp4; codecs="wvtt",application/ttml+xml,application/mp4; codecs="stpp"'.split(",")),c=
324
335
  b.next();!c.done;c=b.next()){c=c.value;shaka.util.Platform.supportsMediaSource()?shaka.text.TextEngine.isTypeSupported(c)?a[c]=!0:a[c]=MediaSource.isTypeSupported(c)||shaka.media.Transmuxer.isSupported(c):a[c]=shaka.util.Platform.supportsMediaType(c);var d=c.split(";")[0];a[d]=a[d]||a[c]}return a};
325
- shaka.media.MediaSourceEngine.prototype.destroy=function(){var a=this,b=shaka.util.Functional;this.destroyed_=!0;var c=[],d;for(d in this.queues_){var e=this.queues_[d],f=e[0];this.queues_[d]=e.slice(0,1);f&&c.push(f.p["catch"](b.noop));for(f=1;f<e.length;++f)e[f].p["catch"](b.noop),e[f].p.reject()}this.textEngine_&&c.push(this.textEngine_.destroy());this.textDisplayer_&&c.push(this.textDisplayer_.destroy());for(var g in this.transmuxers_)c.push(this.transmuxers_[g].destroy());return Promise.all(c).then(function(){a.eventManager_&&
336
+ shaka.media.MediaSourceEngine.prototype.destroy=function(){var a=this,b=shaka.util.Functional;this.destroyed_=!0;var c=[],d;for(d in this.queues_){var e=this.queues_[d],f=e[0];this.queues_[d]=e.slice(0,1);f&&c.push(f.p["catch"](b.noop));for(f=1;f<e.length;++f)e[f].p.reject()}this.textEngine_&&c.push(this.textEngine_.destroy());this.textDisplayer_&&c.push(this.textDisplayer_.destroy());for(var g in this.transmuxers_)c.push(this.transmuxers_[g].destroy());return Promise.all(c).then(function(){a.eventManager_&&
326
337
  (a.eventManager_.release(),a.eventManager_=null);a.video_&&(a.video_.removeAttribute("src"),a.video_.load(),a.video_=null);a.mediaSource_=null;a.textEngine_=null;a.textDisplayer_=null;a.sourceBuffers_={};a.transmuxers_={};a.captionParser_=null;if(goog.DEBUG)for(var b in a.queues_)goog.asserts.assert(0==a.queues_[b].length,b+" queue should be empty after destroy!");a.queues_={}})};shaka.media.MediaSourceEngine.prototype.open=function(){return this.mediaSourceOpen_};
327
338
  shaka.media.MediaSourceEngine.prototype.init=function(a,b){var c=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function e(){var f;return $jscomp.generator.createGenerator(e,function(e){switch(e.nextAddress){case 1:return f=shaka.util.ManifestParserUtils.ContentType,e.yield(c.mediaSourceOpen_,2);case 2:a.forEach(function(a,e){goog.asserts.assert(shaka.media.MediaSourceEngine.isStreamSupported(a),"Type negotiation should happen before MediaSourceEngine.init!");var g=shaka.util.MimeUtils.getFullType(a.mimeType,
328
339
  a.codecs);e==f.TEXT?c.reinitText(g):(!b&&MediaSource.isTypeSupported(g)||!shaka.media.Transmuxer.isSupported(g,e)||(c.transmuxers_[e]=new shaka.media.Transmuxer,g=shaka.media.Transmuxer.convertTsCodecs(e,g)),g=c.mediaSource_.addSourceBuffer(g),c.eventManager_.listen(g,"error",c.onError_.bind(c,e)),c.eventManager_.listen(g,"updateend",c.onUpdateEnd_.bind(c,e)),c.sourceBuffers_[e]=g,c.queues_[e]=[])}),e.jumpToEnd()}})})};
@@ -337,17 +348,18 @@ shaka.media.MediaSourceEngine.prototype.setSelectedClosedCaptionId=function(a){v
337
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))};
338
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))};
339
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))])};
340
- 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))};
341
- 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)};
342
- 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)};
343
- 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)};
344
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))};
345
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))};
346
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,
347
359
  shaka.util.Error.Code.MEDIA_SOURCE_OPERATION_THREW,d)),this.popFromQueue_(a)}return c.p};
348
360
  shaka.media.MediaSourceEngine.prototype.enqueueBlockingOperation_=function(a){if(this.destroyed_)return Promise.reject();var b=[],c;for(c in this.sourceBuffers_){var d=new shaka.util.PublicPromise,e={start:function(a){a.resolve()}.bind(null,d),p:d};this.queues_[c].push(e);b.push(d);1==this.queues_[c].length&&e.start()}return Promise.all(b).then(function(){if(goog.DEBUG)for(var b in this.sourceBuffers_)goog.asserts.assert(0==this.sourceBuffers_[b].updating,"SourceBuffers should not be updating after a blocking op!");
349
- try{a()}catch(k){var c=Promise.reject(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.MEDIA_SOURCE_OPERATION_THREW,k))}for(var d in this.sourceBuffers_)this.popFromQueue_(d);return c}.bind(this),function(){goog.asserts.assert(this.destroyed_,"Should be destroyed by now");if(goog.DEBUG)for(var a in this.sourceBuffers_)this.queues_[a].length&&(goog.asserts.assert(1==this.queues_[a].length,"Should be at most one item in queue!"),goog.asserts.assert(b.includes(this.queues_[a][0].p),
350
- "The item in queue should be one of our waiters!"),this.queues_[a].shift());return Promise.reject()}.bind(this))};shaka.media.MediaSourceEngine.prototype.popFromQueue_=function(a){this.queues_[a].shift();var b=this.queues_[a][0];if(b)try{b.start()}catch(c){b.p.reject(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.MEDIA_SOURCE_OPERATION_THREW,c)),this.popFromQueue_(a)}};
361
+ try{a()}catch(k){var c=Promise.reject(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.MEDIA_SOURCE_OPERATION_THREW,k))}for(var d in this.sourceBuffers_)this.popFromQueue_(d);return c}.bind(this),function(a){goog.asserts.assert(this.destroyed_,"Should be destroyed by now");if(goog.DEBUG)for(var c in this.sourceBuffers_)this.queues_[c].length&&(goog.asserts.assert(1==this.queues_[c].length,"Should be at most one item in queue!"),goog.asserts.assert(b.includes(this.queues_[c][0].p),
362
+ "The item in queue should be one of our waiters!"),this.queues_[c].shift());throw a;}.bind(this))};shaka.media.MediaSourceEngine.prototype.popFromQueue_=function(a){this.queues_[a].shift();var b=this.queues_[a][0];if(b)try{b.start()}catch(c){b.p.reject(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.MEDIA_SOURCE_OPERATION_THREW,c)),this.popFromQueue_(a)}};
351
363
  shaka.media.MediaSourceEngine.prototype.getTextDisplayer=function(){goog.asserts.assert(this.textDisplayer_,"TextDisplayer should only be null when this is destroyed");return this.textDisplayer_};shaka.media.MediaSourceEngine.prototype.setTextDisplayer=function(a){var b=this.textDisplayer_;this.textDisplayer_=a;b&&(a.setTextVisibility(b.isTextVisible()),b.destroy());this.textEngine_&&this.textEngine_.setDisplayer(a)};shaka.util.StreamUtils={};shaka.util.StreamUtils.meetsRestrictions=function(a,b,c){var d=function(a,b,c){return a>=b&&a<=c},e=a.video;return e&&e.width&&e.height&&!(d(e.width,b.minWidth,Math.min(b.maxWidth,c.width))&&d(e.height,b.minHeight,Math.min(b.maxHeight,c.height))&&d(e.width*e.height,b.minPixels,b.maxPixels))||!d(a.bandwidth,b.minBandwidth,b.maxBandwidth)?!1:!0};
352
364
  shaka.util.StreamUtils.applyRestrictions=function(a,b,c){var d=!1;a.forEach(function(a){var e=a.allowedByApplication;a.allowedByApplication=shaka.util.StreamUtils.meetsRestrictions(a,b,c);e!=a.allowedByApplication&&(d=!0)});return d};
353
365
  shaka.util.StreamUtils.filterNewPeriod=function(a,b,c,d){var e=shaka.util.StreamUtils;b&&goog.asserts.assert(e.isAudio(b),"Audio streams must have the audio type.");c&&goog.asserts.assert(e.isVideo(c),"Video streams must have the video type.");d.variants=d.variants.filter(function(d){if(a&&a.initialized()&&!a.supportsVariant(d))return shaka.log.debug("Dropping variant - not compatible with key system",d),!1;var f=d.audio;d=d.video;return f&&!shaka.media.MediaSourceEngine.isStreamSupported(f)?(shaka.log.debug("Dropping variant - audio not compatible with platform",
@@ -406,26 +418,29 @@ shaka.cast.CastSender.prototype.removeListeners_=function(){var a=shaka.cast.Cas
406
418
  shaka.cast.CastSender.prototype.onConnectionStatusChanged_=function(){var a=shaka.cast.CastSender.session_?"connected"==shaka.cast.CastSender.session_.status:!1;shaka.log.debug("CastSender: connection status",a);if(this.isCasting_&&!a){this.onResumeLocal_();for(var b in this.cachedProperties_)this.cachedProperties_[b]={};this.rejectAllPromises_()}this.receiverName_=(this.isCasting_=a)?shaka.cast.CastSender.session_.receiver.friendlyName:"";this.statusChangeTimer_.tickNow()};
407
419
  shaka.cast.CastSender.prototype.rejectAllPromises_=function(){for(var a in this.asyncCallPromises_){var b=this.asyncCallPromises_[a];delete this.asyncCallPromises_[a];b.reject(new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.PLAYER,shaka.util.Error.Code.LOAD_INTERRUPTED))}};
408
420
  shaka.cast.CastSender.prototype.onMessageReceived_=function(a,b){var c=shaka.cast.CastUtils.deserialize(b);shaka.log.v2("CastSender: message",c);switch(c.type){case "event":var d=c.targetName;c=c.event;c=new shaka.util.FakeEvent(c.type,c);this.onRemoteEvent_(d,c);break;case "update":d=c.update;for(var e in d){c=this.cachedProperties_[e]||{};for(var f in d[e])c[f]=d[e][f]}this.hasJoinedExistingSession_&&(this.onFirstCastStateUpdate_(),this.hasJoinedExistingSession_=!1);break;case "asyncComplete":if(e=
409
- c.id,c=c.error,f=this.asyncCallPromises_[e],delete this.asyncCallPromises_[e],goog.asserts.assert(f,"Unexpected async id"),f)if(c){e=new shaka.util.Error(c.severity,c.category,c.code);for(d in c)e[d]=c[d];f.reject(e)}else f.resolve()}};shaka.cast.CastSender.prototype.sendMessage_=function(a){a=shaka.cast.CastUtils.serialize(a);shaka.cast.CastSender.session_.sendMessage(shaka.cast.CastUtils.SHAKA_MESSAGE_NAMESPACE,a,function(){},shaka.log.error)};shaka.cast.CastProxy=function(a,b,c){shaka.util.FakeEventTarget.call(this);this.localVideo_=a;this.localPlayer_=b;this.eventManager_=this.playerEventTarget_=this.videoEventTarget_=this.playerProxy_=this.videoProxy_=null;this.sender_=new shaka.cast.CastSender(c,this.onCastStatusChanged_.bind(this),this.onFirstCastStateUpdate_.bind(this),this.onRemoteEvent_.bind(this),this.onResumeLocal_.bind(this),this.getInitState_.bind(this));this.init_()};goog.inherits(shaka.cast.CastProxy,shaka.util.FakeEventTarget);
410
- goog.exportSymbol("shaka.cast.CastProxy",shaka.cast.CastProxy);shaka.cast.CastProxy.prototype.destroy=function(a){a&&this.sender_&&this.sender_.forceDisconnect();this.eventManager_&&(this.eventManager_.release(),this.eventManager_=null);a=[];this.localPlayer_&&(a.push(this.localPlayer_.destroy()),this.localPlayer_=null);this.sender_&&(a.push(this.sender_.destroy()),this.sender_=null);this.playerProxy_=this.videoProxy_=this.localVideo_=null;return Promise.all(a)};
411
- goog.exportProperty(shaka.cast.CastProxy.prototype,"destroy",shaka.cast.CastProxy.prototype.destroy);shaka.cast.CastProxy.prototype.getVideo=function(){return this.videoProxy_};goog.exportProperty(shaka.cast.CastProxy.prototype,"getVideo",shaka.cast.CastProxy.prototype.getVideo);shaka.cast.CastProxy.prototype.getPlayer=function(){return this.playerProxy_};goog.exportProperty(shaka.cast.CastProxy.prototype,"getPlayer",shaka.cast.CastProxy.prototype.getPlayer);
412
- shaka.cast.CastProxy.prototype.canCast=function(){return this.sender_?this.sender_.apiReady()&&this.sender_.hasReceivers():!1};goog.exportProperty(shaka.cast.CastProxy.prototype,"canCast",shaka.cast.CastProxy.prototype.canCast);shaka.cast.CastProxy.prototype.isCasting=function(){return this.sender_?this.sender_.isCasting():!1};goog.exportProperty(shaka.cast.CastProxy.prototype,"isCasting",shaka.cast.CastProxy.prototype.isCasting);
413
- shaka.cast.CastProxy.prototype.receiverName=function(){return this.sender_?this.sender_.receiverName():""};goog.exportProperty(shaka.cast.CastProxy.prototype,"receiverName",shaka.cast.CastProxy.prototype.receiverName);shaka.cast.CastProxy.prototype.cast=function(){var a=this.getInitState_();return this.sender_.cast(a).then(function(){if(this.localPlayer_)return this.localPlayer_.unload()}.bind(this))};goog.exportProperty(shaka.cast.CastProxy.prototype,"cast",shaka.cast.CastProxy.prototype.cast);
414
- shaka.cast.CastProxy.prototype.setAppData=function(a){this.sender_.setAppData(a)};goog.exportProperty(shaka.cast.CastProxy.prototype,"setAppData",shaka.cast.CastProxy.prototype.setAppData);shaka.cast.CastProxy.prototype.suggestDisconnect=function(){this.sender_.showDisconnectDialog()};goog.exportProperty(shaka.cast.CastProxy.prototype,"suggestDisconnect",shaka.cast.CastProxy.prototype.suggestDisconnect);shaka.cast.CastProxy.prototype.forceDisconnect=function(){this.sender_.forceDisconnect()};
415
- goog.exportProperty(shaka.cast.CastProxy.prototype,"forceDisconnect",shaka.cast.CastProxy.prototype.forceDisconnect);
416
- shaka.cast.CastProxy.prototype.init_=function(){this.sender_.init();this.eventManager_=new shaka.util.EventManager;shaka.cast.CastUtils.VideoEvents.forEach(function(a){this.eventManager_.listen(this.localVideo_,a,this.videoProxyLocalEvent_.bind(this))}.bind(this));shaka.cast.CastUtils.PlayerEvents.forEach(function(a){this.eventManager_.listen(this.localPlayer_,a,this.playerProxyLocalEvent_.bind(this))}.bind(this));this.videoProxy_={};for(var a in this.localVideo_)Object.defineProperty(this.videoProxy_,
421
+ c.id,c=c.error,f=this.asyncCallPromises_[e],delete this.asyncCallPromises_[e],goog.asserts.assert(f,"Unexpected async id"),f)if(c){e=new shaka.util.Error(c.severity,c.category,c.code);for(d in c)e[d]=c[d];f.reject(e)}else f.resolve()}};shaka.cast.CastSender.prototype.sendMessage_=function(a){a=shaka.cast.CastUtils.serialize(a);shaka.cast.CastSender.session_.sendMessage(shaka.cast.CastUtils.SHAKA_MESSAGE_NAMESPACE,a,function(){},shaka.log.error)};shaka.cast.CastProxy=function(a,b,c){var d=this;shaka.util.FakeEventTarget.call(this);this.localVideo_=a;this.localPlayer_=b;this.eventManager_=this.playerEventTarget_=this.videoEventTarget_=this.playerProxy_=this.videoProxy_=null;if(this.receiverAppId_=c)this.sender_=new shaka.cast.CastSender(c,function(){return d.onCastStatusChanged_()},function(){return d.onFirstCastStateUpdate_()},function(a,b){return d.onRemoteEvent_(a,b)},function(){return d.onResumeLocal_()},function(){return d.getInitState_()});
422
+ this.init_()};goog.inherits(shaka.cast.CastProxy,shaka.util.FakeEventTarget);goog.exportSymbol("shaka.cast.CastProxy",shaka.cast.CastProxy);
423
+ shaka.cast.CastProxy.prototype.destroy=function(a){a&&this.sender_&&this.sender_.forceDisconnect();this.eventManager_&&(this.eventManager_.release(),this.eventManager_=null);a=[];this.localPlayer_&&(a.push(this.localPlayer_.destroy()),this.localPlayer_=null);this.sender_&&(a.push(this.sender_.destroy()),this.sender_=null);this.playerProxy_=this.videoProxy_=this.localVideo_=null;return Promise.all(a)};goog.exportProperty(shaka.cast.CastProxy.prototype,"destroy",shaka.cast.CastProxy.prototype.destroy);
424
+ shaka.cast.CastProxy.prototype.getVideo=function(){return this.videoProxy_};goog.exportProperty(shaka.cast.CastProxy.prototype,"getVideo",shaka.cast.CastProxy.prototype.getVideo);shaka.cast.CastProxy.prototype.getPlayer=function(){return this.playerProxy_};goog.exportProperty(shaka.cast.CastProxy.prototype,"getPlayer",shaka.cast.CastProxy.prototype.getPlayer);shaka.cast.CastProxy.prototype.canCast=function(){return this.sender_?this.sender_.apiReady()&&this.sender_.hasReceivers():!1};
425
+ goog.exportProperty(shaka.cast.CastProxy.prototype,"canCast",shaka.cast.CastProxy.prototype.canCast);shaka.cast.CastProxy.prototype.isCasting=function(){return this.sender_?this.sender_.isCasting():!1};goog.exportProperty(shaka.cast.CastProxy.prototype,"isCasting",shaka.cast.CastProxy.prototype.isCasting);shaka.cast.CastProxy.prototype.receiverName=function(){return this.sender_?this.sender_.receiverName():""};goog.exportProperty(shaka.cast.CastProxy.prototype,"receiverName",shaka.cast.CastProxy.prototype.receiverName);
426
+ shaka.cast.CastProxy.prototype.cast=function(){if(!this.sender_)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.CAST,shaka.util.Error.Code.CAST_RECEIVER_APP_ID_MISSING);var a=this.getInitState_();return this.sender_.cast(a).then(function(){if(this.localPlayer_)return this.localPlayer_.unload()}.bind(this))};goog.exportProperty(shaka.cast.CastProxy.prototype,"cast",shaka.cast.CastProxy.prototype.cast);
427
+ shaka.cast.CastProxy.prototype.setAppData=function(a){this.sender_&&this.sender_.setAppData(a)};goog.exportProperty(shaka.cast.CastProxy.prototype,"setAppData",shaka.cast.CastProxy.prototype.setAppData);shaka.cast.CastProxy.prototype.suggestDisconnect=function(){this.sender_&&this.sender_.showDisconnectDialog()};goog.exportProperty(shaka.cast.CastProxy.prototype,"suggestDisconnect",shaka.cast.CastProxy.prototype.suggestDisconnect);
428
+ shaka.cast.CastProxy.prototype.changeReceiverId=function(a){var b=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function d(){return $jscomp.generator.createGenerator(d,function(d){switch(d.nextAddress){case 1:if(a==b.receiverAppId_)return d["return"]();b.receiverAppId_=a;if(!b.sender_){d.jumpTo(2);break}b.sender_.forceDisconnect();return d.yield(b.sender_.destroy(),3);case 3:b.sender_=null;case 2:b.sender_=new shaka.cast.CastSender(a,function(){return b.onCastStatusChanged_()},function(){return b.onFirstCastStateUpdate_()},
429
+ function(a,d){return b.onRemoteEvent_(a,d)},function(){return b.onResumeLocal_()},function(){return b.getInitState_()}),b.sender_.init(),d.jumpToEnd()}})})};goog.exportProperty(shaka.cast.CastProxy.prototype,"changeReceiverId",shaka.cast.CastProxy.prototype.changeReceiverId);shaka.cast.CastProxy.prototype.forceDisconnect=function(){this.sender_&&this.sender_.forceDisconnect()};goog.exportProperty(shaka.cast.CastProxy.prototype,"forceDisconnect",shaka.cast.CastProxy.prototype.forceDisconnect);
430
+ shaka.cast.CastProxy.prototype.init_=function(){this.sender_&&this.sender_.init();this.eventManager_=new shaka.util.EventManager;shaka.cast.CastUtils.VideoEvents.forEach(function(a){this.eventManager_.listen(this.localVideo_,a,this.videoProxyLocalEvent_.bind(this))}.bind(this));shaka.cast.CastUtils.PlayerEvents.forEach(function(a){this.eventManager_.listen(this.localPlayer_,a,this.playerProxyLocalEvent_.bind(this))}.bind(this));this.videoProxy_={};for(var a in this.localVideo_)Object.defineProperty(this.videoProxy_,
417
431
  a,{configurable:!1,enumerable:!0,get:this.videoProxyGet_.bind(this,a),set:this.videoProxySet_.bind(this,a)});this.playerProxy_={};for(var b in this.localPlayer_)Object.defineProperty(this.playerProxy_,b,{configurable:!1,enumerable:!0,get:this.playerProxyGet_.bind(this,b)});this.videoEventTarget_=new shaka.util.FakeEventTarget;this.videoEventTarget_.dispatchTarget=this.videoProxy_;this.playerEventTarget_=new shaka.util.FakeEventTarget;this.playerEventTarget_.dispatchTarget=this.playerProxy_};
418
432
  shaka.cast.CastProxy.prototype.getInitState_=function(){var a={video:{},player:{},playerAfterLoad:{},manifest:this.localPlayer_.getAssetUri(),startTime:null};this.localVideo_.pause();shaka.cast.CastUtils.VideoInitStateAttributes.forEach(function(b){a.video[b]=this.localVideo_[b]}.bind(this));this.localVideo_.ended||(a.startTime=this.localVideo_.currentTime);shaka.cast.CastUtils.PlayerInitState.forEach(function(b){var c=b[1];b=this.localPlayer_[b[0]]();a.player[c]=b}.bind(this));shaka.cast.CastUtils.PlayerInitAfterLoadState.forEach(function(b){var c=
419
433
  b[1];b=this.localPlayer_[b[0]]();a.playerAfterLoad[c]=b}.bind(this));return a};shaka.cast.CastProxy.prototype.onCastStatusChanged_=function(){var a=new shaka.util.FakeEvent("caststatuschanged");this.dispatchEvent(a)};shaka.cast.CastProxy.prototype.onFirstCastStateUpdate_=function(){var a=new shaka.util.FakeEvent(this.videoProxy_.paused?"pause":"play");this.videoEventTarget_.dispatchEvent(a)};
420
- shaka.cast.CastProxy.prototype.onResumeLocal_=function(){var a=this;shaka.cast.CastUtils.PlayerInitState.forEach(function(a){var b=a[1];a=this.sender_.get("player",a[0])();this.localPlayer_[b](a)}.bind(this));var b=this.sender_.get("player","getAssetUri")(),c=this.sender_.get("video","ended"),d=Promise.resolve(),e=this.localVideo_.autoplay,f=null;c||(f=this.sender_.get("video","currentTime"));b&&(this.localVideo_.autoplay=!1,d=this.localPlayer_.load(b,f));var g={};shaka.cast.CastUtils.VideoInitStateAttributes.forEach(function(a){g[a]=
421
- this.sender_.get("video",a)}.bind(this));d.then(function(){a.localVideo_&&(shaka.cast.CastUtils.VideoInitStateAttributes.forEach(function(a){this.localVideo_[a]=g[a]}.bind(a)),shaka.cast.CastUtils.PlayerInitAfterLoadState.forEach(function(a){var b=a[1];a=this.sender_.get("player",a[0])();this.localPlayer_[b](a)}.bind(a)),a.localVideo_.autoplay=e,b&&a.localVideo_.play())},function(b){goog.asserts.assert(b instanceof shaka.util.Error,"Wrong error type!");b=new shaka.util.FakeEvent("error",{detail:b});
422
- a.localPlayer_.dispatchEvent(b)})};
423
- shaka.cast.CastProxy.prototype.videoProxyGet_=function(a){if("addEventListener"==a)return this.videoEventTarget_.addEventListener.bind(this.videoEventTarget_);if("removeEventListener"==a)return this.videoEventTarget_.removeEventListener.bind(this.videoEventTarget_);if(this.sender_.isCasting()&&!this.sender_.hasRemoteProperties()){var b=this.localVideo_[a];if("function"!=typeof b)return b}return this.sender_.isCasting()?this.sender_.get("video",a):(a=this.localVideo_[a],"function"==typeof a&&(a=a.bind(this.localVideo_)),
424
- a)};shaka.cast.CastProxy.prototype.videoProxySet_=function(a,b){this.sender_.isCasting()?this.sender_.set("video",a,b):this.localVideo_[a]=b};shaka.cast.CastProxy.prototype.videoProxyLocalEvent_=function(a){this.sender_.isCasting()||(a=new shaka.util.FakeEvent(a.type,a),this.videoEventTarget_.dispatchEvent(a))};
425
- shaka.cast.CastProxy.prototype.playerProxyGet_=function(a){if("addEventListener"==a)return this.playerEventTarget_.addEventListener.bind(this.playerEventTarget_);if("removeEventListener"==a)return this.playerEventTarget_.removeEventListener.bind(this.playerEventTarget_);if("getMediaElement"==a)return function(){return this.videoProxy_}.bind(this);if("getSharedConfiguration"==a)return shaka.log.warning("Can't share configuration across a network. Returning copy."),this.sender_.get("player","getConfiguration");
426
- if("getNetworkingEngine"==a)return this.sender_.isCasting()&&shaka.log.warning("NOTE: getNetworkingEngine() is always local!"),this.localPlayer_.getNetworkingEngine.bind(this.localPlayer_);if(this.sender_.isCasting()){if("getManifest"==a||"drmInfo"==a)return function(){shaka.log.alwaysWarn(a+"() does not work while casting!");return null};if("getManifestUri"==a)return shaka.Deprecate.deprecateFeature(2,6,"getManifestUri",'Please use "getAssetUri" instead.'),this.playerProxyGet_("getAssetUri");if("attach"==
427
- a||"detach"==a)return function(){shaka.log.alwaysWarn(a+"() does not work while casting!");return Promise.resolve()}}if(this.sender_.isCasting()&&!this.sender_.hasRemoteProperties()&&shaka.cast.CastUtils.PlayerGetterMethods[a]){var b=this.localPlayer_[a];goog.asserts.assert("function"==typeof b,"only methods on Player");return b.bind(this.localPlayer_)}return this.sender_.isCasting()?this.sender_.get("player",a):(b=this.localPlayer_[a],goog.asserts.assert("function"==typeof b,"only methods on Player"),
428
- b.bind(this.localPlayer_))};shaka.cast.CastProxy.prototype.playerProxyLocalEvent_=function(a){this.sender_.isCasting()||this.playerEventTarget_.dispatchEvent(a)};shaka.cast.CastProxy.prototype.onRemoteEvent_=function(a,b){goog.asserts.assert(this.sender_.isCasting(),"Should only receive remote events while casting");this.sender_.isCasting()&&("video"==a?this.videoEventTarget_.dispatchEvent(b):"player"==a&&this.playerEventTarget_.dispatchEvent(b))};shaka.cast.CastReceiver=function(a,b,c,d){var e=this;shaka.util.FakeEventTarget.call(this);this.video_=a;this.player_=b;this.eventManager_=new shaka.util.EventManager;this.targets_={video:a,player:b};this.appDataCallback_=c||function(){};this.contentIdCallback_=d||function(a){return a};this.isConnected_=!1;this.isIdle_=!0;this.updateNumber_=0;this.startUpdatingUpdateNumber_=!1;this.initialStatusUpdatePending_=!0;this.genericBus_=this.shakaBus_=null;this.pollTimer_=new shaka.util.Timer(function(){e.pollAttributes_()});
434
+ shaka.cast.CastProxy.prototype.onResumeLocal_=function(){var a=this;goog.asserts.assert(this.sender_,"Cast sender should not be null!");shaka.cast.CastUtils.PlayerInitState.forEach(function(a){var b=a[1];a=this.sender_.get("player",a[0])();this.localPlayer_[b](a)}.bind(this));var b=this.sender_.get("player","getAssetUri")(),c=this.sender_.get("video","ended"),d=Promise.resolve(),e=this.localVideo_.autoplay,f=null;c||(f=this.sender_.get("video","currentTime"));b&&(this.localVideo_.autoplay=!1,d=this.localPlayer_.load(b,
435
+ f));var g={};shaka.cast.CastUtils.VideoInitStateAttributes.forEach(function(a){g[a]=this.sender_.get("video",a)}.bind(this));d.then(function(){a.localVideo_&&(shaka.cast.CastUtils.VideoInitStateAttributes.forEach(function(a){this.localVideo_[a]=g[a]}.bind(a)),shaka.cast.CastUtils.PlayerInitAfterLoadState.forEach(function(a){var b=a[1];a=this.sender_.get("player",a[0])();this.localPlayer_[b](a)}.bind(a)),a.localVideo_.autoplay=e,b&&a.localVideo_.play())},function(b){goog.asserts.assert(b instanceof
436
+ shaka.util.Error,"Wrong error type!");b=new shaka.util.FakeEvent("error",{detail:b});a.localPlayer_.dispatchEvent(b)})};
437
+ shaka.cast.CastProxy.prototype.videoProxyGet_=function(a){if("addEventListener"==a)return this.videoEventTarget_.addEventListener.bind(this.videoEventTarget_);if("removeEventListener"==a)return this.videoEventTarget_.removeEventListener.bind(this.videoEventTarget_);if(this.sender_&&this.sender_.isCasting()&&!this.sender_.hasRemoteProperties()){var b=this.localVideo_[a];if("function"!=typeof b)return b}return this.sender_&&this.sender_.isCasting()?this.sender_.get("video",a):(a=this.localVideo_[a],
438
+ "function"==typeof a&&(a=a.bind(this.localVideo_)),a)};shaka.cast.CastProxy.prototype.videoProxySet_=function(a,b){this.sender_&&this.sender_.isCasting()?this.sender_.set("video",a,b):this.localVideo_[a]=b};shaka.cast.CastProxy.prototype.videoProxyLocalEvent_=function(a){this.sender_&&this.sender_.isCasting()||(a=new shaka.util.FakeEvent(a.type,a),this.videoEventTarget_.dispatchEvent(a))};
439
+ shaka.cast.CastProxy.prototype.playerProxyGet_=function(a){if("addEventListener"==a)return this.playerEventTarget_.addEventListener.bind(this.playerEventTarget_);if("removeEventListener"==a)return this.playerEventTarget_.removeEventListener.bind(this.playerEventTarget_);if("getMediaElement"==a)return function(){return this.videoProxy_}.bind(this);if("getSharedConfiguration"==a)return shaka.log.warning("Can't share configuration across a network. Returning copy."),this.sender_?this.sender_.get("player",
440
+ "getConfiguration"):this.localPlayer_.getConfiguration();if("getNetworkingEngine"==a)return this.sender_&&this.sender_.isCasting()&&shaka.log.warning("NOTE: getNetworkingEngine() is always local!"),this.localPlayer_.getNetworkingEngine.bind(this.localPlayer_);if(this.sender_&&this.sender_.isCasting()){if("getManifest"==a||"drmInfo"==a)return function(){shaka.log.alwaysWarn(a+"() does not work while casting!");return null};if("getManifestUri"==a)return shaka.Deprecate.deprecateFeature(2,6,"getManifestUri",
441
+ 'Please use "getAssetUri" instead.'),this.playerProxyGet_("getAssetUri");if("attach"==a||"detach"==a)return function(){shaka.log.alwaysWarn(a+"() does not work while casting!");return Promise.resolve()}}if(this.sender_&&this.sender_.isCasting()&&!this.sender_.hasRemoteProperties()&&shaka.cast.CastUtils.PlayerGetterMethods[a]){var b=this.localPlayer_[a];goog.asserts.assert("function"==typeof b,"only methods on Player");return b.bind(this.localPlayer_)}return this.sender_&&this.sender_.isCasting()?
442
+ this.sender_.get("player",a):(b=this.localPlayer_[a],goog.asserts.assert("function"==typeof b,"only methods on Player"),b.bind(this.localPlayer_))};shaka.cast.CastProxy.prototype.playerProxyLocalEvent_=function(a){this.sender_&&this.sender_.isCasting()||this.playerEventTarget_.dispatchEvent(a)};
443
+ shaka.cast.CastProxy.prototype.onRemoteEvent_=function(a,b){goog.asserts.assert(this.sender_&&this.sender_.isCasting(),"Should only receive remote events while casting");this.sender_.isCasting()&&("video"==a?this.videoEventTarget_.dispatchEvent(b):"player"==a&&this.playerEventTarget_.dispatchEvent(b))};shaka.cast.CastReceiver=function(a,b,c,d){var e=this;shaka.util.FakeEventTarget.call(this);this.video_=a;this.player_=b;this.eventManager_=new shaka.util.EventManager;this.targets_={video:a,player:b};this.appDataCallback_=c||function(){};this.contentIdCallback_=d||function(a){return a};this.isConnected_=!1;this.isIdle_=!0;this.updateNumber_=0;this.startUpdatingUpdateNumber_=!1;this.initialStatusUpdatePending_=!0;this.genericBus_=this.shakaBus_=null;this.pollTimer_=new shaka.util.Timer(function(){e.pollAttributes_()});
429
444
  this.init_()};goog.inherits(shaka.cast.CastReceiver,shaka.util.FakeEventTarget);goog.exportSymbol("shaka.cast.CastReceiver",shaka.cast.CastReceiver);shaka.cast.CastReceiver.prototype.isConnected=function(){return this.isConnected_};goog.exportProperty(shaka.cast.CastReceiver.prototype,"isConnected",shaka.cast.CastReceiver.prototype.isConnected);shaka.cast.CastReceiver.prototype.isIdle=function(){return this.isIdle_};goog.exportProperty(shaka.cast.CastReceiver.prototype,"isIdle",shaka.cast.CastReceiver.prototype.isIdle);
430
445
  shaka.cast.CastReceiver.prototype.destroy=function(){var a=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function c(){var d,e;return $jscomp.generator.createGenerator(c,function(c){switch(c.nextAddress){case 1:return a.eventManager_&&(a.eventManager_.release(),a.eventManager_=null),d=[],a.player_&&(d.push(a.player_.destroy()),a.player_=null),a.pollTimer_&&(a.pollTimer_.stop(),a.pollTimer_=null),a.video_=null,a.targets_=null,a.appDataCallback_=null,a.isConnected_=!1,a.isIdle_=!0,a.shakaBus_=
431
446
  null,a.genericBus_=null,c.yield(Promise.all(d),2);case 2:e=cast.receiver.CastReceiverManager.getInstance(),e.stop(),c.jumpToEnd()}})})};goog.exportProperty(shaka.cast.CastReceiver.prototype,"destroy",shaka.cast.CastReceiver.prototype.destroy);
@@ -445,10 +460,30 @@ if("volume"==d){e.setSystemVolumeLevel(b);break}else if("muted"==d){e.setSystemV
445
460
  a,e,null),this.sendAsyncComplete_.bind(this,a,e))}};
446
461
  shaka.cast.CastReceiver.prototype.onGenericMessage_=function(a){var b=shaka.cast.CastUtils.deserialize(a.data);shaka.log.debug("CastReceiver: message",b);switch(b.type){case "PLAY":this.video_.play();this.sendMediaStatus_(0);break;case "PAUSE":this.video_.pause();this.sendMediaStatus_(0);break;case "SEEK":a=b.currentTime;var c=b.resumeState;null!=a&&(this.video_.currentTime=Number(a));c&&"PLAYBACK_START"==c?(this.video_.play(),this.sendMediaStatus_(0)):c&&"PLAYBACK_PAUSE"==c&&(this.video_.pause(),
447
462
  this.sendMediaStatus_(0));break;case "STOP":this.player_.unload().then(function(){this.player_&&this.sendMediaStatus_(0)}.bind(this));break;case "GET_STATUS":this.sendMediaStatus_(Number(b.requestId));break;case "VOLUME":c=b.volume;a=c.level;c=c.muted;var d=this.video_.volume,e=this.video_.muted;null!=a&&(this.video_.volume=Number(a));null!=c&&(this.video_.muted=c);d==this.video_.volume&&e==this.video_.muted||this.sendMediaStatus_(0);break;case "LOAD":this.updateNumber_=0;this.initialStatusUpdatePending_=
448
- this.startUpdatingUpdateNumber_=!1;a=b.currentTime;c=this.contentIdCallback_(b.media.contentId);this.video_.autoplay=!0;this.player_.load(c,a).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));break;default:shaka.log.warning("Unrecognized message type from the generic Chromecast controller!",
449
- 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)};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))};
450
- 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};
451
- 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})};
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));
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)};
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};
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})};
452
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};
453
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)};
454
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};
@@ -464,8 +499,9 @@ shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_NO_COMMON_KEY_SYST
464
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};
465
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:""};
466
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):""};
467
- 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"),
468
- 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);
469
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};
470
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,
471
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";
@@ -488,24 +524,7 @@ goog.exportProperty(shaka.media.InitSegmentReference.prototype,"getStartByte",sh
488
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};
489
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);
490
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};
491
- 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};
492
- 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);
493
- 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_()}};
494
- 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);
495
- 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);
496
- 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,
497
- 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)};
498
- 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);
499
- 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};
500
- 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)};
501
- 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);
502
- 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);
503
- 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);
504
- 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=
505
- 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);
506
- 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);
507
- 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};
508
- 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);};
509
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=
510
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},
511
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);
@@ -604,10 +623,10 @@ shaka.dash.DashParser.prototype.update=function(){this.requestManifest_()["catch
604
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=
605
624
  (Date.now()-e)/1E3;a.averageUpdateDuration_.sample(1,b);return b})};
606
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)})};
607
- 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);
608
- n=shaka.util.ManifestParserUtils.resolveUris(h,m);(p=c.config_.dash.ignoreMinBufferTime)||(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:
609
- (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)&&
610
- (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()}})})};
611
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-
612
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",
613
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}};
@@ -617,11 +636,12 @@ a.streams[0],c=a.trickModeFor;h.forEach(function(a){a.id==c&&a.streams.forEach(f
617
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})};
618
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||
619
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)};
620
- 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"==
621
- 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"==
622
- 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);
623
- 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=
624
- 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}};
625
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);
626
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<=
627
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,
@@ -655,7 +675,7 @@ f.splice(g,f.length-g);d=this.parseSegments_(b,d,c);return new shaka.hls.Playlis
655
675
  shaka.hls.ManifestTextParser.prototype.parseSegments_=function(a,b,c){var d=this,e=[],f=[];b.forEach(function(b){if(/^(#EXT)/.test(b))b=d.parseTag_(b),shaka.hls.ManifestTextParser.MEDIA_PLAYLIST_TAGS.includes(b.name)?c.push(b):f.push(b);else{if(shaka.hls.Utils.isComment(b))return[];b=b.trim();b=shaka.hls.Utils.constructAbsoluteUri(a,b);b=new shaka.hls.Segment(b,f);e.push(b);f=[]}});return e};
656
676
  shaka.hls.ManifestTextParser.prototype.parseTag_=function(a){return shaka.hls.ManifestTextParser.parseTag(this.globalId_++,a)};
657
677
  shaka.hls.ManifestTextParser.parseTag=function(a,b){var c=b.match(/^#(EXT[^:]*)(?::(.*))?$/);if(!c)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.INVALID_HLS_TAG,b);var d=c[1],e=c[2];c=[];var f;if(e){e=new shaka.util.TextParser(e);var g,h=e.readRegex(/^([^,=]+)(?:,|$)/g);h&&(f=h[1]);for(h=/([^=]+)=(?:"([^"]*)"|([^",]*))(?:,|$)/g;g=e.readRegex(h);)g=new shaka.hls.Attribute(g[1],g[2]||g[3]),c.push(g)}return new shaka.hls.Tag(a,
658
- d,c,f)};shaka.hls.ManifestTextParser.MEDIA_PLAYLIST_TAGS="EXT-X-TARGETDURATION EXT-X-MEDIA-SEQUENCE EXT-X-DISCONTINUITY-SEQUENCE EXT-X-PLAYLIST-TYPE EXT-X-MAP EXT-X-I-FRAMES-ONLY EXT-X-ENDLIST".split(" ");shaka.hls.ManifestTextParser.SEGMENT_TAGS="EXTINF EXT-X-BYTERANGE EXT-X-DISCONTINUITY EXT-X-PROGRAM-DATE-TIME EXT-X-KEY EXT-X-DATERANGE".split(" ");shaka.net.DataUriPlugin=function(a,b,c){try{var d=shaka.net.DataUriPlugin.parse(a);return shaka.util.AbortableOperation.completed({uri:a,data:d.data,headers:{"content-type":d.contentType}})}catch(e){return shaka.util.AbortableOperation.failed(e)}};goog.exportSymbol("shaka.net.DataUriPlugin",shaka.net.DataUriPlugin);
678
+ d,c,f)};shaka.hls.ManifestTextParser.MEDIA_PLAYLIST_TAGS="EXT-X-TARGETDURATION EXT-X-MEDIA-SEQUENCE EXT-X-DISCONTINUITY-SEQUENCE EXT-X-PLAYLIST-TYPE EXT-X-MAP EXT-X-I-FRAMES-ONLY EXT-X-ENDLIST".split(" ");shaka.hls.ManifestTextParser.SEGMENT_TAGS="EXTINF EXT-X-BYTERANGE EXT-X-DISCONTINUITY EXT-X-PROGRAM-DATE-TIME EXT-X-KEY EXT-X-DATERANGE".split(" ");shaka.net.DataUriPlugin=function(a,b,c,d){try{var e=shaka.net.DataUriPlugin.parse(a);return shaka.util.AbortableOperation.completed({uri:a,originalUri:a,data:e.data,headers:{"content-type":e.contentType}})}catch(f){return shaka.util.AbortableOperation.failed(f)}};goog.exportSymbol("shaka.net.DataUriPlugin",shaka.net.DataUriPlugin);
659
679
  shaka.net.DataUriPlugin.parse=function(a){var b=a.split(":");if(2>b.length||"data"!=b[0])throw shaka.log.error("Bad data URI, failed to parse scheme"),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.MALFORMED_DATA_URI,a);b=b.slice(1).join(":").split(",");if(2>b.length)throw shaka.log.error("Bad data URI, failed to extract encoding and MIME type"),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.NETWORK,
660
680
  shaka.util.Error.Code.MALFORMED_DATA_URI,a);var c=b[0];b=window.decodeURIComponent(b.slice(1).join(","));c=c.split(";");var d=null;1<c.length&&(d=c[1]);if("base64"==d)a=shaka.util.Uint8ArrayUtils.fromBase64(b).buffer;else{if(d)throw shaka.log.error("Bad data URI, unknown encoding"),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.UNKNOWN_DATA_URI_ENCODING,a);a=shaka.util.StringUtils.toUTF8(b)}return{data:a,contentType:c[0]}};
661
681
  shaka.net.NetworkingEngine.registerScheme("data",shaka.net.DataUriPlugin);shaka.hls.HlsParser=function(){var a=this;this.config_=this.playerInterface_=null;this.globalId_=1;this.mediaTagsToStreamInfosMap_=new Map;this.variantUriSet_=new Set;this.uriToStreamInfosMap_=new Map;this.presentationTimeline_=null;this.masterPlaylistUri_="";this.manifestTextParser_=new shaka.hls.ManifestTextParser;this.updatePlaylistDelay_=0;this.updatePlaylistTimer_=new shaka.util.Timer(function(){a.onUpdate_()});this.presentationType_=shaka.hls.HlsParser.PresentationType_.VOD;this.manifest_=null;
@@ -669,18 +689,19 @@ shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_INVALID_PLAYLIST_HI
669
689
  d.jumpToEnd()}})})};shaka.hls.HlsParser.prototype.onExpirationUpdated=function(a,b){};
670
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,
671
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,
672
- 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);
673
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",
674
- 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=
675
695
  g,u.segmentIndex.offset(-g),u.segmentIndex.fit(l);b.manifest_={presentationTimeline:b.presentationTimeline_,periods:[f],offlineSessionIds:[],minBufferTime:0};d.jumpToEnd()}})})};
676
- 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,
677
- 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})}})})};
678
- 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*/));
679
- 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");
680
- 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,
681
- 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!"),
682
- 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===
683
- 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(",")})};
684
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?
685
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};
686
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}};
@@ -688,16 +709,16 @@ shaka.hls.HlsParser.prototype.createTextStream_=function(a,b){var c=this;return
688
709
  []),2);case 2:return g=e.yieldResult,goog.asserts.assert(g,"Should always have a streamInfo for text"),e["return"](g.stream)}})})};
689
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,
690
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)}};
691
- 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,
692
- "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));
693
- 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)};
694
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));
695
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)}})})};
696
- 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,
697
- 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,
698
- "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,
699
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),
700
- 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})}})})};
701
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,
702
723
  this.maxTargetDuration_),this.minTargetDuration_=Math.min(a,this.minTargetDuration_))};
703
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!")};
@@ -705,16 +726,17 @@ shaka.hls.HlsParser.prototype.createInitSegmentReference_=function(a){var b=shak
705
726
  c=Number(a[0]),a=Number(a[1]),b=a+c-1;return new shaka.media.InitSegmentReference(function(){return[e]},a,b)};
706
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)};
707
728
  shaka.hls.HlsParser.prototype.notifySegments_=function(){var a=this;this.presentationTimeline_&&(this.segmentsToNotifyByStream_.forEach(function(b){a.presentationTimeline_.notifySegments(b,0)}),this.segmentsToNotifyByStream_=[])};
708
- 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",
709
- 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)}})})};
710
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,
711
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=
712
733
  d.yieldResult,d["return"](l)}})})};
713
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"==
714
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));
715
- 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);}})})};
716
- 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,
717
- 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);
718
740
  return e};
719
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)),
720
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_};
@@ -757,14 +779,15 @@ else if(0!=d||this.hadSegmentAppended_){var e=c.start(d),f=this.timeline_.getSee
757
779
  e):shaka.log.info("Jumping forward",f,"seconds because of gap starting at",c.end(d-1),"and ending at",e),this.video_.currentTime=e}}}}}};shaka.media.IPlayheadObserver=function(){};shaka.media.IPlayheadObserver.prototype.poll=function(a,b){};shaka.media.PlayheadObserverManager=function(a){var b=this;this.mediaElement_=a;this.observers_=new Set;this.pollingLoop_=(new shaka.util.Timer(function(){b.pollAllObservers_(!1)})).tickEvery(.25)};shaka.media.PlayheadObserverManager.prototype.release=function(){this.pollingLoop_.stop();for(var a=$jscomp.makeIterator(this.observers_),b=a.next();!b.done;b=a.next())b.value.release();this.observers_.clear()};
758
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};
759
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_()};
760
- 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_();0<=a?this.applyRate_(a):(this.timer_.tickEvery(this.pollRate_),this.applyRate_(0))};
761
- 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};
762
- 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)})};
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)};
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)})};
763
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))};
764
- 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_()})};
765
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)};
766
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(){};
767
- 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()};
768
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(){};
769
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)};
770
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)};
@@ -787,22 +810,22 @@ shaka.media.StreamingEngine.prototype.start=function(){var a=this;return $jscomp
787
810
  f.variant.audio:null,f.variant?f.variant.video:null,f.text,d),2):(shaka.log.error("init: no Streams chosen"),c["return"](new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STREAMING,shaka.util.Error.Code.INVALID_STREAMS_CHOSEN)));case 2:if(a.destroyed_)return c["return"]();shaka.log.debug("init: completed initial Stream setup");a.playerInterface_&&a.playerInterface_.onInitialStreamsSetup&&(shaka.log.v1("init: calling onInitialStreamsSetup()..."),a.playerInterface_.onInitialStreamsSetup());
788
811
  c.jumpToEnd()}})})};shaka.media.StreamingEngine.prototype.getBufferingPeriod=function(){var a=shaka.util.ManifestParserUtils.ContentType,b=this.mediaStates_.get(a.VIDEO);return b?this.manifest_.periods[b.needPeriodIndex]:(a=this.mediaStates_.get(a.AUDIO))?this.manifest_.periods[a.needPeriodIndex]:null};shaka.media.StreamingEngine.prototype.getBufferingAudio=function(){return this.getStream_(shaka.util.ManifestParserUtils.ContentType.AUDIO)};
789
812
  shaka.media.StreamingEngine.prototype.getBufferingVideo=function(){return this.getStream_(shaka.util.ManifestParserUtils.ContentType.VIDEO)};shaka.media.StreamingEngine.prototype.getBufferingText=function(){return this.getStream_(shaka.util.ManifestParserUtils.ContentType.TEXT)};shaka.media.StreamingEngine.prototype.getStream_=function(a){return(a=this.mediaStates_.get(a))?a.restoreStreamAfterTrickPlay||a.stream:null};
790
- shaka.media.StreamingEngine.prototype.loadNewTextStream=function(a){var b=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function d(){var e,f,g,h,k,l,m,n;return $jscomp.generator.createGenerator(d,function(d){switch(d.nextAddress){case 1:return e=shaka.util.ManifestParserUtils.ContentType,d.yield(b.playerInterface_.mediaSourceEngine.clear(e.TEXT),2);case 2:return b.textStreamSequenceId_++,b.unloadingTextStream_=!1,f=b.textStreamSequenceId_,g=b.playerInterface_.mediaSourceEngine,h=new Map,
791
- k=new Set,h.set(e.TEXT,a),k.add(a),d.yield(g.init(h,!1),3);case 3:return b.destroyed_?d["return"]():d.yield(b.setupStreams_(k),4);case 4:if(b.destroyed_)return d["return"]();b.textStreamSequenceId_!=f||b.mediaStates_.has(e.TEXT)||b.unloadingTextStream_||(l=b.playerInterface_.getPresentationTime(),m=b.findPeriodForTime_(l),n=b.createMediaState_(a,m,0),b.mediaStates_.set(e.TEXT,n),b.scheduleUpdate_(n,0));d.jumpToEnd()}})})};
792
- shaka.media.StreamingEngine.prototype.unloadTextStream=function(){var a=shaka.util.ManifestParserUtils.ContentType;this.unloadingTextStream_=!0;var b=this.mediaStates_.get(a.TEXT);b&&(this.cancelUpdate_(b),this.mediaStates_["delete"](a.TEXT))};
813
+ shaka.media.StreamingEngine.prototype.loadNewTextStream=function(a){var b=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function d(){var e,f,g,h,k,l,m,n,p,q;return $jscomp.generator.createGenerator(d,function(d){switch(d.nextAddress){case 1:return e=shaka.util.ManifestParserUtils.ContentType,d.yield(b.playerInterface_.mediaSourceEngine.clear(e.TEXT),2);case 2:return b.textStreamSequenceId_++,b.unloadingTextStream_=!1,f=b.textStreamSequenceId_,g=b.playerInterface_.mediaSourceEngine,h=new Map,
814
+ k=new Set,h.set(e.TEXT,a),k.add(a),d.yield(g.init(h,!1),3);case 3:return b.destroyed_?d["return"]():d.yield(b.setupStreams_(k),4);case 4:if(b.destroyed_)return d["return"]();m=(l=b.playerInterface_.mediaSourceEngine.getTextDisplayer().isTextVisible())||b.config_.alwaysStreamText;b.textStreamSequenceId_!=f||b.mediaStates_.has(e.TEXT)||b.unloadingTextStream_||!m||(n=b.playerInterface_.getPresentationTime(),p=b.findPeriodForTime_(n),q=b.createMediaState_(a,p,0),b.mediaStates_.set(e.TEXT,q),b.scheduleUpdate_(q,
815
+ 0));d.jumpToEnd()}})})};shaka.media.StreamingEngine.prototype.unloadTextStream=function(){var a=shaka.util.ManifestParserUtils.ContentType;this.unloadingTextStream_=!0;var b=this.mediaStates_.get(a.TEXT);b&&(this.cancelUpdate_(b),this.mediaStates_["delete"](a.TEXT))};
793
816
  shaka.media.StreamingEngine.prototype.setTrickPlay=function(a){var b=this.mediaStates_.get(shaka.util.ManifestParserUtils.ContentType.VIDEO);if(b){var c=b.stream;if(c)if(shaka.log.debug("setTrickPlay",a),a)(a=c.trickModeVideo)&&!b.restoreStreamAfterTrickPlay&&(shaka.log.debug("Engaging trick mode stream",a),this.switchInternal_(a,!1,0,!1),b.restoreStreamAfterTrickPlay=c);else if(c=b.restoreStreamAfterTrickPlay)shaka.log.debug("Restoring non-trick-mode stream",c),b.restoreStreamAfterTrickPlay=null,
794
817
  this.switchInternal_(c,!0,0,!1)}};shaka.media.StreamingEngine.prototype.switchVariant=function(a,b,c){a.video&&this.switchInternal_(a.video,b,c,!1);a.audio&&this.switchInternal_(a.audio,b,c,!1)};shaka.media.StreamingEngine.prototype.switchTextStream=function(a){var b=shaka.util.ManifestParserUtils.ContentType;goog.asserts.assert(a&&a.type==b.TEXT,"Wrong stream type passed to switchTextStream!");this.switchInternal_(a,!0,0,!1)};
795
818
  shaka.media.StreamingEngine.prototype.reloadTextStream=function(){var a=this.mediaStates_.get(shaka.util.ManifestParserUtils.ContentType.TEXT);a&&this.switchInternal_(a.stream,!0,0,!0)};
796
- shaka.media.StreamingEngine.prototype.switchInternal_=function(a,b,c,d){var e=this,f=shaka.util.ManifestParserUtils.ContentType,g=this.mediaStates_.get(a.type);if(!g&&a.type==f.TEXT&&this.config_.ignoreTextStreamFailures)this.loadNewTextStream(a);else if(goog.asserts.assert(g,"switch: expected mediaState to exist"),g){var h=this.findPeriodContainingStream_(a);if(b&&h!=g.needPeriodIndex)shaka.log.debug("switch: switching to stream in another Period; clearing buffer and changing Periods"),this.mediaStates_.forEach(function(a){e.forceClearBuffer_(a)});
797
- else{g.restoreStreamAfterTrickPlay&&(shaka.log.debug("switch during trick play mode",a),a.trickModeVideo?(g.restoreStreamAfterTrickPlay=a,a=a.trickModeVideo,shaka.log.debug("switch found trick play stream",a)):(g.restoreStreamAfterTrickPlay=null,shaka.log.debug("switch found no special trick play stream")));var k=this.canSwitchPeriod_[h];goog.asserts.assert(k&&k.resolved,"switch: expected Period "+h+" to be ready");k&&k.resolved&&(k=this.canSwitchStream_.get(a.id),goog.asserts.assert(k&&k.resolved,
798
- "switch: expected Stream "+a.id+" to be ready"),k&&k.resolved&&(g.stream!=a||d?(a.type==f.TEXT&&(d=shaka.util.MimeUtils.getFullType(a.mimeType,a.codecs),this.playerInterface_.mediaSourceEngine.reinitText(d)),g.stream=a,g.needInitSegment=!0,a=shaka.media.StreamingEngine.logPrefix_(g),shaka.log.debug("switch: switching to Stream "+a),this.shouldAbortCurrentRequest_(g,h)&&(shaka.log.info("Aborting current segment request to switch."),g.operation.abort()),b&&(g.clearingBuffer?g.waitingToFlushBuffer=!0:
799
- g.performingUpdate?(g.waitingToClearBuffer=!0,g.clearBufferSafeMargin=c,g.waitingToFlushBuffer=!0):(this.cancelUpdate_(g),this.clearBuffer_(g,!0,c)))):(b=shaka.media.StreamingEngine.logPrefix_(g),shaka.log.debug("switch: Stream "+b+" already active"))))}}};
819
+ shaka.media.StreamingEngine.prototype.switchInternal_=function(a,b,c,d){var e=this,f=shaka.util.ManifestParserUtils.ContentType,g=this.mediaStates_.get(a.type);if(!g&&a.type==f.TEXT&&this.config_.ignoreTextStreamFailures)this.loadNewTextStream(a);else if(goog.asserts.assert(g,"switch: expected mediaState to exist"),g){var h=this.findPeriodContainingStream_(a),k=Array.from(this.mediaStates_.values()).every(function(a){return a.needPeriodIndex==g.needPeriodIndex});b&&h!=g.needPeriodIndex&&k?(shaka.log.debug("switch: switching to stream in another Period; clearing buffer and changing Periods"),
820
+ this.mediaStates_.forEach(function(a){e.forceClearBuffer_(a)})):(g.restoreStreamAfterTrickPlay&&(shaka.log.debug("switch during trick play mode",a),a.trickModeVideo?(g.restoreStreamAfterTrickPlay=a,a=a.trickModeVideo,shaka.log.debug("switch found trick play stream",a)):(g.restoreStreamAfterTrickPlay=null,shaka.log.debug("switch found no special trick play stream"))),k=this.canSwitchPeriod_[h],goog.asserts.assert(k&&k.resolved,"switch: expected Period "+h+" to be ready"),k&&k.resolved&&(k=this.canSwitchStream_.get(a.id),
821
+ goog.asserts.assert(k&&k.resolved,"switch: expected Stream "+a.id+" to be ready"),k&&k.resolved&&(g.stream!=a||d?(a.type==f.TEXT&&(d=shaka.util.MimeUtils.getFullType(a.mimeType,a.codecs),this.playerInterface_.mediaSourceEngine.reinitText(d)),g.stream=a,g.needInitSegment=!0,a=shaka.media.StreamingEngine.logPrefix_(g),shaka.log.debug("switch: switching to Stream "+a),this.shouldAbortCurrentRequest_(g,h)&&(shaka.log.info("Aborting current segment request to switch."),g.operation.abort()),b&&(g.clearingBuffer?
822
+ g.waitingToFlushBuffer=!0:g.performingUpdate?(g.waitingToClearBuffer=!0,g.clearBufferSafeMargin=c,g.waitingToFlushBuffer=!0):(this.cancelUpdate_(g),this.clearBuffer_(g,!0,c)["catch"](function(a){if(e.playerInterface_)e.playerInterface_.onError(a)})))):(b=shaka.media.StreamingEngine.logPrefix_(g),shaka.log.debug("switch: Stream "+b+" already active")))))}};
800
823
  shaka.media.StreamingEngine.prototype.shouldAbortCurrentRequest_=function(a,b){if(!a.operation)return!1;var c=this.playerInterface_.getPresentationTime(),d=this.playerInterface_.mediaSourceEngine.bufferEnd(a.type),e=this.getSegmentReferenceNeeded_(a,c,d,b);e=e?e.getSize():null;if(null==e)return!1;var f=a.stream.initSegmentReference;f&&(e+=f.getSize()||0);f=this.playerInterface_.getBandwidthEstimate();return 8*e/f<d-c-Math.max(this.manifest_.minBufferTime||0,this.config_.rebufferingGoal)||a.operation.getBytesRemaining()>
801
824
  e?!0:!1};
802
825
  shaka.media.StreamingEngine.prototype.seeked=function(){var a=this,b=shaka.util.Iterables,c=this.playerInterface_.getPresentationTime(),d=this.config_.smallGapLimit,e=function(b){return a.playerInterface_.mediaSourceEngine.isBuffered(b,c,d)},f=!1,g=this.findPeriodForTime_(c);if(b.every(this.mediaStates_.values(),function(a){return a.needPeriodIndex==g})){b=$jscomp.makeIterator(this.mediaStates_.keys());for(var h=b.next();!h.done;h=b.next())h=h.value,e(h)||(this.forceClearBuffer_(this.mediaStates_.get(h)),f=
803
826
  !0)}else b.every(this.mediaStates_.keys(),e)||(shaka.log.debug("(all): seeked: unbuffered seek: clearing all buffers"),this.mediaStates_.forEach(function(b){a.forceClearBuffer_(b)}),f=!0);f||shaka.log.debug("(all): seeked: buffered seek: presentationTime="+c)};
804
- shaka.media.StreamingEngine.prototype.forceClearBuffer_=function(a){var b=shaka.media.StreamingEngine.logPrefix_(a);a.clearingBuffer?shaka.log.debug(b,"clear: already clearing the buffer"):a.waitingToClearBuffer?shaka.log.debug(b,"clear: already waiting"):a.performingUpdate?(shaka.log.debug(b,"clear: currently updating"),a.waitingToClearBuffer=!0,a.clearBufferSafeMargin=0):null==this.playerInterface_.mediaSourceEngine.bufferStart(a.type)?(shaka.log.debug(b,"clear: nothing buffered"),null==a.updateTimer&&
805
- this.scheduleUpdate_(a,0)):(shaka.log.debug(b,"clear: handling right now"),this.cancelUpdate_(a),this.clearBuffer_(a,!1,0))};
827
+ shaka.media.StreamingEngine.prototype.forceClearBuffer_=function(a){var b=this,c=shaka.media.StreamingEngine.logPrefix_(a);a.clearingBuffer?shaka.log.debug(c,"clear: already clearing the buffer"):a.waitingToClearBuffer?shaka.log.debug(c,"clear: already waiting"):a.performingUpdate?(shaka.log.debug(c,"clear: currently updating"),a.waitingToClearBuffer=!0,a.clearBufferSafeMargin=0):null==this.playerInterface_.mediaSourceEngine.bufferStart(a.type)?(shaka.log.debug(c,"clear: nothing buffered"),null==
828
+ a.updateTimer&&this.scheduleUpdate_(a,0)):(shaka.log.debug(c,"clear: handling right now"),this.cancelUpdate_(a),this.clearBuffer_(a,!1,0)["catch"](function(a){if(b.playerInterface_)b.playerInterface_.onError(a)}))};
806
829
  shaka.media.StreamingEngine.prototype.initStreams_=function(a,b,c,d){var e=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function g(){var h,k,l,m,n,p,q;return $jscomp.generator.createGenerator(g,function(g){switch(g.nextAddress){case 1:return goog.asserts.assert(e.config_,"StreamingEngine configure() must be called before init()!"),h=e.playerInterface_.getPresentationTime(),k=e.findPeriodForTime_(h),l=shaka.util.ManifestParserUtils.ContentType,m=new Map,n=new Set,a&&(m.set(l.AUDIO,a),n.add(a)),
807
830
  b&&(m.set(l.VIDEO,b),n.add(b)),c&&(m.set(l.TEXT,c),n.add(c)),p=e.playerInterface_.mediaSourceEngine,q=e.config_.forceTransmuxTS,g.yield(p.init(m,q),2);case 2:if(e.destroyed_)return g["return"]();e.setDuration_();return g.yield(e.setupStreams_(n),3);case 3:if(e.destroyed_)return g["return"]();m.forEach(function(a,b){if(!e.mediaStates_.has(b)){var c=e.createMediaState_(a,k,d);e.mediaStates_.set(b,c);e.scheduleUpdate_(c,0)}});g.jumpToEnd()}})})};
808
831
  shaka.media.StreamingEngine.prototype.createMediaState_=function(a,b,c){return{stream:a,type:a.type,lastStream:null,lastSegmentReference:null,restoreStreamAfterTrickPlay:null,needInitSegment:!0,needPeriodIndex:b,endOfStream:!1,performingUpdate:!1,updateTimer:null,waitingToClearBuffer:!1,clearBufferSafeMargin:0,waitingToFlushBuffer:!1,clearingBuffer:!1,recovering:!1,hasError:!1,resumeAt:c||0,operation:null}};
@@ -814,12 +837,11 @@ shaka.media.StreamingEngine.prototype.setupStreams_=function(a){var b=this;retur
814
837
  $jscomp.makeIterator(a);for(q=n.next();!q.done;q=n.next())l=q.value,m=b.canSwitchStream_.get(l.id),m.resolved||(m.promise.resolve(),m.resolved=!0,shaka.log.v1("(all) setup Stream "+l.id));d.jumpToEnd()}})})};shaka.media.StreamingEngine.prototype.setDuration_=function(){var a=this.manifest_.presentationTimeline.getDuration();Infinity>a?this.playerInterface_.mediaSourceEngine.setDuration(a):this.playerInterface_.mediaSourceEngine.setDuration(Math.pow(2,32))};
815
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,
816
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();
817
- a<this.manifest_.presentationTimeline.getDuration()&&this.manifest_.presentationTimeline.setDuration(a)}}.bind(this)))}}};
818
- 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(),
819
- 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"),
820
- 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;
821
- 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};
822
- 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};
840
+ 0!=a&&a<this.manifest_.presentationTimeline.getDuration()&&this.manifest_.presentationTimeline.setDuration(a)}}.bind(this)))}}};
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};
823
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),
824
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)};
825
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};
@@ -844,26 +866,30 @@ shaka.media.StreamingEngine.prototype.evict_=function(a,b){var c=shaka.media.Str
844
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);
845
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()..."),
846
868
  this.playerInterface_.onStartupComplete())}}};
847
- 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==
848
- 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);
849
- 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=
850
- 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,
851
- (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 "+
852
- 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};
853
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);
854
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})};
855
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,
856
879
  "clearing buffer"),c?(k=d.playerInterface_.getPresentationTime(),l=d.playerInterface_.mediaSourceEngine.getDuration(),h=d.playerInterface_.mediaSourceEngine.remove(a.type,k+c,l)):h=d.playerInterface_.mediaSourceEngine.clear(a.type).then(function(){if(!this.destroyed_&&b)return this.playerInterface_.mediaSourceEngine.flush(a.type)}.bind(d)),f.yield(h,2);case 2:if(d.destroyed_)return f["return"]();shaka.log.debug(g,"cleared buffer");a.lastStream=null;a.lastSegmentReference=null;a.clearingBuffer=!1;
857
- a.endOfStream=!1;d.scheduleUpdate_(a,0);f.jumpToEnd()}})})};shaka.media.StreamingEngine.prototype.scheduleUpdate_=function(a,b){var c=this,d=shaka.media.StreamingEngine.logPrefix_(a);shaka.log.v2(d,"updating in "+b+" seconds");goog.asserts.assert(null==a.updateTimer,d+" did not expect update to be scheduled");a.updateTimer=(new shaka.util.DelayedTick(function(){c.onUpdate_(a)})).tickAfter(b)};
858
- shaka.media.StreamingEngine.prototype.cancelUpdate_=function(a){null!=a.updateTimer&&(a.updateTimer.stop(),a.updateTimer=null)};shaka.media.StreamingEngine.prototype.handleStreamingError_=function(a){this.failureCallbackBackoff_.attempt().then(function(){this.destroyed_||(this.playerInterface_.onError(a),a.handled||this.config_.failureCallback(a))}.bind(this))};shaka.media.StreamingEngine.logPrefix_=function(a){return"("+a.type+":"+a.stream.id+")"};shaka.net.HttpPluginUtils={};shaka.net.HttpPluginUtils.makeResponse=function(a,b,c,d,e,f){if(200<=c&&299>=c&&202!=c)return e&&(d=e),{uri: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()});
880
+ a.endOfStream=!1;d.scheduleUpdate_(a,0);f.jumpToEnd()}})})};
881
+ shaka.media.StreamingEngine.prototype.scheduleUpdate_=function(a,b){var c=this,d=shaka.media.StreamingEngine.logPrefix_(a);shaka.log.v2(d,"updating in "+b+" seconds");goog.asserts.assert(null==a.updateTimer,d+" did not expect update to be scheduled");a.updateTimer=(new shaka.util.DelayedTick(function(){return $jscomp.asyncExecutePromiseGeneratorFunction(function f(){var b;return $jscomp.generator.createGenerator(f,function(d){switch(d.nextAddress){case 1:return d.setCatchFinallyBlocks(2),d.yield(c.onUpdate_(a),
882
+ 4);case 4:d.leaveTryBlock(0);break;case 2:b=d.enterCatchBlock();if(c.playerInterface_)c.playerInterface_.onError(b);d.jumpToEnd()}})})})).tickAfter(b)};shaka.media.StreamingEngine.prototype.cancelUpdate_=function(a){null!=a.updateTimer&&(a.updateTimer.stop(),a.updateTimer=null)};shaka.media.StreamingEngine.prototype.handleStreamingError_=function(a){this.failureCallbackBackoff_.attempt().then(function(){this.destroyed_||(this.playerInterface_.onError(a),a.handled||this.config_.failureCallback(a))}.bind(this))};
883
+ shaka.media.StreamingEngine.logPrefix_=function(a){return"("+a.type+":"+a.stream.id+")"};shaka.net.HttpPluginUtils={};
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()});
859
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);
860
- 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=
861
- 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,
862
- '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,
863
- 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)};
864
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;
865
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!");
866
- 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,
867
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()})};
868
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};
869
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(){})};
@@ -940,9 +966,9 @@ e.setFinallyBlock(2);return e.yield(g.init(),4);case 4:return e.yield(g.getCell(
940
966
  shaka.offline.OfflineManifestParser.prototype.update=function(){};
941
967
  shaka.offline.OfflineManifestParser.prototype.onExpirationUpdated=function(a,b){var c=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function e(){var f,g,h,k,l,m,n,p;return $jscomp.generator.createGenerator(e,function(e){switch(e.nextAddress){case 1:return goog.asserts.assert(c.uri_,"Should not get update event before start has been called"),f=c.uri_,g=new shaka.offline.StorageMuxer,e.setCatchFinallyBlocks(2,3),e.yield(g.init(),5);case 5:return e.yield(g.getCell(f.mechanism(),f.cell()),
942
968
  6);case 6:return h=e.yieldResult,e.yield(h.getManifests([f.key()]),7);case 7:k=e.yieldResult;l=k[0];m=l.sessionIds.includes(a);n=void 0==l.expiration||l.expiration>b;if(!m||!n){e.jumpTo(3);break}shaka.log.debug("Updating expiration for stored content");return e.yield(h.updateManifestExpiration(f.key(),b),3);case 3:return e.enterFinallyBlock(),e.yield(g.destroy(),10);case 10:e.leaveFinallyBlock(0);break;case 2:p=e.enterCatchBlock(),shaka.log.error("There was an error updating",f,p),e.jumpTo(3)}})})};
943
- shaka.media.ManifestParser.registerParserByMime("application/x-offline-manifest",shaka.offline.OfflineManifestParser);shaka.offline.OfflineScheme=function(a,b,c){return(b=shaka.offline.OfflineUri.parse(a))&&b.isManifest()?shaka.offline.OfflineScheme.getManifest_(a):b&&b.isSegment()?shaka.offline.OfflineScheme.getSegment_(b.key(),b):shaka.util.AbortableOperation.failed(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.MALFORMED_OFFLINE_URI,a))};goog.exportSymbol("shaka.offline.OfflineScheme",shaka.offline.OfflineScheme);
944
- shaka.offline.OfflineScheme.getManifest_=function(a){a={uri:a,data:new ArrayBuffer(0),headers:{"content-type":"application/x-offline-manifest"}};return shaka.util.AbortableOperation.completed(a)};
945
- shaka.offline.OfflineScheme.getSegment_=function(a,b){goog.asserts.assert(b.isSegment(),"Only segment uri's should be given to getSegment");var c=new shaka.offline.StorageMuxer;return shaka.util.AbortableOperation.completed(void 0).chain(function(){return c.init()}).chain(function(){return c.getCell(b.mechanism(),b.cell())}).chain(function(a){return a.getSegments([b.key()])}).chain(function(a){return{uri:b,data:a[0].data,headers:{}}})["finally"](function(){return c.destroy()})};
969
+ shaka.media.ManifestParser.registerParserByMime("application/x-offline-manifest",shaka.offline.OfflineManifestParser);shaka.offline.OfflineScheme=function(a,b,c,d){return(b=shaka.offline.OfflineUri.parse(a))&&b.isManifest()?shaka.offline.OfflineScheme.getManifest_(a):b&&b.isSegment()?shaka.offline.OfflineScheme.getSegment_(b.key(),b):shaka.util.AbortableOperation.failed(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.MALFORMED_OFFLINE_URI,a))};goog.exportSymbol("shaka.offline.OfflineScheme",shaka.offline.OfflineScheme);
970
+ shaka.offline.OfflineScheme.getManifest_=function(a){a={uri:a,originalUri:a,data:new ArrayBuffer(0),headers:{"content-type":"application/x-offline-manifest"}};return shaka.util.AbortableOperation.completed(a)};
971
+ shaka.offline.OfflineScheme.getSegment_=function(a,b){goog.asserts.assert(b.isSegment(),"Only segment uri's should be given to getSegment");var c=new shaka.offline.StorageMuxer;return shaka.util.AbortableOperation.completed(void 0).chain(function(){return c.init()}).chain(function(){return c.getCell(b.mechanism(),b.cell())}).chain(function(a){return a.getSegments([b.key()])}).chain(function(a){return{uri:b,originalUri:b,data:a[0].data,headers:{}}})["finally"](function(){return c.destroy()})};
946
972
  shaka.net.NetworkingEngine.registerScheme("offline",shaka.offline.OfflineScheme);shaka.offline.SessionDeleter=function(){};
947
973
  shaka.offline.SessionDeleter.prototype["delete"]=function(a,b,c){var d=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function f(){var g,h,k,l,m,n,p;return $jscomp.generator.createGenerator(f,function(f){switch(f.nextAddress){case 1:g=shaka.offline.SessionDeleter,h=[],k=$jscomp.makeIterator(g.createBuckets_(c)),l=k.next();case 2:if(l.done){f.jumpTo(4);break}m=l.value;n=d.doDelete_(a,b,m);return f.yield(n,5);case 5:p=f.yieldResult;h=h.concat(p);l=k.next();f.jumpTo(2);break;case 4:return f["return"](h)}})})};
948
974
  shaka.offline.SessionDeleter.prototype.doDelete_=function(a,b,c){return $jscomp.asyncExecutePromiseGeneratorFunction(function e(){var f,g,h,k;return $jscomp.generator.createGenerator(e,function(e){switch(e.nextAddress){case 1:return f=new shaka.media.DrmEngine({netEngine:b,onError:function(){},onKeyStatus:function(){},onExpirationUpdated:function(){},onEvent:function(){}}),e.setCatchFinallyBlocks(2),f.configure(a),e.yield(f.initForRemoval(c.info.keySystem,c.info.licenseUri,c.info.serverCertificate,
@@ -968,12 +994,13 @@ shaka.text.SimpleTextDisplayer.convertToTextTrackCue_=function(a){if(a.startTime
968
994
  shaka.text.SimpleTextDisplayer.TextTrackLabel_="Shaka Player TextTrack";shaka.util.ConfigUtils={};
969
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!=
970
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);
971
- 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};shaka.util.PlayerConfiguration=function(){};
972
- 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,
973
- 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};
974
- 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,
975
- 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,
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);
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,
976
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,"")};
1003
+ goog.exportProperty(shaka.util.PlayerConfiguration,"mergeConfigObjects",shaka.util.PlayerConfiguration.mergeConfigObjects);
977
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!"),
978
1005
  f=e);var h=f.filter(function(a){return a.height&&480>=a.height});h.length&&(h.sort(function(a,b){return b.height-a.height}),f=h.filter(function(a){return a.height==h[0].height}));e=[];if(f.length){var k=Math.floor(f.length/2);f.sort(function(a,b){return a.bandwidth-b.bandwidth});e.push(f[k])}f=$jscomp.makeIterator(a);for(k=f.next();!k.done;k=f.next())k=k.value,k.type==c.TEXT&&e.push(k);return e};shaka.util.StateHistory=function(){this.open_=null;this.closed_=[]};shaka.util.StateHistory.prototype.update=function(a){null==this.open_?this.start_(a):this.update_(a)};shaka.util.StateHistory.prototype.getTimeSpentIn=function(a){var b=0;this.open_&&this.open_.state==a&&(b+=this.open_.duration);for(var c=$jscomp.makeIterator(this.closed_),d=c.next();!d.done;d=c.next())d=d.value,b+=d.state==a?d.duration:0;return b};
979
1006
  shaka.util.StateHistory.prototype.getCopy=function(){for(var a=function(a){return{timestamp:a.timestamp,state:a.state,duration:a.duration}},b=[],c=$jscomp.makeIterator(this.closed_),d=c.next();!d.done;d=c.next())b.push(a(d.value));this.open_&&b.push(a(this.open_));return b};shaka.util.StateHistory.prototype.start_=function(a){goog.asserts.assert(null==this.open_,"There must be no open entry in order when we start");this.open_={timestamp:this.getNowInSeconds_(),state:a,duration:0}};
@@ -991,7 +1018,7 @@ b){return c.onSrcEquals_(a,b)});this.walker_=new shaka.routing.Walker(this.detac
991
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);
992
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...")};
993
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_=
994
- 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.1-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_={};
995
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);
996
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);
997
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)};
@@ -1005,10 +1032,10 @@ g.onEnd=function(){return a()};g.onCancel=function(){return b(d.createAbortLoadE
1005
1032
  shaka.Player.prototype.shouldUseSrcEquals_=function(a){var b=shaka.util.Platform;if(a.factory)return!1;if(!b.supportsMediaSource())return!0;var c=a.mimeType,d=a.uri||"";c||(c={mp4:"video/mp4",m4v:"video/mp4",m4a:"audio/mp4",webm:"video/webm",ts:"video/mp2t",m3u8:"application/x-mpegurl",mp3:"audio/mpeg",aac:"audio/aac",flac:"audio/flac"}[shaka.media.ManifestParser.getExtension(d)]);if(c){a=b.supportsMediaType(c);if(!a)return!1;c=shaka.media.ManifestParser.isSupported(d,c);if(!c)return!0;goog.asserts.assert(a&&
1006
1033
  c,"Both native and MSE playback should be possible!");return b.isApple()}return!1};shaka.Player.prototype.onAttach_=function(a,b){var c=this;goog.asserts.assert(null==a.mediaElement||a.mediaElement==b.mediaElement,"The routing logic failed. MediaElement requirement failed.");null==a.mediaElement&&(a.mediaElement=b.mediaElement,this.eventManager_.listen(a.mediaElement,"error",function(a){return c.onVideoError_(a)}));this.video_=a.mediaElement;return Promise.resolve()};
1007
1034
  shaka.Player.prototype.onDetach_=function(a,b){a.mediaElement&&(this.eventManager_.unlisten(a.mediaElement,"error"),a.mediaElement=null);this.video_=null;return Promise.resolve()};
1008
- shaka.Player.prototype.onUnload_=function(a,b){var c=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function e(){return $jscomp.generator.createGenerator(e,function(b){switch(b.nextAddress){case 1:c.loadMode_!=shaka.Player.LoadMode.DESTROYED&&(c.loadMode_=shaka.Player.LoadMode.NOT_LOADED);c.dispatchEvent(new shaka.util.FakeEvent("unloading"));a.currentTime=null;a.factory=null;a.mimeType=null;a.startTime=null;a.uri=null;a.mediaElement&&(c.eventManager_.unlisten(a.mediaElement,"loadeddata"),
1009
- c.eventManager_.unlisten(a.mediaElement,"playing"),c.eventManager_.unlisten(a.mediaElement,"pause"),c.eventManager_.unlisten(a.mediaElement,"ended"),c.eventManager_.unlisten(a.mediaElement,"ratechange"));c.playheadObservers_&&(c.playheadObservers_.release(),c.playheadObservers_=null);c.bufferPoller_&&(c.bufferPoller_.stop(),c.bufferPoller_=null);if(!c.parser_){b.jumpTo(2);break}return b.yield(c.parser_.stop(),3);case 3:c.parser_=null;case 2:if(!c.abrManager_){b.jumpTo(4);break}return b.yield(c.abrManager_.stop(),
1010
- 4);case 4:if(!c.streamingEngine_){b.jumpTo(6);break}return b.yield(c.streamingEngine_.destroy(),7);case 7:c.streamingEngine_=null;case 6:c.playhead_&&(c.playhead_.release(),c.playhead_=null);if(!c.mediaSourceEngine_){b.jumpTo(8);break}return b.yield(c.mediaSourceEngine_.destroy(),9);case 9:c.mediaSourceEngine_=null;case 8:a.mediaElement&&a.mediaElement.src&&(a.mediaElement.removeAttribute("src"),a.mediaElement.load());if(!c.drmEngine_){b.jumpTo(10);break}return b.yield(c.drmEngine_.destroy(),11);
1011
- case 11:c.drmEngine_=null;case 10:c.activeStreams_.clear(),c.assetUri_=null,c.bufferObserver_=null,c.loadingTextStreams_.clear(),c.manifest_=null,c.stats_=null,c.lastTextFactory_=null,c.switchingPeriods_=!0,c.updateBufferState_(),b.jumpToEnd()}})})};
1035
+ shaka.Player.prototype.onUnload_=function(a,b){var c=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function e(){return $jscomp.generator.createGenerator(e,function(b){switch(b.nextAddress){case 1:c.loadMode_!=shaka.Player.LoadMode.DESTROYED&&(c.loadMode_=shaka.Player.LoadMode.NOT_LOADED);c.dispatchEvent(new shaka.util.FakeEvent("unloading"));a.factory=null;a.mimeType=null;a.startTime=null;a.uri=null;a.mediaElement&&(c.eventManager_.unlisten(a.mediaElement,"loadeddata"),c.eventManager_.unlisten(a.mediaElement,
1036
+ "playing"),c.eventManager_.unlisten(a.mediaElement,"pause"),c.eventManager_.unlisten(a.mediaElement,"ended"),c.eventManager_.unlisten(a.mediaElement,"ratechange"));c.playheadObservers_&&(c.playheadObservers_.release(),c.playheadObservers_=null);c.bufferPoller_&&(c.bufferPoller_.stop(),c.bufferPoller_=null);if(!c.parser_){b.jumpTo(2);break}return b.yield(c.parser_.stop(),3);case 3:c.parser_=null;case 2:if(!c.abrManager_){b.jumpTo(4);break}return b.yield(c.abrManager_.stop(),4);case 4:if(!c.streamingEngine_){b.jumpTo(6);
1037
+ break}return b.yield(c.streamingEngine_.destroy(),7);case 7:c.streamingEngine_=null;case 6:c.playhead_&&(c.playhead_.release(),c.playhead_=null);if(!c.mediaSourceEngine_){b.jumpTo(8);break}return b.yield(c.mediaSourceEngine_.destroy(),9);case 9:c.mediaSourceEngine_=null;case 8:a.mediaElement&&a.mediaElement.src&&(a.mediaElement.removeAttribute("src"),a.mediaElement.load());if(!c.drmEngine_){b.jumpTo(10);break}return b.yield(c.drmEngine_.destroy(),11);case 11:c.drmEngine_=null;case 10:c.activeStreams_.clear(),
1038
+ c.assetUri_=null,c.bufferObserver_=null,c.loadingTextStreams_.clear(),c.manifest_=null,c.stats_=null,c.lastTextFactory_=null,c.switchingPeriods_=!0,c.updateBufferState_(),b.jumpToEnd()}})})};
1012
1039
  shaka.Player.prototype.onInitializeMediaSourceEngine_=function(a,b){var c=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function e(){var f,g,h,k;return $jscomp.generator.createGenerator(e,function(e){switch(e.nextAddress){case 1:return goog.asserts.assert(shaka.util.Platform.supportsMediaSource(),"We should not be initializing media source on a platform that does not support media source."),goog.asserts.assert(a.mediaElement,"We should have a media element when initializing media source."),
1013
1040
  goog.asserts.assert(a.mediaElement==b.mediaElement,"|has| and |wants| should have the same media element when initializing media source."),goog.asserts.assert(null==c.mediaSourceEngine_,"We should not have a media source engine yet."),f=shaka.media.MuxJSClosedCaptionParser.isSupported()?new shaka.media.MuxJSClosedCaptionParser:new shaka.media.NoopCaptionParser,g=c.config_.textDisplayFactory,h=new g,c.lastTextFactory_=g,k=c.createMediaSourceEngine(a.mediaElement,f,h),e.yield(k.open(),2);case 2:c.mediaSourceEngine_=
1014
1041
  k,e.jumpToEnd()}})})};
@@ -1027,7 +1054,7 @@ goog.asserts.assert(a.mediaElement,"We should have a media element when loading.
1027
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,
1028
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),
1029
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_(),
1030
- 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()}})})};
1031
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_=
1032
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,
1033
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)}})})};
@@ -1062,7 +1089,7 @@ shaka.Player.prototype.isAudioOnly=function(){if(this.manifest_){if(!this.manife
1062
1089
  shaka.Player.prototype.seekRange=function(){if(this.manifest_){var a=this.manifest_.presentationTimeline;return{start:a.getSeekRangeStart(),end:a.getSeekRangeEnd()}}return this.video_&&this.video_.src&&(a=this.video_.seekable,a.length)?{start:a.start(0),end:a.end(a.length-1)}:{start:0,end:0}};goog.exportProperty(shaka.Player.prototype,"seekRange",shaka.Player.prototype.seekRange);shaka.Player.prototype.keySystem=function(){return this.drmEngine_?this.drmEngine_.keySystem():""};
1063
1090
  goog.exportProperty(shaka.Player.prototype,"keySystem",shaka.Player.prototype.keySystem);shaka.Player.prototype.drmInfo=function(){return this.drmEngine_?this.drmEngine_.getDrmInfo():null};goog.exportProperty(shaka.Player.prototype,"drmInfo",shaka.Player.prototype.drmInfo);shaka.Player.prototype.getExpiration=function(){return this.drmEngine_?this.drmEngine_.getExpiration():Infinity};goog.exportProperty(shaka.Player.prototype,"getExpiration",shaka.Player.prototype.getExpiration);
1064
1091
  shaka.Player.prototype.isBuffering=function(){var a=shaka.media.BufferingObserver.State;return this.bufferObserver_?this.bufferObserver_.getState()==a.STARVING:!1};goog.exportProperty(shaka.Player.prototype,"isBuffering",shaka.Player.prototype.isBuffering);shaka.Player.prototype.getPlaybackRate=function(){return this.playRateController_?this.playRateController_.getActiveRate():0};goog.exportProperty(shaka.Player.prototype,"getPlaybackRate",shaka.Player.prototype.getPlaybackRate);
1065
- shaka.Player.prototype.trickPlay=function(a){goog.asserts.assert(0!=a,"Should never set a trick play rate of 0!");0==a?shaka.log.alwaysWarn("A trick play rate of 0 is unsupported!"):(this.loadMode_==shaka.Player.LoadMode.SRC_EQUALS&&this.playRateController_.set(a),this.loadMode_==shaka.Player.LoadMode.MEDIA_SOURCE&&(this.playRateController_.set(a),this.streamingEngine_.setTrickPlay(1<Math.abs(a))))};goog.exportProperty(shaka.Player.prototype,"trickPlay",shaka.Player.prototype.trickPlay);
1092
+ shaka.Player.prototype.trickPlay=function(a){goog.asserts.assert(0!=a,"Should never set a trick play rate of 0!");0==a?shaka.log.alwaysWarn("A trick play rate of 0 is unsupported!"):(this.video_.paused&&this.video_.play(),this.playRateController_.set(a),this.loadMode_==shaka.Player.LoadMode.MEDIA_SOURCE&&this.streamingEngine_.setTrickPlay(1<Math.abs(a)))};goog.exportProperty(shaka.Player.prototype,"trickPlay",shaka.Player.prototype.trickPlay);
1066
1093
  shaka.Player.prototype.cancelTrickPlay=function(){this.loadMode_==shaka.Player.LoadMode.SRC_EQUALS&&this.playRateController_.set(1);this.loadMode_==shaka.Player.LoadMode.MEDIA_SOURCE&&(this.playRateController_.set(1),this.streamingEngine_.setTrickPlay(!1))};goog.exportProperty(shaka.Player.prototype,"cancelTrickPlay",shaka.Player.prototype.cancelTrickPlay);
1067
1094
  shaka.Player.prototype.getVariantTracks=function(){if(this.manifest_&&this.playhead_){for(var a=this.getPresentationVariant_(),b=[],c=$jscomp.makeIterator(this.getSelectableVariants_()),d=c.next();!d.done;d=c.next()){d=d.value;var e=shaka.util.StreamUtils.variantToTrack(d);e.active=d==a;b.push(e)}return b}return this.video_&&this.video_.audioTracks?Array.from(this.video_.audioTracks).map(function(a){return shaka.util.StreamUtils.html5AudioTrackToTrack(a)}):[]};
1068
1095
  goog.exportProperty(shaka.Player.prototype,"getVariantTracks",shaka.Player.prototype.getVariantTracks);
@@ -1079,7 +1106,8 @@ goog.exportProperty(shaka.Player.prototype,"selectVariantTrack",shaka.Player.pro
1079
1106
  goog.exportProperty(shaka.Player.prototype,"getTextLanguagesAndRoles",shaka.Player.prototype.getTextLanguagesAndRoles);shaka.Player.prototype.getAudioLanguages=function(){return Array.from(shaka.Player.getLanguagesFrom_(this.getVariantTracks()))};goog.exportProperty(shaka.Player.prototype,"getAudioLanguages",shaka.Player.prototype.getAudioLanguages);shaka.Player.prototype.getTextLanguages=function(){return Array.from(shaka.Player.getLanguagesFrom_(this.getTextTracks()))};
1080
1107
  goog.exportProperty(shaka.Player.prototype,"getTextLanguages",shaka.Player.prototype.getTextLanguages);
1081
1108
  shaka.Player.prototype.selectAudioLanguage=function(a,b){if(this.manifest_&&this.playhead_){var c=this.getPresentationPeriod_();this.currentAdaptationSetCriteria_=new shaka.media.PreferenceBasedCriteria(a,b||"",0);this.chooseStreamsAndSwitch_(c)}else if(this.video_&&this.video_.audioTracks){c=Array.from(this.video_.audioTracks);c=$jscomp.makeIterator(c);for(var d=c.next();!d.done;d=c.next())d=d.value,d.language==a&&(d.enabled=!0);this.onVariantChanged_()}};
1082
- goog.exportProperty(shaka.Player.prototype,"selectAudioLanguage",shaka.Player.prototype.selectAudioLanguage);shaka.Player.prototype.selectTextLanguage=function(a,b){if(this.manifest_&&this.playhead_){var c=this.getPresentationPeriod_();this.currentTextLanguage_=a;this.currentTextRole_=b||"";this.chooseStreamsAndSwitch_(c)}else(c=this.getTextTracks().filter(function(b){return b.language==a})[0])&&this.selectTextTrack(c)};goog.exportProperty(shaka.Player.prototype,"selectTextLanguage",shaka.Player.prototype.selectTextLanguage);
1109
+ goog.exportProperty(shaka.Player.prototype,"selectAudioLanguage",shaka.Player.prototype.selectAudioLanguage);
1110
+ shaka.Player.prototype.selectTextLanguage=function(a,b){if(this.manifest_&&this.playhead_){var c=this.getPresentationPeriod_();this.currentTextLanguage_=a;this.currentTextRole_=b||"";var d=this.chooseTextStream_(c.textStreams);d&&(this.addTextStreamToSwitchHistory_(c,d,!1),this.shouldStreamText_()&&this.switchTextStream_(d))}else(c=this.getTextTracks().filter(function(b){return b.language==a})[0])&&this.selectTextTrack(c)};goog.exportProperty(shaka.Player.prototype,"selectTextLanguage",shaka.Player.prototype.selectTextLanguage);
1083
1111
  shaka.Player.prototype.isTextTrackVisible=function(){var a=this.isTextVisible_;if(this.manifest_){var b=this.mediaSourceEngine_.getTextDisplayer().isTextVisible();goog.asserts.assert(b==a,"text visibility has fallen out of sync");return b}return this.video_&&this.video_.src&&this.video_.textTracks?Array.from(this.video_.textTracks).some(function(a){return"showing"==a.mode}):a};goog.exportProperty(shaka.Player.prototype,"isTextTrackVisible",shaka.Player.prototype.isTextTrackVisible);
1084
1112
  shaka.Player.prototype.setTextTrackVisibility=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:e=b.isTextVisible_;f=a;if(e==f)return d["return"]();b.isTextVisible_=f;if(b.loadMode_!=shaka.Player.LoadMode.MEDIA_SOURCE){if(b.video_&&b.video_.src&&b.video_.textTracks){g=Array.from(b.video_.textTracks);for(var m=$jscomp.makeIterator(g),p=m.next();!p.done;p=m.next())h=
1085
1113
  p.value,"disabled"!=h.mode&&(h.mode=a?"showing":"hidden")}d.jumpTo(2);break}b.mediaSourceEngine_.getTextDisplayer().setTextVisibility(a);if(b.config_.streaming.alwaysStreamText){d.jumpTo(2);break}if(!a){b.streamingEngine_.unloadTextStream();d.jumpTo(2);break}k=b.getPresentationPeriod_();l=shaka.util.StreamUtils.filterStreamsByLanguageAndRole(k.textStreams,b.currentTextLanguage_,b.currentTextRole_);if(!(0<l.length)){d.jumpTo(2);break}return d.yield(b.streamingEngine_.loadNewTextStream(l[0]),2);case 2:b.onTextTrackVisibility_(),
@@ -1091,10 +1119,10 @@ return null};goog.exportProperty(shaka.Player.prototype,"getPresentationStartTim
1091
1119
  goog.exportProperty(shaka.Player.prototype,"getBufferedInfo",shaka.Player.prototype.getBufferedInfo);
1092
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&&
1093
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);
1094
- 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."),
1095
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]},
1096
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),
1097
- 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);
1098
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);
1099
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);
1100
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)};
@@ -1213,8 +1241,8 @@ d.id,f.id)}c=$jscomp.makeIterator(a);for(b=c.next();!b.done;b=c.next())for(b=b.v
1213
1241
  goog.exportSymbol("shaka.polyfill.register",shaka.polyfill.register);shaka.polyfill.Fullscreen={};
1214
1242
  shaka.polyfill.Fullscreen.install=function(){if(window.Document){var a=Element.prototype;a.requestFullscreen=a.requestFullscreen||a.mozRequestFullScreen||a.msRequestFullscreen||a.webkitRequestFullscreen;a=Document.prototype;a.exitFullscreen=a.exitFullscreen||a.mozCancelFullScreen||a.msExitFullscreen||a.webkitExitFullscreen;"fullscreenElement"in document||(Object.defineProperty(document,"fullscreenElement",{get:function(){return document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement}}),
1215
1243
  Object.defineProperty(document,"fullscreenEnabled",{get:function(){return document.mozFullScreenEnabled||document.msFullscreenEnabled||document.webkitSupportsFullscreen||document.webkitFullscreenEnabled}}));a=shaka.polyfill.Fullscreen.proxyEvent_;document.addEventListener("webkitfullscreenchange",a);document.addEventListener("webkitfullscreenerror",a);document.addEventListener("mozfullscreenchange",a);document.addEventListener("mozfullscreenerror",a);document.addEventListener("MSFullscreenChange",
1216
- a);document.addEventListener("MSFullscreenError",a)}};shaka.polyfill.Fullscreen.proxyEvent_=function(a){var b=a.type.replace(/^(webkit|moz|MS)/,"").toLowerCase();if("function"===typeof Event)var c=new Event(b,a);else c=document.createEvent("Event"),c.initEvent(b,a.bubbles,a.cancelable);a.target.dispatchEvent(c)};shaka.polyfill.register(shaka.polyfill.Fullscreen.install);shaka.polyfill.IndexedDB={};shaka.polyfill.IndexedDB.install=function(){shaka.log.debug("IndexedDB.install");shaka.util.Platform.isChromecast()&&(shaka.log.debug("Removing IndexedDB from ChromeCast"),delete window.indexedDB,goog.asserts.assert(!window.indexedDB,"Failed to override window.indexedDB"))};shaka.polyfill.register(shaka.polyfill.IndexedDB.install);shaka.polyfill.InputEvent={};shaka.polyfill.InputEvent.install=function(){shaka.log.debug("InputEvent.install");shaka.util.Platform.isIE()&&HTMLInputElement.prototype.addEventListener!=shaka.polyfill.InputEvent.addEventListener_&&(shaka.log.info("Patching input event support on IE."),shaka.polyfill.InputEvent.originalAddEventListener_=HTMLInputElement.prototype.addEventListener,HTMLInputElement.prototype.addEventListener=shaka.polyfill.InputEvent.addEventListener_)};
1217
- shaka.polyfill.InputEvent.addEventListener_=function(a,b,c){if("input"==a)switch(this.type){case "range":a="change"}shaka.polyfill.InputEvent.originalAddEventListener_.call(this,a,b,c)};shaka.polyfill.register(shaka.polyfill.InputEvent.install);shaka.polyfill.Languages={};shaka.polyfill.Languages.install=function(){navigator.languages||Object.defineProperty(navigator,"languages",{get:function(){return navigator.language?[navigator.language]:["en"]}})};shaka.polyfill.register(shaka.polyfill.Languages.install);shaka.polyfill.MathRound={};shaka.polyfill.MathRound.MAX_ACCURATE_INPUT_=4503599627370496;shaka.polyfill.MathRound.install=function(){shaka.log.debug("mathRound.install");var a=shaka.polyfill.MathRound.MAX_ACCURATE_INPUT_+1;if(Math.round(a)!=a){shaka.log.debug("polyfill Math.round");var b=Math.round;Math.round=function(a){var c=a;a<=shaka.polyfill.MathRound.MAX_ACCURATE_INPUT_&&(c=b(a));return c}}};shaka.polyfill.register(shaka.polyfill.MathRound.install);shaka.polyfill.MediaSource={};
1244
+ a);document.addEventListener("MSFullscreenError",a)}};shaka.polyfill.Fullscreen.proxyEvent_=function(a){var b=a.type.replace(/^(webkit|moz|MS)/,"").toLowerCase();if("function"===typeof Event)var c=new Event(b,a);else c=document.createEvent("Event"),c.initEvent(b,a.bubbles,a.cancelable);a.target.dispatchEvent(c)};shaka.polyfill.register(shaka.polyfill.Fullscreen.install);shaka.polyfill.IndexedDB={};shaka.polyfill.IndexedDB.install=function(){shaka.log.debug("IndexedDB.install");shaka.util.Platform.isChromecast()&&(shaka.log.debug("Removing IndexedDB from ChromeCast"),delete window.indexedDB,goog.asserts.assert(!window.indexedDB,"Failed to override window.indexedDB"))};shaka.polyfill.register(shaka.polyfill.IndexedDB.install);shaka.polyfill.InputEvent={};shaka.polyfill.InputEvent.install=function(){shaka.log.debug("InputEvent.install");shaka.util.Platform.isIE()&&!HTMLInputElement.prototype.originalAddEventListener&&(shaka.log.info("Patching input event support on IE."),HTMLInputElement.prototype.originalAddEventListener=HTMLInputElement.prototype.addEventListener,HTMLInputElement.prototype.addEventListener=shaka.polyfill.InputEvent.addEventListener_)};
1245
+ shaka.polyfill.InputEvent.addEventListener_=function(a,b,c){if("input"==a)switch(this.type){case "range":a="change"}HTMLInputElement.prototype.originalAddEventListener.call(this,a,b,c)};shaka.polyfill.register(shaka.polyfill.InputEvent.install);shaka.polyfill.Languages={};shaka.polyfill.Languages.install=function(){navigator.languages||Object.defineProperty(navigator,"languages",{get:function(){return navigator.language?[navigator.language]:["en"]}})};shaka.polyfill.register(shaka.polyfill.Languages.install);shaka.polyfill.MathRound={};shaka.polyfill.MathRound.MAX_ACCURATE_INPUT_=4503599627370496;shaka.polyfill.MathRound.install=function(){shaka.log.debug("mathRound.install");var a=shaka.polyfill.MathRound.MAX_ACCURATE_INPUT_+1;if(Math.round(a)!=a){shaka.log.debug("polyfill Math.round");var b=Math.round;Math.round=function(a){var c=a;a<=shaka.polyfill.MathRound.MAX_ACCURATE_INPUT_&&(c=b(a));return c}}};shaka.polyfill.register(shaka.polyfill.MathRound.install);shaka.polyfill.MediaSource={};
1218
1246
  shaka.polyfill.MediaSource.install=function(){shaka.log.debug("MediaSource.install");if(window.MediaSource)if(window.cast&&cast.__platform__&&cast.__platform__.canDisplayType)shaka.log.info("Patching Chromecast MSE bugs."),shaka.polyfill.MediaSource.patchCastIsTypeSupported_();else if(shaka.util.Platform.isApple()){var a=navigator.appVersion;shaka.polyfill.MediaSource.rejectTsContent_();if(a.includes("Version/8"))shaka.log.info("Blacklisting Safari 8 MSE."),shaka.polyfill.MediaSource.blacklist_();else if(a.includes("Version/9"))shaka.log.info("Patching Safari 9 MSE bugs."),
1219
1247
  shaka.polyfill.MediaSource.stubAbort_();else if(a.includes("Version/10"))shaka.log.info("Patching Safari 10 MSE bugs."),shaka.polyfill.MediaSource.stubAbort_(),shaka.polyfill.MediaSource.patchEndOfStreamEvents_();else if(a.includes("Version/11")||a.includes("Version/12"))shaka.log.info("Patching Safari 11/12 MSE bugs."),shaka.polyfill.MediaSource.stubAbort_(),shaka.polyfill.MediaSource.patchRemovalRange_()}else shaka.util.Platform.isTizen()?shaka.polyfill.MediaSource.rejectCodec_("opus"):shaka.log.info("Using native MSE as-is.");
1220
1248
  else shaka.log.info("No MSE implementation available.")};shaka.polyfill.MediaSource.blacklist_=function(){window.MediaSource=null};shaka.polyfill.MediaSource.stubAbort_=function(){var a=MediaSource.prototype.addSourceBuffer;MediaSource.prototype.addSourceBuffer=function(b){for(var c=[],d=0;d<arguments.length;++d)c[d-0]=arguments[d];c=a.apply(this,c);c.abort=function(){};return c}};
@@ -1222,7 +1250,7 @@ shaka.polyfill.MediaSource.patchRemovalRange_=function(){var a=SourceBuffer.prot
1222
1250
  shaka.polyfill.MediaSource.patchEndOfStreamEvents_=function(){var a=MediaSource.prototype.endOfStream;MediaSource.prototype.endOfStream=function(b){for(var c=[],d=0;d<arguments.length;++d)c[d-0]=arguments[d];for(var g=d=0;g<this.sourceBuffers.length;++g){var h=this.sourceBuffers[g];h=h.buffered.end(h.buffered.length-1);d=Math.max(d,h)}if(!isNaN(this.duration)&&d<this.duration)for(this.ignoreUpdateEnd_=!0,d=0;d<this.sourceBuffers.length;++d)this.sourceBuffers[d].eventSuppressed_=!1;return a.apply(this,
1223
1251
  c)};var b=!1,c=MediaSource.prototype.addSourceBuffer;MediaSource.prototype.addSourceBuffer=function(a){for(var d=[],f=0;f<arguments.length;++f)d[f-0]=arguments[f];d=c.apply(this,d);d.mediaSource_=this;d.addEventListener("updateend",shaka.polyfill.MediaSource.ignoreUpdateEnd_,!1);b||(this.addEventListener("sourceclose",shaka.polyfill.MediaSource.cleanUpListeners_,!1),b=!0);return d}};
1224
1252
  shaka.polyfill.MediaSource.ignoreUpdateEnd_=function(a){var b=a.target,c=b.mediaSource_;if(c.ignoreUpdateEnd_){a.preventDefault();a.stopPropagation();a.stopImmediatePropagation();b.eventSuppressed_=!0;for(a=0;a<c.sourceBuffers.length;++a)if(0==c.sourceBuffers[a].eventSuppressed_)return;c.ignoreUpdateEnd_=!1}};
1225
- shaka.polyfill.MediaSource.cleanUpListeners_=function(a){a=a.target;for(var b=0;b<a.sourceBuffers.length;++b)a.sourceBuffers[b].removeEventListener("updateend",shaka.polyfill.MediaSource.ignoreUpdateEnd_,!1);a.removeEventListener("sourceclose",shaka.polyfill.MediaSource.cleanUpListeners_,!1)};shaka.polyfill.MediaSource.rejectTsContent_=function(){var a=MediaSource.isTypeSupported;MediaSource.isTypeSupported=function(b){return"mp2t"==b.split(/ *; */)[0].split("/")[1]?!1:a(b)}};
1253
+ shaka.polyfill.MediaSource.cleanUpListeners_=function(a){a=a.target;for(var b=0;b<a.sourceBuffers.length;++b)a.sourceBuffers[b].removeEventListener("updateend",shaka.polyfill.MediaSource.ignoreUpdateEnd_,!1);a.removeEventListener("sourceclose",shaka.polyfill.MediaSource.cleanUpListeners_,!1)};shaka.polyfill.MediaSource.rejectTsContent_=function(){var a=MediaSource.isTypeSupported;MediaSource.isTypeSupported=function(b){return"mp2t"==b.split(/ *; */)[0].split("/")[1].toLowerCase()?!1:a(b)}};
1226
1254
  shaka.polyfill.MediaSource.rejectCodec_=function(a){var b=MediaSource.isTypeSupported;MediaSource.isTypeSupported=function(c){return shaka.util.MimeUtils.getCodecBase(c)!=a&&b(c)}};
1227
1255
  shaka.polyfill.MediaSource.patchCastIsTypeSupported_=function(){var a=MediaSource.isTypeSupported,b=/^dv(?:h[e1]|a[v1])\./;MediaSource.isTypeSupported=function(c){for(var d=c.split(/ *; */),e=d[0],f={},g=1;g<d.length;++g){var h=d[g].split("="),k=h[0];h=h[1].replace(/"(.*)"/,"$1");f[k]=h}d=f.codecs;if(!d)return a(c);var l=!1,m=!1;c=d.split(",").filter(function(a){b.test(a)&&(m=!0);/^(hev|hvc)1\.2/.test(a)&&(l=!0);return!0});m&&(l=!1);f.codecs=c.join(",");l&&(f.eotf="smpte2084");for(var n in f)e+="; "+
1228
1256
  n+'="'+f[n]+'"';return cast.__platform__.canDisplayType(e)}};shaka.polyfill.register(shaka.polyfill.MediaSource.install);shaka.polyfill.PatchedMediaKeysApple={};
@@ -1239,22 +1267,18 @@ shaka.polyfill.PatchedMediaKeysApple.MediaKeys.prototype.setServerCertificate=fu
1239
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)}};
1240
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};
1241
1269
  goog.inherits(shaka.polyfill.PatchedMediaKeysApple.MediaKeySession,shaka.util.FakeEventTarget);
1242
- 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",
1243
- 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"))};
1244
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_};
1245
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"))};
1246
- 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,
1247
- f);f+=c.byteLength;g(d);g(new Uint8Array(b));return e};
1248
- 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)};
1249
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});
1250
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)};
1251
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");
1252
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};
1253
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_};
1254
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.")};
1255
- 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!")};
1256
- 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=
1257
- 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={};
1258
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;
1259
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)}};
1260
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];
@@ -1271,8 +1295,8 @@ this.eventManager_.listen(this.nativeMediaKeySession_,"mskeyerror",this.onMsKeyE
1271
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_};
1272
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"))};
1273
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)}};
1274
- 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$269:b.initData$269},c=d.next())b.initData$269=c.value,a.some(function(a){return function(b){return shaka.util.Uint8ArrayUtils.equal(b,a.initData$269)}}(b))||
1275
- a.push(b.initData$269);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};
1276
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});
1277
1301
  this.dispatchEvent(a)};
1278
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_"),
@@ -1343,7 +1367,7 @@ e.viewportAnchorUnits=h||null!=c?shaka.text.CueRegion.units.PERCENTAGE:shaka.tex
1343
1367
  shaka.text.TtmlTextParser.addStyle_=function(a,b,c,d,e){var f=shaka.text.TtmlTextParser,g=shaka.text.Cue;"rtl"==f.getStyleAttribute_(b,c,e,"direction")&&(a.direction=g.direction.HORIZONTAL_RIGHT_TO_LEFT);var h=f.getStyleAttribute_(b,c,e,"writingMode");"tb"==h||"tblr"==h?a.writingMode=g.writingMode.VERTICAL_LEFT_TO_RIGHT:"tbrl"==h?a.writingMode=g.writingMode.VERTICAL_RIGHT_TO_LEFT:"rltb"==h||"rl"==h?a.direction=g.direction.HORIZONTAL_RIGHT_TO_LEFT:h&&(a.direction=g.direction.HORIZONTAL_LEFT_TO_RIGHT);
1344
1368
  if(h=f.getStyleAttribute_(b,c,e,"textAlign"))a.positionAlign=f.textAlignToPositionAlign_[h],a.lineAlign=f.textAlignToLineAlign_[h],goog.asserts.assert(h.toUpperCase()in g.textAlign,h.toUpperCase()+" Should be in Cue.textAlign values!"),a.textAlign=g.textAlign[h.toUpperCase()];if(h=f.getStyleAttribute_(b,c,e,"displayAlign"))goog.asserts.assert(h.toUpperCase()in g.displayAlign,h.toUpperCase()+" Should be in Cue.displayAlign values!"),a.displayAlign=g.displayAlign[h.toUpperCase()];if(h=f.getStyleAttribute_(b,
1345
1369
  c,e,"color"))a.color=h;if(h=f.getStyleAttribute_(b,c,e,"backgroundColor"))a.backgroundColor=h;if(h=f.getStyleAttribute_(b,c,e,"fontFamily"))a.fontFamily=h;(h=f.getStyleAttribute_(b,c,e,"fontWeight"))&&"bold"==h&&(a.fontWeight=g.fontWeight.BOLD);(h=f.getStyleAttribute_(b,c,e,"wrapOption"))&&"noWrap"==h&&(a.wrapLine=!1);(h=f.getStyleAttribute_(b,c,e,"lineHeight"))&&h.match(f.unitValues_)&&(a.lineHeight=h);(h=f.getStyleAttribute_(b,c,e,"fontSize"))&&h.match(f.unitValues_)&&(a.fontSize=h);if(h=f.getStyleAttribute_(b,
1346
- c,e,"fontStyle"))goog.asserts.assert(h.toUpperCase()in g.fontStyle,h.toUpperCase()+" Should be in Cue.fontStyle values!"),a.fontStyle=g.fontStyle[h.toUpperCase()];d&&(g=d.getAttribute("imagetype"),h=d.getAttribute("encoding"),d=d.textContent,"PNG"==g&&"Base64"==h&&d&&(a.backgroundImage="data:image/png;base64,"+d));(c=f.getStyleAttributeFromRegion_(c,e,"textDecoration"))&&f.addTextDecoration_(a,c);(b=f.getStyleAttributeFromElement_(b,e,"textDecoration"))&&f.addTextDecoration_(a,b)};
1370
+ c,e,"fontStyle"))goog.asserts.assert(h.toUpperCase()in g.fontStyle,h.toUpperCase()+" Should be in Cue.fontStyle values!"),a.fontStyle=g.fontStyle[h.toUpperCase()];d&&(g=d.getAttribute("imagetype"),h=d.getAttribute("encoding"),d=d.textContent.trim(),"PNG"==g&&"Base64"==h&&d&&(a.backgroundImage="data:image/png;base64,"+d));(c=f.getStyleAttributeFromRegion_(c,e,"textDecoration"))&&f.addTextDecoration_(a,c);(b=f.getStyleAttributeFromElement_(b,e,"textDecoration"))&&f.addTextDecoration_(a,b)};
1347
1371
  shaka.text.TtmlTextParser.addTextDecoration_=function(a,b){for(var c=shaka.text.Cue,d=b.split(" "),e=0;e<d.length;e++)switch(d[e]){case "underline":a.textDecoration.includes(c.textDecoration.UNDERLINE)||a.textDecoration.push(c.textDecoration.UNDERLINE);break;case "noUnderline":a.textDecoration.includes(c.textDecoration.UNDERLINE)&&shaka.util.ArrayUtils.remove(a.textDecoration,c.textDecoration.UNDERLINE);break;case "lineThrough":a.textDecoration.includes(c.textDecoration.LINE_THROUGH)||a.textDecoration.push(c.textDecoration.LINE_THROUGH);
1348
1372
  break;case "noLineThrough":a.textDecoration.includes(c.textDecoration.LINE_THROUGH)&&shaka.util.ArrayUtils.remove(a.textDecoration,c.textDecoration.LINE_THROUGH);break;case "overline":a.textDecoration.includes(c.textDecoration.OVERLINE)||a.textDecoration.push(c.textDecoration.OVERLINE);break;case "noOverline":a.textDecoration.includes(c.textDecoration.OVERLINE)&&shaka.util.ArrayUtils.remove(a.textDecoration,c.textDecoration.OVERLINE)}};
1349
1373
  shaka.text.TtmlTextParser.getStyleAttribute_=function(a,b,c,d){var e=shaka.text.TtmlTextParser;return(a=e.getStyleAttributeFromElement_(a,c,d))?a:e.getStyleAttributeFromRegion_(b,c,d)};
@@ -1434,64 +1458,72 @@ englishName:"Serbian (Serbia)"},su:{nativeName:"Basa Sunda",englishName:"Sundane
1434
1458
  tl:{nativeName:"Filipino",englishName:"Filipino"},"tl-PH":{nativeName:"Filipino",englishName:"Filipino"},tlh:{nativeName:"tlhIngan-Hol",englishName:"Klingon"},tr:{nativeName:"T\u00fcrk\u00e7e",englishName:"Turkish"},"tr-TR":{nativeName:"T\u00fcrk\u00e7e",englishName:"Turkish"},"tt-RU":{nativeName:"\u0442\u0430\u0442\u0430\u0440\u0447\u0430",englishName:"Tatar"},uk:{nativeName:"\u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430",englishName:"Ukrainian"},"uk-UA":{nativeName:"\u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430",
1435
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"},
1436
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)"},
1437
- "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$158=$jscomp.makeIterator(Object.keys(mozilla.LanguageMapping)),$jscomp$key$key=$jscomp$iter$158.next();!$jscomp$key$key.done;$jscomp$key$key=$jscomp$iter$158.next()){var key=$jscomp$key$key.value;mozilla.LanguageMapping[key.toLowerCase()]=
1438
- 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()};
1439
- 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"};
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()]=
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"};
1440
1463
  shaka.ui.Enums.Opacity={TRANSPARENT:0,OPAQUE:1};shaka.ui.LanguageUtils=function(){};
1441
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&&
1442
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)})};
1443
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)+
1444
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;
1445
- shaka.ui.Constants.KEYCODE_SHIFT=16;shaka.ui.Constants.KEYCODE_ESCAPE=27;shaka.ui.Utils={};shaka.ui.Utils.getFirstDescendantWithClassName=function(a,b){var c=shaka.ui.Utils.getDescendantIfExists(a,b);goog.asserts.assert(null!=c,"Should not be null!");return c};goog.exportSymbol("shaka.ui.Utils.getFirstDescendantWithClassName",shaka.ui.Utils.getFirstDescendantWithClassName);shaka.ui.Utils.getDescendantIfExists=function(a,b){var c=a.getElementsByClassName(b);return c.length?c[0]:null};
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=
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);
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(){};
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)};
1473
+ shaka.ui.RangeElement.prototype.setBarValueForTouch_=function(a){a.preventDefault();a=a.changedTouches[0];var b=this.bar.getBoundingClientRect();a=this.bar.max/b.width*(a.clientX-b.left);a<this.bar.min?a=this.bar.min:a>this.bar.max&&(a=this.bar.max);this.bar.value=a};shaka.ui.Utils={};shaka.ui.Utils.getFirstDescendantWithClassName=function(a,b){var c=shaka.ui.Utils.getDescendantIfExists(a,b);goog.asserts.assert(null!=c,"Should not be null!");return c};goog.exportSymbol("shaka.ui.Utils.getFirstDescendantWithClassName",shaka.ui.Utils.getFirstDescendantWithClassName);shaka.ui.Utils.getDescendantIfExists=function(a,b){var c=a.getElementsByClassName(b);return c.length?c[0]:null};
1446
1474
  shaka.ui.Utils.focusOnTheChosenItem=function(a){a&&(a=shaka.ui.Utils.getDescendantIfExists(a,"shaka-chosen-item"))&&a.parentElement.focus()};shaka.ui.Utils.checkmarkIcon=function(){var a=shaka.util.Dom.createHTMLElement("i");a.classList.add("material-icons");a.classList.add("shaka-chosen-item");a.textContent=shaka.ui.Enums.MaterialDesignIcons.CHECKMARK;a.setAttribute("aria-hidden","true");return a};
1447
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)};
1448
- goog.exportSymbol("shaka.ui.Utils.removeAllChildren",shaka.ui.Utils.removeAllChildren);shaka.ui.ControlsPanel={};
1449
- 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.isSeeking_=!1;this.seekTimer_=new shaka.util.Timer(function(){goog.asserts.assert(null!=e.seekBar_,"Seekbar should not be null!");
1450
- e.video_.currentTime=parseFloat(e.seekBar_.value)});this.mouseStillTimer_=new shaka.util.Timer(function(){e.onMouseStill_()});this.hideSettingsMenusTimer_=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.updateTimeAndSeekRange_()});this.lastTouchEventTime_=null;this.elements_=[];this.localization_=shaka.ui.Controls.createLocalization_();
1451
- this.createDOM_();this.updateLocalizedStrings_();this.eventManager_=new shaka.util.EventManager;this.addEventListeners_();this.pressedKeys_=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;
1452
- 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.seekTimer_&&(a.seekTimer_.stop(),a.seekTimer_=null);a.mouseStillTimer_&&(a.mouseStillTimer_.stop(),a.mouseStillTimer_=null);a.hideSettingsMenusTimer_&&(a.hideSettingsMenusTimer_.stop(),a.hideSettingsMenusTimer_=null);a.timeAndSeekRangeTimer_&&
1453
- (a.timeAndSeekRangeTimer_.stop(),a.timeAndSeekRangeTimer_=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_=[],c.jumpToEnd()}})})};
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_()});
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);
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()+")"))};
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={};
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_=
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;
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_=
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)}})})};
1454
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);
1455
- shaka.ui.Controls.prototype.loadComplete=function(){this.onPlayStateChange_()};goog.exportProperty(shaka.ui.Controls.prototype,"loadComplete",shaka.ui.Controls.prototype.loadComplete);shaka.ui.Controls.prototype.setEnabledShakaControls=function(a){(this.enabled_=a)?(shaka.ui.Utils.setDisplay(this.controlsButtonPanel_.parentElement,!0),this.video_.tabIndex=-1,this.video_.controls=!1):shaka.ui.Utils.setDisplay(this.controlsButtonPanel_.parentElement,!1);this.onPlayStateChange_()};
1456
- 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_};
1457
- 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);
1458
- 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);
1459
- 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_};
1460
- 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);
1461
- shaka.ui.Controls.prototype.getDisplayTime=function(){return this.isSeeking_?Number(this.seekBar_.value):Number(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);
1462
- 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);
1463
- shaka.ui.Controls.prototype.hideSettingsMenus=function(){this.hideSettingsMenusTimer_.tickNow()};goog.exportProperty(shaka.ui.Controls.prototype,"hideSettingsMenus",shaka.ui.Controls.prototype.hideSettingsMenus);
1464
- shaka.ui.Controls.prototype.updateLocalizedStrings_=function(){var a=shaka.ui.Locales.Ids;this.seekBar_&&this.seekBar_.setAttribute(shaka.ui.Constants.ARIA_LABEL,this.localization_.resolve(a.SEEK));this.playButton_.setAttribute(shaka.ui.Constants.ARIA_LABEL,this.localization_.resolve(this.video_.paused&&!this.isSeeking_?a.PLAY:a.PAUSE))};shaka.ui.Controls.prototype.initOptionalElementsToNull_=function(){this.seekBar_=this.seekBarContainer_=null};
1465
- shaka.ui.Controls.prototype.createDOM_=function(){this.initOptionalElementsToNull_();this.videoContainer_.classList.add("shaka-video-container");this.video_.classList.add("shaka-video");this.addControlsContainer_();this.addPlayButton_();this.addBufferingSpinner_();this.addControlsButtonPanel_();this.config_.addSeekBar&&this.addSeekBar_();this.settingsMenus_=Array.from(this.videoContainer_.getElementsByClassName("shaka-settings-menu"));if(!this.seekBar_)for(var a=$jscomp.makeIterator(this.settingsMenus_),
1466
- b=a.next();!b.done;b=a.next())b.value.classList.add("shaka-low-position")};shaka.ui.Controls.prototype.addControlsContainer_=function(){this.controlsContainer_=shaka.util.Dom.createHTMLElement("div");this.controlsContainer_.classList.add("shaka-controls-container");this.videoContainer_.appendChild(this.controlsContainer_)};
1467
- 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.playButton_.setAttribute("icon","play");this.playButtonContainer_.appendChild(this.playButton_)};
1468
- shaka.ui.Controls.prototype.addBufferingSpinner_=function(){goog.asserts.assert(this.playButtonContainer_,"Must have play button container before spinner!");this.bufferingSpinner_=document.createElementNS("http://www.w3.org/2000/svg","svg");this.bufferingSpinner_.setAttribute("class","shaka-spinner-svg");this.bufferingSpinner_.setAttribute("viewBox","0 0 30 30");this.playButton_.appendChild(this.bufferingSpinner_);var a=document.createElementNS("http://www.w3.org/2000/svg","circle");a.setAttribute("class",
1469
- "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");this.bufferingSpinner_.appendChild(a)};
1470
- shaka.ui.Controls.prototype.addControlsButtonPanel_=function(){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");this.controlsContainer_.appendChild(this.controlsButtonPanel_);for(var a=0;a<this.config_.controlPanelElements.length;a++){var b=this.config_.controlPanelElements[a];
1471
- 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)}};
1472
- shaka.ui.Controls.prototype.addEventListeners_=function(){var a=this;this.player_.addEventListener("buffering",function(){a.onBufferingStateChange_()});this.onBufferingStateChange_();this.eventManager_.listen(window,"keydown",this.onKeyDown_.bind(this));this.video_.addEventListener("play",this.onPlayStateChange_.bind(this));this.video_.addEventListener("pause",this.onPlayStateChange_.bind(this));this.video_.addEventListener("ended",this.onPlayStateChange_.bind(this));this.seekBar_&&(this.seekBar_.addEventListener("mousedown",
1473
- this.onSeekStart_.bind(this)),this.seekBar_.addEventListener("touchstart",this.onSeekStart_.bind(this),{passive:!0}),this.seekBar_.addEventListener("input",this.onSeekInput_.bind(this)),this.seekBar_.addEventListener("touchend",this.onSeekEnd_.bind(this)),this.seekBar_.addEventListener("mouseup",this.onSeekEnd_.bind(this)));this.controlsContainer_.addEventListener("touchstart",this.onContainerTouch_.bind(this),{passive:!1});this.controlsContainer_.addEventListener("click",this.onContainerClick_.bind(this));
1474
- for(var b=this.videoContainer_.getElementsByClassName("shaka-no-propagation"),c=0;c<b.length;c++)b[c].addEventListener("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];d.addEventListener("mouseover",function(){a.overrideCssShowControls_=!0});d.addEventListener("mouseleave",function(){a.overrideCssShowControls_=!1})}this.videoContainer_.addEventListener("mousemove",this.onMouseMove_.bind(this));
1475
- this.videoContainer_.addEventListener("touchmove",this.onMouseMove_.bind(this),{passive:!0});this.videoContainer_.addEventListener("touchend",this.onMouseMove_.bind(this),{passive:!0});this.videoContainer_.addEventListener("mouseleave",this.onMouseLeave_.bind(this));this.controlsButtonPanel_.addEventListener("click",function(){a.hideSettingsMenusTimer_.tickNow()});this.castProxy_.addEventListener("caststatuschanged",function(b){a.onCastStatusChange_(b)});this.videoContainer_.addEventListener("keyup",
1476
- this.onKeyUp_.bind(this));this.localization_.addEventListener(shaka.ui.Localization.LOCALE_UPDATED,function(b){return a.updateLocalizedStrings_()});this.localization_.addEventListener(shaka.ui.Localization.LOCALE_CHANGED,function(b){return a.updateLocalizedStrings_()})};
1477
- shaka.ui.Controls.prototype.addSeekBar_=function(){this.seekBarContainer_=shaka.util.Dom.createHTMLElement("div");this.seekBarContainer_.classList.add("shaka-seek-bar-container");this.seekBar_=document.createElement("input");this.seekBar_.classList.add("shaka-seek-bar");this.seekBar_.type="range";this.seekBar_.setAttribute("step","any");this.seekBar_.setAttribute("min","0");this.seekBar_.setAttribute("max","1");this.seekBar_.value="0";this.seekBar_.classList.add("shaka-no-propagation");this.seekBar_.classList.add("shaka-show-controls-on-mouse-over");
1478
- this.seekBarContainer_.appendChild(this.seekBar_);this.controlsContainer_.appendChild(this.seekBarContainer_)};
1479
- 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.setControlsOpacity_(shaka.ui.Enums.Opacity.OPAQUE),
1480
- this.updateTimeAndSeekRange_(),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()};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)};
1481
- shaka.ui.Controls.prototype.onContainerTouch_=function(a){this.video_.duration&&(this.isOpaque_()?this.lastTouchEventTime_=Date.now():(this.onMouseMove_(a),a.preventDefault()))};shaka.ui.Controls.prototype.onContainerClick_=function(a){if(this.enabled_)if(this.anySettingsMenusAreOpen())this.hideSettingsMenusTimer_.tickNow();else this.onPlayPauseClick_()};
1482
- shaka.ui.Controls.prototype.onPlayPauseClick_=function(){this.enabled_&&this.video_.duration&&(this.player_.cancelTrickPlay(),this.video_.paused?this.video_.play():this.video_.pause())};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")};
1483
- 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)))};
1484
- shaka.ui.Controls.prototype.onSeekStart_=function(){this.enabled_&&(this.isSeeking_=!0,this.video_.pause())};shaka.ui.Controls.prototype.onSeekInput_=function(){this.enabled_&&this.video_.duration&&(this.updateTimeAndSeekRange_(),this.seekTimer_.tickAfter(.125))};shaka.ui.Controls.prototype.onSeekEnd_=function(){this.enabled_&&(this.seekTimer_.tickNow(),this.isSeeking_=!1,this.video_.play())};
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_),
1503
+ b=a.next();!b.done;b=a.next())b.value.classList.add("shaka-low-position")};
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)})};
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)};
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");
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)};
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_()})};
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_(),
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()};
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()))};
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())};
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()};
1485
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);
1486
- break;case "End":this.seek_(this.player_.seekRange().end,a);break;case " ":if(e)this.onPlayPauseClick_()}};shaka.ui.Controls.prototype.onBufferingStateChange_=function(){this.player_.isBuffering()?this.bufferingSpinner_.setAttribute("class","shaka-spinner-svg"):this.bufferingSpinner_.setAttribute("class","shaka-spinner-svg shaka-hidden")};
1487
- shaka.ui.Controls.prototype.isOpaque_=function(){return this.enabled_?this.castProxy_&&this.castProxy_.isCasting()?!0:null!=this.controlsContainer_.getAttribute("shown"):!1};shaka.ui.Controls.prototype.seek_=function(a,b){this.video_.currentTime=a;this.updateTimeAndSeekRange_()};
1488
- shaka.ui.Controls.prototype.updateTimeAndSeekRange_=function(){if(this.isOpaque_()){var a=shaka.ui.Constants,b=this.isSeeking_?Number(this.seekBar_.value):Number(this.video_.currentTime),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.seekBar_&&(this.seekBar_.min=f.start,this.seekBar_.max=f.end);this.player_.isLive()?(b=Math.max(0,Math.floor(f.end-b)),!this.isSeeking_&&this.seekBar_&&(this.seekBar_.value=
1489
- f.end-b)):!this.isSeeking_&&this.seekBar_&&(this.seekBar_.value=b);if(this.seekBar_)if(f=this.player_.seekRange(),f.end-f.start<a.MIN_SEEK_WINDOW_TO_SHOW_SEEKBAR){shaka.ui.Utils.setDisplay(this.seekBarContainer_,!1);a=$jscomp.makeIterator(this.settingsMenus_);for(var h=a.next();!h.done;h=a.next())h.value.classList.add("shaka-low-position")}else{shaka.ui.Utils.setDisplay(this.seekBarContainer_,!0);var k=$jscomp.makeIterator(this.settingsMenus_);for(h=k.next();!h.done;h=k.next())h.value.classList.remove("shaka-low-position");
1490
- h=["to right"];0==c?h.push("#000 0%"):(c=(Math.max(d,f.start)-f.start)/g||0,e=(Math.min(e,f.end)-f.start)/g||0,b=(b-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.seekBarContainer_.style.background="linear-gradient("+h.join(",")+")"}this.dispatchEvent(new shaka.util.FakeEvent("timeandseekrangeupdated"))}};
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};
1521
+ shaka.ui.Controls.prototype.seek_=function(a,b){this.video_.currentTime=a;this.isOpaque_()&&this.updateTimeAndSeekRange_()};
1522
+ shaka.ui.Controls.prototype.updateTimeAndSeekRange_=function(){if(this.seekBar_)if(this.seekBar_.setValue(this.video_.currentTime),this.seekBar_.update(),this.seekBar_.isShowing())for(var a=$jscomp.makeIterator(this.settingsMenus_),b=a.next();!b.done;b=a.next())b.value.classList.remove("shaka-low-position");else for(a=$jscomp.makeIterator(this.settingsMenus_),b=a.next();!b.done;b=a.next())b.value.classList.add("shaka-low-position");this.dispatchEvent(new shaka.util.FakeEvent("timeandseekrangeupdated"))};
1491
1523
  shaka.ui.Controls.prototype.onKeyDown_=function(a){this.pressedKeys_.add(a.keyCode);var b=this.anySettingsMenusAreOpen();a.keyCode==shaka.ui.Constants.KEYCODE_TAB&&(this.controlsContainer_.classList.add("shaka-keyboard-navigation"),this.eventManager_.listen(window,"mousedown",this.onMouseDown_.bind(this)));a.keyCode==shaka.ui.Constants.KEYCODE_ESCAPE&&this.hideSettingsMenusTimer_.tickNow();b&&this.pressedKeys_.has(shaka.ui.Constants.KEYCODE_TAB)&&this.keepFocusInMenu_(a)};
1492
1524
  shaka.ui.Controls.prototype.keepFocusInMenu_=function(a){var b=this.settingsMenus_.filter(function(a){return a.classList.contains("shaka-displayed")})[0];if(b.childNodes.length){for(var c=b.firstElementChild;c&&c.classList.contains("shaka-hidden");)c=c.nextElementSibling;for(b=b.lastElementChild;b&&b.classList.contains("shaka-hidden");)b=b.previousElementSibling;var d=document.activeElement;this.pressedKeys_.has(shaka.ui.Constants.KEYCODE_SHIFT)?d==c&&(a.preventDefault(),b.focus()):d==b&&(a.preventDefault(),
1493
1525
  c.focus())}};shaka.ui.Controls.prototype.onMouseDown_=function(){this.eventManager_.unlisten(window,"mousedown");this.eventManager_.listen(window,"keydown",this.onKeyDown_.bind(this))};shaka.ui.Controls.prototype.setControlsOpacity_=function(a){a==shaka.ui.Enums.Opacity.OPAQUE?this.controlsContainer_.setAttribute("shown","true"):(this.controlsContainer_.removeAttribute("shown"),this.hideSettingsMenusTimer_.tickAfter(2))};
1494
- shaka.ui.Controls.createLocalization_=function(){var a=new shaka.ui.Localization("en");shaka.ui.Locales.apply(a);a.changeLocale(navigator.languages||[]);return a};shaka.ui.OverflowMenu=function(a,b){shaka.ui.Element.call(this,a,b);var c=this;this.config_=this.controls.getConfig();this.controlsContainer_=this.controls.getControlsContainer();this.children_=[];this.addOverflowMenuButton_();this.addOverflowMenu_();this.createChildren_();for(var d=this.controls.getVideoContainer().getElementsByClassName("shaka-back-to-overflow-button"),e=0;e<d.length;e++)d[e].addEventListener("click",function(){c.controls.hideSettingsMenus();shaka.ui.Utils.setDisplay(c.overflowMenu_,
1526
+ shaka.ui.Controls.createLocalization_=function(){var a=new shaka.ui.Localization("en");shaka.ui.Locales.apply(a);a.changeLocale(navigator.languages||[]);return a};shaka.ui.OverflowMenu=function(a,b){shaka.ui.Element.call(this,a,b);var c=this;this.config_=this.controls.getConfig();this.controlsContainer_=this.controls.getControlsContainer();this.children_=[];this.addOverflowMenuButton_();this.addOverflowMenu_();this.createChildren_();for(var d=this.controls.getVideoContainer().getElementsByClassName("shaka-back-to-overflow-button"),e=0;e<d.length;e++)this.eventManager.listen(d[e],"click",function(){c.controls.hideSettingsMenus();shaka.ui.Utils.setDisplay(c.overflowMenu_,
1495
1527
  !0);c.overflowMenu_.childNodes.length&&c.overflowMenu_.childNodes[0].focus();c.controls.overrideCssShowControls()});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.controls,"submenuopen",function(){shaka.ui.Utils.setDisplay(c.overflowMenu_,!1)});this.eventManager.listen(this.overflowMenu_,"touchstart",
1496
1528
  function(a){c.controls.setLastTouchEventTime(Date.now());a.stopPropagation()});this.eventManager.listen(this.overflowMenuButton_,"click",function(){c.onOverflowMenuButtonClick_()});this.eventManager.listen(this.controlsContainer_,"touchstart",function(a){c.overflowMenu_.classList.contains("shaka-displayed")&&(shaka.ui.Utils.setDisplay(c.overflowMenu_,!1),a.preventDefault())});this.updateAriaLabel_()};$jscomp.inherits(shaka.ui.OverflowMenu,shaka.ui.Element);
1497
1529
  goog.exportSymbol("shaka.ui.OverflowMenu",shaka.ui.OverflowMenu);shaka.ui.OverflowMenu.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.controlsContainer_=null,c.yield(Promise.all(a.children_.map(function(a){return a.destroy()})),2);case 2:return a.children_=[],c.yield(shaka.ui.Element.prototype.destroy.call(a),0)}})})};
@@ -1500,17 +1532,19 @@ shaka.ui.OverflowMenu.prototype.addOverflowMenu_=function(){this.overflowMenu_=s
1500
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_)};
1501
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)}};
1502
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()}};
1503
- 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,
1504
- "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);
1505
- 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");
1506
- 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_)};
1507
- 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");
1508
- 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_)};
1509
- 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_)};
1510
- 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"))};
1511
- 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)};
1512
- 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)};
1513
- 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=
1514
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_();
1515
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);
1516
1550
  goog.exportSymbol("shaka.ui.CastButton",shaka.ui.CastButton);
@@ -1520,81 +1554,67 @@ shaka.ui.CastButton.prototype.onCastStatusChange_=function(){var a=this.castProx
1520
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)};
1521
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,
1522
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))};
1523
- 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,
1524
- 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_()})};
1525
- $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))};
1526
- shaka.ui.FullscreenButton.prototype.updateIcon_=function(){this.button_.textContent=document.fullscreenElement?shaka.ui.Enums.MaterialDesignIcons.EXIT_FULLSCREEN:shaka.ui.Enums.MaterialDesignIcons.FULLSCREEN};
1527
- 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",
1528
- {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(){};
1529
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,
1530
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);
1531
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(){};
1532
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");
1533
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_()||
1534
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_,
1535
- "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};
1536
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",
1537
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)};
1538
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)};
1539
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)};
1540
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)};
1541
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)}})})};
1542
- 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,
1543
- 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);
1544
- 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};
1545
- 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.currentTime_.textContent="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_()});
1546
- this.eventManager.listen(this.player,"trackschanged",function(){c.onTracksChanged_()})};$jscomp.inherits(shaka.ui.PresentationTimeTracker,shaka.ui.Element);goog.exportSymbol("shaka.ui.PresentationTimeTracker",shaka.ui.PresentationTimeTracker);
1547
- 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.currentTime_.textContent="- "+this.buildTimeString_(b,c),this.currentTime_.disabled=!1):(this.currentTime_.textContent=this.localization.resolve(shaka.ui.Locales.Ids.LIVE),this.currentTime_.disabled=!0)):(a=3600<=c,this.currentTime_.textContent=
1548
- this.buildTimeString_(b,a),c&&(this.currentTime_.textContent+=" / "+this.buildTimeString_(c,a)),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))};
1549
- 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,
1550
- "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);
1551
- 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");
1552
- 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_)};
1553
- 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");
1554
- 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_)};
1555
- 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_,
1556
- "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");d.addEventListener("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()),
1557
- 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");b.addEventListener("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);
1558
- 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"))}};
1559
- 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)};
1560
- 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=
1561
- 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,
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,
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)};
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+=" / "+
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))};
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,
1562
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))};
1563
- 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);
1564
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);
1565
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};
1566
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);
1567
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!=
1568
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)};
1569
- 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");if(b.backgroundImage&&b.region){var f=shaka.text.CueRegion.units.PERCENTAGE,g=b.region.widthUnits==f?
1570
- "%":"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?this.textContainer_.top=b.line+
1571
- "%":b.lineAlign==c.lineAlign.END&&(this.textContainer_.bottom=b.line+"%"):b.writingMode==c.writingMode.VERTICAL_LEFT_TO_RIGHT?b.lineAlign==c.lineAlign.START?this.textContainer_.left=b.line+"%":b.lineAlign==c.lineAlign.END&&(this.textContainer_.right=b.line+"%"):b.lineAlign==c.lineAlign.START?this.textContainer_.right=b.line+"%":b.lineAlign==c.lineAlign.END&&(this.textContainer_.left=b.line+"%"));d.lineHeight=b.lineHeight;b.position&&(b.writingMode==c.writingMode.HORIZONTAL_TOP_TO_BOTTOM?this.textContainer_.paddingLeft=
1572
- b.position:this.textContainer_.paddingTop=b.position);b.positionAlign==c.positionAlign.LEFT?e["float"]="left":b.positionAlign==c.positionAlign.RIGHT?e["float"]="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?this.textContainer_.width=b.size+"%":this.textContainer_.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_()});
1573
- 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);
1574
- 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",
1575
- "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_)};
1576
- 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");
1577
- 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());
1578
- 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_)};
1579
- 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"))};
1580
- 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");b.addEventListener("click",function(){a.player.setTextTrackVisibility(!1);
1581
- 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"))};
1582
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()}})})};
1583
- 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)};
1584
- 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.videoContainer_=b;this.video_=c;this.config_=this.defaultConfig_();b.dataset.shakaPlayerContainer="";b.ui=this;this.isMobile()&&b.classList.add("shaka-mobile");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);
1585
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()};
1586
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);
1587
- 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!");var c=shaka.util.Dom,d=this.videoContainer_.querySelector(".shaka-text-container"),e=!1,f=this.videoContainer_.querySelector(".shaka-controls-container");null!=f&&(e=f.getAttribute("shown"));shaka.util.Dom.removeAllChildren(this.videoContainer_);
1588
- this.videoContainer_.appendChild(this.video_);shaka.util.ConfigUtils.mergeConfigObjects(this.config_,a,this.defaultConfig_(),{},"");this.config_.castReceiverAppId&&!this.config_.overflowMenuButtons.includes("cast")&&this.config_.overflowMenuButtons.push("cast");goog.asserts.assert(null!=this.player_,"Should have a player!");this.controls_=new shaka.ui.Controls(this.player_,this.videoContainer_,this.video_,this.config_);f=c.getElementByClassName("shaka-controls-container",this.videoContainer_);f.setAttribute("shown",
1589
- e);d&&this.videoContainer_.appendChild(d);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()};goog.exportProperty(shaka.ui.Overlay.prototype,"getPlayer",shaka.ui.Overlay.prototype.getPlayer);
1590
- 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);
1591
- 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:""}};
1592
- 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&&
1593
- 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);
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");
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()};
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);
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);
1594
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."),
1595
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};
1596
- "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.Element.call(this,a,b);var c=this;this.container_=shaka.util.Dom.createHTMLElement("div");this.container_.classList.add("shaka-volume-bar-container");this.bar_=document.createElement("input");this.bar_.classList.add("shaka-volume-bar");this.bar_.setAttribute("type","range");this.bar_.setAttribute("step","any");this.bar_.setAttribute("min","0");this.bar_.setAttribute("max","1");this.bar_.setAttribute("value","0");this.container_.appendChild(this.bar_);this.parent.appendChild(this.container_);
1597
- this.updateAriaLabel_();this.eventManager.listen(this.video,"volumechange",function(){c.onVolumeStateChange_()});this.eventManager.listen(this.bar_,"input",function(){c.onVolumeInput_()});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.onVolumeStateChange_()};$jscomp.inherits(shaka.ui.VolumeBar,shaka.ui.Element);
1598
- goog.exportSymbol("shaka.ui.VolumeBar",shaka.ui.VolumeBar);shaka.ui.VolumeBar.prototype.onVolumeStateChange_=function(){this.bar_.value=this.video.muted?0:this.video.volume;var a=["to right"];a.push(shaka.ui.Constants.VOLUME_BAR_VOLUME_LEVEL_COLOR+100*this.bar_.value+"%");a.push(shaka.ui.Constants.VOLUME_BAR_BASE_COLOR+100*this.bar_.value+"%");a.push(shaka.ui.Constants.VOLUME_BAR_BASE_COLOR+"100%");this.container_.style.background="linear-gradient("+a.join(",")+")"};
1599
- shaka.ui.VolumeBar.prototype.onVolumeInput_=function(){this.video.volume=parseFloat(this.bar_.value);this.video.muted=0==this.video.volume?!0:!1};shaka.ui.VolumeBar.prototype.updateAriaLabel_=function(){this.bar_.setAttribute(shaka.ui.Constants.ARIA_LABEL,this.localization.resolve(shaka.ui.Locales.Ids.VOLUME))};shaka.ui.VolumeBar.Factory=function(){};shaka.ui.VolumeBar.Factory.prototype.create=function(a,b){return new shaka.ui.VolumeBar(a,b)};shaka.ui.Controls.registerElement("volume",new shaka.ui.VolumeBar.Factory);
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_()};
1617
+ $jscomp.inherits(shaka.ui.VolumeBar,shaka.ui.RangeElement);goog.exportSymbol("shaka.ui.VolumeBar",shaka.ui.VolumeBar);shaka.ui.VolumeBar.prototype.onChange=function(){this.video.volume=this.getValue();this.video.muted=0==this.video.volume?!0:!1};
1618
+ shaka.ui.VolumeBar.prototype.onVolumeStateChange_=function(){this.video.muted?this.setValue(0):this.setValue(this.video.volume);var a=["to right"];a.push(shaka.ui.Constants.VOLUME_BAR_VOLUME_LEVEL_COLOR+100*this.getValue()+"%");a.push(shaka.ui.Constants.VOLUME_BAR_BASE_COLOR+100*this.getValue()+"%");a.push(shaka.ui.Constants.VOLUME_BAR_BASE_COLOR+"100%");this.container.style.background="linear-gradient("+a.join(",")+")"};
1619
+ shaka.ui.VolumeBar.prototype.updateAriaLabel_=function(){this.bar.setAttribute(shaka.ui.Constants.ARIA_LABEL,this.localization.resolve(shaka.ui.Locales.Ids.VOLUME))};shaka.ui.VolumeBar.Factory=function(){};shaka.ui.VolumeBar.Factory.prototype.create=function(a,b){return new shaka.ui.VolumeBar(a,b)};shaka.ui.Controls.registerElement("volume",new shaka.ui.VolumeBar.Factory);
1600
1620
  //# sourceMappingURL=shaka-player.ui.debug.map