shaka-player 2.5.4 → 2.5.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/.csslintrc +13 -0
  2. package/CHANGELOG.md +56 -0
  3. package/build/build.py +4 -1
  4. package/build/check.py +17 -0
  5. package/build/compiler.py +40 -0
  6. package/build/types/core +1 -0
  7. package/build/types/ui +4 -1
  8. package/demo/asset_card.js +41 -11
  9. package/demo/cast_receiver/receiver_app.css +19 -13
  10. package/demo/close_button.js +0 -6
  11. package/demo/common/asset.js +6 -1
  12. package/demo/common/assets.js +72 -14
  13. package/demo/demo.less +105 -16
  14. package/demo/index.html +8 -5
  15. package/demo/load.js +5 -7
  16. package/demo/main.js +81 -16
  17. package/dist/.csslintstamp +0 -0
  18. package/dist/controls.css +1 -1
  19. package/dist/controls.css.map +1 -1
  20. package/dist/demo.compiled.debug.js +46 -39
  21. package/dist/demo.compiled.debug.map +3 -3
  22. package/dist/demo.compiled.js +46 -39
  23. package/dist/demo.compiled.map +3 -3
  24. package/dist/demo.css +1 -1
  25. package/dist/demo.css.map +1 -1
  26. package/dist/deps.js +11 -7
  27. package/dist/receiver.compiled.debug.js +10 -6
  28. package/dist/receiver.compiled.debug.map +3 -3
  29. package/dist/receiver.compiled.js +10 -6
  30. package/dist/receiver.compiled.map +3 -3
  31. package/dist/shaka-player.compiled.debug.externs.js +123 -92
  32. package/dist/shaka-player.compiled.debug.js +113 -105
  33. package/dist/shaka-player.compiled.debug.map +4 -4
  34. package/dist/shaka-player.compiled.externs.js +123 -92
  35. package/dist/shaka-player.compiled.js +551 -548
  36. package/dist/shaka-player.compiled.map +4 -4
  37. package/dist/shaka-player.ui.debug.externs.js +170 -101
  38. package/dist/shaka-player.ui.debug.js +187 -188
  39. package/dist/shaka-player.ui.debug.map +4 -4
  40. package/dist/shaka-player.ui.externs.js +170 -101
  41. package/dist/shaka-player.ui.js +651 -651
  42. package/dist/shaka-player.ui.map +3 -3
  43. package/docs/tutorials/drm-config.md +1 -0
  44. package/docs/tutorials/fairplay.md +77 -0
  45. package/docs/tutorials/index.json +1 -0
  46. package/docs/tutorials/ui-customization.md +3 -0
  47. package/docs/tutorials/ui.md +3 -1
  48. package/externs/mediasession.js +16 -1
  49. package/externs/shaka/net.js +5 -1
  50. package/externs/shaka/player.js +136 -90
  51. package/externs/webkitmediakeys.js +4 -0
  52. package/lib/dash/content_protection.js +33 -1
  53. package/lib/dash/dash_parser.js +12 -4
  54. package/lib/hls/hls_parser.js +20 -4
  55. package/lib/media/drm_engine.js +29 -2
  56. package/lib/media/media_source_engine.js +7 -3
  57. package/lib/media/playhead.js +8 -3
  58. package/lib/media/streaming_engine.js +24 -8
  59. package/lib/media/video_wrapper.js +8 -3
  60. package/lib/net/networking_engine.js +1 -0
  61. package/lib/player.js +3 -2
  62. package/lib/polyfill/patchedmediakeys_apple.js +2 -72
  63. package/lib/util/error.js +12 -0
  64. package/lib/util/fairplay_utils.js +122 -0
  65. package/lib/util/player_configuration.js +5 -0
  66. package/lib/util/pssh.js +41 -0
  67. package/package.json +4 -3
  68. package/shaka-player.uncompiled.js +5 -1
  69. package/test/dash/dash_parser_content_protection_unit.js +35 -1
  70. package/test/dash/dash_parser_manifest_unit.js +31 -0
  71. package/test/hls/hls_live_unit.js +7 -1
  72. package/test/hls/hls_parser_unit.js +50 -0
  73. package/test/media/media_source_engine_integration.js +12 -0
  74. package/test/media/playhead_unit.js +2 -0
  75. package/test/player_external.js +3 -2
  76. package/test/player_integration.js +75 -0
  77. package/test/test/externs/jasmine.js +6 -0
  78. package/test/test/util/test_scheme.js +32 -1
  79. package/test/test/util/ui_utils.js +41 -0
  80. package/test/ui/ui_unit.js +129 -3
  81. package/ui/audio_language_selection.js +17 -96
  82. package/ui/big_play_button.js +61 -0
  83. package/ui/controls.js +111 -86
  84. package/ui/controls.less +3 -5
  85. package/ui/externs/ui.js +14 -2
  86. package/ui/fullscreen_button.js +2 -52
  87. package/ui/less/buttons.less +8 -8
  88. package/ui/less/containers.less +21 -21
  89. package/ui/less/general.less +11 -0
  90. package/ui/less/other_elements.less +2 -1
  91. package/ui/less/overflow_menu.less +11 -10
  92. package/ui/less/range_elements.less +6 -0
  93. package/ui/less/spinner.less +2 -0
  94. package/ui/pip_button.js +1 -1
  95. package/ui/{play_pause_button.js → play_button.js} +17 -47
  96. package/ui/resolution_selection.js +41 -104
  97. package/ui/seek_bar.js +15 -17
  98. package/ui/settings_menu.js +113 -0
  99. package/ui/small_play_button.js +73 -0
  100. package/ui/text_displayer.js +2 -2
  101. package/ui/text_selection.js +39 -105
  102. package/ui/ui.js +12 -0
@@ -7,9 +7,9 @@ $jscomp.polyfill("Promise",function(a){function b(){this.batch_=null}function c(
7
7
  0)};b.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var a=this.batch_;this.batch_=[];for(var b=0;b<a.length;++b){var c=a[b];a[b]=null;try{c()}catch(k){this.asyncThrow_(k)}}}this.batch_=null};b.prototype.asyncThrow_=function(a){this.asyncExecuteFunction(function(){throw a;})};var e=function(a){this.state_=0;this.result_=void 0;this.onSettledCallbacks_=[];var b=this.createResolveAndReject_();try{a(b.resolve,b.reject)}catch(l){b.reject(l)}};e.prototype.createResolveAndReject_=
8
8
  function(){function a(a){return function(d){c||(c=!0,a.call(b,d))}}var b=this,c=!1;return{resolve:a(this.resolveTo_),reject:a(this.reject_)}};e.prototype.resolveTo_=function(a){if(a===this)this.reject_(new TypeError("A Promise cannot resolve to itself"));else if(a instanceof e)this.settleSameAsPromise_(a);else{a:switch(typeof a){case "object":var b=null!=a;break a;case "function":b=!0;break a;default:b=!1}b?this.resolveToNonPromiseObj_(a):this.fulfill_(a)}};e.prototype.resolveToNonPromiseObj_=function(a){var b=
9
9
  void 0;try{b=a.then}catch(l){this.reject_(l);return}"function"==typeof b?this.settleSameAsThenable_(b,a):this.fulfill_(a)};e.prototype.reject_=function(a){this.settle_(2,a)};e.prototype.fulfill_=function(a){this.settle_(1,a)};e.prototype.settle_=function(a,b){if(0!=this.state_)throw Error("Cannot settle("+a+", "+b+"): Promise already settled in state"+this.state_);this.state_=a;this.result_=b;this.executeOnSettledCallbacks_()};e.prototype.executeOnSettledCallbacks_=function(){if(null!=this.onSettledCallbacks_){for(var a=
10
- 0;a<this.onSettledCallbacks_.length;++a)f.asyncExecute(this.onSettledCallbacks_[a]);this.onSettledCallbacks_=null}};var f=new b;e.prototype.settleSameAsPromise_=function(a){var b=this.createResolveAndReject_();a.callWhenSettled_(b.resolve,b.reject)};e.prototype.settleSameAsThenable_=function(a,b){var c=this.createResolveAndReject_();try{a.call(b,c.resolve,c.reject)}catch(k){c.reject(k)}};e.prototype.then=function(a,b){function c(a,b){return"function"==typeof a?function(b){try{d(a(b))}catch(r){h(r)}}:
11
- b}var d,h,g=new e(function(a,b){d=a;h=b});this.callWhenSettled_(c(a,d),c(b,h));return g};e.prototype["catch"]=function(a){return this.then(void 0,a)};e.prototype.callWhenSettled_=function(a,b){function c(){switch(d.state_){case 1:a(d.result_);break;case 2:b(d.result_);break;default:throw Error("Unexpected state: "+d.state_);}}var d=this;null==this.onSettledCallbacks_?f.asyncExecute(c):this.onSettledCallbacks_.push(c)};e.resolve=c;e.reject=function(a){return new e(function(b,c){c(a)})};e.race=function(a){return new e(function(b,
12
- d){for(var e=$jscomp.makeIterator(a),h=e.next();!h.done;h=e.next())c(h.value).callWhenSettled_(b,d)})};e.all=function(a){var b=$jscomp.makeIterator(a),d=b.next();return d.done?c([]):new e(function(a,e){function h(b){return function(c){f[b]=c;g--;0==g&&a(f)}}var f=[],g=0;do f.push(void 0),g++,c(d.value).callWhenSettled_(h(f.length-1),e),d=b.next();while(!d.done)})};return e},"es6","es3");
10
+ 0;a<this.onSettledCallbacks_.length;++a)f.asyncExecute(this.onSettledCallbacks_[a]);this.onSettledCallbacks_=null}};var f=new b;e.prototype.settleSameAsPromise_=function(a){var b=this.createResolveAndReject_();a.callWhenSettled_(b.resolve,b.reject)};e.prototype.settleSameAsThenable_=function(a,b){var c=this.createResolveAndReject_();try{a.call(b,c.resolve,c.reject)}catch(k){c.reject(k)}};e.prototype.then=function(a,b){function c(a,b){return"function"==typeof a?function(b){try{d(a(b))}catch(r){g(r)}}:
11
+ b}var d,g,f=new e(function(a,b){d=a;g=b});this.callWhenSettled_(c(a,d),c(b,g));return f};e.prototype["catch"]=function(a){return this.then(void 0,a)};e.prototype.callWhenSettled_=function(a,b){function c(){switch(d.state_){case 1:a(d.result_);break;case 2:b(d.result_);break;default:throw Error("Unexpected state: "+d.state_);}}var d=this;null==this.onSettledCallbacks_?f.asyncExecute(c):this.onSettledCallbacks_.push(c)};e.resolve=c;e.reject=function(a){return new e(function(b,c){c(a)})};e.race=function(a){return new e(function(b,
12
+ d){for(var e=$jscomp.makeIterator(a),f=e.next();!f.done;f=e.next())c(f.value).callWhenSettled_(b,d)})};e.all=function(a){var b=$jscomp.makeIterator(a),d=b.next();return d.done?c([]):new e(function(a,e){function f(b){return function(c){g[b]=c;h--;0==h&&a(g)}}var g=[],h=0;do g.push(void 0),h++,c(d.value).callWhenSettled_(f(g.length-1),e),d=b.next();while(!d.done)})};return e},"es6","es3");
13
13
  $jscomp.asyncExecutePromiseGenerator=function(a){function b(b){return a.next(b)}function c(b){return a["throw"](b)}return new Promise(function(d,e){function f(a){a.done?d(a.value):Promise.resolve(a.value).then(b,c).then(f,e)}f(a.next())})};$jscomp.asyncExecutePromiseGeneratorFunction=function(a){return $jscomp.asyncExecutePromiseGenerator(a())};$jscomp.objectCreate=$jscomp.ASSUME_ES5||"function"==typeof Object.create?Object.create:function(a){var b=function(){};b.prototype=a;return new b};
