shaka-player 3.2.2 → 3.3.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 (188) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.md +1 -1
  2. package/.github/ISSUE_TEMPLATE/feature_request.md +1 -1
  3. package/.github/ISSUE_TEMPLATE/question.md +1 -1
  4. package/.github/workflows/build_and_test.yaml +73 -0
  5. package/.github/workflows/release.yaml +53 -0
  6. package/AUTHORS +6 -5
  7. package/CHANGELOG.md +314 -1
  8. package/CONTRIBUTORS +4 -2
  9. package/build/checkversion.py +1 -1
  10. package/build/conformance.textproto +183 -169
  11. package/build/test.py +6 -0
  12. package/build/types/core +3 -0
  13. package/build/types/offline +1 -0
  14. package/build/types/polyfill +1 -0
  15. package/build/types/ui +2 -0
  16. package/demo/common/assets.js +18 -0
  17. package/demo/common/message_ids.js +13 -1
  18. package/demo/config.js +31 -1
  19. package/demo/index.html +1 -1
  20. package/demo/locales/en.json +12 -0
  21. package/demo/locales/source.json +48 -0
  22. package/dist/controls.css +26 -2
  23. package/dist/controls.css.map +1 -1
  24. package/dist/demo.compiled.debug.js +19 -16
  25. package/dist/demo.compiled.debug.map +3 -3
  26. package/dist/demo.compiled.js +19 -16
  27. package/dist/demo.compiled.map +3 -3
  28. package/dist/deps.js +21 -14
  29. package/dist/locales.js +31 -29
  30. package/dist/receiver.compiled.debug.js +11 -9
  31. package/dist/receiver.compiled.debug.map +3 -3
  32. package/dist/receiver.compiled.js +11 -9
  33. package/dist/receiver.compiled.map +3 -3
  34. package/dist/shaka-player.compiled.d.ts +232 -18
  35. package/dist/shaka-player.compiled.debug.d.ts +232 -18
  36. package/dist/shaka-player.compiled.debug.externs.js +293 -17
  37. package/dist/shaka-player.compiled.debug.js +481 -422
  38. package/dist/shaka-player.compiled.debug.map +4 -4
  39. package/dist/shaka-player.compiled.externs.js +293 -17
  40. package/dist/shaka-player.compiled.js +846 -817
  41. package/dist/shaka-player.compiled.map +4 -4
  42. package/dist/shaka-player.ui.d.ts +250 -30
  43. package/dist/shaka-player.ui.debug.d.ts +250 -30
  44. package/dist/shaka-player.ui.debug.externs.js +322 -28
  45. package/dist/shaka-player.ui.debug.js +630 -553
  46. package/dist/shaka-player.ui.debug.map +4 -4
  47. package/dist/shaka-player.ui.externs.js +322 -28
  48. package/dist/shaka-player.ui.js +1048 -1006
  49. package/dist/shaka-player.ui.map +4 -4
  50. package/docs/design/bg-fetch-after.gv +29 -0
  51. package/docs/design/bg-fetch-after.gv.png +0 -0
  52. package/docs/design/bg-fetch-before.gv +18 -0
  53. package/docs/design/bg-fetch-before.gv.png +0 -0
  54. package/docs/design/bg-fetch.md +134 -0
  55. package/docs/tutorials/blob-url.md +15 -0
  56. package/docs/tutorials/index.json +1 -0
  57. package/docs/tutorials/ui-customization.md +66 -0
  58. package/docs/tutorials/ui.md +5 -5
  59. package/externs/cmcd.js +186 -0
  60. package/externs/ima.js +3 -0
  61. package/externs/shaka/ads.js +5 -0
  62. package/externs/shaka/manifest.js +12 -1
  63. package/externs/shaka/manifest_parser.js +10 -1
  64. package/externs/shaka/net.js +20 -4
  65. package/externs/shaka/offline.js +31 -2
  66. package/externs/shaka/player.js +138 -5
  67. package/externs/shaka/text.js +24 -0
  68. package/externs/webcrypto.js +18 -0
  69. package/karma.conf.js +19 -15
  70. package/lib/abr/ewma.js +14 -0
  71. package/lib/abr/ewma_bandwidth_estimator.js +16 -2
  72. package/lib/abr/simple_abr_manager.js +6 -0
  73. package/lib/ads/ad_manager.js +1 -0
  74. package/lib/ads/client_side_ad.js +8 -0
  75. package/lib/ads/client_side_ad_manager.js +8 -4
  76. package/lib/ads/server_side_ad.js +7 -0
  77. package/lib/cast/cast_proxy.js +3 -0
  78. package/lib/cast/cast_receiver.js +3 -0
  79. package/lib/cast/cast_utils.js +1 -0
  80. package/lib/dash/dash_parser.js +79 -33
  81. package/lib/dash/segment_base.js +25 -1
  82. package/lib/dash/segment_list.js +18 -9
  83. package/lib/dash/segment_template.js +23 -10
  84. package/lib/hls/hls_parser.js +116 -23
  85. package/lib/hls/manifest_text_parser.js +1 -0
  86. package/lib/media/quality_observer.js +274 -0
  87. package/lib/media/region_observer.js +39 -33
  88. package/lib/media/region_timeline.js +17 -19
  89. package/lib/media/segment_index.js +8 -1
  90. package/lib/media/segment_reference.js +37 -4
  91. package/lib/media/streaming_engine.js +47 -6
  92. package/lib/net/http_fetch_plugin.js +31 -11
  93. package/lib/net/http_plugin_utils.js +1 -0
  94. package/lib/net/http_xhr_plugin.js +40 -14
  95. package/lib/net/networking_engine.js +85 -18
  96. package/lib/offline/download_info.js +68 -0
  97. package/lib/offline/download_manager.js +13 -5
  98. package/lib/offline/indexeddb/base_storage_cell.js +35 -0
  99. package/lib/offline/indexeddb/storage_mechanism.js +1 -1
  100. package/lib/offline/indexeddb/v5_storage_cell.js +5 -0
  101. package/lib/offline/storage.js +401 -293
  102. package/lib/offline/stored_content_utils.js +2 -0
  103. package/lib/player.js +254 -27
  104. package/lib/polyfill/media_capabilities.js +30 -15
  105. package/lib/polyfill/random_uuid.js +52 -0
  106. package/lib/text/cue.js +18 -0
  107. package/lib/text/ttml_text_parser.js +109 -60
  108. package/lib/text/ui_text_displayer.js +19 -13
  109. package/lib/util/cmcd_manager.js +672 -0
  110. package/lib/util/error.js +6 -0
  111. package/lib/util/fake_event_target.js +21 -1
  112. package/lib/util/language_utils.js +12 -0
  113. package/lib/util/mutex.js +52 -0
  114. package/lib/util/periods.js +98 -64
  115. package/lib/util/player_configuration.js +18 -0
  116. package/lib/util/stream_utils.js +86 -10
  117. package/lib/util/xml_utils.js +19 -0
  118. package/package.json +3 -6
  119. package/shaka-player.uncompiled.js +3 -0
  120. package/test/dash/dash_parser_content_protection_unit.js +2 -0
  121. package/test/dash/dash_parser_live_unit.js +144 -1
  122. package/test/dash/dash_parser_manifest_unit.js +37 -2
  123. package/test/dash/dash_parser_segment_base_unit.js +2 -0
  124. package/test/dash/dash_parser_segment_list_unit.js +2 -1
  125. package/test/dash/dash_parser_segment_template_unit.js +2 -1
  126. package/test/hls/hls_live_unit.js +2 -0
  127. package/test/hls/hls_parser_unit.js +76 -0
  128. package/test/media/drm_engine_unit.js +3 -3
  129. package/test/media/quality_observer_unit.js +142 -0
  130. package/test/media/region_observer_unit.js +40 -5
  131. package/test/media/region_timeline_unit.js +40 -22
  132. package/test/media/segment_reference_unit.js +16 -1
  133. package/test/media/streaming_engine_integration.js +4 -2
  134. package/test/media/streaming_engine_unit.js +147 -0
  135. package/test/net/http_plugin_unit.js +20 -15
  136. package/test/offline/storage_integration.js +108 -4
  137. package/test/player_integration.js +140 -8
  138. package/test/player_src_equals_integration.js +41 -8
  139. package/test/player_unit.js +19 -9
  140. package/test/test/assets/chapters.vtt +2 -2
  141. package/test/test/assets/chapters2.vtt +10 -0
  142. package/test/test/util/dash_parser_util.js +4 -0
  143. package/test/test/util/fake_ad.js +7 -0
  144. package/test/test/util/fake_drm_engine.js +9 -2
  145. package/test/test/util/manifest_generator.js +3 -2
  146. package/test/test/util/test_scheme.js +14 -1
  147. package/test/test/util/ttml_utils.js +81 -0
  148. package/test/test/util/util.js +10 -7
  149. package/test/text/mp4_ttml_parser_unit.js +11 -18
  150. package/test/text/ttml_text_parser_unit.js +544 -228
  151. package/test/ui/text_displayer_layout_unit.js +8 -7
  152. package/test/ui/ui_unit.js +250 -0
  153. package/test/util/cmcd_manager_unit.js +291 -0
  154. package/test/util/stream_utils_unit.js +36 -30
  155. package/third_party/closure-uri/uri.js +21 -0
  156. package/ui/airplay_button.js +1 -0
  157. package/ui/audio_language_selection.js +7 -0
  158. package/ui/cast_button.js +1 -0
  159. package/ui/context_menu.js +109 -0
  160. package/ui/controls.js +44 -7
  161. package/ui/controls.less +1 -0
  162. package/ui/enums.js +4 -0
  163. package/ui/externs/ui.js +28 -1
  164. package/ui/fast_forward_button.js +14 -5
  165. package/ui/fullscreen_button.js +1 -0
  166. package/ui/less/buttons.less +0 -4
  167. package/ui/less/containers.less +74 -0
  168. package/ui/less/overflow_menu.less +0 -10
  169. package/ui/less/tooltip.less +97 -0
  170. package/ui/locales/en.json +1 -0
  171. package/ui/locales/source.json +4 -0
  172. package/ui/localization.js +12 -36
  173. package/ui/loop_button.js +5 -0
  174. package/ui/mute_button.js +2 -1
  175. package/ui/overflow_menu.js +5 -25
  176. package/ui/pip_button.js +5 -0
  177. package/ui/play_button.js +2 -2
  178. package/ui/playback_rate_selection.js +8 -9
  179. package/ui/resolution_selection.js +7 -0
  180. package/ui/rewind_button.js +15 -6
  181. package/ui/seek_bar.js +4 -2
  182. package/ui/settings_menu.js +36 -4
  183. package/ui/small_play_button.js +1 -0
  184. package/ui/statistics_button.js +253 -0
  185. package/ui/text_selection.js +12 -4
  186. package/ui/ui.js +30 -0
  187. package/ui/volume_bar.js +1 -1
  188. package/externs/media_capabilities.js +0 -16
