shaka-player 4.0.2 → 4.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/.github/workflows/build-and-test.yaml +67 -15
  2. package/.github/workflows/compute-incremental-coverage.py +251 -0
  3. package/.github/workflows/report-incremental-coverage.yaml +39 -0
  4. package/.github/workflows/selenium-lab-tests.yaml +44 -1
  5. package/AUTHORS +2 -0
  6. package/CHANGELOG.md +43 -0
  7. package/CONTRIBUTORS +4 -0
  8. package/README.md +20 -6
  9. package/demo/common/assets.js +1 -1
  10. package/demo/index.html +1 -3
  11. package/demo/main.js +3 -3
  12. package/dist/controls.css +1 -1
  13. package/dist/demo.compiled.debug.js +3 -3
  14. package/dist/demo.compiled.debug.map +2 -2
  15. package/dist/demo.compiled.js +3 -3
  16. package/dist/demo.compiled.map +2 -2
  17. package/dist/deps.js +3 -3
  18. package/dist/locales.js +29 -29
  19. package/dist/receiver.compiled.debug.js +1 -1
  20. package/dist/receiver.compiled.debug.map +1 -1
  21. package/dist/receiver.compiled.js +1 -1
  22. package/dist/receiver.compiled.map +1 -1
  23. package/dist/shaka-player.compiled.d.ts +12 -1
  24. package/dist/shaka-player.compiled.debug.d.ts +12 -1
  25. package/dist/shaka-player.compiled.debug.externs.js +52 -40
  26. package/dist/shaka-player.compiled.debug.js +269 -256
  27. package/dist/shaka-player.compiled.debug.map +4 -4
  28. package/dist/shaka-player.compiled.externs.js +52 -40
  29. package/dist/shaka-player.compiled.js +739 -730
  30. package/dist/shaka-player.compiled.map +4 -4
  31. package/dist/shaka-player.ui.d.ts +12 -1
  32. package/dist/shaka-player.ui.debug.d.ts +12 -1
  33. package/dist/shaka-player.ui.debug.externs.js +52 -40
  34. package/dist/shaka-player.ui.debug.js +296 -282
  35. package/dist/shaka-player.ui.debug.map +4 -4
  36. package/dist/shaka-player.ui.externs.js +52 -40
  37. package/dist/shaka-player.ui.js +885 -878
  38. package/dist/shaka-player.ui.map +4 -4
  39. package/docs/tutorials/ui.md +5 -5
  40. package/docs/tutorials/upgrade.md +1 -0
  41. package/docs/tutorials/welcome.md +6 -3
  42. package/externs/shaka/player.js +4 -2
  43. package/karma.conf.js +3 -11
  44. package/lib/ads/client_side_ad_manager.js +1 -1
  45. package/lib/dash/dash_parser.js +5 -0
  46. package/lib/hls/hls_parser.js +183 -70
  47. package/lib/media/drm_engine.js +1 -1
  48. package/lib/media/media_source_engine.js +57 -24
  49. package/lib/media/presentation_timeline.js +24 -1
  50. package/lib/media/segment_index.js +26 -1
  51. package/lib/media/segment_reference.js +10 -3
  52. package/lib/media/streaming_engine.js +4 -4
  53. package/lib/media/time_ranges_utils.js +46 -0
  54. package/lib/player.js +1 -6
  55. package/lib/polyfill/media_capabilities.js +9 -0
  56. package/lib/polyfill/videoplaybackquality.js +3 -1
  57. package/lib/text/cue.js +0 -5
  58. package/lib/text/simple_text_displayer.js +21 -9
  59. package/lib/text/ui_text_displayer.js +83 -19
  60. package/lib/util/buffer_utils.js +3 -0
  61. package/lib/util/object_utils.js +1 -0
  62. package/lib/util/platform.js +19 -1
  63. package/lib/util/stream_utils.js +24 -3
  64. package/lib/util/string_utils.js +102 -13
  65. package/maintained-branches.md +15 -0
  66. package/package.json +3 -5
  67. package/test/hls/hls_parser_unit.js +102 -8
  68. package/test/media/drm_engine_integration.js +24 -8
  69. package/test/media/media_source_engine_integration.js +24 -10
  70. package/test/media/media_source_engine_unit.js +53 -38
  71. package/test/media/streaming_engine_unit.js +28 -27
  72. package/test/test/util/fake_media_source_engine.js +10 -9
  73. package/test/text/simple_text_displayer_unit.js +27 -0
  74. package/test/text/ui_text_displayer_unit.js +65 -0
  75. package/test/util/string_utils_unit.js +46 -8
  76. package/ui/text_selection.js +2 -2
  77. package/app-engine/README.md +0 -9
  78. package/app-engine/demo-version-index/README.md +0 -14
  79. package/app-engine/demo-version-index/app.yaml +0 -28
  80. package/app-engine/demo-version-index/generate.py +0 -164
  81. package/app-engine/demo-version-index/main.py +0 -11
  82. package/app-engine/demo-version-index/requirements.txt +0 -5
  83. package/app-engine/demo-version-index/templates/index.html +0 -114
  84. package/app-engine/shaka-player-demo/README.md +0 -18
  85. package/app-engine/shaka-player-demo/app.yaml +0 -61
  86. package/app-engine/shaka-player-demo/main.py +0 -95
  87. package/app-engine/shaka-player-demo/posters/10yo.png +0 -0
  88. package/app-engine/shaka-player-demo/posters/10yo.xcf +0 -0
  89. package/app-engine/shaka-player-demo/posters/1yo.jpg +0 -0
  90. package/app-engine/shaka-player-demo/posters/2yo.png +0 -0
  91. package/app-engine/shaka-player-demo/posters/2yo.xcf +0 -0
  92. package/app-engine/shaka-player-demo/posters/3yo.png +0 -0
  93. package/app-engine/shaka-player-demo/posters/3yo.xcf +0 -0
  94. package/app-engine/shaka-player-demo/posters/4yo.png +0 -0
  95. package/app-engine/shaka-player-demo/posters/4yo.xcf +0 -0
  96. package/app-engine/shaka-player-demo/posters/5yo.png +0 -0
  97. package/app-engine/shaka-player-demo/posters/5yo.xcf +0 -0
  98. package/app-engine/shaka-player-demo/posters/6yo.png +0 -0
  99. package/app-engine/shaka-player-demo/posters/6yo.xcf +0 -0
  100. package/app-engine/shaka-player-demo/posters/7yo.png +0 -0
  101. package/app-engine/shaka-player-demo/posters/7yo.xcf +0 -0
  102. package/app-engine/shaka-player-demo/posters/8yo.png +0 -0
  103. package/app-engine/shaka-player-demo/posters/8yo.xcf +0 -0
  104. package/app-engine/shaka-player-demo/posters/9yo.png +0 -0
  105. package/app-engine/shaka-player-demo/posters/9yo.xcf +0 -0
  106. package/app-engine/shaka-player-demo/posters/audioOnly.gif +0 -0
  107. package/app-engine/shaka-player-demo/posters/audioRickRoll.gif +0 -0
  108. package/app-engine/shaka-player-demo/posters/colorbars.gif +0 -0
  109. package/app-engine/shaka-player-demo/posters/fireworks.jpg +0 -0
  110. package/app-engine/shaka-player-demo/posters/party-hat.png +0 -0
  111. package/app-engine/shaka-player-demo/posters/sources.txt +0 -46
  112. package/app-engine/shaka-player-demo/posters/standard.png +0 -0
  113. package/app-engine/shaka-player-demo/posters/trek.jpg +0 -0
  114. package/app-engine/shaka-player-demo/posters/valentines.png +0 -0
  115. package/app-engine/shaka-player-demo/posters/zombie.jpg +0 -0
  116. package/app-engine/shaka-player-demo/posters.py +0 -110
  117. package/app-engine/shaka-player-demo/requirements.txt +0 -5
  118. package/app-engine/shaka-player-demo/time.txt +0 -1
  119. package/build/README.md +0 -127
  120. package/build/__init__.py +0 -0
  121. package/build/all.py +0 -150
  122. package/build/apps.py +0 -186
  123. package/build/build.py +0 -392
  124. package/build/check.py +0 -354
  125. package/build/checkversion.py +0 -84
  126. package/build/compiler.py +0 -513
  127. package/build/conformance.textproto +0 -335
  128. package/build/docker/Dockerfile +0 -20
  129. package/build/docker/docker-compose.yml +0 -10
  130. package/build/docs.py +0 -54
  131. package/build/eslint-plugin-shaka-rules/arg-comment-spacing.js +0 -72
  132. package/build/eslint-plugin-shaka-rules/index.js +0 -24
  133. package/build/eslint-plugin-shaka-rules/package.json +0 -7
  134. package/build/eslint-plugin-shaka-rules/private.js +0 -109
  135. package/build/gendeps.py +0 -71
  136. package/build/generateExterns.js +0 -867
  137. package/build/generateLocalizations.py +0 -262
  138. package/build/generateTsDefs.py +0 -137
  139. package/build/install-linux-prereqs.sh +0 -136
  140. package/build/license-header +0 -5
  141. package/build/misspellings.txt +0 -39
  142. package/build/pixelsChanged.js +0 -35
  143. package/build/shaka-lab.yaml +0 -161
  144. package/build/shakaBuildHelpers.py +0 -356
  145. package/build/stats.py +0 -816
  146. package/build/subprocessWindowsPatch.py +0 -103
  147. package/build/test.py +0 -541
  148. package/build/types/ads +0 -8
  149. package/build/types/cast +0 -6
  150. package/build/types/cea +0 -13
  151. package/build/types/complete +0 -9
  152. package/build/types/core +0 -108
  153. package/build/types/dash +0 -8
  154. package/build/types/hls +0 -9
  155. package/build/types/manifests +0 -5
  156. package/build/types/networking +0 -6
  157. package/build/types/offline +0 -22
  158. package/build/types/polyfill +0 -18
  159. package/build/types/text +0 -11
  160. package/build/types/ui +0 -39
  161. package/build/updateScreenshots.py +0 -85
  162. package/build/wrapper.template.js +0 -52
