rx-player 4.5.0-dev.2026033100 → 4.5.0-dev.2026041501

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 (251) hide show
  1. package/CHANGELOG.md +22 -5
  2. package/VERSION +1 -1
  3. package/dist/commonjs/__GENERATED_CODE/embedded_dash_wasm.d.ts.map +1 -1
  4. package/dist/commonjs/__GENERATED_CODE/embedded_dash_wasm.js +1 -1
  5. package/dist/commonjs/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
  6. package/dist/commonjs/__GENERATED_CODE/embedded_worker.js +1 -1
  7. package/dist/commonjs/compat/can_patch_out_pssh.d.ts +42 -0
  8. package/dist/commonjs/compat/can_patch_out_pssh.d.ts.map +1 -0
  9. package/dist/commonjs/compat/can_patch_out_pssh.js +53 -0
  10. package/dist/commonjs/compat/env_detector.d.ts +2 -0
  11. package/dist/commonjs/compat/env_detector.d.ts.map +1 -1
  12. package/dist/commonjs/compat/env_detector.js +5 -0
  13. package/dist/commonjs/core/adaptive/network_analyzer.d.ts +1 -2
  14. package/dist/commonjs/core/adaptive/network_analyzer.d.ts.map +1 -1
  15. package/dist/commonjs/core/adaptive/network_analyzer.js +3 -3
  16. package/dist/commonjs/core/adaptive/utils/representation_score_calculator.js +2 -2
  17. package/dist/commonjs/core/cmcd/cmcd_data_builder.d.ts.map +1 -1
  18. package/dist/commonjs/core/cmcd/cmcd_data_builder.js +9 -3
  19. package/dist/commonjs/core/entry/content_preparer.d.ts.map +1 -1
  20. package/dist/commonjs/core/entry/content_preparer.js +5 -7
  21. package/dist/commonjs/core/entry/core_entry.d.ts.map +1 -1
  22. package/dist/commonjs/core/entry/core_entry.js +6 -2
  23. package/dist/commonjs/core/entry/core_text_displayer_interface.js +3 -3
  24. package/dist/commonjs/core/fetchers/manifest/manifest_fetcher.d.ts.map +1 -1
  25. package/dist/commonjs/core/fetchers/manifest/manifest_fetcher.js +12 -0
  26. package/dist/commonjs/core/fetchers/thumbnails/thumbnail_fetcher.js +1 -1
  27. package/dist/commonjs/core/fetchers/utils/schedule_request.d.ts.map +1 -1
  28. package/dist/commonjs/core/fetchers/utils/schedule_request.js +4 -3
  29. package/dist/commonjs/core/segment_sinks/garbage_collector.d.ts +0 -2
  30. package/dist/commonjs/core/segment_sinks/garbage_collector.d.ts.map +1 -1
  31. package/dist/commonjs/core/segment_sinks/garbage_collector.js +0 -3
  32. package/dist/commonjs/core/segment_sinks/implementations/text/text_segment_sink.d.ts +1 -1
  33. package/dist/commonjs/core/segment_sinks/implementations/text/text_segment_sink.d.ts.map +1 -1
  34. package/dist/commonjs/core/segment_sinks/implementations/text/text_segment_sink.js +2 -2
  35. package/dist/commonjs/core/stream/adaptation/adaptation_stream.d.ts.map +1 -1
  36. package/dist/commonjs/core/stream/adaptation/adaptation_stream.js +6 -6
  37. package/dist/commonjs/core/stream/orchestrator/stream_orchestrator.d.ts.map +1 -1
  38. package/dist/commonjs/core/stream/orchestrator/stream_orchestrator.js +37 -40
  39. package/dist/commonjs/default_config.d.ts +5 -0
  40. package/dist/commonjs/default_config.d.ts.map +1 -1
  41. package/dist/commonjs/default_config.js +5 -0
  42. package/dist/commonjs/main_thread/api/public_api.d.ts.map +1 -1
  43. package/dist/commonjs/main_thread/api/public_api.js +23 -16
  44. package/dist/commonjs/main_thread/decrypt/content_decryptor.d.ts.map +1 -1
  45. package/dist/commonjs/main_thread/decrypt/content_decryptor.js +4 -1
  46. package/dist/commonjs/main_thread/decrypt/session_events_listener.js +1 -1
  47. package/dist/commonjs/main_thread/decrypt/set_server_certificate.d.ts +2 -0
  48. package/dist/commonjs/main_thread/decrypt/set_server_certificate.d.ts.map +1 -1
  49. package/dist/commonjs/main_thread/decrypt/set_server_certificate.js +4 -0
  50. package/dist/commonjs/main_thread/init/media_source_content_initializer.d.ts +0 -8
  51. package/dist/commonjs/main_thread/init/media_source_content_initializer.d.ts.map +1 -1
  52. package/dist/commonjs/main_thread/init/media_source_content_initializer.js +58 -50
  53. package/dist/commonjs/main_thread/init/utils/stream_events_emitter/stream_events_emitter.d.ts +35 -5
  54. package/dist/commonjs/main_thread/init/utils/stream_events_emitter/stream_events_emitter.d.ts.map +1 -1
  55. package/dist/commonjs/main_thread/init/utils/stream_events_emitter/stream_events_emitter.js +60 -19
  56. package/dist/commonjs/main_thread/render_thumbnail.d.ts.map +1 -1
  57. package/dist/commonjs/main_thread/render_thumbnail.js +4 -0
  58. package/dist/commonjs/main_thread/tracks_store/media_element_tracks_store.d.ts.map +1 -1
  59. package/dist/commonjs/main_thread/tracks_store/media_element_tracks_store.js +1 -0
  60. package/dist/commonjs/main_thread/tracks_store/tracks_store.d.ts +1 -1
  61. package/dist/commonjs/main_thread/tracks_store/tracks_store.js +1 -1
  62. package/dist/{es2017/parsers/containers/isobmff/take_pssh_out.d.ts → commonjs/parsers/containers/isobmff/extract_pssh.d.ts} +6 -4
  63. package/dist/commonjs/parsers/containers/isobmff/extract_pssh.d.ts.map +1 -0
  64. package/dist/commonjs/parsers/containers/isobmff/{take_pssh_out.js → extract_pssh.js} +22 -17
  65. package/dist/commonjs/parsers/containers/isobmff/index.d.ts +2 -2
  66. package/dist/commonjs/parsers/containers/isobmff/index.d.ts.map +1 -1
  67. package/dist/commonjs/parsers/containers/isobmff/index.js +4 -4
  68. package/dist/commonjs/playback_observer/core_playback_observer.d.ts +4 -4
  69. package/dist/commonjs/playback_observer/core_playback_observer.d.ts.map +1 -1
  70. package/dist/commonjs/playback_observer/media_element_playback_observer.d.ts +1 -2
  71. package/dist/commonjs/playback_observer/media_element_playback_observer.d.ts.map +1 -1
  72. package/dist/commonjs/transports/dash/segment_parser.js +1 -1
  73. package/dist/commonjs/transports/local/segment_parser.js +1 -1
  74. package/dist/commonjs/utils/test-utils.d.ts +30 -0
  75. package/dist/commonjs/utils/test-utils.d.ts.map +1 -0
  76. package/dist/commonjs/utils/test-utils.js +79 -0
  77. package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.d.ts.map +1 -1
  78. package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.js +1 -1
  79. package/dist/es2017/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
  80. package/dist/es2017/__GENERATED_CODE/embedded_worker.js +1 -1
  81. package/dist/es2017/compat/can_patch_out_pssh.d.ts +42 -0
  82. package/dist/es2017/compat/can_patch_out_pssh.d.ts.map +1 -0
  83. package/dist/es2017/compat/can_patch_out_pssh.js +50 -0
  84. package/dist/es2017/compat/env_detector.d.ts +2 -0
  85. package/dist/es2017/compat/env_detector.d.ts.map +1 -1
  86. package/dist/es2017/compat/env_detector.js +5 -0
  87. package/dist/es2017/core/adaptive/network_analyzer.d.ts +1 -2
  88. package/dist/es2017/core/adaptive/network_analyzer.d.ts.map +1 -1
  89. package/dist/es2017/core/adaptive/network_analyzer.js +3 -3
  90. package/dist/es2017/core/adaptive/utils/representation_score_calculator.js +2 -2
  91. package/dist/es2017/core/cmcd/cmcd_data_builder.d.ts.map +1 -1
  92. package/dist/es2017/core/cmcd/cmcd_data_builder.js +9 -3
  93. package/dist/es2017/core/entry/content_preparer.d.ts.map +1 -1
  94. package/dist/es2017/core/entry/content_preparer.js +3 -5
  95. package/dist/es2017/core/entry/core_entry.d.ts.map +1 -1
  96. package/dist/es2017/core/entry/core_entry.js +6 -2
  97. package/dist/es2017/core/entry/core_text_displayer_interface.js +3 -3
  98. package/dist/es2017/core/fetchers/manifest/manifest_fetcher.d.ts.map +1 -1
  99. package/dist/es2017/core/fetchers/manifest/manifest_fetcher.js +12 -0
  100. package/dist/es2017/core/fetchers/thumbnails/thumbnail_fetcher.js +1 -1
  101. package/dist/es2017/core/fetchers/utils/schedule_request.d.ts.map +1 -1
  102. package/dist/es2017/core/fetchers/utils/schedule_request.js +2 -3
  103. package/dist/es2017/core/segment_sinks/garbage_collector.d.ts +0 -2
  104. package/dist/es2017/core/segment_sinks/garbage_collector.d.ts.map +1 -1
  105. package/dist/es2017/core/segment_sinks/garbage_collector.js +0 -3
  106. package/dist/es2017/core/segment_sinks/implementations/text/text_segment_sink.d.ts +1 -1
  107. package/dist/es2017/core/segment_sinks/implementations/text/text_segment_sink.d.ts.map +1 -1
  108. package/dist/es2017/core/segment_sinks/implementations/text/text_segment_sink.js +2 -2
  109. package/dist/es2017/core/stream/adaptation/adaptation_stream.d.ts.map +1 -1
  110. package/dist/es2017/core/stream/adaptation/adaptation_stream.js +6 -6
  111. package/dist/es2017/core/stream/orchestrator/stream_orchestrator.d.ts.map +1 -1
  112. package/dist/es2017/core/stream/orchestrator/stream_orchestrator.js +40 -39
  113. package/dist/es2017/default_config.d.ts +5 -0
  114. package/dist/es2017/default_config.d.ts.map +1 -1
  115. package/dist/es2017/default_config.js +5 -0
  116. package/dist/es2017/main_thread/api/public_api.d.ts.map +1 -1
  117. package/dist/es2017/main_thread/api/public_api.js +20 -13
  118. package/dist/es2017/main_thread/decrypt/content_decryptor.d.ts.map +1 -1
  119. package/dist/es2017/main_thread/decrypt/content_decryptor.js +4 -1
  120. package/dist/es2017/main_thread/decrypt/session_events_listener.js +1 -1
  121. package/dist/es2017/main_thread/decrypt/set_server_certificate.d.ts +2 -0
  122. package/dist/es2017/main_thread/decrypt/set_server_certificate.d.ts.map +1 -1
  123. package/dist/es2017/main_thread/decrypt/set_server_certificate.js +4 -0
  124. package/dist/es2017/main_thread/init/media_source_content_initializer.d.ts +0 -8
  125. package/dist/es2017/main_thread/init/media_source_content_initializer.d.ts.map +1 -1
  126. package/dist/es2017/main_thread/init/media_source_content_initializer.js +58 -50
  127. package/dist/es2017/main_thread/init/utils/stream_events_emitter/stream_events_emitter.d.ts +35 -5
  128. package/dist/es2017/main_thread/init/utils/stream_events_emitter/stream_events_emitter.d.ts.map +1 -1
  129. package/dist/es2017/main_thread/init/utils/stream_events_emitter/stream_events_emitter.js +60 -19
  130. package/dist/es2017/main_thread/render_thumbnail.d.ts.map +1 -1
  131. package/dist/es2017/main_thread/render_thumbnail.js +4 -0
  132. package/dist/es2017/main_thread/tracks_store/media_element_tracks_store.d.ts.map +1 -1
  133. package/dist/es2017/main_thread/tracks_store/media_element_tracks_store.js +1 -0
  134. package/dist/es2017/main_thread/tracks_store/tracks_store.d.ts +1 -1
  135. package/dist/es2017/main_thread/tracks_store/tracks_store.js +1 -1
  136. package/dist/{commonjs/parsers/containers/isobmff/take_pssh_out.d.ts → es2017/parsers/containers/isobmff/extract_pssh.d.ts} +6 -4
  137. package/dist/es2017/parsers/containers/isobmff/extract_pssh.d.ts.map +1 -0
  138. package/dist/es2017/parsers/containers/isobmff/{take_pssh_out.js → extract_pssh.js} +21 -16
  139. package/dist/es2017/parsers/containers/isobmff/index.d.ts +2 -2
  140. package/dist/es2017/parsers/containers/isobmff/index.d.ts.map +1 -1
  141. package/dist/es2017/parsers/containers/isobmff/index.js +2 -2
  142. package/dist/es2017/playback_observer/core_playback_observer.d.ts +4 -4
  143. package/dist/es2017/playback_observer/core_playback_observer.d.ts.map +1 -1
  144. package/dist/es2017/playback_observer/media_element_playback_observer.d.ts +1 -2
  145. package/dist/es2017/playback_observer/media_element_playback_observer.d.ts.map +1 -1
  146. package/dist/es2017/transports/dash/segment_parser.js +2 -2
  147. package/dist/es2017/transports/local/segment_parser.js +2 -2
  148. package/dist/es2017/utils/test-utils.d.ts +30 -0
  149. package/dist/es2017/utils/test-utils.d.ts.map +1 -0
  150. package/dist/es2017/utils/test-utils.js +36 -0
  151. package/dist/mpd-parser.wasm +0 -0
  152. package/dist/worker.js +6 -6
  153. package/package.json +4 -2
  154. package/src/README.md +7 -7
  155. package/src/__GENERATED_CODE/embedded_dash_wasm.ts +1 -1
  156. package/src/__GENERATED_CODE/embedded_worker.ts +1 -1
  157. package/src/compat/__tests__/can_patch_out_pssh.test.ts +40 -0
  158. package/src/compat/can_patch_out_pssh.ts +53 -0
  159. package/src/compat/env_detector.ts +4 -0
  160. package/src/core/README.md +1 -1
  161. package/src/core/adaptive/README.md +3 -3
  162. package/src/core/adaptive/__tests__/adaptive_representation_selector.test.ts +181 -110
  163. package/src/core/adaptive/__tests__/guess_based_chooser.test.ts +229 -123
  164. package/src/core/adaptive/__tests__/mocks.ts +100 -0
  165. package/src/core/adaptive/__tests__/network_analyzer.test.ts +152 -59
  166. package/src/core/adaptive/network_analyzer.ts +4 -4
  167. package/src/core/adaptive/utils/__tests__/filter_by_bitrate.test.ts +11 -19
  168. package/src/core/adaptive/utils/__tests__/filter_by_resolution.test.ts +12 -12
  169. package/src/core/adaptive/utils/__tests__/last_estimate_storage.test.ts +25 -12
  170. package/src/core/adaptive/utils/__tests__/pending_requests_store.test.ts +13 -9
  171. package/src/core/adaptive/utils/__tests__/representation_score_calculator.test.ts +11 -11
  172. package/src/core/adaptive/utils/__tests__/select_optimal_representation.test.ts +13 -23
  173. package/src/core/adaptive/utils/representation_score_calculator.ts +2 -2
  174. package/src/core/cmcd/__tests__/cmcd_data_builder.test.ts +60 -15
  175. package/src/core/cmcd/cmcd_data_builder.ts +9 -3
  176. package/src/core/entry/README.md +2 -2
  177. package/src/core/entry/__tests__/core_text_displayer_interface.test.ts +20 -0
  178. package/src/core/entry/content_preparer.ts +2 -5
  179. package/src/core/entry/core_entry.ts +6 -2
  180. package/src/core/entry/core_text_displayer_interface.ts +3 -3
  181. package/src/core/fetchers/manifest/__tests__/manifest_fetcher.test.ts +52 -3
  182. package/src/core/fetchers/manifest/manifest_fetcher.ts +12 -0
  183. package/src/core/fetchers/thumbnails/__tests__/thumbnail_fetcher.test.ts +70 -0
  184. package/src/core/fetchers/thumbnails/thumbnail_fetcher.ts +1 -1
  185. package/src/core/fetchers/utils/schedule_request.ts +5 -3
  186. package/src/core/segment_sinks/__tests__/garbage_collector.test.ts +434 -0
  187. package/src/core/segment_sinks/__tests__/mocks.ts +49 -0
  188. package/src/core/segment_sinks/garbage_collector.ts +0 -3
  189. package/src/core/segment_sinks/implementations/text/__tests__/text_segment_sink.test.ts +177 -0
  190. package/src/core/segment_sinks/implementations/text/text_segment_sink.ts +2 -2
  191. package/src/core/segment_sinks/inventory/__tests__/buffered_history.test.ts +215 -0
  192. package/src/core/segment_sinks/inventory/__tests__/segment_inventory.test.ts +448 -0
  193. package/src/core/stream/adaptation/__tests__/adaptation_stream.test.ts +973 -0
  194. package/src/core/stream/adaptation/__tests__/get_representations_switch_strategy.test.ts +283 -374
  195. package/src/core/stream/adaptation/adaptation_stream.ts +6 -8
  196. package/src/core/stream/orchestrator/README.md +4 -4
  197. package/src/core/stream/orchestrator/__tests__/stream_orchestrator.test.ts +707 -0
  198. package/src/core/stream/orchestrator/stream_orchestrator.ts +41 -46
  199. package/src/core/stream/period/utils/__tests__/get_adaptation_switch_strategy.test.ts +290 -220
  200. package/src/core/stream/representation/__tests__/encryption_data_notifier.test.ts +93 -63
  201. package/src/core/stream/representation/utils/__tests__/append_segment_to_buffer.test.ts +106 -63
  202. package/src/core/stream/representation/utils/__tests__/check_for_discontinuity.test.ts +179 -204
  203. package/src/core/stream/representation/utils/__tests__/get_segment_priority.test.ts +7 -7
  204. package/src/core/stream/representation/utils/__tests__/push_init_segment.test.ts +103 -60
  205. package/src/core/stream/representation/utils/__tests__/push_media_segment.test.ts +231 -165
  206. package/src/default_config.ts +6 -0
  207. package/src/experimental/README.md +1 -1
  208. package/src/features/README.md +3 -3
  209. package/src/main_thread/api/README.md +6 -7
  210. package/src/main_thread/api/public_api.ts +16 -10
  211. package/src/main_thread/decrypt/README.md +4 -4
  212. package/src/main_thread/decrypt/__tests__/__global__/content_decryptor.test.ts +135 -0
  213. package/src/main_thread/decrypt/__tests__/__global__/get_license.test.ts +70 -0
  214. package/src/main_thread/decrypt/__tests__/__global__/server_certificate.test.ts +44 -0
  215. package/src/main_thread/decrypt/__tests__/__global__/utils.ts +2 -2
  216. package/src/main_thread/decrypt/content_decryptor.ts +6 -1
  217. package/src/main_thread/decrypt/session_events_listener.ts +1 -1
  218. package/src/main_thread/decrypt/set_server_certificate.ts +5 -0
  219. package/src/main_thread/init/media_source_content_initializer.ts +69 -55
  220. package/src/main_thread/init/utils/__tests__/stream_events_emitter.test.ts +175 -0
  221. package/src/main_thread/init/utils/stream_events_emitter/stream_events_emitter.ts +90 -26
  222. package/src/main_thread/render_thumbnail.ts +4 -0
  223. package/src/main_thread/tracks_store/README.md +12 -0
  224. package/src/main_thread/tracks_store/__tests__/media_element_tracks_store.test.ts +25 -18
  225. package/src/main_thread/tracks_store/media_element_tracks_store.ts +1 -0
  226. package/src/main_thread/tracks_store/tracks_store.ts +1 -1
  227. package/src/manifest/classes/__tests__/mocks.ts +202 -0
  228. package/src/parsers/containers/isobmff/__tests__/extract_pssh.test.ts +199 -0
  229. package/src/parsers/containers/isobmff/{take_pssh_out.ts → extract_pssh.ts} +21 -17
  230. package/src/parsers/containers/isobmff/index.ts +2 -2
  231. package/src/parsers/manifest/dash/wasm-parser/README.md +9 -9
  232. package/src/playback_observer/__tests__/mocks.ts +152 -0
  233. package/src/playback_observer/core_playback_observer.ts +4 -4
  234. package/src/playback_observer/media_element_playback_observer.ts +1 -1
  235. package/src/tools/README.md +2 -2
  236. package/src/transports/README.md +5 -5
  237. package/src/transports/dash/segment_parser.ts +2 -2
  238. package/src/transports/local/segment_parser.ts +2 -2
  239. package/src/transports/metaplaylist/README.md +4 -4
  240. package/src/utils/README.md +3 -3
  241. package/src/utils/test-utils.ts +50 -0
  242. package/dist/commonjs/core/entry/synchronize_sinks_on_observation.d.ts +0 -11
  243. package/dist/commonjs/core/entry/synchronize_sinks_on_observation.d.ts.map +0 -1
  244. package/dist/commonjs/core/entry/synchronize_sinks_on_observation.js +0 -20
  245. package/dist/commonjs/parsers/containers/isobmff/take_pssh_out.d.ts.map +0 -1
  246. package/dist/es2017/core/entry/synchronize_sinks_on_observation.d.ts +0 -11
  247. package/dist/es2017/core/entry/synchronize_sinks_on_observation.d.ts.map +0 -1
  248. package/dist/es2017/core/entry/synchronize_sinks_on_observation.js +0 -17
  249. package/dist/es2017/parsers/containers/isobmff/take_pssh_out.d.ts.map +0 -1
  250. package/src/core/adaptive/utils/__tests__/bandwith_estimator.test.ts +0 -117
  251. package/src/core/entry/synchronize_sinks_on_observation.ts +0 -22
