shaka-player 3.1.3 → 3.2.2

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 (182) hide show
  1. package/AUTHORS +3 -0
  2. package/CHANGELOG.md +175 -3
  3. package/CONTRIBUTORS +3 -0
  4. package/README.md +4 -4
  5. package/build/generateExterns.js +1 -1
  6. package/build/types/polyfill +1 -0
  7. package/demo/common/asset.js +9 -7
  8. package/demo/common/assets.js +11 -2
  9. package/demo/common/message_ids.js +2 -1
  10. package/demo/config.js +5 -2
  11. package/demo/index.html +1 -1
  12. package/demo/locales/en.json +2 -1
  13. package/demo/locales/source.json +8 -4
  14. package/demo/main.js +2 -1
  15. package/dist/controls.css +2 -2
  16. package/dist/controls.css.map +1 -1
  17. package/dist/demo.compiled.debug.js +15 -15
  18. package/dist/demo.compiled.debug.map +2 -2
  19. package/dist/demo.compiled.js +15 -15
  20. package/dist/demo.compiled.map +2 -2
  21. package/dist/deps.js +22 -21
  22. package/dist/locales.js +36 -36
  23. package/dist/receiver.compiled.debug.js +9 -9
  24. package/dist/receiver.compiled.debug.map +2 -2
  25. package/dist/receiver.compiled.js +9 -9
  26. package/dist/receiver.compiled.map +2 -2
  27. package/dist/shaka-player.compiled.d.ts +58 -10
  28. package/dist/shaka-player.compiled.debug.d.ts +58 -10
  29. package/dist/shaka-player.compiled.debug.externs.js +777 -717
  30. package/dist/shaka-player.compiled.debug.js +639 -607
  31. package/dist/shaka-player.compiled.debug.map +4 -4
  32. package/dist/shaka-player.compiled.externs.js +777 -717
  33. package/dist/shaka-player.compiled.js +826 -819
  34. package/dist/shaka-player.compiled.map +4 -4
  35. package/dist/shaka-player.ui.d.ts +58 -10
  36. package/dist/shaka-player.ui.debug.d.ts +58 -10
  37. package/dist/shaka-player.ui.debug.externs.js +529 -469
  38. package/dist/shaka-player.ui.debug.js +676 -645
  39. package/dist/shaka-player.ui.debug.map +4 -4
  40. package/dist/shaka-player.ui.externs.js +529 -469
  41. package/dist/shaka-player.ui.js +963 -955
  42. package/dist/shaka-player.ui.map +4 -4
  43. package/docs/tutorials/fairplay.md +1 -1
  44. package/docs/tutorials/ui.md +5 -5
  45. package/externs/aria.js +6 -0
  46. package/externs/shaka/ads.js +24 -1
  47. package/externs/shaka/manifest.js +6 -1
  48. package/externs/shaka/offline.js +5 -0
  49. package/externs/shaka/player.js +53 -9
  50. package/externs/shaka/text.js +10 -10
  51. package/externs/texttrack.js +3 -0
  52. package/karma.conf.js +1 -0
  53. package/lib/ads/ad_manager.js +16 -15
  54. package/lib/ads/client_side_ad_manager.js +52 -88
  55. package/lib/ads/server_side_ad_manager.js +26 -12
  56. package/lib/cast/cast_proxy.js +11 -2
  57. package/lib/cast/cast_receiver.js +2 -1
  58. package/lib/cast/cast_sender.js +2 -2
  59. package/lib/cast/cast_utils.js +6 -1
  60. package/lib/cea/cea608_data_channel.js +56 -56
  61. package/lib/cea/cea608_memory.js +33 -33
  62. package/lib/cea/cea708_service.js +43 -43
  63. package/lib/cea/cea708_window.js +38 -38
  64. package/lib/cea/cea_decoder.js +13 -14
  65. package/lib/cea/cea_utils.js +23 -23
  66. package/lib/cea/dtvcc_packet_builder.js +7 -7
  67. package/lib/cea/i_caption_decoder.js +2 -3
  68. package/lib/cea/i_cea_parser.js +2 -2
  69. package/lib/cea/mp4_cea_parser.js +6 -6
  70. package/lib/dash/dash_parser.js +98 -2
  71. package/lib/dash/segment_list.js +1 -1
  72. package/lib/dash/segment_template.js +1 -1
  73. package/lib/hls/hls_parser.js +159 -29
  74. package/lib/media/closed_caption_parser.js +1 -2
  75. package/lib/media/drm_engine.js +169 -192
  76. package/lib/media/gap_jumping_controller.js +4 -2
  77. package/lib/media/media_source_engine.js +1 -2
  78. package/lib/media/segment_index.js +3 -1
  79. package/lib/media/segment_reference.js +19 -2
  80. package/lib/media/streaming_engine.js +8 -7
  81. package/lib/net/networking_engine.js +3 -1
  82. package/lib/offline/download_manager.js +1 -2
  83. package/lib/offline/indexeddb/v1_storage_cell.js +1 -0
  84. package/lib/offline/indexeddb/v2_storage_cell.js +1 -0
  85. package/lib/offline/manifest_converter.js +3 -1
  86. package/lib/offline/storage.js +12 -14
  87. package/lib/player.js +437 -167
  88. package/lib/polyfill/aria.js +82 -0
  89. package/lib/polyfill/media_capabilities.js +7 -1
  90. package/lib/polyfill/mediasource.js +6 -0
  91. package/lib/polyfill/orientation.js +1 -1
  92. package/lib/polyfill/patchedmediakeys_apple.js +4 -4
  93. package/lib/polyfill/patchedmediakeys_ms.js +4 -4
  94. package/lib/polyfill/patchedmediakeys_webkit.js +4 -4
  95. package/lib/routing/walker.js +2 -3
  96. package/lib/text/mp4_ttml_parser.js +3 -0
  97. package/lib/text/srt_text_parser.js +4 -4
  98. package/lib/text/text_engine.js +16 -4
  99. package/lib/text/ttml_text_parser.js +5 -0
  100. package/lib/text/ui_text_displayer.js +85 -37
  101. package/lib/text/vtt_text_parser.js +2 -2
  102. package/lib/text/web_vtt_generator.js +55 -12
  103. package/lib/util/error.js +6 -0
  104. package/lib/util/fake_event.js +53 -7
  105. package/lib/util/manifest_parser_utils.js +1 -0
  106. package/lib/util/mp4_box_parsers.js +20 -20
  107. package/lib/util/multi_map.js +8 -0
  108. package/lib/util/periods.js +4 -1
  109. package/lib/util/platform.js +13 -1
  110. package/lib/util/player_configuration.js +13 -1
  111. package/lib/util/stream_utils.js +153 -85
  112. package/lib/util/xml_utils.js +31 -12
  113. package/package.json +1 -1
  114. package/roadmap.md +24 -22
  115. package/shaka-player.uncompiled.js +1 -0
  116. package/test/cast/cast_proxy_unit.js +12 -6
  117. package/test/cast/cast_utils_unit.js +2 -1
  118. package/test/cea/cea608_memory_unit.js +1 -1
  119. package/test/cea/cea708_service_unit.js +8 -8
  120. package/test/cea/cea708_window_unit.js +6 -6
  121. package/test/cea/cea_decoder_unit.js +1 -1
  122. package/test/cea/dtvcc_packet_builder_unit.js +2 -2
  123. package/test/dash/dash_parser_manifest_unit.js +230 -2
  124. package/test/hls/hls_parser_unit.js +255 -1
  125. package/test/media/closed_caption_parser_unit.js +6 -1
  126. package/test/media/drm_engine_integration.js +86 -12
  127. package/test/media/drm_engine_unit.js +353 -450
  128. package/test/offline/manifest_convert_unit.js +2 -0
  129. package/test/offline/storage_integration.js +9 -19
  130. package/test/player_integration.js +90 -0
  131. package/test/player_src_equals_integration.js +52 -0
  132. package/test/player_unit.js +11 -33
  133. package/test/test/assets/3675/chunk-stream0-00001.m4s +0 -0
  134. package/test/test/assets/3675/chunk-stream0-00002.m4s +0 -0
  135. package/test/test/assets/3675/chunk-stream0-00003.m4s +0 -0
  136. package/test/test/assets/3675/chunk-stream0-00004.m4s +0 -0
  137. package/test/test/assets/3675/chunk-stream0-00005.m4s +0 -0
  138. package/test/test/assets/3675/chunk-stream0-00006.m4s +0 -0
  139. package/test/test/assets/3675/chunk-stream0-00007.m4s +0 -0
  140. package/test/test/assets/3675/dash_0.mpd +30 -0
  141. package/test/test/assets/3675/dash_1.mpd +30 -0
  142. package/test/test/assets/3675/dash_2.mpd +30 -0
  143. package/test/test/assets/3675/dash_3.mpd +30 -0
  144. package/test/test/assets/3675/dash_4.mpd +30 -0
  145. package/test/test/assets/3675/dash_5.mpd +26 -0
  146. package/test/test/assets/3675/init-stream0.m4s +0 -0
  147. package/test/test/assets/chapters.srt +11 -0
  148. package/test/test/assets/chapters.vtt +10 -0
  149. package/test/test/util/cea_utils.js +12 -12
  150. package/test/test/util/fake_ad_manager.js +8 -1
  151. package/test/test/util/manifest_generator.js +2 -0
  152. package/test/test/util/manifest_parser_util.js +3 -1
  153. package/test/text/ttml_text_parser_unit.js +9 -0
  154. package/test/text/ui_text_displayer_unit.js +29 -17
  155. package/test/text/web_vtt_generator_unit.js +81 -7
  156. package/test/ui/localization_unit.js +15 -14
  157. package/test/ui/text_displayer_layout_unit.js +13 -1
  158. package/test/util/stream_utils_unit.js +153 -10
  159. package/ui/airplay_button.js +1 -1
  160. package/ui/audio_language_selection.js +2 -5
  161. package/ui/cast_button.js +6 -9
  162. package/ui/constants.js +0 -3
  163. package/ui/controls.js +4 -6
  164. package/ui/fast_forward_button.js +2 -3
  165. package/ui/fullscreen_button.js +1 -3
  166. package/ui/language_utils.js +1 -1
  167. package/ui/less/containers.less +3 -7
  168. package/ui/locales/ru.json +6 -6
  169. package/ui/localization.js +28 -51
  170. package/ui/loop_button.js +1 -3
  171. package/ui/mute_button.js +1 -3
  172. package/ui/overflow_menu.js +2 -3
  173. package/ui/pip_button.js +7 -10
  174. package/ui/playback_rate_selection.js +3 -6
  175. package/ui/presentation_time.js +1 -3
  176. package/ui/resolution_selection.js +4 -7
  177. package/ui/rewind_button.js +2 -3
  178. package/ui/seek_bar.js +2 -4
  179. package/ui/spacer.js +1 -1
  180. package/ui/text_selection.js +8 -11
  181. package/ui/ui_utils.js +1 -1
  182. package/ui/volume_bar.js +1 -3
