rx-player 4.2.0-dev.2024091600 → 4.2.0-dev.2024100200

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 (161) hide show
  1. package/CHANGELOG.md +20 -11
  2. package/VERSION +1 -1
  3. package/dist/commonjs/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
  4. package/dist/commonjs/__GENERATED_CODE/embedded_worker.js +1 -1
  5. package/dist/commonjs/compat/eme/close_session.js +2 -2
  6. package/dist/commonjs/compat/eme/load_session.js +2 -2
  7. package/dist/commonjs/compat/patch_webkit_source_buffer.d.ts.map +1 -1
  8. package/dist/commonjs/compat/patch_webkit_source_buffer.js +0 -3
  9. package/dist/commonjs/config.d.ts +7 -156
  10. package/dist/commonjs/config.d.ts.map +1 -1
  11. package/dist/commonjs/config.js +50 -3
  12. package/dist/commonjs/core/fetchers/manifest/manifest_fetcher.js +2 -2
  13. package/dist/commonjs/core/fetchers/segment/segment_fetcher.js +2 -2
  14. package/dist/commonjs/core/fetchers/utils/schedule_request.js +2 -2
  15. package/dist/commonjs/core/main/worker/worker_main.d.ts.map +1 -1
  16. package/dist/commonjs/core/main/worker/worker_main.js +7 -0
  17. package/dist/commonjs/core/segment_sinks/garbage_collector.js +2 -2
  18. package/dist/commonjs/core/segment_sinks/implementations/audio_video/audio_video_segment_buffer.js +2 -2
  19. package/dist/commonjs/core/segment_sinks/implementations/text/text_segment_buffer.js +2 -2
  20. package/dist/commonjs/core/stream/adaptation/adaptation_stream.d.ts.map +1 -1
  21. package/dist/commonjs/core/stream/adaptation/adaptation_stream.js +35 -9
  22. package/dist/commonjs/core/stream/adaptation/index.d.ts +1 -1
  23. package/dist/commonjs/core/stream/adaptation/index.d.ts.map +1 -1
  24. package/dist/commonjs/core/stream/adaptation/index.js +0 -15
  25. package/dist/commonjs/core/stream/orchestrator/stream_orchestrator.js +2 -2
  26. package/dist/commonjs/core/stream/period/index.d.ts +1 -1
  27. package/dist/commonjs/core/stream/period/index.d.ts.map +1 -1
  28. package/dist/commonjs/core/stream/period/index.js +0 -15
  29. package/dist/commonjs/core/stream/period/period_stream.js +2 -2
  30. package/dist/commonjs/core/stream/representation/index.d.ts +1 -1
  31. package/dist/commonjs/core/stream/representation/index.d.ts.map +1 -1
  32. package/dist/commonjs/core/stream/representation/index.js +0 -15
  33. package/dist/commonjs/core/stream/representation/representation_stream.d.ts.map +1 -1
  34. package/dist/commonjs/core/stream/representation/representation_stream.js +2 -0
  35. package/dist/commonjs/core/stream/representation/utils/append_segment_to_buffer.d.ts.map +1 -1
  36. package/dist/commonjs/core/stream/representation/utils/append_segment_to_buffer.js +16 -11
  37. package/dist/commonjs/core/stream/representation/utils/push_init_segment.js +2 -2
  38. package/dist/commonjs/core/stream/representation/utils/push_media_segment.js +2 -2
  39. package/dist/commonjs/default_config.js +4 -0
  40. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +2 -2
  41. package/dist/commonjs/experimental/tools/createMetaplaylist/get_duration_from_manifest.js +2 -2
  42. package/dist/commonjs/main_thread/api/public_api.d.ts.map +1 -1
  43. package/dist/commonjs/main_thread/api/public_api.js +19 -4
  44. package/dist/commonjs/main_thread/decrypt/attach_media_keys.js +2 -2
  45. package/dist/commonjs/main_thread/decrypt/content_decryptor.d.ts.map +1 -1
  46. package/dist/commonjs/main_thread/decrypt/content_decryptor.js +4 -2
  47. package/dist/commonjs/main_thread/decrypt/create_or_load_session.js +2 -2
  48. package/dist/commonjs/main_thread/decrypt/create_session.js +2 -2
  49. package/dist/commonjs/main_thread/decrypt/dispose_decryption_resources.js +2 -2
  50. package/dist/commonjs/main_thread/decrypt/find_key_system.js +2 -2
  51. package/dist/commonjs/main_thread/decrypt/get_media_keys.d.ts.map +1 -1
  52. package/dist/commonjs/main_thread/decrypt/get_media_keys.js +3 -2
  53. package/dist/commonjs/main_thread/decrypt/init_media_keys.js +2 -2
  54. package/dist/commonjs/main_thread/decrypt/session_events_listener.js +2 -2
  55. package/dist/commonjs/main_thread/decrypt/set_server_certificate.js +2 -4
  56. package/dist/commonjs/main_thread/decrypt/utils/clean_old_loaded_sessions.js +2 -2
  57. package/dist/commonjs/main_thread/decrypt/utils/loaded_sessions_store.js +2 -2
  58. package/dist/commonjs/main_thread/init/directfile_content_initializer.d.ts.map +1 -1
  59. package/dist/commonjs/main_thread/init/directfile_content_initializer.js +14 -6
  60. package/dist/commonjs/main_thread/init/media_source_content_initializer.js +2 -2
  61. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.d.ts +13 -0
  62. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.d.ts.map +1 -1
  63. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.js +96 -47
  64. package/dist/commonjs/main_thread/init/utils/initial_seek_and_play.d.ts +1 -1
  65. package/dist/commonjs/main_thread/init/utils/initial_seek_and_play.d.ts.map +1 -1
  66. package/dist/commonjs/main_thread/init/utils/initial_seek_and_play.js +21 -5
  67. package/dist/commonjs/mse/main_media_source_interface.d.ts.map +1 -1
  68. package/dist/commonjs/mse/main_media_source_interface.js +21 -2
  69. package/dist/commonjs/multithread_types.d.ts +8 -1
  70. package/dist/commonjs/multithread_types.d.ts.map +1 -1
  71. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.js +2 -2
  72. package/dist/commonjs/parsers/manifest/index.d.ts +1 -1
  73. package/dist/commonjs/parsers/manifest/index.d.ts.map +1 -1
  74. package/dist/commonjs/parsers/manifest/index.js +0 -15
  75. package/dist/commonjs/transports/dash/integrity_checks.js +2 -2
  76. package/dist/commonjs/transports/dash/load_chunked_segment_data.js +2 -2
  77. package/dist/commonjs/transports/dash/segment_loader.js +2 -2
  78. package/dist/commonjs/transports/dash/text_loader.js +2 -2
  79. package/dist/commonjs/transports/smooth/pipelines.d.ts.map +1 -1
  80. package/dist/commonjs/transports/smooth/pipelines.js +1 -0
  81. package/dist/commonjs/transports/smooth/segment_loader.js +2 -2
  82. package/dist/commonjs/transports/utils/parse_text_track.d.ts.map +1 -1
  83. package/dist/commonjs/transports/utils/parse_text_track.js +1 -0
  84. package/dist/commonjs/utils/request/fetch.js +2 -2
  85. package/dist/commonjs/utils/retry_promise_with_backoff.js +2 -2
  86. package/dist/es2017/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
  87. package/dist/es2017/__GENERATED_CODE/embedded_worker.js +1 -1
  88. package/dist/es2017/compat/patch_webkit_source_buffer.d.ts.map +1 -1
  89. package/dist/es2017/compat/patch_webkit_source_buffer.js +0 -3
  90. package/dist/es2017/config.d.ts +7 -156
  91. package/dist/es2017/config.d.ts.map +1 -1
  92. package/dist/es2017/config.js +6 -1
  93. package/dist/es2017/core/main/worker/worker_main.d.ts.map +1 -1
  94. package/dist/es2017/core/main/worker/worker_main.js +7 -0
  95. package/dist/es2017/core/stream/adaptation/adaptation_stream.d.ts.map +1 -1
  96. package/dist/es2017/core/stream/adaptation/adaptation_stream.js +33 -7
  97. package/dist/es2017/core/stream/adaptation/index.d.ts +1 -1
  98. package/dist/es2017/core/stream/adaptation/index.d.ts.map +1 -1
  99. package/dist/es2017/core/stream/adaptation/index.js +0 -1
  100. package/dist/es2017/core/stream/period/index.d.ts +1 -1
  101. package/dist/es2017/core/stream/period/index.d.ts.map +1 -1
  102. package/dist/es2017/core/stream/period/index.js +0 -1
  103. package/dist/es2017/core/stream/representation/index.d.ts +1 -1
  104. package/dist/es2017/core/stream/representation/index.d.ts.map +1 -1
  105. package/dist/es2017/core/stream/representation/index.js +0 -1
  106. package/dist/es2017/core/stream/representation/representation_stream.d.ts.map +1 -1
  107. package/dist/es2017/core/stream/representation/representation_stream.js +2 -0
  108. package/dist/es2017/core/stream/representation/utils/append_segment_to_buffer.d.ts.map +1 -1
  109. package/dist/es2017/core/stream/representation/utils/append_segment_to_buffer.js +6 -2
  110. package/dist/es2017/default_config.js +4 -0
  111. package/dist/es2017/main_thread/api/public_api.d.ts.map +1 -1
  112. package/dist/es2017/main_thread/api/public_api.js +17 -2
  113. package/dist/es2017/main_thread/decrypt/content_decryptor.d.ts.map +1 -1
  114. package/dist/es2017/main_thread/decrypt/content_decryptor.js +2 -0
  115. package/dist/es2017/main_thread/decrypt/get_media_keys.d.ts.map +1 -1
  116. package/dist/es2017/main_thread/decrypt/get_media_keys.js +1 -0
  117. package/dist/es2017/main_thread/init/directfile_content_initializer.d.ts.map +1 -1
  118. package/dist/es2017/main_thread/init/directfile_content_initializer.js +14 -6
  119. package/dist/es2017/main_thread/init/multi_thread_content_initializer.d.ts +13 -0
  120. package/dist/es2017/main_thread/init/multi_thread_content_initializer.d.ts.map +1 -1
  121. package/dist/es2017/main_thread/init/multi_thread_content_initializer.js +78 -41
  122. package/dist/es2017/main_thread/init/utils/initial_seek_and_play.d.ts +1 -1
  123. package/dist/es2017/main_thread/init/utils/initial_seek_and_play.d.ts.map +1 -1
  124. package/dist/es2017/main_thread/init/utils/initial_seek_and_play.js +19 -3
  125. package/dist/es2017/mse/main_media_source_interface.d.ts.map +1 -1
  126. package/dist/es2017/mse/main_media_source_interface.js +19 -0
  127. package/dist/es2017/multithread_types.d.ts +8 -1
  128. package/dist/es2017/multithread_types.d.ts.map +1 -1
  129. package/dist/es2017/parsers/manifest/index.d.ts +1 -1
  130. package/dist/es2017/parsers/manifest/index.d.ts.map +1 -1
  131. package/dist/es2017/parsers/manifest/index.js +1 -1
  132. package/dist/es2017/transports/smooth/pipelines.d.ts.map +1 -1
  133. package/dist/es2017/transports/smooth/pipelines.js +1 -0
  134. package/dist/es2017/transports/utils/parse_text_track.d.ts.map +1 -1
  135. package/dist/es2017/transports/utils/parse_text_track.js +1 -0
  136. package/dist/rx-player.js +101 -23
  137. package/dist/rx-player.min.js +14 -14
  138. package/dist/worker.js +6 -6
  139. package/package.json +38 -21
  140. package/src/__GENERATED_CODE/embedded_worker.ts +1 -1
  141. package/src/compat/patch_webkit_source_buffer.ts +0 -3
  142. package/src/config.ts +10 -2
  143. package/src/core/main/worker/worker_main.ts +8 -0
  144. package/src/core/stream/adaptation/adaptation_stream.ts +41 -8
  145. package/src/core/stream/adaptation/index.ts +1 -1
  146. package/src/core/stream/period/index.ts +1 -1
  147. package/src/core/stream/representation/index.ts +1 -1
  148. package/src/core/stream/representation/representation_stream.ts +11 -0
  149. package/src/core/stream/representation/utils/append_segment_to_buffer.ts +6 -2
  150. package/src/default_config.ts +21 -0
  151. package/src/main_thread/api/public_api.ts +19 -2
  152. package/src/main_thread/decrypt/content_decryptor.ts +2 -0
  153. package/src/main_thread/decrypt/get_media_keys.ts +1 -0
  154. package/src/main_thread/init/directfile_content_initializer.ts +20 -10
  155. package/src/main_thread/init/multi_thread_content_initializer.ts +94 -61
  156. package/src/main_thread/init/utils/initial_seek_and_play.ts +24 -5
  157. package/src/mse/main_media_source_interface.ts +20 -0
  158. package/src/multithread_types.ts +9 -0
  159. package/src/parsers/manifest/index.ts +1 -1
  160. package/src/transports/smooth/pipelines.ts +1 -0
  161. package/src/transports/utils/parse_text_track.ts +1 -0