@@ -172,7 +172,6 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
172
172
  manifest: null,
173
173
  mediaSourceInfo: null,
174
174
  rebufferingController: null,
175
- streamEventsEmitter: null,
176
175
  initialTime: undefined,
177
176
  autoPlay: undefined,
178
177
  initialPlayPerformed: null,
@@ -311,17 +310,22 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
311
310
  return;
312
311
  }
313
312
  var textDisplayer = null;
314
- if (this._settings.textTrackOptions.textTrackMode === "html" &&
315
- features_1.default.htmlTextDisplayer !== null) {
316
- (0, assert_1.default)(this._hasTextBufferFeature());
317
- textDisplayer = new features_1.default.htmlTextDisplayer(mediaElement, this._settings.textTrackOptions.textTrackElement);
318
- }
319
- else if (features_1.default.nativeTextDisplayer !== null) {
320
- (0, assert_1.default)(this._hasTextBufferFeature());
321
- textDisplayer = new features_1.default.nativeTextDisplayer(mediaElement);
313
+ try {
314
+ if (this._settings.textTrackOptions.textTrackMode === "html" &&
315
+ features_1.default.htmlTextDisplayer !== null) {
316
+ (0, assert_1.default)(this._hasTextBufferFeature());
317
+ textDisplayer = new features_1.default.htmlTextDisplayer(mediaElement, this._settings.textTrackOptions.textTrackElement);
318
+ }
319
+ else if (features_1.default.nativeTextDisplayer !== null) {
320
+ (0, assert_1.default)(this._hasTextBufferFeature());
321
+ textDisplayer = new features_1.default.nativeTextDisplayer(mediaElement);
322
+ }
323
+ else {
324
+ (0, assert_1.default)(!this._hasTextBufferFeature());
325
+ }
322
326
  }
323
- else {
324
- (0, assert_1.default)(!this._hasTextBufferFeature());
327
+ catch (err) {
328
+ log_1.default.error("Init", "failed to initialize text displayer", err instanceof Error ? err : "Unknown Error");
325
329
  }
326
330
  this._initCanceller.signal.register(function (err) {
327
331
  textDisplayer === null || textDisplayer === void 0 ? void 0 : textDisplayer.stop(err.reason);
@@ -339,12 +343,23 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
339
343
  if (contentInfo !== null) {
340
344
  contentInfo.contentDecryptor = contentDecryptor;
341
345
  }
346
+ var streamEventsEmitter = new stream_events_emitter_1.default(playbackObserver);
347
+ streamEventsEmitter.addEventListener("event", function (payload) {
348
+ _this.trigger("streamEvent", payload);
349
+ }, this._initCanceller.signal);
350
+ streamEventsEmitter.addEventListener("eventSkip", function (payload) {
351
+ _this.trigger("streamEventSkip", payload);
352
+ }, this._initCanceller.signal);
353
+ this._initCanceller.signal.register(function (err) {
354
+ streamEventsEmitter.stop(err.reason);
355
+ });
342
356
  var playbackStartParams = {
343
357
  mediaElement: mediaElement,
344
358
  textDisplayer: textDisplayer,
345
359
  playbackObserver: playbackObserver,
346
360
  drmInitializationStatus: drmInitializationStatus,
347
361
  mediaSourceStatus: mediaSourceStatus,
362
+ streamEventsEmitter: streamEventsEmitter,
348
363
  };
349
364
  mediaSourceStatus.onUpdate(function (msInitStatus, stopListeningMSStatus) {
350
365
  if (msInitStatus === 2 /* MediaSourceInitializationStatus.Attached */) {
@@ -421,10 +436,10 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
421
436
  if (maximumPosition !== undefined) {
422
437
  position = Math.min(maximumPosition, position);
423
438
  }
424
- _this._reload(mediaElement, textDisplayer, playbackObserver, mediaSourceStatus, position, !isPaused);
439
+ _this._reload(mediaElement, textDisplayer, playbackObserver, mediaSourceStatus, streamEventsEmitter, position, !isPaused);
425
440
  };
426
441
  var onmessage = function (msgData) {
427
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28;
442
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26;
428
443
  switch (msgData.type) {
429
444
  case "attach-media-source" /* CoreMessageType.AttachMediaSource */: {
430
445
  if (((_a = _this._currentContentInfo) === null || _a === void 0 ? void 0 : _a.contentId) !== msgData.contentId) {
@@ -740,6 +755,7 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
740
755
  return;
741
756
  }
742
757
  var manifest = msgData.value.manifest;
758
+ streamEventsEmitter.start(manifest);
743
759
  _this._currentContentInfo.manifest = manifest;
744
760
  _this._updateCodecSupport(manifest, mediaElement);
745
761
  _this._startPlaybackIfReady(playbackStartParams);
@@ -761,19 +777,19 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
761
777
  // share it with Core and as such don't need to replicate the updates.
762
778
  (0, manifest_1.replicateUpdatesOnManifestMetadata)(manifest, msgData.value.manifest, msgData.value.updates);
763
779
  }
764
- (_12 = (_11 = _this._currentContentInfo) === null || _11 === void 0 ? void 0 : _11.streamEventsEmitter) === null || _12 === void 0 ? void 0 : _12.onManifestUpdate(manifest);
780
+ streamEventsEmitter.onManifestUpdate(manifest);
765
781
  _this._updateCodecSupport(manifest, mediaElement);
766
782
  _this.trigger("manifestUpdate", msgData.value.updates);
767
783
  break;
768
784
  }
769
785
  case "update-playback-rate" /* CoreMessageType.UpdatePlaybackRate */:
770
- if (((_13 = _this._currentContentInfo) === null || _13 === void 0 ? void 0 : _13.contentId) !== msgData.contentId) {
786
+ if (((_11 = _this._currentContentInfo) === null || _11 === void 0 ? void 0 : _11.contentId) !== msgData.contentId) {
771
787
  return;
772
788
  }
773
789
  playbackObserver.setPlaybackRate(msgData.value);
774
790
  break;
775
791
  case "bitrate-estimate-change" /* CoreMessageType.BitrateEstimateChange */:
776
- if (((_14 = _this._currentContentInfo) === null || _14 === void 0 ? void 0 : _14.contentId) !== msgData.contentId) {
792
+ if (((_12 = _this._currentContentInfo) === null || _12 === void 0 ? void 0 : _12.contentId) !== msgData.contentId) {
777
793
  return;
778
794
  }
779
795
  _this.trigger("bitrateEstimateChange", {
@@ -782,13 +798,13 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
782
798
  });
783
799
  break;
784
800
  case "inband-event" /* CoreMessageType.InbandEvent */:
785
- if (((_15 = _this._currentContentInfo) === null || _15 === void 0 ? void 0 : _15.contentId) !== msgData.contentId) {
801
+ if (((_13 = _this._currentContentInfo) === null || _13 === void 0 ? void 0 : _13.contentId) !== msgData.contentId) {
786
802
  return;
787
803
  }
788
804
  _this.trigger("inbandEvents", msgData.value);
789
805
  break;
790
806
  case "locked-stream" /* CoreMessageType.LockedStream */: {
791
- if (((_16 = _this._currentContentInfo) === null || _16 === void 0 ? void 0 : _16.contentId) !== msgData.contentId ||
807
+ if (((_14 = _this._currentContentInfo) === null || _14 === void 0 ? void 0 : _14.contentId) !== msgData.contentId ||
792
808
  _this._currentContentInfo.manifest === null) {
793
809
  return;
794
810
  }
@@ -796,11 +812,11 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
796
812
  if (period === undefined) {
797
813
  return;
798
814
  }
799
- (_17 = _this._currentContentInfo.rebufferingController) === null || _17 === void 0 ? void 0 : _17.onLockedStream(msgData.value.bufferType, period);
815
+ (_15 = _this._currentContentInfo.rebufferingController) === null || _15 === void 0 ? void 0 : _15.onLockedStream(msgData.value.bufferType, period);
800
816
  break;
801
817
  }
802
818
  case "period-stream-ready" /* CoreMessageType.PeriodStreamReady */: {
803
- if (((_18 = _this._currentContentInfo) === null || _18 === void 0 ? void 0 : _18.contentId) !== msgData.contentId ||
819
+ if (((_16 = _this._currentContentInfo) === null || _16 === void 0 ? void 0 : _16.contentId) !== msgData.contentId ||
804
820
  _this._currentContentInfo.manifest === null) {
805
821
  return;
806
822
  }
@@ -857,7 +873,7 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
857
873
  break;
858
874
  }
859
875
  case "period-stream-cleared" /* CoreMessageType.PeriodStreamCleared */: {
860
- if (((_19 = _this._currentContentInfo) === null || _19 === void 0 ? void 0 : _19.contentId) !== msgData.contentId ||
876
+ if (((_17 = _this._currentContentInfo) === null || _17 === void 0 ? void 0 : _17.contentId) !== msgData.contentId ||
861
877
  _this._currentContentInfo.manifest === null) {
862
878
  return;
863
879
  }
@@ -868,7 +884,7 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
868
884
  break;
869
885
  }
870
886
  case "discontinuity-update" /* CoreMessageType.DiscontinuityUpdate */: {
871
- if (((_20 = _this._currentContentInfo) === null || _20 === void 0 ? void 0 : _20.contentId) !== msgData.contentId ||
887
+ if (((_18 = _this._currentContentInfo) === null || _18 === void 0 ? void 0 : _18.contentId) !== msgData.contentId ||
872
888
  _this._currentContentInfo.manifest === null) {
873
889
  return;
874
890
  }
@@ -879,7 +895,7 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
879
895
  });
880
896
  return;
881
897
  }
882
- (_21 = _this._currentContentInfo.rebufferingController) === null || _21 === void 0 ? void 0 : _21.updateDiscontinuityInfo({
898
+ (_19 = _this._currentContentInfo.rebufferingController) === null || _19 === void 0 ? void 0 : _19.updateDiscontinuityInfo({
883
899
  period: period,
884
900
  bufferType: msgData.value.bufferType,
885
901
  discontinuity: msgData.value.discontinuity,
@@ -888,7 +904,7 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
888
904
  break;
889
905
  }
890
906
  case "push-text-data" /* CoreMessageType.PushTextData */: {
891
- if (((_22 = _this._currentContentInfo) === null || _22 === void 0 ? void 0 : _22.contentId) !== msgData.contentId) {
907
+ if (((_20 = _this._currentContentInfo) === null || _20 === void 0 ? void 0 : _20.contentId) !== msgData.contentId) {
892
908
  return;
893
909
  }
894
910
  if (textDisplayer === null) {
@@ -915,7 +931,7 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
915
931
  break;
916
932
  }
917
933
  case "remove-text-data" /* CoreMessageType.RemoveTextData */: {
918
- if (((_23 = _this._currentContentInfo) === null || _23 === void 0 ? void 0 : _23.contentId) !== msgData.contentId) {
934
+ if (((_21 = _this._currentContentInfo) === null || _21 === void 0 ? void 0 : _21.contentId) !== msgData.contentId) {
919
935
  return;
920
936
  }
921
937
  if (textDisplayer === null) {
@@ -942,7 +958,7 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
942
958
  break;
943
959
  }
944
960
  case "reset-text-displayer" /* CoreMessageType.ResetTextDisplayer */: {
945
- if (((_24 = _this._currentContentInfo) === null || _24 === void 0 ? void 0 : _24.contentId) !== msgData.contentId) {
961
+ if (((_22 = _this._currentContentInfo) === null || _22 === void 0 ? void 0 : _22.contentId) !== msgData.contentId) {
946
962
  return;
947
963
  }
948
964
  if (textDisplayer === null) {
@@ -954,7 +970,7 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
954
970
  break;
955
971
  }
956
972
  case "stop-text-displayer" /* CoreMessageType.StopTextDisplayer */: {
957
- if (((_25 = _this._currentContentInfo) === null || _25 === void 0 ? void 0 : _25.contentId) !== msgData.contentId) {
973
+ if (((_23 = _this._currentContentInfo) === null || _23 === void 0 ? void 0 : _23.contentId) !== msgData.contentId) {
958
974
  return;
959
975
  }
960
976
  if (textDisplayer === null) {
@@ -982,7 +998,7 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
982
998
  break;
983
999
  case "needs-decipherability-flush" /* CoreMessageType.NeedsDecipherabilityFlush */:
984
1000
  {
985
- if (((_26 = _this._currentContentInfo) === null || _26 === void 0 ? void 0 : _26.contentId) !== msgData.contentId) {
1001
+ if (((_24 = _this._currentContentInfo) === null || _24 === void 0 ? void 0 : _24.contentId) !== msgData.contentId) {
986
1002
  return;
987
1003
  }
988
1004
  var keySystem = (0, decrypt_1.getKeySystemConfiguration)(mediaElement);
@@ -1004,7 +1020,7 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
1004
1020
  }
1005
1021
  break;
1006
1022
  case "segment-sink-store-update" /* CoreMessageType.SegmentSinkStoreUpdate */: {
1007
- if (((_27 = _this._currentContentInfo) === null || _27 === void 0 ? void 0 : _27.contentId) !== msgData.contentId) {
1023
+ if (((_25 = _this._currentContentInfo) === null || _25 === void 0 ? void 0 : _25.contentId) !== msgData.contentId) {
1008
1024
  return;
1009
1025
  }
1010
1026
  var sinkObj = _this._awaitingRequests.pendingSinkMetrics.get(msgData.value.requestId);
@@ -1024,7 +1040,7 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
1024
1040
  // Already handled by prepare's handler
1025
1041
  break;
1026
1042
  case "thumbnail-response" /* CoreMessageType.ThumbnailDataResponse */: {
1027
- if (((_28 = _this._currentContentInfo) === null || _28 === void 0 ? void 0 : _28.contentId) !== msgData.contentId) {
1043
+ if (((_26 = _this._currentContentInfo) === null || _26 === void 0 ? void 0 : _26.contentId) !== msgData.contentId) {
1028
1044
  return;
1029
1045
  }
1030
1046
  var tObj = _this._awaitingRequests.pendingThumbnailFetching.get(msgData.value.requestId);
@@ -1263,12 +1279,13 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
1263
1279
  features_1.default.htmlTextDisplayer !== null) ||
1264
1280
  features_1.default.nativeTextDisplayer !== null);
1265
1281
  };
1266
- MediaSourceContentInitializer.prototype._reload = function (mediaElement, textDisplayer, playbackObserver, mediaSourceStatus, position, autoPlay) {
1282
+ MediaSourceContentInitializer.prototype._reload = function (mediaElement, textDisplayer, playbackObserver, mediaSourceStatus, streamEventsEmitter, position, autoPlay) {
1267
1283
  var _this = this;
1268
1284
  this._currentMediaSourceCanceller.cancel("Init MediaSource Reload");
1269
1285
  this._currentMediaSourceCanceller = new task_canceller_1.default("Init MediaSource");
1270
1286
  this._currentMediaSourceCanceller.linkToSignal(this._initCanceller.signal);
1271
1287
  mediaSourceStatus.setValue(1 /* MediaSourceInitializationStatus.AttachNow */);
1288
+ streamEventsEmitter.pause();
1272
1289
  this.trigger("reloadingMediaSource", { position: position, autoPlay: autoPlay });
1273
1290
  mediaSourceStatus.onUpdate(function (status, stopListeningMSStatusUpdates) {
1274
1291
  if (status !== 2 /* MediaSourceInitializationStatus.Attached */) {
@@ -1281,6 +1298,7 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
1281
1298
  mediaElement: mediaElement,
1282
1299
  textDisplayer: textDisplayer,
1283
1300
  playbackObserver: playbackObserver,
1301
+ streamEventsEmitter: streamEventsEmitter,
1284
1302
  }, _this._currentMediaSourceCanceller.signal);
1285
1303
  if (!_this._currentMediaSourceCanceller.isUsed() &&
1286
1304
  corePlaybackObserver !== null &&
@@ -1333,9 +1351,10 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
1333
1351
  }
1334
1352
  var _a = this._currentContentInfo, manifest = _a.manifest, mediaSourceInfo = _a.mediaSourceInfo;
1335
1353
  var speed = this._settings.speed;
1336
- var initialTime = parameters.initialTime, autoPlay = parameters.autoPlay, mediaElement = parameters.mediaElement, textDisplayer = parameters.textDisplayer, playbackObserver = parameters.playbackObserver;
1354
+ var initialTime = parameters.initialTime, autoPlay = parameters.autoPlay, mediaElement = parameters.mediaElement, textDisplayer = parameters.textDisplayer, playbackObserver = parameters.playbackObserver, streamEventsEmitter = parameters.streamEventsEmitter;
1337
1355
  this._currentContentInfo.initialTime = initialTime;
1338
1356
  this._currentContentInfo.autoPlay = autoPlay;
1357
+ streamEventsEmitter.pause(); // Only start polling events once ready to play
1339
1358
  var _b = (0, initial_seek_and_play_1.default)({
1340
1359
  mediaElement: mediaElement,
1341
1360
  playbackObserver: playbackObserver,
@@ -1345,6 +1364,12 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
1345
1364
  isDirectfile: false,
1346
1365
  }, cancelSignal), autoPlayResult = _b.autoPlayResult, initialPlayPerformed = _b.initialPlayPerformed;
1347
1366
  this._currentContentInfo.initialPlayPerformed = initialPlayPerformed;
1367
+ initialPlayPerformed.onUpdate(function (isPerformed, stopListening) {
1368
+ if (isPerformed) {
1369
+ stopListening();
1370
+ streamEventsEmitter.resume(); // We can now start polling events
1371
+ }
1372
+ }, { clearSignal: cancelSignal, emitCurrentValue: true });
1348
1373
  var corePlaybackObserver = (0, create_core_playback_observer_1.default)(playbackObserver, {
1349
1374
  autoPlay: autoPlay,
1350
1375
  initialPlayPerformed: initialPlayPerformed,
@@ -1375,24 +1400,6 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
1375
1400
  });
1376
1401
  rebufferingController.start();
1377
1402
  this._currentContentInfo.rebufferingController = rebufferingController;
1378
- var currentContentInfo = this._currentContentInfo;
1379
- initialPlayPerformed.onUpdate(function (isPerformed, stopListening) {
1380
- if (isPerformed) {
1381
- stopListening();
1382
- var streamEventsEmitter_1 = new stream_events_emitter_1.default(manifest, playbackObserver);
1383
- currentContentInfo.streamEventsEmitter = streamEventsEmitter_1;
1384
- streamEventsEmitter_1.addEventListener("event", function (payload) {
1385
- _this.trigger("streamEvent", payload);
1386
- }, cancelSignal);
1387
- streamEventsEmitter_1.addEventListener("eventSkip", function (payload) {
1388
- _this.trigger("streamEventSkip", payload);
1389
- }, cancelSignal);
1390
- streamEventsEmitter_1.start();
1391
- cancelSignal.register(function (err) {
1392
- streamEventsEmitter_1.stop(err.reason);
1393
- });
1394
- }
1395
- }, { clearSignal: cancelSignal, emitCurrentValue: true });
1396
1403
  var _getSegmentSinkMetrics = function () { return __awaiter(_this, void 0, void 0, function () {
1397
1404
  var requestId;
1398
1405
  var _this = this;
@@ -1522,6 +1529,7 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
1522
1529
  mediaElement: parameters.mediaElement,
1523
1530
  textDisplayer: parameters.textDisplayer,
1524
1531
  playbackObserver: parameters.playbackObserver,
1532
+ streamEventsEmitter: parameters.streamEventsEmitter,
1525
1533
  }, this._currentMediaSourceCanceller.signal);
1526
1534
  if (this._currentMediaSourceCanceller.isUsed() || corePlaybackObserver === null) {
1527
1535
  return true;
@@ -25,17 +25,42 @@ interface IStreamEventsEmitterEvent {
25
25
  * Get events from manifest and emit each time an event has to be emitted
26
26
  */
27
27
  export default class StreamEventsEmitter extends EventEmitter<IStreamEventsEmitterEvent> {
28
- private _manifest;
28
+ /** Regularly emit playback metrics such as the position. */
29
29
  private _playbackObserver;
30
+ /** Current stream events tracked for the whole content. */
30
31
  private _scheduledEventsRef;
32
+ /** Events currently considered active, to only emit their enter/exit once. */
31
33
  private _eventsBeingPlayed;
34
+ /** Whether event evaluation is temporarily suspended, e.g. during a reload. */
35
+ private _isPaused;
36
+ /** Last observation used as comparison point for the next event check. */
37
+ private _previousObservation;
38
+ /** Cancels the current emitter lifecycle. */
32
39
  private _canceller;
33
40
  /**
34
- * @param {Object} manifest
35
41
  * @param {Object} playbackObserver
36
42
  */
37
- constructor(manifest: IManifestMetadata, playbackObserver: IReadOnlyPlaybackObserver<IPlaybackObservation>);
38
- start(): void;
43
+ constructor(playbackObserver: IReadOnlyPlaybackObserver<IPlaybackObservation>);
44
+ /**
45
+ * Initialize the emitter for the given content manifest.
46
+ *
47
+ * The emitter starts in a paused state so the caller can resume it only once
48
+ * the corresponding media instance is actually ready.
49
+ * @param {Object} manifest
50
+ */
51
+ start(manifest: IManifestMetadata): void;
52
+ /**
53
+ * Suspend event evaluation until `resume` has been called.
54
+ *
55
+ * To use when playback metrics should be temporarily ignored, for example
56
+ * while reloading a content.
57
+ */
58
+ pause(): void;
59
+ /**
60
+ * Resume event evaluation from the current playback state.
61
+ */
62
+ resume(): void;
63
+ /** Refresh the tracked stream-event list after a manifest update. */
39
64
  onManifestUpdate(man: IManifestMetadata): void;
40
65
  /**
41
66
  * @param {string | undefined} reason - Human-inspectable reason behind the
@@ -43,9 +68,14 @@ export default class StreamEventsEmitter extends EventEmitter<IStreamEventsEmitt
43
68
  * inspection.
44
69
  */
45
70
  stop(reason: string | undefined): void;
71
+ /**
72
+ * Construct observation object relied on by the `StreamEventsEmitted` by
73
+ * generating it from this instance's `PlaybackObserver`.
74
+ */
75
+ private _constructObservation;
46
76
  /**
47
77
  * Examine playback situation from playback observations to emit stream events and
48
- * prepare set onExit callbacks if needed.
78
+ * prepare `onExit` callbacks if needed.
49
79
  * @param {Array.<Object>} scheduledEvents
50
80
  * @param {Object} oldObservation
51
81
  * @param {Object} newObservation
@@ -1 +1 @@
1
- {"version":3,"file":"stream_events_emitter.d.ts","sourceRoot":"","sources":["../../../../../../src/main_thread/init/utils/stream_events_emitter/stream_events_emitter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,KAAK,EACV,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,+BAA+B,CAAC;AACvC,OAAO,YAAY,MAAM,iCAAiC,CAAC;AAK3D,OAAO,KAAK,EAEV,2BAA2B,EAC3B,kBAAkB,EAEnB,MAAM,SAAS,CAAC;AAEjB,UAAU,yBAAyB;IACjC,KAAK,EAAE,kBAAkB,GAAG,2BAA2B,CAAC;IACxD,SAAS,EAAE,kBAAkB,GAAG,2BAA2B,CAAC;CAC7D;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,YAAY,CAAC,yBAAyB,CAAC;IACtF,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,iBAAiB,CAAkD;IAC3E,OAAO,CAAC,mBAAmB,CAEzB;IACF,OAAO,CAAC,kBAAkB,CAGxB;IACF,OAAO,CAAC,UAAU,CAAuB;IAEzC;;;OAGG;gBAED,QAAQ,EAAE,iBAAiB,EAC3B,gBAAgB,EAAE,yBAAyB,CAAC,oBAAoB,CAAC;IAe5D,KAAK,IAAI,IAAI;IAoEb,gBAAgB,CAAC,GAAG,EAAE,iBAAiB;IAK9C;;;;OAIG;IACI,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAO7C;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB;CAiE1B"}
1
+ {"version":3,"file":"stream_events_emitter.d.ts","sourceRoot":"","sources":["../../../../../../src/main_thread/init/utils/stream_events_emitter/stream_events_emitter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EACV,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,YAAY,MAAM,iCAAiC,CAAC;AAK3D,OAAO,KAAK,EAEV,2BAA2B,EAC3B,kBAAkB,EAEnB,MAAM,SAAS,CAAC;AAEjB,UAAU,yBAAyB;IACjC,KAAK,EAAE,kBAAkB,GAAG,2BAA2B,CAAC;IACxD,SAAS,EAAE,kBAAkB,GAAG,2BAA2B,CAAC;CAC7D;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,YAAY,CAAC,yBAAyB,CAAC;IACtF,4DAA4D;IAC5D,OAAO,CAAC,iBAAiB,CAAkD;IAC3E,2DAA2D;IAC3D,OAAO,CAAC,mBAAmB,CAEzB;IACF,8EAA8E;IAC9E,OAAO,CAAC,kBAAkB,CAGxB;IACF,+EAA+E;IAC/E,OAAO,CAAC,SAAS,CAAU;IAC3B,0EAA0E;IAC1E,OAAO,CAAC,oBAAoB,CAKnB;IACT,6CAA6C;IAC7C,OAAO,CAAC,UAAU,CAAuB;IAEzC;;OAEG;gBACS,gBAAgB,EAAE,yBAAyB,CAAC,oBAAoB,CAAC;IAe7E;;;;;;OAMG;IACI,KAAK,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAsE/C;;;;;OAKG;IACI,KAAK,IAAI,IAAI;IAKpB;;OAEG;IACI,MAAM,IAAI,IAAI;IAQrB,qEAAqE;IAC9D,gBAAgB,CAAC,GAAG,EAAE,iBAAiB;IAK9C;;;;OAIG;IACI,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAY7C;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAc7B;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB;CAiE1B"}
@@ -52,30 +52,39 @@ var refresh_scheduled_events_list_1 = require("./refresh_scheduled_events_list")
52
52
  var StreamEventsEmitter = /** @class */ (function (_super) {
53
53
  __extends(StreamEventsEmitter, _super);
54
54
  /**
55
- * @param {Object} manifest
56
55
  * @param {Object} playbackObserver
57
56
  */
58
- function StreamEventsEmitter(manifest, playbackObserver) {
57
+ function StreamEventsEmitter(playbackObserver) {
59
58
  var _this = _super.call(this) || this;
60
- _this._manifest = manifest;
61
59
  _this._playbackObserver = playbackObserver;
62
60
  _this._canceller = null;
63
61
  _this._scheduledEventsRef = new reference_1.default([]);
64
62
  _this._eventsBeingPlayed = new WeakMap();
63
+ _this._isPaused = true;
64
+ _this._previousObservation = null;
65
65
  return _this;
66
66
  }
67
- StreamEventsEmitter.prototype.start = function () {
67
+ /**
68
+ * Initialize the emitter for the given content manifest.
69
+ *
70
+ * The emitter starts in a paused state so the caller can resume it only once
71
+ * the corresponding media instance is actually ready.
72
+ * @param {Object} manifest
73
+ */
74
+ StreamEventsEmitter.prototype.start = function (manifest) {
68
75
  var _this = this;
69
76
  if (this._canceller !== null) {
70
77
  return;
71
78
  }
72
79
  this._canceller = new task_canceller_1.default("StreamEventsEmitter");
73
80
  var cancelSignal = this._canceller.signal;
74
- var playbackObserver = this._playbackObserver;
81
+ this._isPaused = true;
82
+ this._previousObservation = null;
83
+ this._eventsBeingPlayed = new WeakMap();
75
84
  var isPollingEvents = false;
76
85
  var cancelCurrentPolling = new task_canceller_1.default("StreamEventsEmitter Polling");
77
86
  cancelCurrentPolling.linkToSignal(cancelSignal);
78
- this._scheduledEventsRef.setValue((0, refresh_scheduled_events_list_1.default)([], this._manifest));
87
+ this._scheduledEventsRef.setValue((0, refresh_scheduled_events_list_1.default)([], manifest));
79
88
  this._scheduledEventsRef.onUpdate(function (_a) {
80
89
  var scheduledEventsLength = _a.length;
81
90
  if (scheduledEventsLength === 0) {
@@ -91,30 +100,49 @@ var StreamEventsEmitter = /** @class */ (function (_super) {
91
100
  return;
92
101
  }
93
102
  isPollingEvents = true;
94
- var oldObservation = constructObservation();
95
103
  var checkStreamEvents = function () {
96
- var newObservation = constructObservation();
97
- _this._emitStreamEvents(_this._scheduledEventsRef.getValue(), oldObservation, newObservation, cancelCurrentPolling.signal);
98
- oldObservation = newObservation;
104
+ if (_this._isPaused) {
105
+ return;
106
+ }
107
+ var newObservation = _this._constructObservation();
108
+ if (_this._previousObservation === null) {
109
+ _this._previousObservation = newObservation;
110
+ return;
111
+ }
112
+ _this._emitStreamEvents(_this._scheduledEventsRef.getValue(), _this._previousObservation, newObservation, cancelCurrentPolling.signal);
113
+ _this._previousObservation = newObservation;
99
114
  };
100
115
  var STREAM_EVENT_EMITTER_POLL_INTERVAL = config_1.default.getCurrent().STREAM_EVENT_EMITTER_POLL_INTERVAL;
101
116
  var intervalId = setInterval(checkStreamEvents, STREAM_EVENT_EMITTER_POLL_INTERVAL);
102
- playbackObserver.listen(checkStreamEvents, {
117
+ _this._playbackObserver.listen(checkStreamEvents, {
103
118
  includeLastObservation: false,
104
119
  clearSignal: cancelCurrentPolling.signal,
105
120
  });
106
121
  cancelCurrentPolling.signal.register(function () {
107
122
  clearInterval(intervalId);
108
123
  });
109
- function constructObservation() {
110
- var _a;
111
- var lastObservation = playbackObserver.getReference().getValue();
112
- var currentTime = (_a = playbackObserver.getCurrentTime()) !== null && _a !== void 0 ? _a : playbackObserver.getReference().getValue().position.getPolled();
113
- var isSeeking = lastObservation.seeking !== 0 /* SeekingState.None */;
114
- return { currentTime: currentTime, isSeeking: isSeeking };
115
- }
116
124
  }, { emitCurrentValue: true, clearSignal: cancelSignal });
117
125
  };
126
+ /**
127
+ * Suspend event evaluation until `resume` has been called.
128
+ *
129
+ * To use when playback metrics should be temporarily ignored, for example
130
+ * while reloading a content.
131
+ */
132
+ StreamEventsEmitter.prototype.pause = function () {
133
+ this._isPaused = true;
134
+ this._previousObservation = null;
135
+ };
136
+ /**
137
+ * Resume event evaluation from the current playback state.
138
+ */
139
+ StreamEventsEmitter.prototype.resume = function () {
140
+ this._isPaused = false;
141
+ // Take a snapshot right now to avoid comparing a post-reload position
142
+ // with a stale pre-reload observation.
143
+ this._previousObservation = this._constructObservation();
144
+ };
145
+ /** Refresh the tracked stream-event list after a manifest update. */
118
146
  StreamEventsEmitter.prototype.onManifestUpdate = function (man) {
119
147
  var prev = this._scheduledEventsRef.getValue();
120
148
  this._scheduledEventsRef.setValue((0, refresh_scheduled_events_list_1.default)(prev, man));
@@ -128,11 +156,24 @@ var StreamEventsEmitter = /** @class */ (function (_super) {
128
156
  if (this._canceller !== null) {
129
157
  this._canceller.cancel(reason !== null && reason !== void 0 ? reason : "StreamEventsEmitter stop");
130
158
  this._canceller = null;
159
+ this._previousObservation = null;
160
+ this._eventsBeingPlayed = new WeakMap();
131
161
  }
132
162
  };
163
+ /**
164
+ * Construct observation object relied on by the `StreamEventsEmitted` by
165
+ * generating it from this instance's `PlaybackObserver`.
166
+ */
167
+ StreamEventsEmitter.prototype._constructObservation = function () {
168
+ var _a;
169
+ var lastObservation = this._playbackObserver.getReference().getValue();
170
+ var currentTime = (_a = this._playbackObserver.getCurrentTime()) !== null && _a !== void 0 ? _a : this._playbackObserver.getReference().getValue().position.getPolled();
171
+ var isSeeking = lastObservation.seeking !== 0 /* SeekingState.None */;
172
+ return { currentTime: currentTime, isSeeking: isSeeking };
173
+ };
133
174
  /**
134
175
  * Examine playback situation from playback observations to emit stream events and
135
- * prepare set onExit callbacks if needed.
176
+ * prepare `onExit` callbacks if needed.
136
177
  * @param {Array.<Object>} scheduledEvents
137
178
  * @param {Object} oldObservation
138
179
  * @param {Object} newObservation
@@ -1 +1 @@
1
- {"version":3,"file":"render_thumbnail.d.ts","sourceRoot":"","sources":["../../../src/main_thread/render_thumbnail.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAKlE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAA8B,eAAe,CAC3C,YAAY,EAAE,sBAAsB,GAAG,IAAI,EAC3C,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,IAAI,CAAC,CA+Mf"}
1
+ {"version":3,"file":"render_thumbnail.d.ts","sourceRoot":"","sources":["../../../src/main_thread/render_thumbnail.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAKlE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAA8B,eAAe,CAC3C,YAAY,EAAE,sBAAsB,GAAG,IAAI,EAC3C,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,IAAI,CAAC,CAmNf"}
@@ -225,6 +225,10 @@ function renderThumbnail(contentInfos, options) {
225
225
  error = new ThumbnailRenderingError("ABORTED", "Thumbnail rendering has been aborted");
226
226
  throw error;
227
227
  }
228
+ if (srcError_1 instanceof ThumbnailRenderingError) {
229
+ onFinished();
230
+ throw srcError_1;
231
+ }
228
232
  formattedErr = (0, errors_1.formatError)(srcError_1, {
229
233
  defaultCode: "NONE",
230
234
  defaultReason: "Unknown error",
@@ -1 +1 @@
1
- {"version":3,"file":"media_element_tracks_store.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/tracks_store/media_element_tracks_store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"media_element_tracks_store.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/tracks_store/media_element_tracks_store.ts"],"names":[],"mappings":"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"}
@@ -510,6 +510,7 @@ var MediaElementTracksStore = /** @class */ (function (_super) {
510
510
  var newAudioTracks = createAudioTracks(_this._nativeAudioTracks);
511
511
  if (areTrackArraysDifferent(_this._audioTracks, newAudioTracks)) {
512
512
  _this._audioTracks = newAudioTracks;
513
+ _this._setPreviouslyLockedAudioTrack();
513
514
  _this.trigger("availableAudioTracksChange", _this.getAvailableAudioTracks());
514
515
  var chosenAudioTrack = _this._getCurrentAudioTrack();
515
516
  if ((chosenAudioTrack === null || chosenAudioTrack === void 0 ? void 0 : chosenAudioTrack.nativeTrack) !== _this._lastEmittedNativeAudioTrack) {
@@ -271,7 +271,7 @@ export default class TracksStore extends EventEmitter<ITracksStoreEvents> {
271
271
  * Period.
272
272
  *
273
273
  * Returns `null` is the the current audio track is disabled or not
274
- * set yet.a pas bcp de marge de manoeuvre j'ai l'impression
274
+ * set yet.
275
275
  *
276
276
  * Returns `undefined` if the given Period's id is not currently found in the
277
277
  * `TracksStore`. The cause being most probably that the corresponding
@@ -979,7 +979,7 @@ var TracksStore = /** @class */ (function (_super) {
979
979
  * Period.
980
980
  *
981
981
  * Returns `null` is the the current audio track is disabled or not
982
- * set yet.a pas bcp de marge de manoeuvre j'ai l'impression
982
+ * set yet.
983
983
  *
984
984
  * Returns `undefined` if the given Period's id is not currently found in the
985
985
  * `TracksStore`. The cause being most probably that the corresponding
@@ -21,15 +21,17 @@ export interface IISOBMFFPSSHInfo {
21
21
  data: Uint8Array<ArrayBuffer>;
22
22
  }
23
23
  /**
24
- * Replace every PSSH box from an ISOBMFF segment by FREE boxes and returns the
25
- * removed PSSH in an array.
24
+ * Return every `pssh` box from an ISOBMFF segment.
25
+ *
26
+ * If the current device has no issue with it, also replace them by `free` boxes.
26
27
  * Useful to manually manage encryption while avoiding the round-trip with the
27
28
  * browser's encrypted event.
29
+ *
28
30
  * @param {Uint8Array} data - the ISOBMFF segment
29
31
  * @returns {Array.<Uint8Array>} - The extracted PSSH boxes. In the order they
30
32
  * are encountered.
31
33
  */
32
- export default function takePSSHOut(data: Uint8Array<ArrayBuffer>): IISOBMFFPSSHInfo[];
34
+ export default function extractPssh(data: Uint8Array<ArrayBuffer>): IISOBMFFPSSHInfo[];
33
35
  /**
34
36
  * Parse systemId from a "pssh" box into an hexadecimal string.
35
37
  * `undefined` if we could not extract a systemId.
@@ -39,4 +41,4 @@ export default function takePSSHOut(data: Uint8Array<ArrayBuffer>): IISOBMFFPSSH
39
41
  * @returns {string|undefined}
40
42
  */
41
43
  export declare function getPsshSystemID(buff: Uint8Array, initialDataOffset: number): string | undefined;
42
- //# sourceMappingURL=take_pssh_out.d.ts.map
44
+ //# sourceMappingURL=extract_pssh.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract_pssh.d.ts","sourceRoot":"","sources":["../../../../../src/parsers/containers/isobmff/extract_pssh.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,yCAAyC;AACzC,MAAM,WAAW,gBAAgB;IAC/B,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;CAC/B;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,gBAAgB,EAAE,CAmCrF;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,UAAU,EAChB,iBAAiB,EAAE,MAAM,GACxB,MAAM,GAAG,SAAS,CAWpB"}