@@ -107,12 +107,12 @@ DRM_SEARCH:"DEMO_DRM_SEARCH",HIGH_DEFINITION_SEARCH:"DEMO_HIGH_DEFINITION_SEARCH
107
107
  ALWAYS_STREAM_TEXT:"DEMO_ALWAYS_STREAM_TEXT",ALWAYS_STREAM_TEXT_WARNING:"DEMO_ALWAYS_STREAM_TEXT_WARNING",AUDIO_CHANNEL_COUNT:"DEMO_AUDIO_CHANNEL_COUNT",AUDIO_LANGUAGE:"DEMO_AUDIO_LANGUAGE",AUDIO_ROBUSTNESS:"DEMO_AUDIO_ROBUSTNESS",AUTO_CORRECT_DASH_DRIFT:"DEMO_AUTO_CORRECT_DASH_DRIFT",AUTO_LOW_LATENCY:"DEMO_AUTO_LOW_LATENCY",AVAILABILITY_WINDOW_OVERRIDE:"DEMO_AVAILABILITY_WINDOW_OVERRIDE",BACKOFF_FACTOR:"DEMO_BACKOFF_FACTOR",BASE_DELAY:"DEMO_BASE_DELAY",BANDWIDTH_DOWNGRADE:"DEMO_BANDWIDTH_DOWNGRADE",