@@ -586,7 +586,6 @@ shaka.text.Cue.prototype.direction;
586
586
  shaka.text.Cue.prototype.endTime;
587
587
  /**
588
588
  * @override
589
- * @type {string}
590
589
  */
591
590
  shaka.text.Cue.prototype.payload;
592
591
  /**
@@ -907,6 +906,7 @@ shaka.util.BufferUtils = class {
907
906
  * @param {?BufferSource} arr1
908
907
  * @param {?BufferSource} arr2
909
908
  * @return {boolean}
909
+ * @suppress {strictMissingProperties}
910
910
  */
911
911
  static equal(arr1, arr2) {}
912
912
  /**
@@ -975,6 +975,43 @@ shaka.dependencies = class {
975
975
  shaka.dependencies.Allowed = {
976
976
  muxjs: 'muxjs'
977
977
  };
978
+ /**
979
+ * A timer allows a single function to be executed at a later time or at
980
+ * regular intervals.
981
+ * @final
982
+ */
983
+ shaka.util.Timer = class {
984
+ /**
985
+ * Create a new timer. A timer is committed to a single callback function.
986
+ * While there is no technical reason to do this, it is far easier to
987
+ * understand and use timers when they are connected to one functional idea.
988
+ * @param {function()} onTick
989
+ */
990
+ constructor(onTick) {}
991
+ /**
992
+ * Have the timer call |onTick| now.
993
+ * @return {!shaka.util.Timer}
994
+ */
995
+ tickNow() {}
996
+ /**
997
+ * Have the timer call |onTick| after |seconds| has elapsed unless |stop| is
998
+ * called first.
999
+ * @param {number} seconds
1000
+ * @return {!shaka.util.Timer}
1001
+ */
1002
+ tickAfter(seconds) {}
1003
+ /**
1004
+ * Have the timer call |onTick| every |seconds| until |stop| is called.
1005
+ * @param {number} seconds
1006
+ * @return {!shaka.util.Timer}
1007
+ */
1008
+ tickEvery(seconds) {}
1009
+ /**
1010
+ * Stop the timer and clear the previous behaviour. The timer is still usable
1011
+ * after calling |stop|.
1012
+ */
1013
+ stop() {}
1014
+ };
978
1015
  /**
979
1016
  * @namespace shaka.util.StringUtils
980
1017
  * @summary A set of string utility functions.
@@ -1107,43 +1144,6 @@ shaka.text.TextEngine = class {
1107
1144
  */