@@ -464,6 +464,20 @@ export class MainSourceBufferInterface implements ISourceBufferInterface {
464
464
  op.reject(error);
465
465
  });
466
466
  this._currentOperations = [];
467
+
468
+ // A synchronous error probably will not lead to updateend event, so we need to
469
+ // go to next queue element manually
470
+ //
471
+ // FIXME: This here is needed to ensure that we're not left with a
472
+ // dangling queue of operations.
473
+ // However it can potentially be counter-productive if e.g. the `appendBuffer`
474
+ // error was due to a full buffer and if there are pushing operations awaiting in
475
+ // the queue.
476
+ //
477
+ // A better solution might just be to reject all push operations right away here?
478
+ // Only for a `QuotaExceededError` (to check MSE)?
479
+ // However this is too disruptive for what is now a hotfix
480
+ this._performNextOperation();
467
481
  }
468
482
  } else {
469
483
  // TODO merge contiguous removes?
@@ -482,7 +496,13 @@ export class MainSourceBufferInterface implements ISourceBufferInterface {
482
496
  false,
483
497
  );
484
498
  nextElem.reject(error);
499
+ this._currentOperations.forEach((op) => {
500
+ op.reject(error);
501
+ });
485
502
  this._currentOperations = [];
503
+ // A synchronous error probably will not lead to updateend event, so we need to
504
+ // go to next queue element manually
505
+ this._performNextOperation();
486
506
  }