108
108
  BANDWIDTH_ESTIMATE:"DEMO_BANDWIDTH_ESTIMATE",BANDWIDTH_UPGRADE:"DEMO_BANDWIDTH_UPGRADE",BUFFER_BEHIND:"DEMO_BUFFER_BEHIND",BUFFERING_GOAL:"DEMO_BUFFERING_GOAL",CLOCK_SYNC_URI:"DEMO_CLOCK_SYNC_URI",CONNECTION_TIMEOUT:"DEMO_CONNECTION_TIMEOUT",DEFAULT_PRESENTATION_DELAY:"DEMO_DEFAULT_PRESENTATION_DELAY",DELAY_LICENSE:"DEMO_DELAY_LICENSE",DISABLE_AUDIO:"DEMO_DISABLE_AUDIO",DISABLE_TEXT:"DEMO_DISABLE_TEXT",DISABLE_THUMBNAILS:"DEMO_DISABLE_THUMBNAILS",DISABLE_VIDEO:"DEMO_DISABLE_VIDEO",DISABLE_XLINK_PROCESSING:"DEMO_DISABLE_XLINK_PROCESSING",
109
109
  DRM_RETRY_SECTION_HEADER:"DEMO_DRM_RETRY_SECTION_HEADER",DRM_SECTION_HEADER:"DEMO_DRM_SECTION_HEADER",DRM_SESSION_TYPE:"DEMO_DRM_SESSION_TYPE",DURATION_BACKOFF:"DEMO_DURATION_BACKOFF",ENABLED:"DEMO_ENABLED",FORCE_HTTPS:"DEMO_FORCE_HTTPS",FORCE_TRANSMUX_TS:"DEMO_FORCE_TRANSMUX_TS",FUZZ_FACTOR:"DEMO_FUZZ_FACTOR",GAP_DETECTION_THRESHOLD:"DEMO_GAP_DETECTION_THRESHOLD",IGNORE_DASH_EMPTY_ADAPTATION_SET:"DEMO_IGNORE_DASH_EMPTY_ADAPTATION_SET",IGNORE_DASH_DRM:"DEMO_IGNORE_DASH_DRM",IGNORE_DASH_MAX_SEGMENT_DURATION:"DEMO_IGNORE_DASH_MAX_SEGMENT_DURATION",