14
14
  $jscomp.underscoreProtoCanBeSet=function(){var a={a:!0},b={};try{return b.__proto__=a,b.a}catch(c){}return!1};$jscomp.setPrototypeOf="function"==typeof Object.setPrototypeOf?Object.setPrototypeOf:$jscomp.underscoreProtoCanBeSet()?function(a,b){a.__proto__=b;if(a.__proto__!==b)throw new TypeError(a+" is not extensible");return a}:null;
15
15
  $jscomp.inherits=function(a,b){a.prototype=$jscomp.objectCreate(b.prototype);a.prototype.constructor=a;if($jscomp.setPrototypeOf){var c=$jscomp.setPrototypeOf;c(a,b)}else for(c in b)if("prototype"!=c)if(Object.defineProperties){var d=Object.getOwnPropertyDescriptor(b,c);d&&Object.defineProperty(a,c,d)}else a[c]=b[c];a.superClass_=b.prototype};$jscomp.generator={};
@@ -28,7 +28,7 @@ $jscomp.generator.Engine_.prototype.yieldAllStep_=function(a,b,c){try{var d=a.ca
28
28
  $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}};
29
29
  $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))};
30
30
  $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.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(n){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;
31
+ $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(p){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;
32
32
  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=
33
33
  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(){};
34
34
  $jscomp.polyfill("Map",function(a){function b(){if($jscomp.ASSUME_NO_NATIVE_MAP||!a||"function"!=typeof a||!a.prototype.entries||"function"!=typeof Object.seal)return!1;try{var b=Object.seal({x:4}),c=new a($jscomp.makeIterator([[b,"s"]]));if("s"!=c.get(b)||1!=c.size||c.get({x:4})||c.set({x:4},"t")!=c||2!=c.size)return!1;var d=c.entries(),e=d.next();if(e.done||e.value[0]!=b||"s"!=e.value[1])return!1;e=d.next();return e.done||4!=e.value[0].x||"t"!=e.value[1]||!d.next().done?!1:!0}catch(t){return!1}}
@@ -69,10 +69,12 @@ goog.inherits=function(a,b){function c(){}c.prototype=b.prototype;a.superClass_=
69
69
  See the License for the specific language governing permissions and
70
70
  limitations under the License.
71
71
  */
72
- var shakaDemo={AssetCard:function(a,b,c,d){this.card_=document.createElement("div");this.asset_=b;this.actions_=document.createElement("div");this.featureIconsContainer_=document.createElement("div");this.progressBar_=document.createElement("progress");this.remakeButtonsFn_=d;this.card_.classList.add("mdl-card-wide");this.card_.classList.add("mdl-card");this.card_.classList.add("mdl-shadow--2dp");this.card_.classList.add("asset-card");d=document.createElement("div");d.classList.add("mdl-card__title");
73
- this.card_.appendChild(d);var e=document.createElement("h2");e.classList.add("mdl-card__title-text");e.textContent=b.shortName||b.name;d.appendChild(e);if(b.iconUri){d=document.createElement("picture");e=document.createElement("source");e.srcset=b.iconUri.replace(/.png$/,".webp");e.type="image/webp";var f=document.createElement("source");f.srcset=b.iconUri;f.type="image/png";var g=document.createElement("img");g.src=b.iconUri;g.alt="";d.appendChild(e);d.appendChild(f);d.appendChild(g);this.card_.appendChild(d)}b.description&&
74
- c&&(c=document.createElement("div"),c.classList.add("mdl-card__supporting-text"),c.textContent=b.description,this.card_.appendChild(c));this.card_.appendChild(this.featureIconsContainer_);this.addFeatureIcons_(b);this.actions_.classList.add("mdl-card__actions");this.actions_.classList.add("mdl-card--border");this.card_.appendChild(this.actions_);c=document.createElement("div");this.progressBar_.classList.add("hidden");this.progressBar_.setAttribute("max",1);this.progressBar_.setAttribute("value",
75
- b.storedProgress);c.appendChild(this.progressBar_);this.card_.appendChild(c);a.appendChild(this.card_);this.remakeButtons()}};shakaDemo.AssetCard.prototype.addFeatureIcon_=function(a,b){var c=document.createElement("div");c.classList.add("feature-icon");c.setAttribute("icon",a);this.featureIconsContainer_.appendChild(c);shakaDemo.Tooltips.make(c,b)};
72
+ var shakaDemo={AssetCard:function(a,b,c,d){this.card_=document.createElement("div");this.asset_=b;this.actions_=document.createElement("div");this.featureIconsContainer_=document.createElement("div");this.progressCircle_=document.createElement("div");this.progressCircleSvg_=document.createElementNS("http://www.w3.org/2000/svg","svg");this.progressCircleBack_=document.createElementNS("http://www.w3.org/2000/svg","circle");this.progressCircleBar_=document.createElementNS("http://www.w3.org/2000/svg",
73
+ "circle");this.remakeButtonsFn_=d;this.card_.classList.add("mdl-card-wide");this.card_.classList.add("mdl-card");this.card_.classList.add("mdl-shadow--2dp");this.card_.classList.add("asset-card");d=document.createElement("div");d.classList.add("mdl-card__title");this.card_.appendChild(d);var e=document.createElement("h2");e.classList.add("mdl-card__title-text");e.textContent=c?b.shortName||b.name:b.name;d.appendChild(e);if(b.iconUri){d=document.createElement("picture");e=document.createElement("source");
74
+ e.srcset=b.iconUri.replace(/.png$/,".webp");e.type="image/webp";var f=document.createElement("source");f.srcset=b.iconUri;f.type="image/png";var g=document.createElement("img");g.src=b.iconUri;g.alt="";d.appendChild(e);d.appendChild(f);d.appendChild(g);this.card_.appendChild(d)}b.description&&c&&(c=document.createElement("div"),c.classList.add("mdl-card__supporting-text"),c.textContent=b.description,this.card_.appendChild(c));this.card_.appendChild(this.featureIconsContainer_);this.addFeatureIcons_(b);
75
+ this.actions_.classList.add("mdl-card__actions");this.actions_.classList.add("mdl-card--border");this.card_.appendChild(this.actions_);this.progressCircle_.classList.add("hidden");this.progressCircle_.classList.add("progress-circle");this.card_.appendChild(this.progressCircle_);this.progressCircleSvg_.appendChild(this.progressCircleBack_);this.progressCircleSvg_.appendChild(this.progressCircleBar_);this.progressCircle_.appendChild(this.progressCircleSvg_);this.progressCircleSvg_.setAttribute("class",
76
+ "progress-circle-svg");this.progressCircleBack_.setAttribute("class","progress-circle-back");this.progressCircleBar_.setAttribute("class","progress-circle-bar");a.appendChild(this.card_);this.remakeButtons()}};shakaDemo.AssetCard.prototype.styleProgressCircle_=function(a){var b=this.progressCircleBar_,c=40*Math.PI;this.progressCircleSvg_.setAttribute("viewBox","0 0 45 45");b.setAttribute("stroke-dasharray",c);b.setAttribute("stroke-dashoffset",c*(1-a))};
77
+ shakaDemo.AssetCard.prototype.addFeatureIcon_=function(a,b){var c=document.createElement("div");c.classList.add("feature-icon");c.setAttribute("icon",a);this.featureIconsContainer_.appendChild(c);shakaDemo.Tooltips.make(c,b)};
76
78
  shakaDemo.AssetCard.prototype.addFeatureIcons_=function(a){var b=shakaAssets.Feature,c=shakaAssets.KeySystem;b=(new Map).set(b.SUBTITLES,"subtitles").set(b.CAPTIONS,"closed_caption").set(b.LIVE,"live").set(b.TRICK_MODE,"trick_mode").set(b.HIGH_DEFINITION,"high_definition").set(b.ULTRA_HIGH_DEFINITION,"ultra_high_definition").set(b.SURROUND,"surround_sound").set(b.MULTIPLE_LANGUAGES,"multiple_languages").set(b.AUDIO_ONLY,"audio_only");for(var d=$jscomp.makeIterator(a.features),e=d.next();!e.done;e=
77
79
  d.next()){e=e.value;var f=b.get(e);f&&this.addFeatureIcon_(f,e)}a=$jscomp.makeIterator(a.drm);for(b=a.next();!b.done;b=a.next())switch(b.value){case c.WIDEVINE:this.addFeatureIcon_("widevine","Widevine DRM");break;case c.CLEAR_KEY:this.addFeatureIcon_("clear_key","Clear Key DRM");break;case c.PLAYREADY:this.addFeatureIcon_("playready","PlayReady DRM")}};
78
80
  shakaDemo.AssetCard.prototype.markAsUnsupported=function(a){this.card_.classList.add("asset-card-unsupported");this.makeUnsupportedButton_("Not Available",a)};shakaDemo.AssetCard.prototype.makeUnsupportedButton_=function(a,b){var c=this.addButton(a,function(){});c.setAttribute("disabled","");var d=document.createElement("div");c.parentElement&&c.parentElement.removeChild(c);d.classList.add("tooltip-attach-point");d.appendChild(c);this.actions_.appendChild(d);shakaDemo.Tooltips.make(d,b);return c};
@@ -81,17 +83,17 @@ shakaDemo.AssetCard.prototype.addStoreButton=function(){var a=this,b=function(a,
81
83
  this.addButton("",function(){a.makeDeleteDialog_(d)});b(d,d,"offline_pin")}else{var e=this.addButton("",function(){return $jscomp.asyncExecutePromiseGeneratorFunction(function g(){return $jscomp.generator.createGenerator(g,function(b){switch(b.nextAddress){case 1:return e.disabled=!0,b.yield(a.asset_.storeCallback(),2);case 2:a.remakeButtons(),b.jumpToEnd()}})})});b(e,e,"get_app")}};
82
84
  shakaDemo.AssetCard.prototype.makeDeleteDialog_=function(a){var b=this,c=this.card_.parentElement;if(c){var d=document.createElement("dialog");d.classList.add("mdl-dialog");c.appendChild(d);d.showModal||dialogPolyfill.registerDialog(d);c=document.createElement("h2");c.classList.add("mdl-typography--title");c.textContent="Delete the offline copy?";d.appendChild(c);var e=document.createElement("div");d.appendChild(e);c=function(a,b){var c=document.createElement("button");c.textContent=a;c.classList.add("mdl-button");
83
85
  c.classList.add("mdl-button--colored");c.classList.add("mdl-js-button");c.classList.add("mdl-js-ripple-effect");c.addEventListener("click",function(){b()});e.appendChild(c);c.blur()};c("Yes",function(){return $jscomp.asyncExecutePromiseGeneratorFunction(function g(){return $jscomp.generator.createGenerator(g,function(c){switch(c.nextAddress){case 1:return d.close(),a.disabled=!0,c.yield(b.asset_.unstoreCallback(),2);case 2:b.remakeButtons(),c.jumpToEnd()}})})});c("No",function(){d.close()});d.showModal()}};
84
- shakaDemo.AssetCard.prototype.updateProgress=function(){if(1>this.asset_.storedProgress){this.progressBar_.classList.remove("hidden");for(var a=$jscomp.makeIterator(this.actions_.childNodes),b=a.next();!b.done;b=a.next())b.value.disabled=!0}else for(this.progressBar_.classList.add("hidden"),a=$jscomp.makeIterator(this.actions_.childNodes),b=a.next();!b.done;b=a.next())b.value.disabled=!1;this.progressBar_.setAttribute("value",this.asset_.storedProgress)};
85
- shakaDemo.AssetCard.prototype.addButton=function(a,b){var c=document.createElement("button");c.classList.add("mdl-button");c.classList.add("mdl-button--colored");c.classList.add("mdl-js-button");c.classList.add("mdl-js-ripple-effect");c.textContent=a;c.addEventListener("click",function(){c.hasAttribute("disabled")||b()});this.actions_.appendChild(c);return c};shakaDemo.CloseButton=function(a,b){var c=shaka.ui.Element.call(this,a,b)||this;c.button_=document.createElement("button");c.button_.classList.add("material-icons");c.button_.classList.add("close-button");c.button_.textContent="close";c.parent.appendChild(c.button_);c.button_.addEventListener("click",function(){document.fullscreenElement&&document.exitFullscreen();document.pictureInPictureElement&&document.exitPictureInPicture();shakaDemoMain.unload()});return c};
86
- $jscomp.inherits(shakaDemo.CloseButton,shaka.ui.Element);shakaDemo.CloseButton.prototype.destroy=function(){return Promise.resolve()};shakaDemo.CloseButton.Factory=function(){};shakaDemo.CloseButton.Factory.prototype.create=function(a,b){return new shakaDemo.CloseButton(a,b)};var ShakaDemoAssetInfo=function(a,b,c,d){this.name=a;this.shortName="";this.iconUri=b;this.manifestUri=c;this.source=d;this.disabled=this.focus=!1;this.extraText=[];this.certificateUri=null;this.description="";this.isFeatured=!1;this.drm=[shakaAssets.KeySystem.CLEAR];this.features=[];this.licenseServers=new Map;this.licenseRequestHeaders=new Map;this.drmCallback=this.responseFilter=this.requestFilter=null;this.clearKeys=new Map;this.extraConfig=null;this.storedProgress=1};
86
+ shakaDemo.AssetCard.prototype.updateProgress=function(){if(1>this.asset_.storedProgress){this.progressCircle_.classList.remove("hidden");for(var a=$jscomp.makeIterator(this.actions_.childNodes),b=a.next();!b.done;b=a.next())b.value.disabled=!0}else for(this.progressCircle_.classList.add("hidden"),a=$jscomp.makeIterator(this.actions_.childNodes),b=a.next();!b.done;b=a.next())b.value.disabled=!1;this.styleProgressCircle_(this.asset_.storedProgress)};
87
+ shakaDemo.AssetCard.prototype.addButton=function(a,b){var c=document.createElement("button");c.classList.add("mdl-button");c.classList.add("mdl-button--colored");c.classList.add("mdl-js-button");c.classList.add("mdl-js-ripple-effect");c.textContent=a;c.addEventListener("click",function(){c.hasAttribute("disabled")||b()});this.actions_.appendChild(c);return c};shakaDemo.CloseButton=function(a,b){var c=shaka.ui.Element.call(this,a,b)||this;c.button_=document.createElement("button");c.button_.classList.add("material-icons");c.button_.classList.add("close-button");c.button_.textContent="close";c.parent.appendChild(c.button_);c.button_.addEventListener("click",function(){shakaDemoMain.unload()});return c};$jscomp.inherits(shakaDemo.CloseButton,shaka.ui.Element);shakaDemo.CloseButton.prototype.destroy=function(){return Promise.resolve()};
88
+ shakaDemo.CloseButton.Factory=function(){};shakaDemo.CloseButton.Factory.prototype.create=function(a,b){return new shakaDemo.CloseButton(a,b)};var ShakaDemoAssetInfo=function(a,b,c,d){this.name=a;this.shortName="";this.iconUri=b;this.manifestUri=c;this.source=d;this.disabled=this.focus=!1;this.extraText=[];this.certificateUri=null;this.description="";this.isFeatured=!1;this.drm=[shakaAssets.KeySystem.CLEAR];this.features=[];this.licenseServers=new Map;this.licenseRequestHeaders=new Map;this.drmCallback=this.responseFilter=this.requestFilter=null;this.clearKeys=new Map;this.extraConfig=null;this.storedProgress=1};
87
89
  ShakaDemoAssetInfo.prototype.addDescription=function(a){this.description=a;return this};ShakaDemoAssetInfo.prototype.addCertificateUri=function(a){this.certificateUri=a;return this};ShakaDemoAssetInfo.caseLessAlphaComparator_=function(a,b){return a.toLowerCase()<b.toLowerCase()?-1:a.toLowerCase()>b.toLowerCase()?1:0};ShakaDemoAssetInfo.prototype.addFeature=function(a){this.features.push(a);this.features.sort(ShakaDemoAssetInfo.caseLessAlphaComparator_);return this};
88
- ShakaDemoAssetInfo.prototype.addKeySystem=function(a){1==this.drm.length&&this.drm[0]==shakaAssets.KeySystem.CLEAR&&(this.drm=[]);this.drm.push(a);this.drm.sort(ShakaDemoAssetInfo.caseLessAlphaComparator_);return this};ShakaDemoAssetInfo.prototype.setExtraConfig=function(a){this.extraConfig=a;return this};ShakaDemoAssetInfo.prototype.setRequestFilter=function(a){this.requestFilter=a;return this};ShakaDemoAssetInfo.prototype.setResponseFilter=function(a){this.responseFilter=a;return this};
89
- ShakaDemoAssetInfo.prototype.addLicenseServer=function(a,b){this.licenseServers.set(a,b);return this};ShakaDemoAssetInfo.prototype.addLicenseRequestHeader=function(a,b){this.licenseRequestHeaders.set(a,b);return this};ShakaDemoAssetInfo.prototype.addExtraText=function(a){this.extraText.push(a);return this};ShakaDemoAssetInfo.prototype.markAsFocused=function(){this.focus=!0;return this};ShakaDemoAssetInfo.prototype.markAsFeatured=function(a){this.isFeatured=!0;this.shortName=a||this.shortName;return this};
90
- ShakaDemoAssetInfo.prototype.markAsDisabled=function(){this.disabled=!0;return this};ShakaDemoAssetInfo.prototype.toJSON=function(){var a={},b;for(b in this){var c=this[b];if(c instanceof Map){var d={__type__:"map"};c=$jscomp.makeIterator(c.entries());for(var e=c.next();!e.done;e=c.next())e=e.value,d[e[0]]=e[1];a[b]=d}else a[b]=c}return a};
90
+ ShakaDemoAssetInfo.prototype.addKeySystem=function(a){this.isClear()&&(this.drm=[]);this.drm.push(a);this.drm.sort(ShakaDemoAssetInfo.caseLessAlphaComparator_);return this};ShakaDemoAssetInfo.prototype.isClear=function(){return 1==this.drm.length&&this.drm[0]==shakaAssets.KeySystem.CLEAR};ShakaDemoAssetInfo.prototype.setExtraConfig=function(a){this.extraConfig=a;return this};ShakaDemoAssetInfo.prototype.setRequestFilter=function(a){this.requestFilter=a;return this};
91
+ ShakaDemoAssetInfo.prototype.setResponseFilter=function(a){this.responseFilter=a;return this};ShakaDemoAssetInfo.prototype.addLicenseServer=function(a,b){this.licenseServers.set(a,b);return this};ShakaDemoAssetInfo.prototype.addLicenseRequestHeader=function(a,b){this.licenseRequestHeaders.set(a,b);return this};ShakaDemoAssetInfo.prototype.addExtraText=function(a){this.extraText.push(a);return this};ShakaDemoAssetInfo.prototype.markAsFocused=function(){this.focus=!0;return this};
92
+ ShakaDemoAssetInfo.prototype.markAsFeatured=function(a){this.isFeatured=!0;this.shortName=a||this.shortName;return this};ShakaDemoAssetInfo.prototype.markAsDisabled=function(){this.disabled=!0;return this};ShakaDemoAssetInfo.prototype.toJSON=function(){var a={},b;for(b in this){var c=this[b];if(c instanceof Map){var d={__type__:"map"};c=$jscomp.makeIterator(c.entries());for(var e=c.next();!e.done;e=c.next())e=e.value,d[e[0]]=e[1];a[b]=d}else a[b]=c}return a};
91
93
  ShakaDemoAssetInfo.prototype.applyFilters=function(a){var b=this;a.clearAllRequestFilters();a.clearAllResponseFilters();this.licenseRequestHeaders.size&&a.registerRequestFilter(function(a,d){return b.addLicenseRequestHeaders_(b.licenseRequestHeaders,a,d)});this.requestFilter&&a.registerRequestFilter(this.requestFilter);this.responseFilter&&a.registerResponseFilter(this.responseFilter)};
92
94
  ShakaDemoAssetInfo.prototype.getConfiguration=function(){var a={drm:{},manifest:{dash:{}}};this.licenseServers.size&&(a.drm.servers={},this.licenseServers.forEach(function(b,d){a.drm.servers[d]=b}));this.drmCallback&&(a.manifest.dash.customScheme=this.drmCallback);this.clearKeys.size&&(a.drm.clearKeys={},this.clearKeys.forEach(function(b,d){a.drm.clearKeys[d]=b}));if(this.extraConfig)for(var b in this.extraConfig)a[b]=this.extraConfig[b];return a};
93
95
  ShakaDemoAssetInfo.prototype.addLicenseRequestHeaders_=function(a,b,c){b==shaka.net.NetworkingEngine.RequestType.LICENSE&&a.forEach(function(a,b){c.headers[b]=a})};ShakaDemoAssetInfo.prototype.isStored=function(){return null!=this.storedContent};ShakaDemoAssetInfo.makeBlankAsset=function(){return new ShakaDemoAssetInfo("","","",shakaAssets.Source.CUSTOM)};
94
- ShakaDemoAssetInfo.fromJSON=function(a){var b={},c;for(c in a){var d=a[c];if(d&&"object"==typeof d&&"map"==d.__type__){var e=new Map,f;for(f in d)"__type__"!=f&&e.set(f,d[f]);b[c]=e}else b[c]=d}a=ShakaDemoAssetInfo.makeBlankAsset();Object.assign(a,b);return a};var shakaAssets={Source:{UNKNOWN:"Unknown",CUSTOM:"Custom",SHAKA:"Shaka",AXINOM:"Axinom",UNIFIED_STREAMING:"Unified Streaming",DASH_IF:"DASH-IF",WOWZA:"Wowza",BITCODIN:"Bitcodin",NIMBLE_STREAMER:"Nimble Streamer",AZURE_MEDIA_SERVICES:"Azure Media Services",GPAC:"GPAC",UPLYNK:"Verizon Digital Media Services"},KeySystem:{CLEAR_KEY:"org.w3.clearkey",FAIRPLAY:"com.apple.fps.1_0",PLAYREADY:"com.microsoft.playready",WIDEVINE:"com.widevine.alpha",CLEAR:"no drm protection"},Feature:{MULTIKEY:"multiple keys",
96
+ ShakaDemoAssetInfo.fromJSON=function(a){var b={},c;for(c in a){var d=a[c];if(d&&"object"==typeof d&&"map"==d.__type__){var e=new Map,f;for(f in d)"__type__"!=f&&e.set(f,d[f]);b[c]=e}else b[c]=d}a=ShakaDemoAssetInfo.makeBlankAsset();Object.assign(a,b);return a};var shakaAssets={Source:{UNKNOWN:"Unknown",CUSTOM:"Custom",SHAKA:"Shaka",AXINOM:"Axinom",UNIFIED_STREAMING:"Unified Streaming",DASH_IF:"DASH-IF",WOWZA:"Wowza",BITCODIN:"Bitcodin",NIMBLE_STREAMER:"Nimble Streamer",AZURE_MEDIA_SERVICES:"Azure Media Services",GPAC:"GPAC",UPLYNK:"Verizon Digital Media Services",APPLE:"Apple",IRT:"IRT"},KeySystem:{CLEAR_KEY:"org.w3.clearkey",FAIRPLAY:"com.apple.fps.1_0",PLAYREADY:"com.microsoft.playready",WIDEVINE:"com.widevine.alpha",CLEAR:"no drm protection"},Feature:{MULTIKEY:"multiple keys",
95
97
  MULTIPERIOD:"multiple Periods",ENCRYPTED_WITH_CLEAR:"mixing encrypted and unencrypted periods",AESCTR_16_BYTE_IV:"encrypted with AES CTR Mode using a 16 byte IV",AESCTR_8_BYTE_IV:"encrypted with AES CTR Mode using a 8 byte IV",TRICK_MODE:"Special trick mode track",XLINK:"XLink",SUBTITLES:"Subtitles",CAPTIONS:"Captions",EMBEDDED_TEXT:"embedded text",MULTIPLE_LANGUAGES:"multiple languages",AUDIO_ONLY:"audio only",OFFLINE:"Downloadable",STORED:"Downloaded",LIVE:"Live",WEBM:"WebM",MP4:"MP4",MP2TS:"MPEG-2 TS",
96
98
  TTML:"TTML",WEBVTT:"WebVTT",HIGH_DEFINITION:"High definition",ULTRA_HIGH_DEFINITION:"Ultra-high definition",SURROUND:"Surround sound",DASH:"DASH",HLS:"HLS"},UplynkResponseFilter:function(a,b){a==shaka.net.NetworkingEngine.RequestType.MANIFEST&&(shakaAssets.uplynk_prefix=b.headers["x-uplynk-prefix"]?b.headers["x-uplynk-prefix"]:"")},UplynkRequestFilter:function(a,b){a==shaka.net.NetworkingEngine.RequestType.LICENSE&&(b.uris[0].includes("wv")&&shakaAssets.uplynk_prefix?b.uris[0]=shakaAssets.uplynk_prefix.concat("/wv"):
97
99
  b.uris[0].includes("ck")&&shakaAssets.uplynk_prefix?b.uris[0]=shakaAssets.uplynk_prefix.concat("/ck"):b.uris[0].includes("pr")&&shakaAssets.uplynk_prefix&&(b.uris[0]=shakaAssets.uplynk_prefix.concat("/pr")))}};
@@ -126,7 +128,8 @@ shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shaka
126
128
  (new ShakaDemoAssetInfo("Clear, multi-Period","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://media.axprod.net/TestVectors/v7-Clear/Manifest_MultiPeriod.mpd",shakaAssets.Source.AXINOM)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.MULTIPLE_LANGUAGES).addFeature(shakaAssets.Feature.MULTIPERIOD).addFeature(shakaAssets.Feature.TTML).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION).addFeature(shakaAssets.Feature.WEBVTT).addFeature(shakaAssets.Feature.OFFLINE),
127
129
  (new ShakaDemoAssetInfo("Clear, Live DASH","https://storage.googleapis.com/shaka-asset-icons/axinom_test.png","https://akamai-axtest.akamaized.net/routes/lapd-v1-acceptance/www_c4/Manifest.mpd",shakaAssets.Source.AXINOM)).addFeature(shakaAssets.Feature.LIVE).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MULTIPERIOD).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.WEBVTT),(new ShakaDemoAssetInfo("Clear, Live HLS",
128
130
  "https://storage.googleapis.com/shaka-asset-icons/axinom_test.png","https://akamai-axtest.akamaized.net/routes/lapd-v1-acceptance/www_c4/Manifest.m3u8",shakaAssets.Source.AXINOM)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.LIVE).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.HIGH_DEFINITION),(new ShakaDemoAssetInfo("Tears of Steel","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://demo.unified-streaming.com/video/tears-of-steel/tears-of-steel.ism/.mpd",
129
- shakaAssets.Source.UNIFIED_STREAMING)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Tears of Steel (Widevine)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://demo.unified-streaming.com/video/tears-of-steel/tears-of-steel-dash-widevine.ism/.mpd",shakaAssets.Source.UNIFIED_STREAMING)).addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.TTML).addLicenseServer("com.widevine.alpha",
131
+ shakaAssets.Source.UNIFIED_STREAMING)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Tears of Steel (HLS, Subtitles)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://demo.unified-streaming.com/video/tears-of-steel/tears-of-steel-multiple-subtitles.ism/.m3u8",shakaAssets.Source.UNIFIED_STREAMING)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.WEBVTT).addFeature(shakaAssets.Feature.OFFLINE),
132
+ (new ShakaDemoAssetInfo("Tears of Steel (Widevine)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://demo.unified-streaming.com/video/tears-of-steel/tears-of-steel-dash-widevine.ism/.mpd",shakaAssets.Source.UNIFIED_STREAMING)).addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.TTML).addLicenseServer("com.widevine.alpha",
130
133
  "https://cwip-shaka-proxy.appspot.com/no_auth"),(new ShakaDemoAssetInfo("Tears of Steel (PlayReady)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://demo.unified-streaming.com/video/tears-of-steel/tears-of-steel-dash-playready.ism/.mpd",shakaAssets.Source.UNIFIED_STREAMING)).addKeySystem(shakaAssets.KeySystem.PLAYREADY).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.TTML).addLicenseServer("com.microsoft.playready",
131
134
  "https://test.playready.microsoft.com/service/rightsmanager.asmx?PlayRight=1&UseSimpleNonPersistentLicense=1"),(new ShakaDemoAssetInfo("Tears of Steel (subtitles)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://demo.unified-streaming.com/video/tears-of-steel/tears-of-steel-en.ism/.mpd",shakaAssets.Source.UNIFIED_STREAMING)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.TTML).addFeature(shakaAssets.Feature.OFFLINE),
132
135
  (new ShakaDemoAssetInfo("Big Buck Bunny (DASH-IF)","https://storage.googleapis.com/shaka-asset-icons/big_buck_bunny.png","https://dash.akamaized.net/dash264/TestCases/1c/qualcomm/2/MultiRate.mpd",shakaAssets.Source.DASH_IF)).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Live sim (2s segments)","https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png",
@@ -150,7 +153,10 @@ language:"es",kind:"subtitle",mime:"text/vtt"}).addExtraText({uri:"https://ams-s
150
153
  "https://content.uplynk.com/pr").addLicenseServer("com.widevine.alpha","https://content.uplynk.com/wv").setRequestFilter(shakaAssets.UplynkRequestFilter).setResponseFilter(shakaAssets.UplynkResponseFilter),(new ShakaDemoAssetInfo("Multi DRM - MultiPeriod - 8 Byte IV","https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://content.uplynk.com/054225d59be2454fabdca3e96912d847.mpd?ad=cleardash&pr.version=2&pr.playenabler=B621D91F-EDCC-4035-8D4B-DC71760D43E9&pr.securitylevel=150",shakaAssets.Source.UPLYNK)).addKeySystem(shakaAssets.KeySystem.PLAYREADY).addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.MULTIKEY).addFeature(shakaAssets.Feature.MULTIPERIOD).addFeature(shakaAssets.Feature.WEBVTT).addFeature(shakaAssets.Feature.AESCTR_8_BYTE_IV).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addLicenseServer("com.microsoft.playready",
151
154
  "https://content.uplynk.com/pr").addLicenseServer("com.widevine.alpha","https://content.uplynk.com/wv").setRequestFilter(shakaAssets.UplynkRequestFilter).setResponseFilter(shakaAssets.UplynkResponseFilter),(new ShakaDemoAssetInfo("Widevine - 16 Byte IV","https://storage.googleapis.com/shaka-asset-icons/big_buck_bunny.png","https://content.uplynk.com/224ac8717e714b68831997ab6cea4015.mpd",shakaAssets.Source.UPLYNK)).markAsDisabled().addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.MULTIKEY).addFeature(shakaAssets.Feature.AESCTR_16_BYTE_IV).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addLicenseServer("com.widevine.alpha",
152
155
  "https://content.uplynk.com/wv").setRequestFilter(shakaAssets.UplynkRequestFilter).setResponseFilter(shakaAssets.UplynkResponseFilter),(new ShakaDemoAssetInfo("Widevine - 16 Byte IV - (mix of encrypted and unencrypted periods)","https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://content.uplynk.com/1eb40d8e64234f5c9879db7045c3d48c.mpd?ad=cleardash&rays=cdefg",shakaAssets.Source.UPLYNK)).markAsDisabled().addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.MULTIPLE_LANGUAGES).addFeature(shakaAssets.Feature.MULTIPERIOD).addFeature(shakaAssets.Feature.MULTIKEY).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.AESCTR_16_BYTE_IV).addFeature(shakaAssets.Feature.ENCRYPTED_WITH_CLEAR).addLicenseServer("com.widevine.alpha",
153
- "https://content.uplynk.com/wv").setRequestFilter(shakaAssets.UplynkRequestFilter).setResponseFilter(shakaAssets.UplynkResponseFilter)];var shakaDemoConfig;shakaDemo.Config=function(a){var b=this;this.container_=a;this.sections_=[];this.latestInput_=null;this.addedFields_=new Set;this.reload_();document.addEventListener("shaka-main-config-change",function(){b.reloadAndSaveState_()});document.addEventListener("shaka-main-drawer-state-change",function(){b.setContentAvailability_(shakaDemoMain.getIsDrawerOpen())});this.setContentAvailability_(shakaDemoMain.getIsDrawerOpen())};
156
+ "https://content.uplynk.com/wv").setRequestFilter(shakaAssets.UplynkRequestFilter).setResponseFilter(shakaAssets.UplynkResponseFilter),(new ShakaDemoAssetInfo("Apple Advanced HLS Stream (fMP4)","https://storage.googleapis.com/shaka-asset-icons/apple_test_pattern.png","https://storage.googleapis.com/shaka-demo-assets/apple-advanced-stream-fmp4/master.m3u8",shakaAssets.Source.APPLE)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.CAPTIONS).addFeature(shakaAssets.Feature.WEBVTT).addFeature(shakaAssets.Feature.OFFLINE),
157
+ (new ShakaDemoAssetInfo("Apple Advanced HLS Stream (TS)","https://storage.googleapis.com/shaka-asset-icons/apple_test_pattern.png","https://storage.googleapis.com/shaka-demo-assets/apple-advanced-stream-ts/master.m3u8",shakaAssets.Source.APPLE)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP2TS).addFeature(shakaAssets.Feature.CAPTIONS).addFeature(shakaAssets.Feature.WEBVTT).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Bayerischer Rundfunk Recorded Loop (DASH)",
158
+ "https://storage.googleapis.com/shaka-asset-icons/bayerischer_rundfunk.png","https://irtdashreference-i.akamaihd.net/dash/live/901161/keepixo1/manifestBR2.mpd",shakaAssets.Source.IRT)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.LIVE),(new ShakaDemoAssetInfo("Bayerischer Rundfunk Recorded Loop (HLS)","https://storage.googleapis.com/shaka-asset-icons/bayerischer_rundfunk.png","https://irtdashreference-i.akamaihd.net/dash/live/901161/keepixo1/playlistBR2.m3u8",
159
+ shakaAssets.Source.IRT)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.LIVE)];var shakaDemoConfig;shakaDemo.Config=function(a){var b=this;this.container_=a;this.sections_=[];this.latestInput_=null;this.addedFields_=new Set;this.reload_();document.addEventListener("shaka-main-config-change",function(){b.reloadAndSaveState_()});document.addEventListener("shaka-main-drawer-state-change",function(){b.setContentAvailability_(shakaDemoMain.getIsDrawerOpen())});this.setContentAvailability_(shakaDemoMain.getIsDrawerOpen())};
154
160
  shakaDemo.Config.init=function(){var a=shakaDemoMain.getHamburgerMenu();shakaDemoConfig=new shakaDemo.Config(a)};shakaDemo.Config.prototype.setContentAvailability_=function(a){a?this.container_.classList.remove("hidden"):this.container_.classList.add("hidden")};