1108
1145
  destroy() {}
1109
1146
  };
1110
- /**
1111
- * A timer allows a single function to be executed at a later time or at
1112
- * regular intervals.
1113
- * @final
1114
- */
1115
- shaka.util.Timer = class {
1116
- /**
1117
- * Create a new timer. A timer is committed to a single callback function.
1118
- * While there is no technical reason to do this, it is far easier to
1119
- * understand and use timers when they are connected to one functional idea.
1120
- * @param {function()} onTick
1121
- */
1122
- constructor(onTick) {}
1123
- /**
1124
- * Have the timer call |onTick| now.
1125
- * @return {!shaka.util.Timer}
1126
- */
1127
- tickNow() {}
1128
- /**
1129
- * Have the timer call |onTick| after |seconds| has elapsed unless |stop| is
1130
- * called first.
1131
- * @param {number} seconds
1132
- * @return {!shaka.util.Timer}
1133
- */
1134
- tickAfter(seconds) {}
1135
- /**
1136
- * Have the timer call |onTick| every |seconds| until |stop| is called.
1137
- * @param {number} seconds
1138
- * @return {!shaka.util.Timer}
1139
- */
1140
- tickEvery(seconds) {}
1141
- /**
1142
- * Stop the timer and clear the previous behaviour. The timer is still usable
1143
- * after calling |stop|.
1144
- */
1145
- stop() {}
1146
- };
1147
1147
  /**
1148
1148
  * @summary
1149
1149
  * <p>
@@ -1798,8 +1798,9 @@ shaka.media.SegmentReference = class {
1798
1798
  * If not provided, the duration should be automatically calculated based on
1799
1799
  * the duration of the reference.
1800
1800
  * @param {?number=} syncTime
1801
- * A time value, expressed in the same scale as the start and end time, which
1802
- * is used to synchronize between streams.
1801
+ * A time value, expressed in seconds since 1970, which is used to
1802
+ * synchronize between streams. Both produced and consumed by the HLS
1803
+ * parser. Other components should not need this value.
1803
1804
  * @param {shaka.media.SegmentReference.Status=} status
1804
1805
  * The segment status is used to indicate that a segment does not exist or is
1805
1806
  * not available.
@@ -1936,6 +1937,17 @@ shaka.media.PresentationTimeline = class {
1936
1937
  * @param {!Array.<!shaka.media.SegmentReference>} references
1937
1938
  */
1938
1939
  notifySegments(references) {}
1940
+ /**
1941
+ * Lock the presentation timeline's start time. After this is called, no
1942
+ * further adjustments to presentationStartTime_ will be permitted.
1943
+ * This should be called after all Periods have been parsed, and all calls to
1944
+ * notifySegments() from the initial manifest parse have been made.
1945
+ * Without this, we can get assertion failures in SegmentIndex for certain
1946
+ * DAI content. If DAI adds ad segments to the manifest faster than
1947
+ * real-time, adjustments to presentationStartTime_ can cause availability
1948
+ * windows to jump around on updates.
1949
+ */
1950
+ lockStartTime() {}
1939
1951
  /**
1940
1952
  * Gives PresentationTimeline a Stream's minimum segment start time.
1941
1953
  * @param {number} startTime