110
- IGNORE_DASH_SUGGESTED_PRESENTATION_DELAY:"DEMO_IGNORE_DASH_SUGGESTED_PRESENTATION_DELAY",IGNORE_HLS_TEXT_FAILURES:"DEMO_IGNORE_HLS_TEXT_FAILURES",USE_FULL_SEGMENTS_FOR_START_TIME:"DEMO_USE_FULL_SEGMENTS_FOR_START_TIME",IGNORE_MIN_BUFFER_TIME:"DEMO_IGNORE_MIN_BUFFER_TIME",IGNORE_TEXT_FAILURES:"DEMO_IGNORE_TEXT_FAILURES",INACCURATE_MANIFEST_TOLERANCE:"DEMO_INACCURATE_MANIFEST_TOLERANCE",INITIAL_SEGMENT_LIMIT:"DEMO_INITIAL_SEGMENT_LIMIT",JUMP_LARGE_GAPS:"DEMO_JUMP_LARGE_GAPS",LANGUAGE_SECTION_HEADER:"DEMO_LANGUAGE_SECTION_HEADER",
111
- LOG_LEVEL:"DEMO_LOG_LEVEL",LOG_LEVEL_DEBUG:"DEMO_LOG_LEVEL_DEBUG",LOG_LEVEL_INFO:"DEMO_LOG_LEVEL_INFO",LOG_LEVEL_V:"DEMO_LOG_LEVEL_V",LOG_LEVEL_VV:"DEMO_LOG_LEVEL_VV",LOG_LICENSE_EXCHANGE:"DEMO_LOG_LICENSE_EXCHANGE",LOW_LATENCY:"DEMO_LOW_LATENCY",MANIFEST_RETRY_SECTION_HEADER:"DEMO_MANIFEST_RETRY_SECTION_HEADER",MANIFEST_SECTION_HEADER:"DEMO_MANIFEST_SECTION_HEADER",MAX_ATTEMPTS:"DEMO_MAX_ATTEMPTS",MAX_BANDWIDTH:"DEMO_MAX_BANDWIDTH",MAX_FRAMERATE:"DEMO_MAX_FRAMERATE",MAX_HEIGHT:"DEMO_MAX_HEIGHT",
112
- MAX_PIXELS:"DEMO_MAX_PIXELS",MAX_SMALL_GAP_SIZE:"DEMO_MAX_SMALL_GAP_SIZE",MAX_WIDTH:"DEMO_MAX_WIDTH",MIN_FRAMERATE:"DEMO_MIN_FRAMERATE",MIN_HEIGHT:"DEMO_MIN_HEIGHT",MIN_PIXELS:"DEMO_MIN_PIXELS",MIN_WIDTH:"DEMO_MIN_WIDTH",MIN_BANDWIDTH:"DEMO_MIN_BANDWIDTH",NETWORK_INFORMATION:"DEMO_NETWORK_INFORMATION",NUMBER_DECIMAL_WARNING:"DEMO_NUMBER_DECIMAL_WARNING",NUMBER_INTEGER_WARNING:"DEMO_NUMBER_INTEGER_WARNING",NUMBER_NONZERO_DECIMAL_WARNING:"DEMO_NUMBER_NONZERO_DECIMAL_WARNING",NUMBER_NONZERO_INTEGER_WARNING:"DEMO_NUMBER_NONZERO_INTEGER_WARNING",
113
- OFFLINE_SECTION_HEADER:"DEMO_OFFLINE_SECTION_HEADER",PREFER_FORCED_SUBS:"DEMO_PREFER_FORCED_SUBS",PREFER_NATIVE_HLS:"DEMO_PREFER_NATIVE_HLS",REBUFFERING_GOAL:"DEMO_REBUFFERING_GOAL",RESTRICTIONS_SECTION_HEADER:"DEMO_RESTRICTIONS_SECTION_HEADER",SAFE_SEEK_OFFSET:"DEMO_SAFE_SEEK_OFFSET",SAFE_SKIP_DISTANCE:"DEMO_SAFE_SKIP_DISTANCE",SHAKA_CONTROLS:"DEMO_SHAKA_CONTROLS",STALL_DETECTOR_ENABLED:"DEMO_STALL_DETECTOR_ENABLED",STALL_THRESHOLD:"DEMO_STALL_THRESHOLD",STALL_TIMEOUT:"DEMO_STALL_TIMEOUT",START_AT_SEGMENT_BOUNDARY:"DEMO_START_AT_SEGMENT_BOUNDARY",
114
- STREAMING_RETRY_SECTION_HEADER:"DEMO_STREAMING_RETRY_SECTION_HEADER",STREAMING_SECTION_HEADER:"DEMO_STREAMING_SECTION_HEADER",SWITCH_INTERVAL:"DEMO_SWITCH_INTERVAL",TEXT_LANGUAGE:"DEMO_TEXT_LANGUAGE",TEXT_ROLE:"DEMO_TEXT_ROLE",TIMEOUT:"DEMO_TIMEOUT",TRICK_PLAY_CONTROLS:"DEMO_TRICK_PLAY_CONTROLS",TRICK_PLAY_CONTROLS_WARNING:"DEMO_TRICK_PLAY_CONTROLS_WARNING",UI_LOCALE:"DEMO_UI_LOCALE",UPDATE_EXPIRATION_TIME:"DEMO_UPDATE_EXPIRATION_TIME",USE_MEDIA_CAPABILITIES:"DEMO_USE_MEDIA_CAPABILITIES",USE_NATIVE_HLS_SAFARI:"DEMO_USE_NATIVE_HLS_SAFARI",
115
- USE_PERSISTENT_LICENSES:"DEMO_USE_PERSISTENT_LICENSES",VIDEO_ROBUSTNESS:"DEMO_VIDEO_ROBUSTNESS",XLINK_FAIL_GRACEFULLY:"DEMO_XLINK_FAIL_GRACEFULLY"}};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.description=this.certificateUri=null;this.isFeatured=!1;this.drm=[shakaAssets.KeySystem.CLEAR];this.features=[shakaAssets.Feature.VOD];this.licenseServers=new Map;this.licenseRequestHeaders=new Map;this.responseFilter=this.requestFilter=null;this.clearKeys=new Map;this.mimeType=this.imaContentSrcId=this.imaAssetKey=this.imaVideoId=
110
+ IGNORE_DASH_SUGGESTED_PRESENTATION_DELAY:"DEMO_IGNORE_DASH_SUGGESTED_PRESENTATION_DELAY",IGNORE_HLS_IMAGE_FAILURES:"DEMO_IGNORE_HLS_IMAGE_FAILURES",IGNORE_HLS_TEXT_FAILURES:"DEMO_IGNORE_HLS_TEXT_FAILURES",USE_FULL_SEGMENTS_FOR_START_TIME:"DEMO_USE_FULL_SEGMENTS_FOR_START_TIME",IGNORE_MIN_BUFFER_TIME:"DEMO_IGNORE_MIN_BUFFER_TIME",IGNORE_TEXT_FAILURES:"DEMO_IGNORE_TEXT_FAILURES",INACCURATE_MANIFEST_TOLERANCE:"DEMO_INACCURATE_MANIFEST_TOLERANCE",INITIAL_SEGMENT_LIMIT:"DEMO_INITIAL_SEGMENT_LIMIT",JUMP_LARGE_GAPS:"DEMO_JUMP_LARGE_GAPS",
111
+ LANGUAGE_SECTION_HEADER:"DEMO_LANGUAGE_SECTION_HEADER",LOG_LEVEL:"DEMO_LOG_LEVEL",LOG_LEVEL_DEBUG:"DEMO_LOG_LEVEL_DEBUG",LOG_LEVEL_INFO:"DEMO_LOG_LEVEL_INFO",LOG_LEVEL_V:"DEMO_LOG_LEVEL_V",LOG_LEVEL_VV:"DEMO_LOG_LEVEL_VV",LOG_LICENSE_EXCHANGE:"DEMO_LOG_LICENSE_EXCHANGE",LOW_LATENCY:"DEMO_LOW_LATENCY",MANIFEST_RETRY_SECTION_HEADER:"DEMO_MANIFEST_RETRY_SECTION_HEADER",MANIFEST_SECTION_HEADER:"DEMO_MANIFEST_SECTION_HEADER",MAX_ATTEMPTS:"DEMO_MAX_ATTEMPTS",MAX_BANDWIDTH:"DEMO_MAX_BANDWIDTH",MAX_FRAMERATE:"DEMO_MAX_FRAMERATE",
112
+ MAX_HEIGHT:"DEMO_MAX_HEIGHT",MAX_PIXELS:"DEMO_MAX_PIXELS",MAX_SMALL_GAP_SIZE:"DEMO_MAX_SMALL_GAP_SIZE",MAX_WIDTH:"DEMO_MAX_WIDTH",MIN_FRAMERATE:"DEMO_MIN_FRAMERATE",MIN_HEIGHT:"DEMO_MIN_HEIGHT",MIN_PIXELS:"DEMO_MIN_PIXELS",MIN_WIDTH:"DEMO_MIN_WIDTH",MIN_BANDWIDTH:"DEMO_MIN_BANDWIDTH",NETWORK_INFORMATION:"DEMO_NETWORK_INFORMATION",NUMBER_DECIMAL_WARNING:"DEMO_NUMBER_DECIMAL_WARNING",NUMBER_INTEGER_WARNING:"DEMO_NUMBER_INTEGER_WARNING",NUMBER_NONZERO_DECIMAL_WARNING:"DEMO_NUMBER_NONZERO_DECIMAL_WARNING",
113
+ NUMBER_NONZERO_INTEGER_WARNING:"DEMO_NUMBER_NONZERO_INTEGER_WARNING",OFFLINE_SECTION_HEADER:"DEMO_OFFLINE_SECTION_HEADER",PREFER_FORCED_SUBS:"DEMO_PREFER_FORCED_SUBS",PREFER_NATIVE_HLS:"DEMO_PREFER_NATIVE_HLS",REBUFFERING_GOAL:"DEMO_REBUFFERING_GOAL",RESTRICTIONS_SECTION_HEADER:"DEMO_RESTRICTIONS_SECTION_HEADER",SAFE_SEEK_OFFSET:"DEMO_SAFE_SEEK_OFFSET",SAFE_SKIP_DISTANCE:"DEMO_SAFE_SKIP_DISTANCE",SHAKA_CONTROLS:"DEMO_SHAKA_CONTROLS",STALL_DETECTOR_ENABLED:"DEMO_STALL_DETECTOR_ENABLED",STALL_THRESHOLD:"DEMO_STALL_THRESHOLD",
114
+ STALL_TIMEOUT:"DEMO_STALL_TIMEOUT",START_AT_SEGMENT_BOUNDARY:"DEMO_START_AT_SEGMENT_BOUNDARY",STREAMING_RETRY_SECTION_HEADER:"DEMO_STREAMING_RETRY_SECTION_HEADER",STREAMING_SECTION_HEADER:"DEMO_STREAMING_SECTION_HEADER",SWITCH_INTERVAL:"DEMO_SWITCH_INTERVAL",TEXT_LANGUAGE:"DEMO_TEXT_LANGUAGE",TEXT_ROLE:"DEMO_TEXT_ROLE",TIMEOUT:"DEMO_TIMEOUT",TRICK_PLAY_CONTROLS:"DEMO_TRICK_PLAY_CONTROLS",TRICK_PLAY_CONTROLS_WARNING:"DEMO_TRICK_PLAY_CONTROLS_WARNING",UI_LOCALE:"DEMO_UI_LOCALE",UPDATE_EXPIRATION_TIME:"DEMO_UPDATE_EXPIRATION_TIME",
115
+ UPDATE_INTERVAL_SECONDS:"DEMO_UPDATE_INTERVAL_SECONDS",USE_NATIVE_HLS_SAFARI:"DEMO_USE_NATIVE_HLS_SAFARI",USE_PERSISTENT_LICENSES:"DEMO_USE_PERSISTENT_LICENSES",VIDEO_ROBUSTNESS:"DEMO_VIDEO_ROBUSTNESS",XLINK_FAIL_GRACEFULLY:"DEMO_XLINK_FAIL_GRACEFULLY"}};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.description=this.certificateUri=null;this.isFeatured=!1;this.drm=[shakaAssets.KeySystem.CLEAR];this.features=[shakaAssets.Feature.VOD];this.licenseServers=new Map;this.licenseRequestHeaders=new Map;this.responseFilter=this.requestFilter=null;this.clearKeys=new Map;this.mimeType=this.imaContentSrcId=this.imaAssetKey=this.imaVideoId=
116
116
  this.adTagUri=this.extraConfig=null;this.storedProgress=1};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};