155
161
  shakaDemo.Config.prototype.reload_=function(){shaka.ui.Utils.removeAllChildren(this.container_);this.sections_=[];this.addMetaSection_();this.addLanguageSection_();this.addAbrSection_();this.addOfflineSection_();this.addDrmSection_();this.addStreamingSection_();this.addManifestSection_();this.addRetrictionsSection_("","");this.checkSectionCompleteness_();this.checkSectionValidity_()};
156
162
  shakaDemo.Config.prototype.reloadAndSaveState_=function(){var a=this.sections_.map(function(a){return a.getIsOpen()});this.reload_();for(var b=0;b<a.length;b++){var c=this.sections_[b];a[b]&&c.open()}componentHandler.upgradeDom()};
@@ -215,26 +221,27 @@ shakaDemo.InputContainer.prototype.close=function(){var a=this;this.style_==shak
215
221
  shakaDemo.InputContainer.prototype.createHeader_=function(a,b){var c=this;this.style_==shakaDemo.InputContainer.Style.ACCORDION?(this.header_=document.createElement("button"),this.header_.classList.add("mdl-button--raised"),this.header_.classList.add("mdl-button"),this.header_.classList.add("mdl-js-button"),this.header_.classList.add("mdl-js-ripple-effect"),this.header_.addEventListener("click",function(){c.getIsOpen()?c.close():c.open()})):this.header_=document.createElement("h3");this.header_.textContent=
216
222
  b;a.appendChild(this.header_)};shakaDemo.InputContainer.prototype.addDocLink_=function(a,b){var c=document.createElement("a");c.href=b;c.target="_blank";c.classList.add("mdl-button");c.classList.add("mdl-js-button");c.classList.add("mdl-js-ripple-effect");c.classList.add("mdl-button--colored");var d=document.createElement("i");d.classList.add("material-icons");d.textContent="help";c.appendChild(d);a.appendChild(c)};
217
223
  shakaDemo.InputContainer.prototype.addRow=function(a,b,c){this.latestRow_=document.createElement("div");c&&this.latestRow_.classList.add(c);this.table_.appendChild(this.latestRow_);c="input-container-row-"+this.numRows_;this.numRows_+=1;if(a){var d=document.createElement("label");d.setAttribute("for",c);d.classList.add("input-container-label");var e=document.createElement("b");e.textContent=a;d.appendChild(e);this.latestRow_.appendChild(d)}this.latestElementContainer=document.createElement("div");
218
- this.latestRow_.appendChild(this.latestElementContainer);this.latestElementContainer.classList.add("input-container-row");this.latestElementContainer.id=c;if(this.latestTooltip=b)shakaDemo.Tooltips.make(this.latestRow_,b),this.latestRow_.setAttribute("tabindex",-1),this.latestRow_.classList.add("borderless")};shakaDemo.InputContainer.Style={VERTICAL:"input-container-style-vertical",ACCORDION:"input-container-style-accordion",FLEX:"input-container-style-flex"};shakaDemo.Main=function(){this.selectedAsset=this.player_=this.container_=this.video_=null;this.fullyLoaded_=!1;this.controls_=null;this.nativeControlsEnabled_=!1;this.uiLocale_=""};shakaDemo.Main.prototype.initCommon_=function(){var a=this;window.addEventListener("error",function(b){if(!b.message.includes("cvox.Api"))a.onError_(b.error)});document.getElementById("error-display-close-button").addEventListener("click",function(b){return a.closeError_()});this.setUpVersionString_()};
224
+ this.latestRow_.appendChild(this.latestElementContainer);this.latestElementContainer.classList.add("input-container-row");this.latestElementContainer.id=c;if(this.latestTooltip=b)shakaDemo.Tooltips.make(this.latestRow_,b),this.latestRow_.setAttribute("tabindex",-1),this.latestRow_.classList.add("borderless")};shakaDemo.InputContainer.Style={VERTICAL:"input-container-style-vertical",ACCORDION:"input-container-style-accordion",FLEX:"input-container-style-flex"};shakaDemo.Main=function(){this.selectedAsset=this.player_=this.container_=this.video_=null;this.fullyLoaded_=!1;this.controls_=null;this.nativeControlsEnabled_=!1;this.uiLocale_="";this.noInput_=!1};shakaDemo.Main.prototype.initCommon_=function(){var a=this;window.addEventListener("error",function(b){if(!b.message.includes("cvox.Api"))a.onError_(b.error)});document.getElementById("error-display-close-button").addEventListener("click",function(b){return a.closeError_()});this.setUpVersionStrings_()};
219
225
  shakaDemo.Main.prototype.initFailed=function(){this.initCommon_();this.handleError_(shaka.util.Error.Severity.CRITICAL,"Your browser is not supported!","https://github.com/google/shaka-player#platform-and-browser-support-matrix");componentHandler.upgradeDom();for(var a=[],b=$jscomp.makeIterator(document.getElementsByClassName("should-disable-on-fail")),c=b.next();!c.done;c=b.next())a.push(c.value);a.push(document.getElementsByClassName("mdl-layout__drawer-button"));a=$jscomp.makeIterator(a);for(c=
220
226
  a.next();!c.done;c=a.next())c=c.value,c.tabIndex=-1,c.classList.add("disabled-by-fail")};