package/dist/deps.js CHANGED
@@ -39,7 +39,7 @@ goog.addDependency('../../../../lib/cea/i_cea_parser.js', ['shaka.cea.ICeaParser
39
39
  goog.addDependency('../../../../lib/cea/mp4_cea_parser.js', ['shaka.cea.Mp4CeaParser'], ['goog.asserts', 'shaka.cea.ICeaParser', 'shaka.cea.SeiProcessor', 'shaka.util.DataViewReader', 'shaka.util.Error', 'shaka.util.Mp4BoxParsers', 'shaka.util.Mp4Parser'], {});
40
40
  goog.addDependency('../../../../lib/cea/sei_processor.js', ['shaka.cea.SeiProcessor'], [], {});
41
41
  goog.addDependency('../../../../lib/dash/content_protection.js', ['shaka.dash.ContentProtection'], ['goog.asserts', 'shaka.log', 'shaka.util.BufferUtils', 'shaka.util.Error', 'shaka.util.ManifestParserUtils', 'shaka.util.Pssh', 'shaka.util.StringUtils', 'shaka.util.Uint8ArrayUtils', 'shaka.util.XmlUtils'], {});
42
- goog.addDependency('../../../../lib/dash/dash_parser.js', ['shaka.dash.DashParser'], ['goog.asserts', 'shaka.abr.Ewma', 'shaka.dash.ContentProtection', 'shaka.dash.MpdUtils', 'shaka.dash.SegmentBase', 'shaka.dash.SegmentList', 'shaka.dash.SegmentTemplate', 'shaka.log', 'shaka.media.ManifestParser', 'shaka.media.PresentationTimeline', 'shaka.media.SegmentIndex', 'shaka.net.NetworkingEngine', 'shaka.text.TextEngine', 'shaka.util.Error', 'shaka.util.Functional', 'shaka.util.Iterables', 'shaka.util.LanguageUtils', 'shaka.util.ManifestParserUtils', 'shaka.util.MimeUtils', 'shaka.util.Networking', 'shaka.util.OperationManager', 'shaka.util.PeriodCombiner', 'shaka.util.StringUtils', 'shaka.util.Timer', 'shaka.util.XmlUtils'], {});
42
+ goog.addDependency('../../../../lib/dash/dash_parser.js', ['shaka.dash.DashParser'], ['goog.asserts', 'shaka.abr.Ewma', 'shaka.dash.ContentProtection', 'shaka.dash.MpdUtils', 'shaka.dash.SegmentBase', 'shaka.dash.SegmentList', 'shaka.dash.SegmentTemplate', 'shaka.log', 'shaka.media.ManifestParser', 'shaka.media.PresentationTimeline', 'shaka.media.SegmentIndex', 'shaka.net.NetworkingEngine', 'shaka.text.TextEngine', 'shaka.util.CmcdManager', 'shaka.util.Error', 'shaka.util.Functional', 'shaka.util.Iterables', 'shaka.util.LanguageUtils', 'shaka.util.ManifestParserUtils', 'shaka.util.MimeUtils', 'shaka.util.Networking', 'shaka.util.OperationManager', 'shaka.util.PeriodCombiner', 'shaka.util.StringUtils', 'shaka.util.Timer', 'shaka.util.XmlUtils'], {});
43
43
  goog.addDependency('../../../../lib/dash/mpd_utils.js', ['shaka.dash.MpdUtils'], ['goog.asserts', 'shaka.log', 'shaka.net.NetworkingEngine', 'shaka.util.AbortableOperation', 'shaka.util.Error', 'shaka.util.Functional', 'shaka.util.Iterables', 'shaka.util.ManifestParserUtils', 'shaka.util.XmlUtils'], {});
44
44
  goog.addDependency('../../../../lib/dash/segment_base.js', ['shaka.dash.SegmentBase'], ['goog.asserts', 'shaka.dash.MpdUtils', 'shaka.log', 'shaka.media.InitSegmentReference', 'shaka.media.Mp4SegmentIndexParser', 'shaka.media.SegmentIndex', 'shaka.media.WebmSegmentIndexParser', 'shaka.util.Error', 'shaka.util.ManifestParserUtils', 'shaka.util.ObjectUtils', 'shaka.util.XmlUtils'], {});
45
45
  goog.addDependency('../../../../lib/dash/segment_list.js', ['shaka.dash.SegmentList'], ['goog.asserts', 'shaka.dash.MpdUtils', 'shaka.dash.SegmentBase', 'shaka.log', 'shaka.media.InitSegmentReference', 'shaka.media.SegmentIndex', 'shaka.media.SegmentReference', 'shaka.util.Error', 'shaka.util.Functional', 'shaka.util.Iterables', 'shaka.util.ManifestParserUtils', 'shaka.util.XmlUtils'], {});
@@ -51,7 +51,7 @@ goog.addDependency('../../../../lib/deprecate/deprecate.js', ['shaka.Deprecate']
51
51
  goog.addDependency('../../../../lib/deprecate/enforcer.js', ['shaka.deprecate.Enforcer'], ['shaka.deprecate.Version'], {});
52
52
  goog.addDependency('../../../../lib/deprecate/version.js', ['shaka.deprecate.Version'], [], {});
53
53
  goog.addDependency('../../../../lib/hls/hls_classes.js', ['shaka.hls.Attribute', 'shaka.hls.Playlist', 'shaka.hls.PlaylistType', 'shaka.hls.Segment', 'shaka.hls.Tag'], ['goog.asserts', 'shaka.util.Error'], {});
54
- goog.addDependency('../../../../lib/hls/hls_parser.js', ['shaka.hls.HlsParser'], ['goog.Uri', 'goog.asserts', 'shaka.hls.ManifestTextParser', 'shaka.hls.Playlist', 'shaka.hls.PlaylistType', 'shaka.hls.Tag', 'shaka.hls.Utils', 'shaka.log', 'shaka.media.DrmEngine', 'shaka.media.InitSegmentReference', 'shaka.media.ManifestParser', 'shaka.media.PresentationTimeline', 'shaka.media.SegmentIndex', 'shaka.media.SegmentReference', 'shaka.net.DataUriPlugin', 'shaka.net.NetworkingEngine', 'shaka.util.ArrayUtils', 'shaka.util.BufferUtils', 'shaka.util.DataViewReader', 'shaka.util.Error', 'shaka.util.FakeEvent', 'shaka.util.Functional', 'shaka.util.Iterables', 'shaka.util.LanguageUtils', 'shaka.util.ManifestParserUtils', 'shaka.util.MimeUtils', 'shaka.util.Mp4BoxParsers', 'shaka.util.Mp4Parser', 'shaka.util.Networking', 'shaka.util.OperationManager', 'shaka.util.Pssh', 'shaka.util.Timer'], {});
54
+ goog.addDependency('../../../../lib/hls/hls_parser.js', ['shaka.hls.HlsParser'], ['goog.Uri', 'goog.asserts', 'shaka.hls.ManifestTextParser', 'shaka.hls.Playlist', 'shaka.hls.PlaylistType', 'shaka.hls.Tag', 'shaka.hls.Utils', 'shaka.log', 'shaka.media.DrmEngine', 'shaka.media.InitSegmentReference', 'shaka.media.ManifestParser', 'shaka.media.PresentationTimeline', 'shaka.media.SegmentIndex', 'shaka.media.SegmentReference', 'shaka.net.DataUriPlugin', 'shaka.net.NetworkingEngine', 'shaka.util.ArrayUtils', 'shaka.util.BufferUtils', 'shaka.util.CmcdManager', 'shaka.util.DataViewReader', 'shaka.util.Error', 'shaka.util.FakeEvent', 'shaka.util.Functional', 'shaka.util.Iterables', 'shaka.util.LanguageUtils', 'shaka.util.ManifestParserUtils', 'shaka.util.MimeUtils', 'shaka.util.Mp4BoxParsers', 'shaka.util.Mp4Parser', 'shaka.util.Networking', 'shaka.util.OperationManager', 'shaka.util.Pssh', 'shaka.util.Timer'], {});
55
55
  goog.addDependency('../../../../lib/hls/hls_utils.js', ['shaka.hls.Utils'], ['shaka.util.ManifestParserUtils'], {});
56
56
  goog.addDependency('../../../../lib/hls/manifest_text_parser.js', ['shaka.hls.ManifestTextParser'], ['shaka.hls.Attribute', 'shaka.hls.Playlist', 'shaka.hls.PlaylistType', 'shaka.hls.Segment', 'shaka.hls.Tag', 'shaka.hls.Utils', 'shaka.util.Error', 'shaka.util.Iterables', 'shaka.util.StringUtils', 'shaka.util.TextParser'], {});
57
57
  goog.addDependency('../../../../lib/media/adaptation_set.js', ['shaka.media.AdaptationSet'], ['goog.asserts', 'shaka.log', 'shaka.util.Iterables', 'shaka.util.MimeUtils'], {});
@@ -68,8 +68,9 @@ goog.addDependency('../../../../lib/media/play_rate_controller.js', ['shaka.medi
68
68
  goog.addDependency('../../../../lib/media/playhead.js', ['shaka.media.MediaSourcePlayhead', 'shaka.media.Playhead', 'shaka.media.SrcEqualsPlayhead'], ['goog.asserts', 'shaka.log', 'shaka.media.GapJumpingController', 'shaka.media.StallDetector', 'shaka.media.StallDetector.MediaElementImplementation', 'shaka.media.TimeRangesUtils', 'shaka.media.VideoWrapper', 'shaka.util.EventManager', 'shaka.util.IReleasable', 'shaka.util.MediaReadyState', 'shaka.util.Timer'], {});
69
69
  goog.addDependency('../../../../lib/media/playhead_observer.js', ['shaka.media.IPlayheadObserver', 'shaka.media.PlayheadObserverManager'], ['shaka.util.IReleasable', 'shaka.util.Timer'], {});
70
70
  goog.addDependency('../../../../lib/media/presentation_timeline.js', ['shaka.media.PresentationTimeline'], ['goog.asserts', 'shaka.log', 'shaka.media.SegmentReference'], {});
71
- goog.addDependency('../../../../lib/media/region_observer.js', ['shaka.media.RegionObserver'], ['shaka.media.IPlayheadObserver', 'shaka.media.RegionTimeline'], {});
72
- goog.addDependency('../../../../lib/media/region_timeline.js', ['shaka.media.RegionTimeline'], ['shaka.util.IReleasable', 'shaka.util.Timer'], {});
71
+ goog.addDependency('../../../../lib/media/quality_observer.js', ['shaka.media.QualityObserver'], ['shaka.log', 'shaka.media.IPlayheadObserver', 'shaka.util.FakeEvent', 'shaka.util.FakeEventTarget'], {});
72
+ goog.addDependency('../../../../lib/media/region_observer.js', ['shaka.media.RegionObserver'], ['shaka.media.IPlayheadObserver', 'shaka.media.RegionTimeline', 'shaka.util.EventManager', 'shaka.util.FakeEvent', 'shaka.util.FakeEventTarget'], {});
73
+ goog.addDependency('../../../../lib/media/region_timeline.js', ['shaka.media.RegionTimeline'], ['shaka.util.FakeEvent', 'shaka.util.FakeEventTarget', 'shaka.util.IReleasable', 'shaka.util.Timer'], {});
73
74
  goog.addDependency('../../../../lib/media/segment_index.js', ['shaka.media.MetaSegmentIndex', 'shaka.media.SegmentIndex', 'shaka.media.SegmentIterator'], ['goog.asserts', 'shaka.Deprecate', 'shaka.media.SegmentReference', 'shaka.util.IReleasable', 'shaka.util.Timer'], {});
74
75
  goog.addDependency('../../../../lib/media/segment_reference.js', ['shaka.media.InitSegmentReference', 'shaka.media.SegmentReference'], ['goog.asserts', 'shaka.util.ArrayUtils'], {});
75
76
  goog.addDependency('../../../../lib/media/stall_detector.js', ['shaka.media.StallDetector', 'shaka.media.StallDetector.Implementation', 'shaka.media.StallDetector.MediaElementImplementation'], ['shaka.media.TimeRangesUtils', 'shaka.util.IReleasable'], {});
@@ -84,6 +85,7 @@ goog.addDependency('../../../../lib/net/http_fetch_plugin.js', ['shaka.net.HttpF
84
85
  goog.addDependency('../../../../lib/net/http_plugin_utils.js', ['shaka.net.HttpPluginUtils'], ['shaka.log', 'shaka.util.Error', 'shaka.util.StringUtils'], {});
85
86
  goog.addDependency('../../../../lib/net/http_xhr_plugin.js', ['shaka.net.HttpXHRPlugin'], ['goog.asserts', 'shaka.net.HttpPluginUtils', 'shaka.net.NetworkingEngine', 'shaka.util.AbortableOperation', 'shaka.util.Error'], {});
86
87
  goog.addDependency('../../../../lib/net/networking_engine.js', ['shaka.net.NetworkingEngine', 'shaka.net.NetworkingEngine.PendingRequest', 'shaka.net.NetworkingEngine.RequestType'], ['goog.Uri', 'goog.asserts', 'shaka.net.Backoff', 'shaka.util.AbortableOperation', 'shaka.util.BufferUtils', 'shaka.util.Error', 'shaka.util.FakeEvent', 'shaka.util.FakeEventTarget', 'shaka.util.IDestroyable', 'shaka.util.ObjectUtils', 'shaka.util.OperationManager', 'shaka.util.Timer'], {});
88
+ goog.addDependency('../../../../lib/offline/download_info.js', ['shaka.offline.DownloadInfo'], ['shaka.util.Networking'], {});
87
89
  goog.addDependency('../../../../lib/offline/download_manager.js', ['shaka.offline.DownloadManager'], ['shaka.net.NetworkingEngine', 'shaka.offline.DownloadProgressEstimator', 'shaka.util.ArrayUtils', 'shaka.util.BufferUtils', 'shaka.util.Destroyer', 'shaka.util.Error', 'shaka.util.IDestroyable', 'shaka.util.Pssh'], {});
88
90
  goog.addDependency('../../../../lib/offline/download_progress_estimator.js', ['shaka.offline.DownloadProgressEstimator'], [], {});
89
91
  goog.addDependency('../../../../lib/offline/indexeddb/base_storage_cell.js', ['shaka.offline.indexeddb.BaseStorageCell'], ['shaka.offline.indexeddb.DBConnection', 'shaka.util.Error'], {});
@@ -99,11 +101,11 @@ goog.addDependency('../../../../lib/offline/offline_manifest_parser.js', ['shaka
99
101
  goog.addDependency('../../../../lib/offline/offline_scheme.js', ['shaka.offline.OfflineScheme'], ['goog.asserts', 'shaka.net.NetworkingEngine', 'shaka.offline.OfflineUri', 'shaka.offline.StorageMuxer', 'shaka.util.AbortableOperation', 'shaka.util.Error'], {});
100
102
  goog.addDependency('../../../../lib/offline/offline_uri.js', ['shaka.offline.OfflineUri'], [], {});
101
103
  goog.addDependency('../../../../lib/offline/session_deleter.js', ['shaka.offline.SessionDeleter'], ['shaka.log', 'shaka.media.DrmEngine', 'shaka.util.ArrayUtils'], {});
102
- goog.addDependency('../../../../lib/offline/storage.js', ['shaka.offline.Storage'], ['goog.asserts', 'shaka.Deprecate', 'shaka.Player', 'shaka.log', 'shaka.media.DrmEngine', 'shaka.media.ManifestParser', 'shaka.net.NetworkingEngine', 'shaka.offline.DownloadManager', 'shaka.offline.OfflineUri', 'shaka.offline.SessionDeleter', 'shaka.offline.StorageMuxer', 'shaka.offline.StoredContentUtils', 'shaka.offline.StreamBandwidthEstimator', 'shaka.util.AbortableOperation', 'shaka.util.ArrayUtils', 'shaka.util.ConfigUtils', 'shaka.util.Destroyer', 'shaka.util.Error', 'shaka.util.Functional', 'shaka.util.IDestroyable', 'shaka.util.Iterables', 'shaka.util.MimeUtils', 'shaka.util.Networking', 'shaka.util.Platform', 'shaka.util.PlayerConfiguration', 'shaka.util.StreamUtils'], {});
104
+ goog.addDependency('../../../../lib/offline/storage.js', ['shaka.offline.Storage'], ['goog.asserts', 'shaka.Deprecate', 'shaka.Player', 'shaka.log', 'shaka.media.DrmEngine', 'shaka.media.ManifestParser', 'shaka.net.NetworkingEngine', 'shaka.offline.DownloadInfo', 'shaka.offline.DownloadManager', 'shaka.offline.OfflineUri', 'shaka.offline.SessionDeleter', 'shaka.offline.StorageMuxer', 'shaka.offline.StoredContentUtils', 'shaka.offline.StreamBandwidthEstimator', 'shaka.util.AbortableOperation', 'shaka.util.ArrayUtils', 'shaka.util.ConfigUtils', 'shaka.util.Destroyer', 'shaka.util.Error', 'shaka.util.Functional', 'shaka.util.IDestroyable', 'shaka.util.Iterables', 'shaka.util.MimeUtils', 'shaka.util.Mutex', 'shaka.util.Platform', 'shaka.util.PlayerConfiguration', 'shaka.util.StreamUtils'], {});
103
105
  goog.addDependency('../../../../lib/offline/storage_muxer.js', ['shaka.offline.StorageCellHandle', 'shaka.offline.StorageCellPath', 'shaka.offline.StorageMuxer'], ['shaka.log', 'shaka.util.Error', 'shaka.util.IDestroyable'], {});
104
106
  goog.addDependency('../../../../lib/offline/stored_content_utils.js', ['shaka.offline.StoredContentUtils'], ['goog.asserts', 'shaka.offline.ManifestConverter', 'shaka.offline.OfflineUri', 'shaka.util.StreamUtils'], {});
105
107
  goog.addDependency('../../../../lib/offline/stream_bandwidth_estimator.js', ['shaka.offline.StreamBandwidthEstimator'], ['shaka.log'], {});
106
- goog.addDependency('../../../../lib/player.js', ['shaka.Player'], ['goog.asserts', 'shaka.Deprecate', 'shaka.log', 'shaka.media.AdaptationSetCriteria', 'shaka.media.BufferingObserver', 'shaka.media.ClosedCaptionParser', 'shaka.media.DrmEngine', 'shaka.media.ExampleBasedCriteria', 'shaka.media.ManifestParser', 'shaka.media.MediaSourceEngine', 'shaka.media.MediaSourcePlayhead', 'shaka.media.MetaSegmentIndex', 'shaka.media.PlayRateController', 'shaka.media.Playhead', 'shaka.media.PlayheadObserverManager', 'shaka.media.PreferenceBasedCriteria', 'shaka.media.RegionObserver', 'shaka.media.RegionTimeline', 'shaka.media.SegmentIndex', 'shaka.media.SrcEqualsPlayhead', 'shaka.media.StreamingEngine', 'shaka.media.TimeRangesUtils', 'shaka.net.NetworkingEngine', 'shaka.routing.Walker', 'shaka.text.SimpleTextDisplayer', 'shaka.text.TextEngine', 'shaka.text.UITextDisplayer', 'shaka.text.WebVttGenerator', 'shaka.util.AbortableOperation', 'shaka.util.BufferUtils', 'shaka.util.ConfigUtils', 'shaka.util.Error', 'shaka.util.EventManager', 'shaka.util.FakeEvent', 'shaka.util.FakeEventTarget', 'shaka.util.Functional', 'shaka.util.IDestroyable', 'shaka.util.LanguageUtils', 'shaka.util.ManifestParserUtils', 'shaka.util.MediaReadyState', 'shaka.util.MimeUtils', 'shaka.util.ObjectUtils', 'shaka.util.Platform', 'shaka.util.PlayerConfiguration', 'shaka.util.PublicPromise', 'shaka.util.Stats', 'shaka.util.StreamUtils', 'shaka.util.Timer'], {});
108
+ goog.addDependency('../../../../lib/player.js', ['shaka.Player'], ['goog.asserts', 'shaka.Deprecate', 'shaka.log', 'shaka.media.AdaptationSetCriteria', 'shaka.media.BufferingObserver', 'shaka.media.ClosedCaptionParser', 'shaka.media.DrmEngine', 'shaka.media.ExampleBasedCriteria', 'shaka.media.ManifestParser', 'shaka.media.MediaSourceEngine', 'shaka.media.MediaSourcePlayhead', 'shaka.media.MetaSegmentIndex', 'shaka.media.PlayRateController', 'shaka.media.Playhead', 'shaka.media.PlayheadObserverManager', 'shaka.media.PreferenceBasedCriteria', 'shaka.media.QualityObserver', 'shaka.media.RegionObserver', 'shaka.media.RegionTimeline', 'shaka.media.SegmentIndex', 'shaka.media.SrcEqualsPlayhead', 'shaka.media.StreamingEngine', 'shaka.media.TimeRangesUtils', 'shaka.net.NetworkingEngine', 'shaka.routing.Walker', 'shaka.text.SimpleTextDisplayer', 'shaka.text.TextEngine', 'shaka.text.UITextDisplayer', 'shaka.text.WebVttGenerator', 'shaka.util.AbortableOperation', 'shaka.util.BufferUtils', 'shaka.util.CmcdManager', 'shaka.util.ConfigUtils', 'shaka.util.Error', 'shaka.util.EventManager', 'shaka.util.FakeEvent', 'shaka.util.FakeEventTarget', 'shaka.util.Functional', 'shaka.util.IDestroyable', 'shaka.util.LanguageUtils', 'shaka.util.ManifestParserUtils', 'shaka.util.MediaReadyState', 'shaka.util.MimeUtils', 'shaka.util.ObjectUtils', 'shaka.util.Platform', 'shaka.util.PlayerConfiguration', 'shaka.util.PublicPromise', 'shaka.util.Stats', 'shaka.util.StreamUtils', 'shaka.util.Timer'], {});
107
109
  goog.addDependency('../../../../lib/polyfill/all.js', ['shaka.polyfill'], ['shaka.log', 'shaka.util.Iterables'], {});
108
110
  goog.addDependency('../../../../lib/polyfill/aria.js', ['shaka.polyfill.Aria'], ['shaka.log', 'shaka.polyfill'], {});
109
111
  goog.addDependency('../../../../lib/polyfill/encryption_scheme.js', ['shaka.polyfill.EncryptionScheme'], ['shaka.polyfill'], {});
@@ -117,6 +119,7 @@ goog.addDependency('../../../../lib/polyfill/patchedmediakeys_ms.js', ['shaka.po
117
119
  goog.addDependency('../../../../lib/polyfill/patchedmediakeys_nop.js', ['shaka.polyfill.PatchedMediaKeysNop'], ['goog.asserts', 'shaka.log', 'shaka.polyfill'], {});
118
120
  goog.addDependency('../../../../lib/polyfill/patchedmediakeys_webkit.js', ['shaka.polyfill.PatchedMediaKeysWebkit'], ['goog.asserts', 'shaka.log', 'shaka.media.DrmEngine', 'shaka.polyfill', 'shaka.util.BufferUtils', 'shaka.util.EventManager', 'shaka.util.FakeEvent', 'shaka.util.FakeEventTarget', 'shaka.util.PublicPromise', 'shaka.util.StringUtils', 'shaka.util.Timer', 'shaka.util.Uint8ArrayUtils'], {});
119
121
  goog.addDependency('../../../../lib/polyfill/pip_webkit.js', ['shaka.polyfill.PiPWebkit'], ['shaka.log', 'shaka.polyfill'], {});
122
+ goog.addDependency('../../../../lib/polyfill/random_uuid.js', ['shaka.polyfill.RandomUUID'], ['shaka.log', 'shaka.polyfill'], {});
120
123
  goog.addDependency('../../../../lib/polyfill/storage_estimate.js', ['shaka.polyfill.StorageEstimate'], ['shaka.polyfill'], {});
121
124
  goog.addDependency('../../../../lib/polyfill/video_play_promise.js', ['shaka.polyfill.VideoPlayPromise'], ['shaka.log', 'shaka.polyfill'], {});
122
125
  goog.addDependency('../../../../lib/polyfill/videoplaybackquality.js', ['shaka.polyfill.VideoPlaybackQuality'], ['shaka.polyfill'], {});
@@ -140,6 +143,7 @@ goog.addDependency('../../../../lib/text/web_vtt_generator.js', ['shaka.text.Web
140
143
  goog.addDependency('../../../../lib/util/abortable_operation.js', ['shaka.util.AbortableOperation'], ['shaka.util.Error', 'shaka.util.PublicPromise'], {});
141
144
  goog.addDependency('../../../../lib/util/array_utils.js', ['shaka.util.ArrayUtils'], [], {});
142
145
  goog.addDependency('../../../../lib/util/buffer_utils.js', ['shaka.util.BufferUtils'], ['shaka.util.Iterables'], {});
146
+ goog.addDependency('../../../../lib/util/cmcd_manager.js', ['shaka.util.CmcdManager'], ['goog.Uri', 'shaka.log'], {});
143
147
  goog.addDependency('../../../../lib/util/config_utils.js', ['shaka.util.ConfigUtils'], ['goog.asserts', 'shaka.log', 'shaka.util.ObjectUtils'], {});
144
148
  goog.addDependency('../../../../lib/util/data_view_reader.js', ['shaka.util.DataViewReader'], ['goog.asserts', 'shaka.util.BufferUtils', 'shaka.util.Error', 'shaka.util.StringUtils'], {});
145
149
  goog.addDependency('../../../../lib/util/delayed_tick.js', ['shaka.util.DelayedTick'], [], {});
@@ -150,7 +154,7 @@ goog.addDependency('../../../../lib/util/error.js', ['shaka.util.Error'], [], {}
150
154
  goog.addDependency('../../../../lib/util/event_manager.js', ['shaka.util.EventManager'], ['goog.asserts', 'shaka.util.IReleasable', 'shaka.util.MultiMap'], {});
151
155
  goog.addDependency('../../../../lib/util/fairplay_utils.js', ['shaka.util.FairPlayUtils'], ['goog.Uri', 'goog.asserts', 'shaka.util.BufferUtils', 'shaka.util.Error', 'shaka.util.StringUtils'], {});
152
156
  goog.addDependency('../../../../lib/util/fake_event.js', ['shaka.util.FakeEvent'], ['goog.asserts'], {});
153
- goog.addDependency('../../../../lib/util/fake_event_target.js', ['shaka.util.FakeEventTarget'], ['goog.asserts', 'shaka.log', 'shaka.util.FakeEvent', 'shaka.util.MultiMap'], {});
157
+ goog.addDependency('../../../../lib/util/fake_event_target.js', ['shaka.util.FakeEventTarget'], ['goog.asserts', 'shaka.log', 'shaka.util.FakeEvent', 'shaka.util.IReleasable', 'shaka.util.MultiMap'], {});
154
158
  goog.addDependency('../../../../lib/util/functional.js', ['shaka.util.Functional'], ['shaka.Deprecate'], {});
155
159
  goog.addDependency('../../../../lib/util/i_destroyable.js', ['shaka.util.IDestroyable'], [], {});
156
160
  goog.addDependency('../../../../lib/util/i_releasable.js', ['shaka.util.IReleasable'], [], {});
@@ -164,6 +168,7 @@ goog.addDependency('../../../../lib/util/mime_utils.js', ['shaka.util.MimeUtils'
164
168
  goog.addDependency('../../../../lib/util/mp4_box_parsers.js', ['shaka.util.Mp4BoxParsers'], ['shaka.util.DataViewReader', 'shaka.util.Functional', 'shaka.util.Iterables'], {});
165
169
  goog.addDependency('../../../../lib/util/mp4_parser.js', ['shaka.util.Mp4Parser'], ['goog.asserts', 'shaka.log', 'shaka.util.DataViewReader', 'shaka.util.Functional', 'shaka.util.Iterables'], {});
166
170
  goog.addDependency('../../../../lib/util/multi_map.js', ['shaka.util.MultiMap'], [], {});
171
+ goog.addDependency('../../../../lib/util/mutex.js', ['shaka.util.Mutex'], [], {});
167
172
  goog.addDependency('../../../../lib/util/networking.js', ['shaka.util.Networking'], ['shaka.net.NetworkingEngine'], {});
168
173
  goog.addDependency('../../../../lib/util/object_utils.js', ['shaka.util.ObjectUtils'], [], {});
169
174
  goog.addDependency('../../../../lib/util/operation_manager.js', ['shaka.util.OperationManager'], ['shaka.util.ArrayUtils', 'shaka.util.IDestroyable'], {});
@@ -187,33 +192,35 @@ goog.addDependency('../../../../third_party/language-mapping-list/language-mappi
187
192
  goog.addDependency('../../../../ui/ad_counter.js', ['shaka.ui.AdCounter'], ['goog.asserts', 'shaka.ads.AdManager', 'shaka.ui.Element', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.ui.Utils', 'shaka.util.Dom', 'shaka.util.Timer'], {});
188
193
  goog.addDependency('../../../../ui/ad_position.js', ['shaka.ui.AdPosition'], ['shaka.ads.AdManager', 'shaka.ui.Element', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.ui.Utils', 'shaka.util.Dom'], {});
189
194
  goog.addDependency('../../../../ui/airplay_button.js', ['shaka.ui.AirPlayButton'], ['goog.asserts', 'shaka.Player', 'shaka.ui.Controls', 'shaka.ui.Element', 'shaka.ui.Enums', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.ui.OverflowMenu', 'shaka.ui.Utils', 'shaka.util.Dom'], {});
190
- goog.addDependency('../../../../ui/audio_language_selection.js', ['shaka.ui.AudioLanguageSelection'], ['shaka.ui.Enums', 'shaka.ui.LanguageUtils', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.ui.OverflowMenu', 'shaka.ui.SettingsMenu', 'shaka.ui.Utils', 'shaka.util.FakeEvent'], {});
195
+ goog.addDependency('../../../../ui/audio_language_selection.js', ['shaka.ui.AudioLanguageSelection'], ['shaka.ui.Controls', 'shaka.ui.Enums', 'shaka.ui.LanguageUtils', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.ui.OverflowMenu', 'shaka.ui.SettingsMenu', 'shaka.ui.Utils', 'shaka.util.FakeEvent'], {});
191
196
  goog.addDependency('../../../../ui/big_play_button.js', ['shaka.ui.BigPlayButton'], ['shaka.ui.Locales', 'shaka.ui.PlayButton'], {});
192
197
  goog.addDependency('../../../../ui/cast_button.js', ['shaka.ui.CastButton'], ['shaka.cast.CastProxy', 'shaka.ui.Controls', 'shaka.ui.Element', 'shaka.ui.Enums', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.ui.OverflowMenu', 'shaka.ui.Utils', 'shaka.util.Dom', 'shaka.util.Error', 'shaka.util.FakeEvent'], {});
193
198
  goog.addDependency('../../../../ui/constants.js', ['shaka.ui.Constants'], [], {});
194
- goog.addDependency('../../../../ui/controls.js', ['shaka.ui.Controls', 'shaka.ui.ControlsPanel'], ['goog.asserts', 'shaka.Deprecate', 'shaka.ads.AdManager', 'shaka.cast.CastProxy', 'shaka.log', 'shaka.ui.AdCounter', 'shaka.ui.AdPosition', 'shaka.ui.BigPlayButton', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.ui.SeekBar', 'shaka.ui.Utils', 'shaka.util.Dom', 'shaka.util.EventManager', 'shaka.util.FakeEvent', 'shaka.util.FakeEventTarget', 'shaka.util.IDestroyable', 'shaka.util.Timer'], {});
199
+ goog.addDependency('../../../../ui/context_menu.js', ['shaka.ui.ContextMenu'], ['goog.asserts', 'shaka.log', 'shaka.ui.Element', 'shaka.ui.Utils', 'shaka.util.Dom'], {});
200
+ goog.addDependency('../../../../ui/controls.js', ['shaka.ui.Controls', 'shaka.ui.ControlsPanel'], ['goog.asserts', 'shaka.Deprecate', 'shaka.ads.AdManager', 'shaka.cast.CastProxy', 'shaka.log', 'shaka.ui.AdCounter', 'shaka.ui.AdPosition', 'shaka.ui.BigPlayButton', 'shaka.ui.ContextMenu', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.ui.SeekBar', 'shaka.ui.Utils', 'shaka.util.Dom', 'shaka.util.EventManager', 'shaka.util.FakeEvent', 'shaka.util.FakeEventTarget', 'shaka.util.IDestroyable', 'shaka.util.Timer'], {});
195
201
  goog.addDependency('../../../../ui/element.js', ['shaka.ui.Element'], ['shaka.ads.AdManager', 'shaka.util.EventManager'], {});
196
202
  goog.addDependency('../../../../ui/enums.js', ['shaka.ui.Enums'], [], {});
197
203
  goog.addDependency('../../../../ui/fast_forward_button.js', ['shaka.ui.FastForwardButton'], ['shaka.ui.Controls', 'shaka.ui.Element', 'shaka.ui.Enums', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.util.Dom'], {});
198
204
  goog.addDependency('../../../../ui/fullscreen_button.js', ['shaka.ui.FullscreenButton'], ['shaka.ui.Controls', 'shaka.ui.Element', 'shaka.ui.Enums', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.util.Dom'], {});
199
205
  goog.addDependency('../../../../ui/language_utils.js', ['shaka.ui.LanguageUtils'], ['mozilla.LanguageMapping', 'shaka.log', 'shaka.ui.Locales', 'shaka.ui.Overlay.TrackLabelFormat', 'shaka.ui.Utils', 'shaka.util.Dom', 'shaka.util.LanguageUtils'], {});
200
206
  goog.addDependency('../../../../ui/localization.js', ['shaka.ui.Localization', 'shaka.ui.Localization.ConflictResolution'], ['shaka.util.FakeEvent', 'shaka.util.FakeEventTarget', 'shaka.util.Iterables', 'shaka.util.LanguageUtils'], {});
201
- goog.addDependency('../../../../ui/loop_button.js', ['shaka.ui.LoopButton'], ['shaka.ui.Controls', 'shaka.ui.Element', 'shaka.ui.Enums', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.ui.OverflowMenu', 'shaka.util.Dom', 'shaka.util.Timer'], {});
207
+ goog.addDependency('../../../../ui/loop_button.js', ['shaka.ui.LoopButton'], ['shaka.ui.ContextMenu', 'shaka.ui.Controls', 'shaka.ui.Element', 'shaka.ui.Enums', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.ui.OverflowMenu', 'shaka.util.Dom', 'shaka.util.Timer'], {});
202
208
  goog.addDependency('../../../../ui/mute_button.js', ['shaka.ui.MuteButton'], ['shaka.ads.AdManager', 'shaka.ui.Controls', 'shaka.ui.Element', 'shaka.ui.Enums', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.util.Dom'], {});
203
209
  goog.addDependency('../../../../ui/overflow_menu.js', ['shaka.ui.OverflowMenu'], ['goog.asserts', 'shaka.ads.AdManager', 'shaka.log', 'shaka.ui.Controls', 'shaka.ui.Element', 'shaka.ui.Enums', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.ui.Utils', 'shaka.util.Dom', 'shaka.util.Iterables'], {});
204
- goog.addDependency('../../../../ui/pip_button.js', ['shaka.ui.PipButton'], ['shaka.ui.Controls', 'shaka.ui.Element', 'shaka.ui.Enums', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.ui.OverflowMenu', 'shaka.ui.Utils', 'shaka.util.Dom', 'shaka.util.FakeEvent'], {});
210
+ goog.addDependency('../../../../ui/pip_button.js', ['shaka.ui.PipButton'], ['shaka.ui.ContextMenu', 'shaka.ui.Controls', 'shaka.ui.Element', 'shaka.ui.Enums', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.ui.OverflowMenu', 'shaka.ui.Utils', 'shaka.util.Dom', 'shaka.util.FakeEvent'], {});
205
211
  goog.addDependency('../../../../ui/play_button.js', ['shaka.ui.PlayButton'], ['shaka.ads.AdManager', 'shaka.ui.Element', 'shaka.ui.Localization', 'shaka.util.Dom'], {});
206
- goog.addDependency('../../../../ui/playback_rate_selection.js', ['shaka.ui.PlaybackRateSelection'], ['shaka.ui.Enums', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.ui.OverflowMenu', 'shaka.ui.SettingsMenu', 'shaka.ui.Utils', 'shaka.util.Dom'], {});
212
+ goog.addDependency('../../../../ui/playback_rate_selection.js', ['shaka.ui.PlaybackRateSelection'], ['shaka.ui.Controls', 'shaka.ui.Enums', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.ui.OverflowMenu', 'shaka.ui.SettingsMenu', 'shaka.ui.Utils', 'shaka.util.Dom'], {});
207
213
  goog.addDependency('../../../../ui/presentation_time.js', ['shaka.ui.PresentationTimeTracker'], ['shaka.ui.Controls', 'shaka.ui.Element', 'shaka.ui.Locales', 'shaka.ui.Utils', 'shaka.util.Dom'], {});
208
214
  goog.addDependency('../../../../ui/range_element.js', ['shaka.ui.RangeElement'], ['shaka.ui.Element', 'shaka.util.Dom', 'shaka.util.Timer'], {});
209
- goog.addDependency('../../../../ui/resolution_selection.js', ['shaka.ui.ResolutionSelection'], ['goog.asserts', 'shaka.ui.Enums', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.ui.OverflowMenu', 'shaka.ui.SettingsMenu', 'shaka.ui.Utils', 'shaka.util.Dom', 'shaka.util.FakeEvent'], {});
215
+ goog.addDependency('../../../../ui/resolution_selection.js', ['shaka.ui.ResolutionSelection'], ['goog.asserts', 'shaka.ui.Controls', 'shaka.ui.Enums', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.ui.OverflowMenu', 'shaka.ui.SettingsMenu', 'shaka.ui.Utils', 'shaka.util.Dom', 'shaka.util.FakeEvent'], {});
210
216
  goog.addDependency('../../../../ui/rewind_button.js', ['shaka.ui.RewindButton'], ['shaka.ui.Controls', 'shaka.ui.Element', 'shaka.ui.Enums', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.util.Dom'], {});
211
217
  goog.addDependency('../../../../ui/seek_bar.js', ['shaka.ui.SeekBar'], ['shaka.ads.AdManager', 'shaka.ui.Constants', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.ui.RangeElement', 'shaka.ui.Utils', 'shaka.util.Dom', 'shaka.util.Timer'], {});
212
218
  goog.addDependency('../../../../ui/settings_menu.js', ['shaka.ui.SettingsMenu'], ['shaka.ui.Element', 'shaka.ui.Enums', 'shaka.ui.Utils', 'shaka.util.Dom', 'shaka.util.FakeEvent'], {});
213
219
  goog.addDependency('../../../../ui/skip_ad_button.js', ['shaka.ui.SkipAdButton'], ['goog.asserts', 'shaka.ads.AdManager', 'shaka.ui.Element', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.ui.Utils', 'shaka.util.Dom', 'shaka.util.Timer'], {});
214
220
  goog.addDependency('../../../../ui/small_play_button.js', ['shaka.ui.SmallPlayButton'], ['shaka.ui.Controls', 'shaka.ui.Enums', 'shaka.ui.Locales', 'shaka.ui.PlayButton'], {});
215
221
  goog.addDependency('../../../../ui/spacer.js', ['shaka.ui.Spacer'], ['shaka.ui.Controls', 'shaka.ui.Element', 'shaka.util.Dom'], {});
216
- goog.addDependency('../../../../ui/text_selection.js', ['shaka.ui.TextSelection'], ['shaka.ui.Enums', 'shaka.ui.LanguageUtils', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.ui.OverflowMenu', 'shaka.ui.SettingsMenu', 'shaka.ui.Utils', 'shaka.util.Dom', 'shaka.util.FakeEvent'], {});
222
+ goog.addDependency('../../../../ui/statistics_button.js', ['shaka.ui.StatisticsButton'], ['shaka.log', 'shaka.ui.ContextMenu', 'shaka.ui.Controls', 'shaka.ui.Element', 'shaka.ui.Enums', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.ui.OverflowMenu', 'shaka.ui.Utils', 'shaka.util.Dom', 'shaka.util.Timer'], {});
223
+ goog.addDependency('../../../../ui/text_selection.js', ['shaka.ui.TextSelection'], ['shaka.ui.Controls', 'shaka.ui.Enums', 'shaka.ui.LanguageUtils', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.ui.OverflowMenu', 'shaka.ui.SettingsMenu', 'shaka.ui.Utils', 'shaka.util.Dom', 'shaka.util.FakeEvent'], {});
217
224
  goog.addDependency('../../../../ui/ui.js', ['shaka.ui.Overlay', 'shaka.ui.Overlay.FailReasonCode', 'shaka.ui.Overlay.TrackLabelFormat'], ['goog.asserts', 'shaka.Player', 'shaka.log', 'shaka.polyfill', 'shaka.ui.Controls', 'shaka.util.ConfigUtils', 'shaka.util.Dom', 'shaka.util.FakeEvent', 'shaka.util.IDestroyable', 'shaka.util.Platform'], {});
218
225
  goog.addDependency('../../../../ui/ui_utils.js', ['shaka.ui.Utils'], ['goog.asserts', 'shaka.ui.Enums', 'shaka.util.Dom'], {});
219
226
  goog.addDependency('../../../../ui/volume_bar.js', ['shaka.ui.VolumeBar'], ['goog.asserts', 'shaka.ads.AdManager', 'shaka.ui.Controls', 'shaka.ui.Locales', 'shaka.ui.Localization', 'shaka.ui.RangeElement'], {});
package/dist/locales.js CHANGED
@@ -134,6 +134,7 @@ shaka.ui.Locales.addTo = function(localization) {
134
134
  ['SEEK', 'Seek'],
135
135
  ['SKIP_AD', 'Skip Ad'],
136
136
  ['SKIP_TO_LIVE', 'Skip ahead to live'],
137
+ ['STATISTICS', 'Statistics'],
137
138
  ['SUBTITLE_FORCED', 'Forced'],
138
139
  ['UNDETERMINED_LANGUAGE', 'Undetermined'],
139
140
  ['UNMUTE', 'Unmute'],
@@ -719,43 +720,44 @@ shaka.ui.Locales.addTo = function(localization) {
719
720
  * @const
720
721
  */
721
722
  shaka.ui.Locales.Ids = {
722
- MORE_SETTINGS: 'MORE_SETTINGS',
723
- PLAYBACK_RATE: 'PLAYBACK_RATE',
724
723
  MUTE: 'MUTE',
725
- AD_PROGRESS: 'AD_PROGRESS',
726
- AIRPLAY: 'AIRPLAY',
727
- EXIT_LOOP_MODE: 'EXIT_LOOP_MODE',
724
+ VOLUME: 'VOLUME',
725
+ LOOP: 'LOOP',
728
726
  RESOLUTION: 'RESOLUTION',
729
- ON: 'ON',
730
- LANGUAGE: 'LANGUAGE',
731
- PICTURE_IN_PICTURE: 'PICTURE_IN_PICTURE',
732
- LIVE: 'LIVE',
727
+ STATISTICS: 'STATISTICS',
728
+ AD_TIME: 'AD_TIME',
733
729
  UNMUTE: 'UNMUTE',
734
- ENTER_PICTURE_IN_PICTURE: 'ENTER_PICTURE_IN_PICTURE',
735
- VOLUME: 'VOLUME',
730
+ ENTER_LOOP_MODE: 'ENTER_LOOP_MODE',
731
+ FULL_SCREEN: 'FULL_SCREEN',
732
+ UNRECOGNIZED_LANGUAGE: 'UNRECOGNIZED_LANGUAGE',
736
733
  CAPTIONS: 'CAPTIONS',
737
- FAST_FORWARD: 'FAST_FORWARD',
738
- NOT_APPLICABLE: 'NOT_APPLICABLE',
734
+ MORE_SETTINGS: 'MORE_SETTINGS',
735
+ SKIP_TO_LIVE: 'SKIP_TO_LIVE',
736
+ UNDETERMINED_LANGUAGE: 'UNDETERMINED_LANGUAGE',
737
+ PAUSE: 'PAUSE',
738
+ ENTER_PICTURE_IN_PICTURE: 'ENTER_PICTURE_IN_PICTURE',
739
+ REPLAY: 'REPLAY',
740
+ EXIT_FULL_SCREEN: 'EXIT_FULL_SCREEN',
741
+ LANGUAGE: 'LANGUAGE',
739
742
  OFF: 'OFF',
740
- FULL_SCREEN: 'FULL_SCREEN',
741
- EXIT_PICTURE_IN_PICTURE: 'EXIT_PICTURE_IN_PICTURE',
743
+ BACK: 'BACK',
742
744
  PLAY: 'PLAY',
743
745
  SUBTITLE_FORCED: 'SUBTITLE_FORCED',
744
- MULTIPLE_LANGUAGES: 'MULTIPLE_LANGUAGES',
745
- AD_TIME: 'AD_TIME',
746
- CAST: 'CAST',
747
- LOOP: 'LOOP',
748
- BACK: 'BACK',
749
- REPLAY: 'REPLAY',
750
- AUTO_QUALITY: 'AUTO_QUALITY',
751
- UNDETERMINED_LANGUAGE: 'UNDETERMINED_LANGUAGE',
752
- UNRECOGNIZED_LANGUAGE: 'UNRECOGNIZED_LANGUAGE',
753
- SKIP_AD: 'SKIP_AD',
746
+ AD_PROGRESS: 'AD_PROGRESS',
747
+ NOT_APPLICABLE: 'NOT_APPLICABLE',
754
748
  AD_DURATION: 'AD_DURATION',
755
- PAUSE: 'PAUSE',
749
+ PICTURE_IN_PICTURE: 'PICTURE_IN_PICTURE',
750
+ SKIP_AD: 'SKIP_AD',
751
+ EXIT_LOOP_MODE: 'EXIT_LOOP_MODE',
752
+ LIVE: 'LIVE',
756
753
  REWIND: 'REWIND',
757
- ENTER_LOOP_MODE: 'ENTER_LOOP_MODE',
754
+ PLAYBACK_RATE: 'PLAYBACK_RATE',
755
+ CAST: 'CAST',
758
756
  SEEK: 'SEEK',
759
- SKIP_TO_LIVE: 'SKIP_TO_LIVE',
760
- EXIT_FULL_SCREEN: 'EXIT_FULL_SCREEN',
757
+ ON: 'ON',
758
+ AUTO_QUALITY: 'AUTO_QUALITY',
759
+ MULTIPLE_LANGUAGES: 'MULTIPLE_LANGUAGES',
760
+ AIRPLAY: 'AIRPLAY',
761
+ EXIT_PICTURE_IN_PICTURE: 'EXIT_PICTURE_IN_PICTURE',
762
+ FAST_FORWARD: 'FAST_FORWARD',
761
763
  };
@@ -105,14 +105,15 @@ CUSTOM_INTRO_TWO:"DEMO_CUSTOM_INTRO_TWO",CUSTOM_INTRO_THREE:"DEMO_CUSTOM_INTRO_T
105
105
  LICENSE_SERVER_URL:"DEMO_LICENSE_SERVER_URL",MAIN_TAB:"DEMO_MAIN_TAB",MANIFEST_URL:"DEMO_MANIFEST_URL",MANIFEST_URL_ERROR:"DEMO_MANIFEST_URL_ERROR",NAME:"DEMO_NAME",NAME_ERROR:"DEMO_NAME_ERROR",EXTRA_SHAKA_PLAYER_CONFIG:"DEMO_EXTRA_SHAKA_PLAYER_CONFIG",EXTRA_TAB:"DEMO_EXTRA_TAB",INVALID_JSON_CONFIG_ERROR:"DEMO_INVALID_JSON_CONFIG_ERROR",MIME_TYPE:"DEMO_MIME_TYPE",SAVE_BUTTON:"DEMO_SAVE_BUTTON",AD_SEARCH:"DEMO_AD_SEARCH",AUDIO_ONLY_SEARCH:"DEMO_AUDIO_ONLY_SEARCH",CONTAINER_SEARCH:"DEMO_CONTAINER_SEARCH",
106
106
  DRM_SEARCH:"DEMO_DRM_SEARCH",HIGH_DEFINITION_SEARCH:"DEMO_HIGH_DEFINITION_SEARCH",LIVE_SEARCH:"DEMO_LIVE_SEARCH",MANIFEST_SEARCH:"DEMO_MANIFEST_SEARCH",OFFLINE_SEARCH:"DEMO_OFFLINE_SEARCH",STORED_SEARCH:"DEMO_STORED_SEARCH",SUBTITLES_SEARCH:"DEMO_SUBTITLES_SEARCH",SURROUND_SEARCH:"DEMO_SURROUND_SEARCH",SOURCE_SEARCH:"DEMO_SOURCE_SEARCH",TRICK_MODE_SEARCH:"DEMO_TRICK_MODE_SEARCH",XLINK_SEARCH:"DEMO_XLINK_SEARCH",ADAPTATION_RESTRICTIONS_SECTION_HEADER:"DEMO_ADAPTATION_RESTRICTIONS_SECTION_HEADER",ADAPTATION_SECTION_HEADER:"DEMO_ADAPTATION_SECTION_HEADER",
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
- 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
- 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_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",
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",CMCD_SECTION_HEADER:"DEMO_CMCD_SECTION_HEADER",CONNECTION_TIMEOUT:"DEMO_CONNECTION_TIMEOUT",CONTENT_ID:"DEMO_CONTENT_ID",DEFAULT_AUDIO_CODEC:"DEMO_DEFAULT_AUDIO_CODEC",DEFAULT_PRESENTATION_DELAY:"DEMO_DEFAULT_PRESENTATION_DELAY",DEFAULT_VIDEO_CODEC:"DEMO_DEFAULT_VIDEO_CODEC",DELAY_LICENSE:"DEMO_DELAY_LICENSE",
109
+ 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",DISPATCH_ALL_EMSG_BOXES:"DEMO_DISPATCH_ALL_EMSG_BOXES",OBSERVE_QUALITY_CHANGES:"DEMO_OBSERVE_QUALITY_CHANGES",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",
110
+ FAST_HALF_LIFE:"DEMO_FAST_HALF_LIFE",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",IGNORE_DASH_SUGGESTED_PRESENTATION_DELAY:"DEMO_IGNORE_DASH_SUGGESTED_PRESENTATION_DELAY",IGNORE_HLS_IMAGE_FAILURES:"DEMO_IGNORE_HLS_IMAGE_FAILURES",
111
+ 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",LOG_LEVEL:"DEMO_LOG_LEVEL",LOG_LEVEL_DEBUG:"DEMO_LOG_LEVEL_DEBUG",
112
+ 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",MAX_PIXELS:"DEMO_MAX_PIXELS",MAX_SMALL_GAP_SIZE:"DEMO_MAX_SMALL_GAP_SIZE",
113
+ MAX_WIDTH:"DEMO_MAX_WIDTH",MIN_BANDWIDTH:"DEMO_MIN_BANDWIDTH",MIN_BYTES:"DEMO_MIN_BYTES",MIN_FRAMERATE:"DEMO_MIN_FRAMERATE",MIN_HEIGHT:"DEMO_MIN_HEIGHT",MIN_PIXELS:"DEMO_MIN_PIXELS",MIN_TOTAL_BYTES:"DEMO_MIN_TOTAL_BYTES",MIN_WIDTH:"DEMO_MIN_WIDTH",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",
114
+ 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",SESSION_ID:"DEMO_SESSION_ID",SHAKA_CONTROLS:"DEMO_SHAKA_CONTROLS",SLOW_HALF_LIFE:"DEMO_SLOW_HALF_LIFE",STALL_DETECTOR_ENABLED:"DEMO_STALL_DETECTOR_ENABLED",STALL_THRESHOLD:"DEMO_STALL_THRESHOLD",
114
115
  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
+ UPDATE_INTERVAL_SECONDS:"DEMO_UPDATE_INTERVAL_SECONDS",USE_HEADERS:"DEMO_USE_HEADERS",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
117
  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
118
  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
119
  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};
@@ -131,8 +132,8 @@ ShakaReceiverApp.prototype.checkIdle_=function(){console.debug("status changed",
131
132
  ShakaReceiverApp.prototype.startIdleTimer_=function(){this.cancelIdleTimer_();this.idleTimerId_=window.setTimeout(function(){window.close()},6E4*ShakaReceiverApp.IDLE_TIMEOUT_MINUTES_)};ShakaReceiverApp.prototype.cancelIdleTimer_=function(){null!=this.idleTimerId_&&(window.clearTimeout(this.idleTimerId_),this.idleTimerId_=null)};ShakaReceiverApp.IDLE_TIMEOUT_MINUTES_=5;document.addEventListener("shaka-ui-loaded",function(){var a=new ShakaReceiverApp;window.receiver=a;a.init()});var shakaAssets={};
132
133
  shakaAssets.Source={CUSTOM:shakaDemo.MessageIds.CUSTOM,SHAKA:shakaDemo.MessageIds.SHAKA,AXINOM:shakaDemo.MessageIds.AXINOM,UNIFIED_STREAMING:shakaDemo.MessageIds.UNIFIED_STREAMING,DASH_IF:shakaDemo.MessageIds.DASH_IF,BITCODIN:shakaDemo.MessageIds.BITCODIN,METACDN:shakaDemo.MessageIds.METACDN,NIMBLE_STREAMER:shakaDemo.MessageIds.NIMBLE_STREAMER,AZURE_MEDIA_SERVICES:shakaDemo.MessageIds.AZURE_MEDIA_SERVICES,GPAC:shakaDemo.MessageIds.GPAC,UPLYNK:shakaDemo.MessageIds.UPLYNK,APPLE:shakaDemo.MessageIds.APPLE,IRT:shakaDemo.MessageIds.IRT,
133
134
  MICROSOFT:shakaDemo.MessageIds.MICROSOFT};shakaAssets.KeySystem={CLEAR_KEY:shakaDemo.MessageIds.CLEAR_KEY,FAIRPLAY:shakaDemo.MessageIds.FAIRPLAY,PLAYREADY:shakaDemo.MessageIds.PLAYREADY,WIDEVINE:shakaDemo.MessageIds.WIDEVINE,CLEAR:shakaDemo.MessageIds.CLEAR};
134
- shakaAssets.AdTag={SINGLE_LINEAR_AD:"https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/124319096/external/single_ad_samples&ciu_szs=300x250&impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&cust_params=deployment%3Ddevsite%26sample_ct%3Dlinear&correlator=",SINGLE_SKIPPABLE_AD:"https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/124319096/external/single_ad_samples&ciu_szs=300x250&impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&cust_params=deployment%3Ddevsite%26sample_ct%3Dskippablelinear&correlator=",
135
- AD_POD_PREROLL_MIDROLL_POSTROLL:"https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/124319096/external/ad_rule_samples&ciu_szs=300x250&ad_rule=1&impl=s&gdfp_req=1&env=vp&output=vmap&unviewed_position_start=1&cust_params=deployment%3Ddevsite%26sample_ar%3Dpremidpostpod&cmsid=496&vid=short_onecue&correlator="};
135
+ shakaAssets.AdTag={SINGLE_LINEAR_AD:"https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/124319096/external/single_ad_samples&ciu_szs=300x250&impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&cust_params=deployment%3Ddevsite%26sample_ct%3Dlinear&correlator=",SINGLE_NON_LINEAR_AD:"https://pubads.g.doubleclick.net/gampad/ads?sz=480x70&iu=/124319096/external/single_ad_samples&ciu_szs=300x250 &impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&cust_params=deployment%3Ddevsite%26sample_ct%3Dnonlinear&correlator=",
136
+ SINGLE_SKIPPABLE_AD:"https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/124319096/external/single_ad_samples&ciu_szs=300x250&impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&cust_params=deployment%3Ddevsite%26sample_ct%3Dskippablelinear&correlator=",AD_POD_PREROLL_MIDROLL_POSTROLL:"https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/124319096/external/ad_rule_samples&ciu_szs=300x250&ad_rule=1&impl=s&gdfp_req=1&env=vp&output=vmap&unviewed_position_start=1&cust_params=deployment%3Ddevsite%26sample_ar%3Dpremidpostpod&cmsid=496&vid=short_onecue&correlator="};
136
137
  shakaAssets.identifierForKeySystem=function(a){var b=shakaAssets.KeySystem;switch(a){case b.CLEAR_KEY:return"org.w3.clearkey";case b.FAIRPLAY:return"com.apple.fps.1_0";case b.PLAYREADY:return"com.microsoft.playready";case b.WIDEVINE:return"com.widevine.alpha";default:return"no drm protection"}};
137
138
  shakaAssets.Feature={TRICK_MODE:shakaDemo.MessageIds.TRICK_MODE,XLINK:shakaDemo.MessageIds.XLINK,SUBTITLES:shakaDemo.MessageIds.SUBTITLES,CAPTIONS:shakaDemo.MessageIds.CAPTIONS,MULTIPLE_LANGUAGES:shakaDemo.MessageIds.MULTIPLE_LANGUAGES,AUDIO_ONLY:shakaDemo.MessageIds.AUDIO_ONLY,OFFLINE:shakaDemo.MessageIds.OFFLINE,STORED:shakaDemo.MessageIds.STORED,ADS:shakaDemo.MessageIds.ADS,LIVE:shakaDemo.MessageIds.LIVE,VOD:shakaDemo.MessageIds.VOD,WEBM:shakaDemo.MessageIds.WEBM,MP4:shakaDemo.MessageIds.MP4,MP2TS:shakaDemo.MessageIds.MP2TS,
138
139
  HIGH_DEFINITION:shakaDemo.MessageIds.HIGH_DEFINITION,ULTRA_HIGH_DEFINITION:shakaDemo.MessageIds.ULTRA_HIGH_DEFINITION,SURROUND:shakaDemo.MessageIds.SURROUND,DASH:shakaDemo.MessageIds.DASH,HLS:shakaDemo.MessageIds.HLS,THUMBNAILS:shakaDemo.MessageIds.THUMBNAILS};shakaAssets.lastUplynkPrefix="";shakaAssets.UplynkResponseFilter=function(a,b){a==shaka.net.NetworkingEngine.RequestType.MANIFEST&&(shakaAssets.lastUplynkPrefix=b.headers["x-uplynk-prefix"]?b.headers["x-uplynk-prefix"]:"")};
@@ -145,6 +146,7 @@ shakaAssets.testAssets=[(new ShakaDemoAssetInfo("Big Buck Bunny: the Dark Truths
145
146
  "https://cwip-shaka-proxy.appspot.com/clearkey?_u3wDe7erb7v8Lqt8A3QDQ=ABEiM0RVZneImaq7zN3u_w"),(new ShakaDemoAssetInfo("Angel One (HLS, MP4, multilingual)","https://storage.googleapis.com/shaka-asset-icons/angel_one.png","https://storage.googleapis.com/shaka-demo-assets/angel-one-hls/hls.m3u8",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.MULTIPLE_LANGUAGES).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.SURROUND).addFeature(shakaAssets.Feature.OFFLINE),
146
147
  (new ShakaDemoAssetInfo("Angel One (HLS, MP4, multilingual, Widevine)","https://storage.googleapis.com/shaka-asset-icons/angel_one.png","https://storage.googleapis.com/shaka-demo-assets/angel-one-widevine-hls/hls.m3u8",shakaAssets.Source.SHAKA)).addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.MULTIPLE_LANGUAGES).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.SURROUND).addFeature(shakaAssets.Feature.OFFLINE).addLicenseServer("com.widevine.alpha",
147
148
  "https://cwip-shaka-proxy.appspot.com/no_auth"),(new ShakaDemoAssetInfo("Angel One (HLS, MP4, multilingual, Widevine, single linear ad)","https://storage.googleapis.com/shaka-asset-icons/angel_one.png","https://storage.googleapis.com/shaka-demo-assets/angel-one-widevine-hls/hls.m3u8",shakaAssets.Source.SHAKA)).addKeySystem(shakaAssets.KeySystem.WIDEVINE).setAdTagUri(shakaAssets.AdTag.SINGLE_LINEAR_AD).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.MULTIPLE_LANGUAGES).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.SURROUND).addFeature(shakaAssets.Feature.OFFLINE).addLicenseServer("com.widevine.alpha",
149
+ "https://cwip-shaka-proxy.appspot.com/no_auth"),(new ShakaDemoAssetInfo("Angel One (HLS, MP4, multilingual, Widevine, single non-linear ad)","https://storage.googleapis.com/shaka-asset-icons/angel_one.png","https://storage.googleapis.com/shaka-demo-assets/angel-one-widevine-hls/hls.m3u8",shakaAssets.Source.SHAKA)).addKeySystem(shakaAssets.KeySystem.WIDEVINE).setAdTagUri(shakaAssets.AdTag.SINGLE_NON_LINEAR_AD).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.MULTIPLE_LANGUAGES).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.SURROUND).addFeature(shakaAssets.Feature.OFFLINE).addLicenseServer("com.widevine.alpha",
148
150
  "https://cwip-shaka-proxy.appspot.com/no_auth"),(new ShakaDemoAssetInfo("Sintel 4k (multicodec)","https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel/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),(new ShakaDemoAssetInfo("Sintel w/ trick mode (MP4 only, 720p)",
149
151
  "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
152
  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),