117
117
  ShakaDemoAssetInfo.prototype.addFeature=function(a){var b=shakaAssets.Feature;a==b.LIVE&&(this.features=this.features.filter(function(c){return c!=b.VOD}));this.features.push(a);this.features.sort(ShakaDemoAssetInfo.caseLessAlphaComparator_);return this};ShakaDemoAssetInfo.prototype.addKeySystem=function(a){this.isClear()&&(this.drm=[]);this.drm.push(a);this.drm.sort(ShakaDemoAssetInfo.caseLessAlphaComparator_);return this};
118
118
  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.setMimeType=function(a){this.mimeType=a;return this};ShakaDemoAssetInfo.prototype.setRequestFilter=function(a){this.requestFilter=a;return this};ShakaDemoAssetInfo.prototype.setResponseFilter=function(a){this.responseFilter=a;return this};
@@ -121,7 +121,7 @@ ShakaDemoAssetInfo.prototype.setIMAVideoId=function(a){this.imaVideoId=a;this.fe
121
121
  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};ShakaDemoAssetInfo.prototype.markAsDisabled=function(){this.disabled=!0;return this};
122
122
  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};
123
123
  ShakaDemoAssetInfo.prototype.applyFilters=function(a){var b=this;a.clearAllRequestFilters();a.clearAllResponseFilters();this.licenseRequestHeaders.size&&a.registerRequestFilter(function(c,d){return b.addLicenseRequestHeaders_(b.licenseRequestHeaders,c,d)});this.requestFilter&&a.registerRequestFilter(this.requestFilter);this.responseFilter&&a.registerResponseFilter(this.responseFilter)};