221
- shakaDemo.Main.prototype.init=function(){var a=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function c(){var d,e,f,g;return $jscomp.generator.createGenerator(c,function(c){switch(c.nextAddress){case 1:return a.initCommon_(),d=a,c.yield(shaka.Player.probeSupport(),2);case 2:d.support_=c.yieldResult;a.video_=document.getElementById("video");a.video_.poster=shakaDemo.Main.mainPoster_;a.container_=document.getElementsByClassName("video-container")[0];if(!navigator.serviceWorker){c.jumpTo(3);
222
- break}console.debug("Registering service worker.");c.setCatchFinallyBlocks(4);return c.yield(navigator.serviceWorker.register("service_worker.js"),6);case 6:e=c.yieldResult;console.debug("Service worker registered!",e.scope);c.leaveTryBlock(3);break;case 4:f=c.enterCatchBlock(),console.error("Service worker registration failed!",f);case 3:return a.setupPlayer_(),a.readHash_(),window.addEventListener("hashchange",function(){return a.hashChanged_()}),c.yield(a.setupStorage_(),7);case 7:a.dispatchEventWithName_("shaka-main-loaded"),
223
- componentHandler.upgradeDom(),g=a.getLastAssetFromHash_(),a.fullyLoaded_=!0,a.remakeHash(),g&&!a.selectedAsset&&a.loadAsset(g),c.jumpToEnd()}})})};
224
- shakaDemo.Main.prototype.setupPlayer_=function(){var a=this,b=this.video_.ui;this.player_=b.getControls().getPlayer();var c=new shakaDemo.CloseButton.Factory;shaka.ui.Controls.registerElement("close",c);c=b.getConfiguration();c.controlPanelElements.push("close");b.configure(c);this.player_.configure("manifest.dash.clockSyncUri","https://shaka-player-demo.appspot.com/time.txt");this.defaultConfig_=this.player_.getConfiguration();this.desiredConfig_=this.player_.getConfiguration();c=navigator.languages||
225
- ["en-us"];this.configure("preferredAudioLanguage",c[0]);this.configure("preferredTextLanguage",c[0]);this.uiLocale_=c[0];c=function(b){return a.onErrorEvent_(b)};this.player_.addEventListener("error",c);this.controls_=b.getControls();this.controls_.addEventListener("error",c);this.controls_.addEventListener("caststatuschanged",function(b){a.onCastStatusChange_(b.newStatus)});this.controls_.getLocalization().addEventListener(shaka.ui.Localization.UNKNOWN_LOCALES,function(b){b=$jscomp.makeIterator(b.locales);
226
- for(var c=b.next();!c.done;c=b.next())a.loadUILocale_(c.value)});this.loadUILocale_(this.uiLocale_);var d=document.getElementById("drawer-close-button");d.addEventListener("click",function(){document.getElementById("main-layout").MaterialLayout.toggleDrawer();a.dispatchEventWithName_("shaka-main-drawer-state-change");a.hideNode_(d)});b=document.querySelector(".mdl-layout__drawer-button");goog.asserts.assert(b,"There should be a drawer button.");b.addEventListener("click",function(){a.dispatchEventWithName_("shaka-main-drawer-state-change");
227
- a.showNode_(d)});b=document.querySelector(".mdl-layout__obfuscator");goog.asserts.assert(b,"There should be an obfuscator.");b.addEventListener("click",function(){a.dispatchEventWithName_("shaka-main-drawer-state-change");a.hideNode_(d)});this.hideNode_(d)};shakaDemo.Main.prototype.getIsDrawerOpen=function(){var a=document.querySelector(".mdl-layout__drawer");goog.asserts.assert(a,"There should be a drawer.");return a.classList.contains("is-visible")};
227
+ shakaDemo.Main.prototype.init=function(){var a=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function c(){var d,e,f,g,h,l;return $jscomp.generator.createGenerator(c,function(c){switch(c.nextAddress){case 1:return a.initCommon_(),d=a,c.yield(shaka.Player.probeSupport(),2);case 2:d.support_=c.yieldResult;a.video_=document.getElementById("video");a.video_.poster=shakaDemo.Main.mainPoster_;a.container_=document.getElementsByClassName("video-container")[0];if(!navigator.serviceWorker){c.jumpTo(3);
228
+ break}console.debug("Registering service worker.");c.setCatchFinallyBlocks(4);return c.yield(navigator.serviceWorker.register("service_worker.js"),6);case 6:e=c.yieldResult;console.debug("Service worker registered!",e.scope);c.leaveTryBlock(3);break;case 4:f=c.enterCatchBlock(),console.error("Service worker registration failed!",f);case 3:return a.noInput_="noinput"in a.getParams_(),a.setupPlayer_(),a.readHash_(),window.addEventListener("hashchange",function(){return a.hashChanged_()}),c.yield(a.setupStorage_(),
229
+ 7);case 7:if(a.noInput_){for(var k=$jscomp.makeIterator(document.getElementsByClassName("should-hide-in-no-input-mode")),m=k.next();!m.done;m=k.next())g=m.value,a.hideNode_(g);k=$jscomp.makeIterator(document.getElementsByClassName("should-show-in-no-input-mode"));for(m=k.next();!m.done;m=k.next())h=m.value,a.showNode_(h);a.container_.classList.add("no-input-sized");document.getElementById("video-bar").classList.add("no-input-sized")}a.dispatchEventWithName_("shaka-main-loaded");return c.yield(Promise.resolve(),
230
+ 8);case 8:componentHandler.upgradeDom(),l=a.getLastAssetFromHash_(),a.fullyLoaded_=!0,a.remakeHash(),l&&!a.selectedAsset&&a.loadAsset(l),c.jumpToEnd()}})})};
231
+ shakaDemo.Main.prototype.setupPlayer_=function(){var a=this,b=this.video_.ui;this.player_=b.getControls().getPlayer();if(!this.noInput_){var c=new shakaDemo.CloseButton.Factory;shaka.ui.Controls.registerElement("close",c);c=b.getConfiguration();c.controlPanelElements.push("close");b.configure(c)}this.player_.configure("manifest.dash.clockSyncUri","https://shaka-player-demo.appspot.com/time.txt");this.defaultConfig_=this.player_.getConfiguration();this.desiredConfig_=this.player_.getConfiguration();
232
+ c=navigator.languages||["en-us"];this.configure("preferredAudioLanguage",c[0]);this.configure("preferredTextLanguage",c[0]);this.uiLocale_=c[0];c=function(b){return a.onErrorEvent_(b)};this.player_.addEventListener("error",c);this.controls_=b.getControls();this.controls_.addEventListener("error",c);this.controls_.addEventListener("caststatuschanged",function(b){a.onCastStatusChange_(b.newStatus)});this.controls_.getLocalization().addEventListener(shaka.ui.Localization.UNKNOWN_LOCALES,function(b){b=
233
+ $jscomp.makeIterator(b.locales);for(var c=b.next();!c.done;c=b.next())a.loadUILocale_(c.value)});this.loadUILocale_(this.uiLocale_);var d=document.getElementById("drawer-close-button");d.addEventListener("click",function(){document.getElementById("main-layout").MaterialLayout.toggleDrawer();a.dispatchEventWithName_("shaka-main-drawer-state-change");a.hideNode_(d)});b=document.querySelector(".mdl-layout__drawer-button");goog.asserts.assert(b,"There should be a drawer button.");b.addEventListener("click",
234
+ function(){a.dispatchEventWithName_("shaka-main-drawer-state-change");a.showNode_(d)});b=document.querySelector(".mdl-layout__obfuscator");goog.asserts.assert(b,"There should be an obfuscator.");b.addEventListener("click",function(){a.dispatchEventWithName_("shaka-main-drawer-state-change");a.hideNode_(d)});this.hideNode_(d)};shakaDemo.Main.prototype.getIsDrawerOpen=function(){var a=document.querySelector(".mdl-layout__drawer");goog.asserts.assert(a,"There should be a drawer.");return a.classList.contains("is-visible")};
228
235
  shakaDemo.Main.prototype.getIdentifierFromAsset_=function(a){return a.name+(a.source==shakaAssets.Source.CUSTOM?" [CUSTOM]":"")};