487
507
  }
488
508
  }
@@ -14,6 +14,7 @@ import type {
14
14
  IRepresentationsChoice,
15
15
  ITrackSwitchingMode,
16
16
  } from "./core/types";
17
+ import type { IDefaultConfig } from "./default_config";
17
18
  import type {
18
19
  ISerializedMediaError,
19
20
  ISerializedNetworkError,
@@ -158,6 +159,12 @@ export interface ILogLevelUpdateMessage {
158
159
  };
159
160
  }
160
161
 
162
+ /** Message sent by the main thread to update the Worker's global config. */
163
+ export interface IConfigUpdateMessage {
164
+ type: MainThreadMessageType.ConfigUpdate;
165
+ value: Partial<IDefaultConfig>;
166
+ }
167
+
161
168
  /**
162
169
  * Message sent by the main thread when a new content should be "prepared".
163
170
  *
@@ -542,6 +549,7 @@ export const enum MainThreadMessageType {
542
549
  RemoveTextDataError = "remove-text-error",
543
550
  CodecSupportUpdate = "codec-support-update",
544
551
  ContentUrlsUpdate = "urls-update",
552
+ ConfigUpdate = "config-update",
545
553
  DecipherabilityStatusUpdate = "decipherability-update",
546
554
  LogLevelUpdate = "log-level-update",
547
555
  MediaSourceReadyStateChange = "media-source-ready-state-change",
@@ -560,6 +568,7 @@ export const enum MainThreadMessageType {
560
568
  export type IMainThreadMessage =
561
569
  | IInitMessage
562
570
  | ILogLevelUpdateMessage
571
+ | IConfigUpdateMessage
563
572
  | IPrepareContentMessage
564
573
  | IStopContentMessage
565
574
  | IStartPreparedContentMessage
@@ -14,4 +14,4 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- export * from "./types";
17
+ export type * from "./types";
@@ -350,6 +350,7 @@ export default function (transportOptions: ITransportOptions): ITransportPipelin
350
350
  if (
351
351
  mimeType === "application/ttml+xml+mp4" ||
352
352
  lcCodec === "stpp" ||
353
+ lcCodec === "stpp.ttml" ||
353
354
  lcCodec === "stpp.ttml.im1t"
354
355
  ) {
355
356
  _sdType = "ttml";
@@ -42,6 +42,7 @@ export function getISOBMFFTextTrackFormat(codecs: string | undefined): "ttml" |
42
42
  }
43
43
  switch (codecs.toLowerCase()) {
44
44
  case "stpp": // stpp === TTML in MP4
45
+ case "stpp.ttml":
45
46
  case "stpp.ttml.im1t":
46
47
  return "ttml";
47
48
  case "wvtt": // wvtt === WebVTT in MP4