124
- ShakaDemoAssetInfo.prototype.getConfiguration=function(){var a={drm:{advanced:{}},manifest:{dash:{}}};this.licenseServers.size&&(a.drm.servers={},this.licenseServers.forEach(function(c,d){a.drm.servers[d]=c}));this.clearKeys.size&&(a.drm.clearKeys={},this.clearKeys.forEach(function(c,d){a.drm.clearKeys[d]=c}));if(this.extraConfig)for(var b in this.extraConfig)a[b]=this.extraConfig[b];return a};
124
+ ShakaDemoAssetInfo.prototype.getConfiguration=function(){var a={drm:{advanced:{}},manifest:{dash:{}}};if(this.extraConfig)for(var b in this.extraConfig)a[b]=this.extraConfig[b];this.licenseServers.size&&(a.drm.servers=a.drm.servers||{},this.licenseServers.forEach(function(c,d){a.drm.servers[d]=c}));this.clearKeys.size&&(a.drm.clearKeys=a.drm.clearKeys||{},this.clearKeys.forEach(function(c,d){a.drm.clearKeys[d]=c}));return a};
125
125
  ShakaDemoAssetInfo.prototype.addLicenseRequestHeaders_=function(a,b,c){b==shaka.net.NetworkingEngine.RequestType.LICENSE&&a.forEach(function(d,e){c.headers[e]=d})};ShakaDemoAssetInfo.prototype.isStored=function(){return null!=this.storedContent};ShakaDemoAssetInfo.makeBlankAsset=function(){return new ShakaDemoAssetInfo("","","",shakaAssets.Source.CUSTOM)};