229
236
  shakaDemo.Main.prototype.makeStorageInstance_=function(){var a=this;if(!shaka.offline.Storage.support())return null;var b=new shaka.offline.Storage;b.configure("offline.progressCallback",function(b,d){var c=b.appMetadata.identifier;a:{for(var f=$jscomp.makeIterator(shakaAssets.testAssets),g=f.next();!g.done;g=f.next())if(g=g.value,a.getIdentifierFromAsset_(g)==c){c=g;break a}if(shakaDemoCustom)for(f=$jscomp.makeIterator(shakaDemoCustom.assets()),g=f.next();!g.done;g=f.next())if(g=g.value,a.getIdentifierFromAsset_(g)==
230
237
  c){c=g;break a}c=null}c&&(c.storedProgress=d,a.dispatchEventWithName_("shaka-main-offline-progress"))});return b};
231
- shakaDemo.Main.prototype.setupOfflineSupport=function(a){var b=this;if(this.initialStoredList_){for(var c=$jscomp.makeIterator(this.initialStoredList_),d=c.next();!d.done;d=c.next()){d=d.value;var e=d.appMetadata.identifier;this.getIdentifierFromAsset_(a)==e&&(a.storedContent=d)}a.storeCallback=function(){return $jscomp.asyncExecutePromiseGeneratorFunction(function g(){var c,d,e,n;return $jscomp.generator.createGenerator(g,function(g){switch(g.nextAddress){case 1:c=b.makeStorageInstance_();if(!c)return g["return"]();
232
- g.setCatchFinallyBlocks(2);return g.yield(b.drmConfiguration_(a,c),4);case 4:return d={identifier:b.getIdentifierFromAsset_(a),downloaded:new Date},a.storedProgress=0,b.dispatchEventWithName_("shaka-main-offline-progress"),g.yield(c.store(a.manifestUri,d),5);case 5:e=g.yieldResult;a.storedContent=e;g.leaveTryBlock(3);break;case 2:n=g.enterCatchBlock(),b.onError_(n),a.storedContent=null;case 3:c.destroy(),a.storedProgress=1,b.dispatchEventWithName_("shaka-main-offline-progress"),g.jumpToEnd()}})})};
238
+ shakaDemo.Main.prototype.setupOfflineSupport=function(a){var b=this;if(this.initialStoredList_){for(var c=$jscomp.makeIterator(this.initialStoredList_),d=c.next();!d.done;d=c.next()){d=d.value;var e=d.appMetadata.identifier;this.getIdentifierFromAsset_(a)==e&&(a.storedContent=d)}a.storeCallback=function(){return $jscomp.asyncExecutePromiseGeneratorFunction(function g(){var c,d,e,p;return $jscomp.generator.createGenerator(g,function(g){switch(g.nextAddress){case 1:c=b.makeStorageInstance_();if(!c)return g["return"]();
239
+ g.setCatchFinallyBlocks(2);return g.yield(b.drmConfiguration_(a,c),4);case 4:return d={identifier:b.getIdentifierFromAsset_(a),downloaded:new Date},a.storedProgress=0,b.dispatchEventWithName_("shaka-main-offline-progress"),g.yield(c.store(a.manifestUri,d),5);case 5:e=g.yieldResult;a.storedContent=e;g.leaveTryBlock(3);break;case 2:p=g.enterCatchBlock(),b.onError_(p),a.storedContent=null;case 3:c.destroy(),a.storedProgress=1,b.dispatchEventWithName_("shaka-main-offline-progress"),g.jumpToEnd()}})})};
233
240
  a.unstoreCallback=function(){return $jscomp.asyncExecutePromiseGeneratorFunction(function g(){var c,d;return $jscomp.generator.createGenerator(g,function(e){switch(e.nextAddress){case 1:a==b.selectedAsset&&b.unload();if(!a.storedContent||!a.storedContent.offlineUri){e.jumpTo(0);break}c=b.makeStorageInstance_();if(!c)return e["return"]();e.setCatchFinallyBlocks(3);a.storedProgress=0;b.dispatchEventWithName_("shaka-main-offline-progress");return e.yield(c.remove(a.storedContent.offlineUri),5);case 5:a.storedContent=
234
241
  null;e.leaveTryBlock(4);break;case 3:d=e.enterCatchBlock(),b.onError_(d);case 4:c.destroy(),a.storedProgress=1,b.dispatchEventWithName_("shaka-main-offline-progress"),e.jumpToEnd()}})})}}};
235
242
  shakaDemo.Main.prototype.setupStorage_=function(){var a=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function c(){var d,e,f,g;return $jscomp.generator.createGenerator(c,function(c){switch(c.nextAddress){case 1:d=a.makeStorageInstance_();if(!d)return c["return"]();c.setCatchFinallyBlocks(2,3);e=a;return c.yield(d.list(),5);case 5:e.initialStoredList_=c.yieldResult;case 3:c.enterFinallyBlock();d.destroy();c.leaveFinallyBlock(4);break;case 2:f=c.enterCatchBlock();console.error(f);a.initialStoredList_=
236
243
  null;c.jumpTo(3);break;case 4:for(var h=$jscomp.makeIterator(shakaAssets.testAssets),k=h.next();!k.done;k=h.next())g=k.value,a.getAssetUnsupportedReason(g,!0)||a.setupOfflineSupport(g);c.jumpToEnd()}})})};shakaDemo.Main.prototype.hashChanged_=function(){this.readHash_();this.dispatchEventWithName_("shaka-main-config-change")};
237
- shakaDemo.Main.prototype.getAssetUnsupportedReason=function(a,b){var c=this;if(b&&(!shaka.offline.Storage.support()||!this.initialStoredList_))return"Your browser does not support offline storage.";if(a.source==shakaAssets.Source.CUSTOM)return null;if(a.disabled)return"This asset is disabled.";if(b&&!a.features.includes(shakaAssets.Feature.OFFLINE))return"This asset cannot be downloaded.";if(!a.drm.includes(shakaAssets.KeySystem.CLEAR)){if(!a.drm.some(function(a){return c.support_.drm[a]}))return"Your browser does not support the required key systems.";
244
+ shakaDemo.Main.prototype.getAssetUnsupportedReason=function(a,b){var c=this;if(b&&(!shaka.offline.Storage.support()||!this.initialStoredList_))return"Your browser does not support offline storage.";if(a.source==shakaAssets.Source.CUSTOM)return null;if(a.disabled)return"This asset is disabled.";if(b&&!a.features.includes(shakaAssets.Feature.OFFLINE))return"This asset cannot be downloaded.";if(!a.isClear()){if(!a.drm.some(function(a){return c.support_.drm[a]}))return"Your browser does not support the required key systems.";
238
245
  if(b&&!a.drm.some(function(a){return c.support_.drm[a]&&c.support_.drm[a].persistentState}))return"Your browser does not support offline licenses for the required key systems."}if(a.features.includes(shakaAssets.Feature.DASH)&&!this.support_.manifest.mpd)return"Your browser does not support MPEG-DASH manifests.";if(a.features.includes(shakaAssets.Feature.HLS)&&!this.support_.manifest.m3u8)return"Your browser does not support HLS manifests.";var d=[];a.features.includes(shakaAssets.Feature.WEBM)&&
239
246
  d.push("video/webm");a.features.includes(shakaAssets.Feature.MP4)&&d.push("video/mp4");a.features.includes(shakaAssets.Feature.MP2TS)&&d.push("video/mp2t");return d.some(function(a){return c.support_.media[a]})?null:"Your browser does not support the required video format."};shakaDemo.Main.prototype.setNativeControlsEnabled=function(a){this.nativeControlsEnabled_=a;this.remakeHash()};shakaDemo.Main.prototype.getNativeControlsEnabled=function(){return this.nativeControlsEnabled_};
240
247
  shakaDemo.Main.prototype.loadUILocale_=function(a){var b=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function d(){var e,f,g,h,l;return $jscomp.generator.createGenerator(d,function(d){switch(d.nextAddress){case 1:if(!a)return d["return"]();e="../ui/locales/"+a+".json";return d.yield(fetch(e),2);case 2:return f=d.yieldResult,f.ok?d.yield(f.json(),3):(console.warn("Unable to load locale",a),d["return"]());case 3:g=d.yieldResult;h=new Map;for(var k in g)h.set(k,g[k]);l=b.controls_.getLocalization();
@@ -248,23 +255,23 @@ f.addEventListener("click",function(b){return function(){var c=location.hash.sub
248
255
  shakaDemo.Main.prototype.getValueFromGivenConfig_=function(a,b){for(var c=b,d=a;d;){var e=d.split(/\.(.+)/);if(3==e.length)d=e[1],c=c[e[0]];else return c[e[0]]}};shakaDemo.Main.prototype.getCurrentConfigValue=function(a){return this.getValueFromGivenConfig_(a,this.desiredConfig_)};shakaDemo.Main.prototype.resetConfiguration=function(a){this.configure(a,void 0)};
249
256
  shakaDemo.Main.prototype.configure=function(a,b){2==arguments.length&&"string"==typeof a&&(a=shaka.util.ConfigUtils.convertToConfigObject(a,b));shaka.util.PlayerConfiguration.mergeConfigObjects(this.desiredConfig_,a,this.defaultConfig_);this.player_.configure(a,b)};shakaDemo.Main.prototype.getConfiguration=function(){return this.desiredConfig_};
250
257
  shakaDemo.Main.prototype.requestCertificate_=function(a,b){return $jscomp.asyncExecutePromiseGeneratorFunction(function d(){var e,f,g;return $jscomp.generator.createGenerator(d,function(d){switch(d.nextAddress){case 1:return e=shaka.net.NetworkingEngine.RequestType.APP,f={uris:[a]},d.yield(b.request(e,f).promise,2);case 2:return g=d.yieldResult,d["return"](g.data)}})})};
251
- shakaDemo.Main.prototype.unload=function(){this.selectedAsset=null;var a=document.getElementById("video-bar");this.hideNode_(a);this.video_.poster=shakaDemo.Main.mainPoster_;this.player_.unload();this.dispatchEventWithName_("shaka-main-selected-asset-changed");this.remakeHash()};
252
- shakaDemo.Main.prototype.drmConfiguration_=function(a,b){var c=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function e(){var f,g,h,l,k,n,q;return $jscomp.generator.createGenerator(e,function(e){switch(e.nextAddress){case 1:f=b?b.getNetworkingEngine():c.player_.getNetworkingEngine();goog.asserts.assert(f,"There should be a net engine.");a.applyFilters(f);g=a.getConfiguration();b?b.configure(g):(c.player_.configure(c.desiredConfig_),c.player_.configure(g));h=b?b.getConfiguration():c.player_.getConfiguration();
253
- if(!a.certificateUri){for(var p=$jscomp.makeIterator(a.licenseServers.keys()),m=p.next();!m.done;m=p.next())l=m.value,h.drm.advanced[l]&&delete h.drm.advanced[l].serverCertificate;e.jumpTo(2);break}return e.yield(c.requestCertificate_(a.certificateUri,f),3);case 3:for(k=e.yieldResult,n=new Uint8Array(k),p=$jscomp.makeIterator(a.licenseServers.keys()),m=p.next();!m.done;m=p.next())q=m.value,h.drm.advanced[q]=h.drm.advanced[q]||{},h.drm.advanced[q].serverCertificate=n;case 2:b?b.configure(h):c.player_.configure("drm.advanced",
258
+ shakaDemo.Main.prototype.unload=function(){this.selectedAsset=null;var a=document.getElementById("video-bar");this.hideNode_(a);this.video_.poster=shakaDemo.Main.mainPoster_;document.fullscreenElement&&document.exitFullscreen();document.pictureInPictureElement&&document.exitPictureInPicture();this.player_.unload();this.dispatchEventWithName_("shaka-main-selected-asset-changed");navigator.mediaSession&&(navigator.mediaSession.metadata=null);this.remakeHash()};
259
+ shakaDemo.Main.prototype.drmConfiguration_=function(a,b){var c=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function e(){var f,g,h,l,k,p,m;return $jscomp.generator.createGenerator(e,function(e){switch(e.nextAddress){case 1:f=b?b.getNetworkingEngine():c.player_.getNetworkingEngine();goog.asserts.assert(f,"There should be a net engine.");a.applyFilters(f);g=a.getConfiguration();b?b.configure(g):(c.player_.configure(c.desiredConfig_),c.player_.configure(g));h=b?b.getConfiguration():c.player_.getConfiguration();
260
+ if(!a.certificateUri){for(var q=$jscomp.makeIterator(a.licenseServers.keys()),n=q.next();!n.done;n=q.next())l=n.value,h.drm.advanced[l]&&delete h.drm.advanced[l].serverCertificate;e.jumpTo(2);break}return e.yield(c.requestCertificate_(a.certificateUri,f),3);case 3:for(k=e.yieldResult,p=new Uint8Array(k),q=$jscomp.makeIterator(a.licenseServers.keys()),n=q.next();!n.done;n=q.next())m=n.value,h.drm.advanced[m]=h.drm.advanced[m]||{},h.drm.advanced[m].serverCertificate=p;case 2:b?b.configure(h):c.player_.configure("drm.advanced",
254
261
  h.drm.advanced),c.remakeHash(),e.jumpToEnd()}})})};shakaDemo.Main.prototype.showPlayer_=function(){var a=document.getElementById("video-bar");this.showNode_(a);this.closeError_();this.video_.poster=shakaDemo.Main.mainPoster_;a.scrollIntoView({behavior:"smooth",block:"start"})};
255
- shakaDemo.Main.prototype.loadAsset=function(a){var b=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function d(){var e,f,g,h,l;return $jscomp.generator.createGenerator(d,function(d){switch(d.nextAddress){case 1:return d.setCatchFinallyBlocks(2),b.selectedAsset=a,b.showPlayer_(),b.dispatchEventWithName_("shaka-main-selected-asset-changed"),d.yield(b.drmConfiguration_(a),4);case 4:return b.controls_.getCastProxy().setAppData({asset:a}),b.nativeControlsEnabled_?(b.controls_.setEnabledShakaControls(!1),
256
- b.controls_.setEnabledNativeControls(!0)):(b.controls_.setEnabledShakaControls(!0),b.controls_.setEnabledNativeControls(!1)),e=b,f=function(){return e.nativeControlsEnabled_?new shaka.text.SimpleTextDisplayer(e.video_):new shaka.ui.TextDisplayer(e.video_,e.container_)},b.player_.configure("textDisplayFactory",f),g=(a.storedContent?a.storedContent.offlineUri:null)||a.manifestUri,d.yield(b.player_.load(g),5);case 5:b.player_.isAudioOnly()&&(b.video_.poster=shakaDemo.Main.audioOnlyPoster_);d.leaveTryBlock(3);
257
- break;case 2:if(l=h=d.enterCatchBlock(),l.code==shaka.util.Error.Code.LOAD_INTERRUPTED)console.debug("load() interrupted");else b.onError_(l);case 3:b.remakeHash(),d.jumpToEnd()}})})};
262
+ shakaDemo.Main.prototype.loadAsset=function(a){var b=this;return $jscomp.asyncExecutePromiseGeneratorFunction(function d(){var e,f,g,h,l,k;return $jscomp.generator.createGenerator(d,function(d){switch(d.nextAddress){case 1:return d.setCatchFinallyBlocks(2),b.selectedAsset=a,b.showPlayer_(),b.dispatchEventWithName_("shaka-main-selected-asset-changed"),d.yield(b.drmConfiguration_(a),4);case 4:return b.controls_.getCastProxy().setAppData({asset:a}),b.nativeControlsEnabled_?(b.controls_.setEnabledShakaControls(!1),
263
+ b.controls_.setEnabledNativeControls(!0)):(b.controls_.setEnabledShakaControls(!0),b.controls_.setEnabledNativeControls(!1)),e=b,f=function(){return e.nativeControlsEnabled_?new shaka.text.SimpleTextDisplayer(e.video_):new shaka.ui.TextDisplayer(e.video_,e.container_)},b.player_.configure("textDisplayFactory",f),g=(a.storedContent?a.storedContent.offlineUri:null)||a.manifestUri,d.yield(b.player_.load(g),5);case 5:b.player_.isAudioOnly()&&(b.video_.poster=shakaDemo.Main.audioOnlyPoster_);navigator.mediaSession&&
264
+ (h={title:a.name,artwork:[{src:a.iconUri}]},a.source!=shakaAssets.Source.UNKNOWN&&(h.artist=a.source),navigator.mediaSession.metadata=new MediaMetadata(h));d.leaveTryBlock(3);break;case 2:if(k=l=d.enterCatchBlock(),k.code==shaka.util.Error.Code.LOAD_INTERRUPTED)console.debug("load() interrupted");else b.onError_(k);case 3:b.remakeHash(),d.jumpToEnd()}})})};
258
265
  shakaDemo.Main.prototype.remakeHash=function(){var a=this;if(this.fullyLoaded_){var b=[];if(this.player_){var c=this.player_.getConfiguration();shakaDemo.Utils.runThroughHashParams(function(c,d){var e=a.getCurrentConfigValue(d),f=a.getValueFromGivenConfig_(d,a.defaultConfig_),g=isNaN(e)&&isNaN(f);e==f||g||b.push(c+"="+e)},c)}this.getCurrentConfigValue("abr.enabled")||b.push("noadaptation");this.getCurrentConfigValue("streaming.jumpLargeGaps")&&b.push("jumpLargeGaps");b.push("uilang="+this.getUILocale());
259
266
  if(this.selectedAsset){c=shakaAssets.testAssets.includes(this.selectedAsset);b.push("asset="+this.selectedAsset.manifestUri);if(!c&&this.selectedAsset.licenseServers.size){var d=this.selectedAsset.licenseServers.values().next().value;b.push("license="+d);d=$jscomp.makeIterator(this.selectedAsset.licenseServers.keys());for(var e=d.next();!e.done;e=d.next())if(e=e.value,!shakaDemo.Main.commonDrmSystems.includes(e)){b.push("drmSystem="+e);break}}!c&&this.selectedAsset.certificateUri&&b.push("certificate="+
260
- this.selectedAsset.certificateUri)}c=document.getElementById("nav-button-container");c=$jscomp.makeIterator(c.childNodes);for(d=c.next();!d.done;d=c.next())if(d=d.value,d.nodeType==Node.ELEMENT_NODE&&d.classList.contains("mdl-button--accent")){b.push("panel="+d.textContent);break}c=$jscomp.makeIterator(["compiled","debug_compiled","uncompiled"]);for(d=c.next();!d.done;d=c.next())d=d.value,document.getElementById(d.split("_").join("-")+"-link").hasAttribute("disabled")&&b.push("build="+d);this.nativeControlsEnabled_&&
261
- b.push("nativecontrols");if(shaka.log&&shaka.log.currentLevel!=shaka.log.MAX_LOG_LEVEL)switch(shaka.log.currentLevel){case shaka.log.Level.INFO:b.push("info");break;case shaka.log.Level.DEBUG:b.push("debug");break;case shaka.log.Level.V2:b.push("vv");break;case shaka.log.Level.V1:b.push("v")}this.setNewHashSilent_(b.join(";"))}};shakaDemo.Main.prototype.setNewHashSilent_=function(a){history.replaceState(null,"",document.location.pathname+"#"+a)};shakaDemo.Main.prototype.getHamburgerMenu=function(){return document.getElementById("hamburger-menu-contents")};
262
- shakaDemo.Main.prototype.hideNode_=function(a){a.classList.add("hidden")};shakaDemo.Main.prototype.showNode_=function(a){a.classList.remove("hidden")};
267
+ this.selectedAsset.certificateUri)}c=document.getElementById("nav-button-container");c=$jscomp.makeIterator(c.childNodes);for(d=c.next();!d.done;d=c.next())if(d=d.value,d.nodeType==Node.ELEMENT_NODE&&d.classList.contains("mdl-button--accent")){b.push("panel="+d.textContent);break}c=$jscomp.makeIterator(["compiled","debug_compiled","uncompiled"]);for(d=c.next();!d.done;d=c.next())d=d.value,document.getElementById(d.split("_").join("-")+"-link").hasAttribute("disabled")&&b.push("build="+d);this.noInput_&&
268
+ b.push("noinput");this.nativeControlsEnabled_&&b.push("nativecontrols");if(shaka.log&&shaka.log.currentLevel!=shaka.log.MAX_LOG_LEVEL)switch(shaka.log.currentLevel){case shaka.log.Level.INFO:b.push("info");break;case shaka.log.Level.DEBUG:b.push("debug");break;case shaka.log.Level.V2:b.push("vv");break;case shaka.log.Level.V1:b.push("v")}this.setNewHashSilent_(b.join(";"))}};shakaDemo.Main.prototype.setNewHashSilent_=function(a){history.replaceState(null,"",document.location.pathname+"#"+a)};
269
+ shakaDemo.Main.prototype.getHamburgerMenu=function(){return document.getElementById("hamburger-menu-contents")};shakaDemo.Main.prototype.hideNode_=function(a){a.classList.add("hidden")};shakaDemo.Main.prototype.showNode_=function(a){a.classList.remove("hidden")};
263
270
  shakaDemo.Main.prototype.addNavButton=function(a){var b=this,c=document.getElementById("nav-button-container"),d=document.getElementById("contents"),e=document.getElementById("nav-button-"+a),f=this.getParams_();(a=f.panel==encodeURI(e.textContent))||f.panel||(a=null!=e.getAttribute("defaultselected"));var g=document.createElement("div");this.hideNode_(g);d.appendChild(g);f=function(){for(var a=$jscomp.makeIterator(c.childNodes),f=a.next();!f.done;f=a.next())f=f.value,f.nodeType==Node.ELEMENT_NODE&&
264
271
  f.classList.remove("mdl-button--accent");a=$jscomp.makeIterator(d.childNodes);for(f=a.next();!f.done;f=a.next())f=f.value,f.nodeType==Node.ELEMENT_NODE&&b.hideNode_(f);e.classList.add("mdl-button--accent");b.showNode_(g);b.remakeHash();b.dispatchEventWithName_("shaka-main-page-changed");g.scrollIntoView({behavior:"smooth",block:"start"})};e.addEventListener("click",f);a&&Promise.resolve().then(f);return g};
265
272
  shakaDemo.Main.prototype.dispatchEventWithName_=function(a){var b=document.createEvent("CustomEvent");b.initCustomEvent(a,!1,!1,null);document.dispatchEvent(b)};
266
- shakaDemo.Main.prototype.setUpVersionString_=function(){for(var a=shaka.Player.version.split("-"),b=[],c={},d=$jscomp.makeIterator(["debug","uncompiled"]),e=d.next();!e.done;c={whitelisted:c.whitelisted},e=d.next())c.whitelisted=e.value,a.includes(c.whitelisted)&&(b.push(c.whitelisted),a=a.filter(function(a){return function(b){return b!=a.whitelisted}}(c)));c=document.getElementById("version-string");c.textContent=a.join("-");0<b.length&&(c.textContent+=" ("+b.join(", ")+")")};
267
- shakaDemo.Main.prototype.closeError_=function(){document.getElementById("error-display").classList.add("hidden");var a=document.getElementById("error-display-link");a.href="";a.textContent="";a.severity=null};shakaDemo.Main.prototype.onErrorEvent_=function(a){this.onError_(a.detail)};
273
+ shakaDemo.Main.prototype.setUpVersionStrings_=function(){for(var a=shaka.Player.version.split("-"),b=[],c={},d=$jscomp.makeIterator(["debug","uncompiled"]),e=d.next();!e.done;c={whitelisted:c.whitelisted},e=d.next())c.whitelisted=e.value,a.includes(c.whitelisted)&&(b.push(c.whitelisted),a=a.filter(function(a){return function(b){return b!=a.whitelisted}}(c)));c=document.getElementsByClassName("version-string");c=$jscomp.makeIterator(c);for(d=c.next();!d.done;d=c.next())d=d.value,d.textContent=a.join("-"),
274
+ 0<b.length&&(d.textContent+=" ("+b.join(", ")+")")};shakaDemo.Main.prototype.closeError_=function(){document.getElementById("error-display").classList.add("hidden");var a=document.getElementById("error-display-link");a.href="";a.textContent="";a.severity=null};shakaDemo.Main.prototype.onErrorEvent_=function(a){this.onError_(a.detail)};
268
275
  shakaDemo.Main.prototype.onError_=function(a){var b=a.severity;if(null==b||void 0==a.severity)b=shaka.util.Error.Severity.CRITICAL;var c=a.message||"Error code "+a.code,d="";a.code&&(d="../docs/api/shaka.util.Error.html#value:"+a.code);console.error(a);this.handleError_(b,c,d)};
269
276
  shakaDemo.Main.prototype.handleError_=function(a,b,c){var d=document.getElementById("error-display-link");if(null==d.severity||a>d.severity)d.href=c,void 0===d.textContent?d.innerText=b:d.textContent=b,d.severity=a,d.href?d.classList.remove("input-disabled"):d.classList.add("input-disabled"),document.getElementById("error-display").classList.remove("hidden")};shakaDemo.Main.prototype.onCastStatusChange_=function(a){a&&!this.selectedAsset&&(this.selectedAsset=ShakaDemoAssetInfo.makeBlankAsset(),this.showPlayer_())};
270
277
  shakaDemo.Main.commonDrmSystems=["com.widevine.alpha","com.microsoft.playready","com.apple.fps.1_0","com.adobe.primetime","org.w3.clearkey"];var shakaDemoMain=new shakaDemo.Main;shakaDemo.Main.mainPoster_="https://shaka-player-demo.appspot.com/assets/poster.jpg";shakaDemo.Main.audioOnlyPoster_="https://shaka-player-demo.appspot.com/assets/audioOnly.gif";