126
126
  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 ShakaReceiverApp=function(){this.idleTimerId_=this.idleCard_=this.receiver_=this.player_=this.video_=null};
127
127
  ShakaReceiverApp.prototype.init=function(){var a=this,b=document.getElementById("video");goog.asserts.assert(b instanceof HTMLVideoElement,"Wrong element type!");this.video_=b;b=this.video_.ui;goog.asserts.assert(b instanceof shaka.ui.Overlay,"UI not present or wrong type!");b.configure({fadeDelay:3,addBigPlayButton:!1,addSeekBar:!0,controlPanelElements:["play_pause","time_and_duration","spacer"]});this.player_=b.getControls().getLocalPlayer();goog.asserts.assert(this.player_,"Player should be available!");
@@ -149,7 +149,7 @@ shakaAssets.testAssets=[(new ShakaDemoAssetInfo("Big Buck Bunny: the Dark Truths
149
149
  "https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel-trickplay/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.TRICK_MODE).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Sintel 4k (WebM only)","https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel-webm-only/dash.mpd",
150
150
  shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Sintel 4k (MP4 only)","https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel-mp4-only/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.OFFLINE),
151
151
  (new ShakaDemoAssetInfo("Sintel 4k (multicodec, Widevine)","https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel-widevine/dash.mpd",shakaAssets.Source.SHAKA)).addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE).addLicenseServer("com.widevine.alpha",
152
- "https://cwip-shaka-proxy.appspot.com/no_auth"),(new ShakaDemoAssetInfo("Sintel 4k (multicodec, Widevine, ads)","https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel-widevine/dash.mpd",shakaAssets.Source.SHAKA)).addDescription("A Blender Foundation short film, protected by Widevine encryption with pre-roll, mid-roll, and post-roll ads.").markAsFeatured("Sintel").setAdTagUri(shakaAssets.AdTag.AD_POD_PREROLL_MIDROLL_POSTROLL).addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE).addLicenseServer("com.widevine.alpha",
152
+ "https://cwip-shaka-proxy.appspot.com/no_auth").setExtraConfig({drm:{advanced:{"com.widevine.alpha":{serverCertificateUri:"https://cwip-shaka-proxy.appspot.com/service-cert"}}}}),(new ShakaDemoAssetInfo("Sintel 4k (multicodec, Widevine, ads)","https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel-widevine/dash.mpd",shakaAssets.Source.SHAKA)).addDescription("A Blender Foundation short film, protected by Widevine encryption with pre-roll, mid-roll, and post-roll ads.").markAsFeatured("Sintel").setAdTagUri(shakaAssets.AdTag.AD_POD_PREROLL_MIDROLL_POSTROLL).addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE).addLicenseServer("com.widevine.alpha",
153
153
  "https://cwip-shaka-proxy.appspot.com/no_auth"),(new ShakaDemoAssetInfo("Sintel 4k (MP4, VTT in MP4)","https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel-mp4-wvtt/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Sintel w/ 44 subtitle languages",
154
154
  "https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel-many-subs/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.SURROUND).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Heliocentrism (multicodec, multiperiod)","https://storage.googleapis.com/shaka-asset-icons/heliocentricism.png","https://storage.googleapis.com/shaka-demo-assets/heliocentrism/heliocentrism.mpd",
155
155
  shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Heliocentrism (multicodec, multiperiod, xlink)","https://storage.googleapis.com/shaka-asset-icons/heliocentricism.png","https://storage.googleapis.com/shaka-demo-assets/heliocentrism-xlink/heliocentrism.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.XLINK).addFeature(shakaAssets.Feature.OFFLINE),
@@ -157,7 +157,7 @@ shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shaka
157
157
  (new ShakaDemoAssetInfo('"Dig the Uke" by Stefan Kartenberg (audio only, multicodec, Widevine)',"https://storage.googleapis.com/shaka-asset-icons/audio_only.png","https://storage.googleapis.com/shaka-demo-assets/dig-the-uke/dash.mpd",shakaAssets.Source.SHAKA)).addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.AUDIO_ONLY).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE).addLicenseServer("com.widevine.alpha",
158
158
  "https://cwip-shaka-proxy.appspot.com/no_auth"),(new ShakaDemoAssetInfo("Tears of Steel (multicodec, TTML)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://storage.googleapis.com/shaka-demo-assets/tos-ttml/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE),
159
159
  (new ShakaDemoAssetInfo("Tears of Steel (HLS, Server Side ads)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://storage.googleapis.com/shaka-demo-assets/tos/hls.m3u8",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.OFFLINE).setIMAContentSourceId("2528370").setIMAVideoId("tears-of-steel"),(new ShakaDemoAssetInfo("Tears of Steel (live, DASH, Server Side ads)",
160
- "https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://storage.googleapis.com/shaka-demo-assets/tos-ttml/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.LIVE).setIMAAssetKey("_lDu24IaSYaYAMEfixipNQ"),(new ShakaDemoAssetInfo("Tears of Steel (multicodec, surround + stereo)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png",
160
+ "https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://storage.googleapis.com/shaka-demo-assets/tos-ttml/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.LIVE).setIMAAssetKey("PSzZMzAkSXCmlJOWDmRj8Q"),(new ShakaDemoAssetInfo("Tears of Steel (multicodec, surround + stereo)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png",
161
161
  "https://storage.googleapis.com/shaka-demo-assets/tos-surround/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SURROUND).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Tears of Steel (multicodec, surround + stereo, single skippable ad)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://storage.googleapis.com/shaka-demo-assets/tos-surround/dash.mpd",
162
162
  shakaAssets.Source.SHAKA)).setAdTagUri(shakaAssets.AdTag.SINGLE_SKIPPABLE_AD).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SURROUND).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Shaka Player History (multicodec, live, DASH)","https://storage.googleapis.com/shaka-asset-icons/shaka.png","https://storage.googleapis.com/shaka-live-assets/player-source.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.LIVE).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.WEBM),
163
163
  (new ShakaDemoAssetInfo("Shaka Player History (live, HLS)","https://storage.googleapis.com/shaka-asset-icons/shaka.png","https://storage.googleapis.com/shaka-live-assets/player-source.m3u8",shakaAssets.Source.SHAKA)).addDescription("A self-indulgent HLS livestream.").markAsFeatured("Shaka Player History").addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.LIVE).addFeature(shakaAssets.Feature.MP4),(new ShakaDemoAssetInfo("Multi-DRM","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png",