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

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 (222) hide show
  1. package/CHANGELOG.md +3 -1
  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/browser_compatibility_types.d.ts +16 -14
  6. package/dist/commonjs/compat/browser_compatibility_types.d.ts.map +1 -1
  7. package/dist/commonjs/compat/browser_compatibility_types.js +7 -4
  8. package/dist/commonjs/compat/browser_version.d.ts +2 -1
  9. package/dist/commonjs/compat/browser_version.d.ts.map +1 -1
  10. package/dist/commonjs/compat/browser_version.js +13 -0
  11. package/dist/commonjs/compat/disable_remote_playback_on_managed_media_source.d.ts.map +1 -1
  12. package/dist/commonjs/compat/disable_remote_playback_on_managed_media_source.js +1 -1
  13. package/dist/commonjs/compat/is_codec_supported.d.ts.map +1 -1
  14. package/dist/commonjs/compat/is_codec_supported.js +4 -3
  15. package/dist/commonjs/compat/should_patch_out_dolby_vision_config_data_from_mp4.d.ts +26 -0
  16. package/dist/commonjs/compat/should_patch_out_dolby_vision_config_data_from_mp4.d.ts.map +1 -0
  17. package/dist/commonjs/compat/should_patch_out_dolby_vision_config_data_from_mp4.js +45 -0
  18. package/dist/commonjs/core/entry/utils.js +3 -3
  19. package/dist/commonjs/core/fetchers/segment/segment_fetcher.d.ts.map +1 -1
  20. package/dist/commonjs/core/fetchers/segment/segment_fetcher.js +2 -1
  21. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.d.ts.map +1 -1
  22. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.js +2 -1
  23. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.d.ts.map +1 -1
  24. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.js +8 -6
  25. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.d.ts.map +1 -1
  26. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.js +4 -3
  27. package/dist/commonjs/initialize_worker.js +1 -1
  28. package/dist/commonjs/main_thread/api/debug/modules/segment_buffer_content.js +3 -3
  29. package/dist/commonjs/main_thread/api/public_api.js +2 -2
  30. package/dist/commonjs/main_thread/init/utils/update_manifest_codec_support.d.ts.map +1 -1
  31. package/dist/commonjs/main_thread/init/utils/update_manifest_codec_support.js +24 -12
  32. package/dist/commonjs/manifest/classes/adaptation.d.ts.map +1 -1
  33. package/dist/commonjs/manifest/classes/adaptation.js +3 -1
  34. package/dist/commonjs/manifest/classes/representation.d.ts +6 -2
  35. package/dist/commonjs/manifest/classes/representation.d.ts.map +1 -1
  36. package/dist/commonjs/manifest/classes/representation.js +45 -23
  37. package/dist/commonjs/manifest/types.d.ts +14 -6
  38. package/dist/commonjs/manifest/types.d.ts.map +1 -1
  39. package/dist/commonjs/manifest/utils.js +4 -4
  40. package/dist/commonjs/mse/main_media_source_interface.d.ts.map +1 -1
  41. package/dist/commonjs/mse/main_media_source_interface.js +3 -2
  42. package/dist/commonjs/mse/worker_media_source_interface.d.ts.map +1 -1
  43. package/dist/commonjs/parsers/containers/isobmff/get_box.d.ts +12 -1
  44. package/dist/commonjs/parsers/containers/isobmff/get_box.d.ts.map +1 -1
  45. package/dist/commonjs/parsers/containers/isobmff/get_box.js +16 -0
  46. package/dist/commonjs/parsers/containers/isobmff/index.d.ts +2 -1
  47. package/dist/commonjs/parsers/containers/isobmff/index.d.ts.map +1 -1
  48. package/dist/commonjs/parsers/containers/isobmff/index.js +3 -1
  49. package/dist/commonjs/parsers/containers/isobmff/remove_dolby_vision_config_data.d.ts +13 -0
  50. package/dist/commonjs/parsers/containers/isobmff/remove_dolby_vision_config_data.d.ts.map +1 -0
  51. package/dist/commonjs/parsers/containers/isobmff/remove_dolby_vision_config_data.js +180 -0
  52. package/dist/commonjs/parsers/manifest/metaplaylist/metaplaylist_parser.js +4 -4
  53. package/dist/commonjs/transports/dash/segment_parser.d.ts.map +1 -1
  54. package/dist/commonjs/transports/dash/segment_parser.js +6 -0
  55. package/dist/commonjs/transports/dash/text_parser.d.ts.map +1 -1
  56. package/dist/commonjs/transports/dash/text_parser.js +5 -1
  57. package/dist/commonjs/transports/local/text_parser.d.ts.map +1 -1
  58. package/dist/commonjs/transports/local/text_parser.js +5 -1
  59. package/dist/commonjs/transports/metaplaylist/pipelines.d.ts.map +1 -1
  60. package/dist/commonjs/transports/metaplaylist/pipelines.js +2 -1
  61. package/dist/commonjs/transports/smooth/pipelines.js +3 -3
  62. package/dist/commonjs/transports/types.d.ts +28 -2
  63. package/dist/commonjs/transports/types.d.ts.map +1 -1
  64. package/dist/commonjs/transports/utils/parse_text_track.d.ts +9 -2
  65. package/dist/commonjs/transports/utils/parse_text_track.d.ts.map +1 -1
  66. package/dist/commonjs/transports/utils/parse_text_track.js +1 -1
  67. package/dist/es2017/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
  68. package/dist/es2017/__GENERATED_CODE/embedded_worker.js +1 -1
  69. package/dist/es2017/compat/browser_compatibility_types.d.ts +16 -14
  70. package/dist/es2017/compat/browser_compatibility_types.d.ts.map +1 -1
  71. package/dist/es2017/compat/browser_compatibility_types.js +7 -1
  72. package/dist/es2017/compat/browser_version.d.ts +2 -1
  73. package/dist/es2017/compat/browser_version.d.ts.map +1 -1
  74. package/dist/es2017/compat/browser_version.js +13 -1
  75. package/dist/es2017/compat/disable_remote_playback_on_managed_media_source.d.ts.map +1 -1
  76. package/dist/es2017/compat/disable_remote_playback_on_managed_media_source.js +2 -2
  77. package/dist/es2017/compat/is_codec_supported.d.ts.map +1 -1
  78. package/dist/es2017/compat/is_codec_supported.js +2 -1
  79. package/dist/es2017/compat/should_patch_out_dolby_vision_config_data_from_mp4.d.ts +26 -0
  80. package/dist/es2017/compat/should_patch_out_dolby_vision_config_data_from_mp4.d.ts.map +1 -0
  81. package/dist/es2017/compat/should_patch_out_dolby_vision_config_data_from_mp4.js +42 -0
  82. package/dist/es2017/core/entry/utils.js +4 -4
  83. package/dist/es2017/core/fetchers/segment/segment_fetcher.d.ts.map +1 -1
  84. package/dist/es2017/core/fetchers/segment/segment_fetcher.js +2 -1
  85. package/dist/es2017/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.d.ts.map +1 -1
  86. package/dist/es2017/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.js +2 -1
  87. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.d.ts.map +1 -1
  88. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.js +3 -1
  89. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.d.ts.map +1 -1
  90. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.js +2 -1
  91. package/dist/es2017/initialize_worker.js +1 -1
  92. package/dist/es2017/main_thread/api/debug/modules/segment_buffer_content.js +3 -3
  93. package/dist/es2017/main_thread/api/public_api.js +2 -2
  94. package/dist/es2017/main_thread/init/utils/update_manifest_codec_support.d.ts.map +1 -1
  95. package/dist/es2017/main_thread/init/utils/update_manifest_codec_support.js +9 -7
  96. package/dist/es2017/manifest/classes/adaptation.d.ts.map +1 -1
  97. package/dist/es2017/manifest/classes/adaptation.js +3 -1
  98. package/dist/es2017/manifest/classes/representation.d.ts +6 -2
  99. package/dist/es2017/manifest/classes/representation.d.ts.map +1 -1
  100. package/dist/es2017/manifest/classes/representation.js +45 -23
  101. package/dist/es2017/manifest/types.d.ts +14 -6
  102. package/dist/es2017/manifest/types.d.ts.map +1 -1
  103. package/dist/es2017/manifest/utils.js +4 -4
  104. package/dist/es2017/mse/main_media_source_interface.d.ts.map +1 -1
  105. package/dist/es2017/mse/main_media_source_interface.js +2 -1
  106. package/dist/es2017/mse/worker_media_source_interface.d.ts.map +1 -1
  107. package/dist/es2017/parsers/containers/isobmff/get_box.d.ts +12 -1
  108. package/dist/es2017/parsers/containers/isobmff/get_box.d.ts.map +1 -1
  109. package/dist/es2017/parsers/containers/isobmff/get_box.js +16 -1
  110. package/dist/es2017/parsers/containers/isobmff/index.d.ts +2 -1
  111. package/dist/es2017/parsers/containers/isobmff/index.d.ts.map +1 -1
  112. package/dist/es2017/parsers/containers/isobmff/index.js +2 -1
  113. package/dist/es2017/parsers/containers/isobmff/remove_dolby_vision_config_data.d.ts +13 -0
  114. package/dist/es2017/parsers/containers/isobmff/remove_dolby_vision_config_data.d.ts.map +1 -0
  115. package/dist/es2017/parsers/containers/isobmff/remove_dolby_vision_config_data.js +155 -0
  116. package/dist/es2017/parsers/manifest/metaplaylist/metaplaylist_parser.js +4 -4
  117. package/dist/es2017/transports/dash/segment_parser.d.ts.map +1 -1
  118. package/dist/es2017/transports/dash/segment_parser.js +7 -1
  119. package/dist/es2017/transports/dash/text_parser.d.ts.map +1 -1
  120. package/dist/es2017/transports/dash/text_parser.js +5 -1
  121. package/dist/es2017/transports/local/text_parser.d.ts.map +1 -1
  122. package/dist/es2017/transports/local/text_parser.js +5 -1
  123. package/dist/es2017/transports/metaplaylist/pipelines.d.ts.map +1 -1
  124. package/dist/es2017/transports/metaplaylist/pipelines.js +2 -1
  125. package/dist/es2017/transports/smooth/pipelines.js +3 -3
  126. package/dist/es2017/transports/types.d.ts +28 -2
  127. package/dist/es2017/transports/types.d.ts.map +1 -1
  128. package/dist/es2017/transports/utils/parse_text_track.d.ts +9 -2
  129. package/dist/es2017/transports/utils/parse_text_track.d.ts.map +1 -1
  130. package/dist/es2017/transports/utils/parse_text_track.js +1 -1
  131. package/dist/worker.js +6 -6
  132. package/eslint.config.mjs +1 -14
  133. package/package.json +1 -1
  134. package/src/__GENERATED_CODE/embedded_worker.ts +1 -1
  135. package/src/compat/__tests__/browser_compatibility_types.test.ts +15 -26
  136. package/src/compat/__tests__/browser_version.test.ts +57 -18
  137. package/src/compat/__tests__/clear_element_src.test.ts +20 -40
  138. package/src/compat/__tests__/is_codec_supported.test.ts +39 -44
  139. package/src/compat/__tests__/is_vtt_cue.test.ts +5 -8
  140. package/src/compat/__tests__/make_vtt_cue.test.ts +20 -31
  141. package/src/compat/__tests__/remove_cue.test.ts +8 -20
  142. package/src/compat/__tests__/should_patch_out_dolby_vision_config_data_from_mp4.test.ts +78 -0
  143. package/src/compat/browser_compatibility_types.ts +8 -1
  144. package/src/compat/browser_version.ts +17 -1
  145. package/src/compat/disable_remote_playback_on_managed_media_source.ts +2 -2
  146. package/src/compat/is_codec_supported.ts +2 -1
  147. package/src/compat/should_patch_out_dolby_vision_config_data_from_mp4.ts +50 -0
  148. package/src/core/adaptive/__tests__/adaptive_representation_selector.test.ts +68 -28
  149. package/src/core/adaptive/__tests__/buffer_based_chooser.test.ts +26 -84
  150. package/src/core/entry/__tests__/utils.test.ts +7 -1
  151. package/src/core/entry/utils.ts +4 -4
  152. package/src/core/fetchers/segment/segment_fetcher.ts +2 -1
  153. package/src/errors/__tests__/format_error.test.ts +23 -24
  154. package/src/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.ts +2 -1
  155. package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/mediaDisplayInfos.test.ts +106 -0
  156. package/src/experimental/tools/mediaCapabilitiesProber/probers/__tests__/HDCPPolicy.test.ts +19 -42
  157. package/src/experimental/tools/mediaCapabilitiesProber/probers/__tests__/decodingInfo.test.ts +33 -40
  158. package/src/experimental/tools/mediaCapabilitiesProber/probers/__tests__/defaultCodecsFinder.test.ts +44 -68
  159. package/src/experimental/tools/mediaCapabilitiesProber/probers/__tests__/mediaContentType.test.ts +45 -80
  160. package/src/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.ts +3 -1
  161. package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.ts +2 -1
  162. package/src/features/__tests__/add_features.test.ts +12 -27
  163. package/src/initialize_worker.ts +1 -1
  164. package/src/main_thread/api/__tests__/option_utils.test.ts +38 -67
  165. package/src/main_thread/api/__tests__/public_api.test.ts +56 -138
  166. package/src/main_thread/api/debug/modules/segment_buffer_content.ts +3 -3
  167. package/src/main_thread/api/public_api.ts +2 -2
  168. package/src/main_thread/decrypt/__tests__/__global__/find_key_system.test.ts +46 -28
  169. package/src/main_thread/decrypt/__tests__/__global__/get_license.test.ts +40 -10
  170. package/src/main_thread/decrypt/__tests__/__global__/init_data.test.ts +112 -129
  171. package/src/main_thread/decrypt/__tests__/__global__/media_key_system_access.test.ts +282 -377
  172. package/src/main_thread/decrypt/__tests__/__global__/media_keys.test.ts +70 -63
  173. package/src/main_thread/decrypt/__tests__/__global__/server_certificate.test.ts +73 -54
  174. package/src/main_thread/decrypt/__tests__/__global__/utils.ts +43 -83
  175. package/src/main_thread/decrypt/__tests__/find_key_system.test.ts +36 -17
  176. package/src/main_thread/decrypt/utils/__tests__/clean_old_stored_persistent_info.test.ts +44 -48
  177. package/src/main_thread/init/utils/__tests__/are_same_stream_events.test.ts +7 -22
  178. package/src/main_thread/init/utils/__tests__/refresh_scheduled_events_list.test.ts +3 -6
  179. package/src/main_thread/init/utils/__tests__/update_manifest_codec_support.test.ts +42 -19
  180. package/src/main_thread/init/utils/update_manifest_codec_support.ts +8 -6
  181. package/src/manifest/classes/__tests__/adaptation.test.ts +69 -125
  182. package/src/manifest/classes/__tests__/manifest.test.ts +88 -95
  183. package/src/manifest/classes/__tests__/period.test.ts +167 -117
  184. package/src/manifest/classes/__tests__/representation.test.ts +84 -25
  185. package/src/manifest/classes/__tests__/update_periods.test.ts +96 -225
  186. package/src/manifest/classes/adaptation.ts +4 -1
  187. package/src/manifest/classes/representation.ts +59 -27
  188. package/src/manifest/types.ts +14 -6
  189. package/src/manifest/utils.ts +4 -4
  190. package/src/mse/__tests__/main_media_source_interface.test.ts +3 -1
  191. package/src/mse/__tests__/worker_media_source_interface.test.ts +608 -0
  192. package/src/mse/main_media_source_interface.ts +2 -1
  193. package/src/mse/worker_media_source_interface.ts +2 -2
  194. package/src/parsers/containers/isobmff/__tests__/get_box.test.ts +449 -0
  195. package/src/parsers/containers/isobmff/__tests__/remove_dolby_vision_config_data.test.ts +282 -0
  196. package/src/parsers/containers/isobmff/get_box.ts +17 -0
  197. package/src/parsers/containers/isobmff/index.ts +8 -1
  198. package/src/parsers/containers/isobmff/remove_dolby_vision_config_data.ts +179 -0
  199. package/src/parsers/manifest/dash/common/__tests__/get_clock_offset.test.ts +19 -25
  200. package/src/parsers/manifest/dash/common/__tests__/get_http_utc-timing_url.test.ts +7 -19
  201. package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/ContentProtection.test.ts +26 -37
  202. package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/Initialization.test.ts +24 -53
  203. package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/SegmentURL.test.ts +31 -78
  204. package/src/parsers/manifest/metaplaylist/metaplaylist_parser.ts +6 -4
  205. package/src/parsers/manifest/utils/__tests__/update_segment_timeline.test.ts +79 -87
  206. package/src/parsers/texttracks/ttml/__tests__/resolve_styles_inheritance.test.ts +20 -26
  207. package/src/parsers/texttracks/ttml/html/__tests__/__global__/html_ttml_parser.test.ts +2 -7
  208. package/src/parsers/texttracks/webvtt/__tests__/parse_cue_block.test.ts +33 -30
  209. package/src/parsers/texttracks/webvtt/__tests__/parse_style_block.test.ts +33 -100
  210. package/src/parsers/texttracks/webvtt/html/__tests__/convert_payload_to_html.test.ts +16 -18
  211. package/src/parsers/texttracks/webvtt/html/__tests__/parse_webvtt_to_div.test.ts +73 -78
  212. package/src/parsers/texttracks/webvtt/html/__tests__/to_html.test.ts +36 -37
  213. package/src/transports/dash/segment_parser.ts +13 -0
  214. package/src/transports/dash/text_parser.ts +5 -1
  215. package/src/transports/local/text_parser.ts +5 -1
  216. package/src/transports/metaplaylist/pipelines.ts +2 -1
  217. package/src/transports/smooth/isobmff/__tests__/create_boxes.test.ts +150 -127
  218. package/src/transports/smooth/pipelines.ts +3 -3
  219. package/src/transports/types.ts +28 -2
  220. package/src/transports/utils/__tests__/check_isobmff_integrity.test.ts +49 -75
  221. package/src/transports/utils/parse_text_track.ts +10 -3
  222. package/src/utils/__tests__/object_assign.test.ts +2 -2
@@ -1,49 +1,44 @@
1
- import { describe, beforeEach, it, expect, vi } from "vitest";
2
- import type { OtherError as IOtherError } from "../../../errors";
3
- import type ICheckISOBMFFIntegrity from "../check_isobmff_integrity";
1
+ import { describe, beforeEach, it, expect, vi, afterEach } from "vitest";
2
+ import { OtherError } from "../../../errors";
3
+ import checkISOBMFFIntegrity from "../check_isobmff_integrity";
4
+
5
+ const mocks = vi.hoisted(() => {
6
+ return {
7
+ findCompleteBox: vi.fn(),
8
+ };
9
+ });
10
+ vi.mock("../../../parsers/containers/isobmff", () => ({
11
+ findCompleteBox: mocks.findCompleteBox,
12
+ }));
4
13
 
5
14
  describe("transports utils - checkISOBMFFIntegrity", () => {
6
15
  beforeEach(() => {
7
16
  vi.resetModules();
8
17
  });
18
+ afterEach(() => {
19
+ mocks.findCompleteBox.mockReset();
20
+ });
9
21
 
10
- it("should check just ftyp and and moov integrity for init segments", async () => {
11
- const mockFindCompleteBox = vi.fn(() => 45);
12
- vi.doMock("../../../parsers/containers/isobmff", () => ({
13
- findCompleteBox: mockFindCompleteBox,
14
- }));
15
- const checkISOBMFFIntegrity = (await vi.importActual("../check_isobmff_integrity"))
16
- .default as typeof ICheckISOBMFFIntegrity;
22
+ it("should check just ftyp and and moov integrity for init segments", () => {
23
+ mocks.findCompleteBox.mockImplementation(() => 45);
17
24
  const myUint8Array = new Uint8Array([0, 1, 2]);
18
25
  expect(() => checkISOBMFFIntegrity(myUint8Array, true)).not.toThrow();
19
- expect(mockFindCompleteBox).toHaveBeenCalledTimes(2);
20
- expect(mockFindCompleteBox).toHaveBeenCalledWith(myUint8Array, 0x66747970);
21
- expect(mockFindCompleteBox).toHaveBeenCalledWith(myUint8Array, 0x6d6f6f76);
26
+ expect(mocks.findCompleteBox).toHaveBeenCalledTimes(2);
27
+ expect(mocks.findCompleteBox).toHaveBeenCalledWith(myUint8Array, 0x66747970);
28
+ expect(mocks.findCompleteBox).toHaveBeenCalledWith(myUint8Array, 0x6d6f6f76);
22
29
  });
23
30
 
24
- it("should check just moof and and mdat integrity for regular segments", async () => {
25
- const mockFindCompleteBox = vi.fn(() => 45);
26
- vi.doMock("../../../parsers/containers/isobmff", () => ({
27
- findCompleteBox: mockFindCompleteBox,
28
- }));
29
- const checkISOBMFFIntegrity = (await vi.importActual("../check_isobmff_integrity"))
30
- .default as typeof ICheckISOBMFFIntegrity;
31
+ it("should check just moof and and mdat integrity for regular segments", () => {
32
+ mocks.findCompleteBox.mockImplementation(() => 45);
31
33
  const myUint8Array = new Uint8Array([0, 1, 2]);
32
34
  expect(() => checkISOBMFFIntegrity(myUint8Array, false)).not.toThrow();
33
- expect(mockFindCompleteBox).toHaveBeenCalledTimes(2);
34
- expect(mockFindCompleteBox).toHaveBeenCalledWith(myUint8Array, 0x6d6f6f66);
35
- expect(mockFindCompleteBox).toHaveBeenCalledWith(myUint8Array, 0x6d646174);
35
+ expect(mocks.findCompleteBox).toHaveBeenCalledTimes(2);
36
+ expect(mocks.findCompleteBox).toHaveBeenCalledWith(myUint8Array, 0x6d6f6f66);
37
+ expect(mocks.findCompleteBox).toHaveBeenCalledWith(myUint8Array, 0x6d646174);
36
38
  });
37
39
 
38
- it("should throw an other error if an init segment is missing a complete ftyp", async () => {
39
- const mockFindCompleteBox = vi.fn((_, box) => (box === 0x66747970 ? -1 : 45));
40
- vi.doMock("../../../parsers/containers/isobmff", () => ({
41
- findCompleteBox: mockFindCompleteBox,
42
- }));
43
- const OtherError = (await vi.importActual("../../../errors"))
44
- .OtherError as typeof IOtherError;
45
- const checkISOBMFFIntegrity = (await vi.importActual("../check_isobmff_integrity"))
46
- .default as typeof ICheckISOBMFFIntegrity;
40
+ it("should throw an other error if an init segment is missing a complete ftyp", () => {
41
+ mocks.findCompleteBox.mockImplementation((_, box) => (box === 0x66747970 ? -1 : 45));
47
42
  const myUint8Array = new Uint8Array([0, 1, 2]);
48
43
  let error: unknown = null;
49
44
  try {
@@ -52,23 +47,16 @@ describe("transports utils - checkISOBMFFIntegrity", () => {
52
47
  error = e;
53
48
  }
54
49
  expect(error).toBeInstanceOf(OtherError);
55
- expect((error as IOtherError).name).toEqual("OtherError");
56
- expect((error as IOtherError).type).toEqual("OTHER_ERROR");
57
- expect((error as IOtherError).code).toEqual("INTEGRITY_ERROR");
58
- expect((error as IOtherError).message).toEqual(
50
+ expect((error as OtherError).name).toEqual("OtherError");
51
+ expect((error as OtherError).type).toEqual("OTHER_ERROR");
52
+ expect((error as OtherError).code).toEqual("INTEGRITY_ERROR");
53
+ expect((error as OtherError).message).toEqual(
59
54
  "INTEGRITY_ERROR: Incomplete `ftyp` box",
60
55
  );
61
56
  });
62
57
 
63
- it("should throw an other error if an init segment is missing a complete moov", async () => {
64
- const mockFindCompleteBox = vi.fn((_, box) => (box === 0x6d6f6f76 ? -1 : 45));
65
- vi.doMock("../../../parsers/containers/isobmff", () => ({
66
- findCompleteBox: mockFindCompleteBox,
67
- }));
68
- const OtherError = (await vi.importActual("../../../errors"))
69
- .OtherError as typeof IOtherError;
70
- const checkISOBMFFIntegrity = (await vi.importActual("../check_isobmff_integrity"))
71
- .default as typeof ICheckISOBMFFIntegrity;
58
+ it("should throw an other error if an init segment is missing a complete moov", () => {
59
+ mocks.findCompleteBox.mockImplementation((_, box) => (box === 0x6d6f6f76 ? -1 : 45));
72
60
  const myUint8Array = new Uint8Array([0, 1, 2]);
73
61
  let error: unknown = null;
74
62
  try {
@@ -77,23 +65,16 @@ describe("transports utils - checkISOBMFFIntegrity", () => {
77
65
  error = e;
78
66
  }
79
67
  expect(error).toBeInstanceOf(OtherError);
80
- expect((error as IOtherError).name).toEqual("OtherError");
81
- expect((error as IOtherError).type).toEqual("OTHER_ERROR");
82
- expect((error as IOtherError).code).toEqual("INTEGRITY_ERROR");
83
- expect((error as IOtherError).message).toEqual(
68
+ expect((error as OtherError).name).toEqual("OtherError");
69
+ expect((error as OtherError).type).toEqual("OTHER_ERROR");
70
+ expect((error as OtherError).code).toEqual("INTEGRITY_ERROR");
71
+ expect((error as OtherError).message).toEqual(
84
72
  "INTEGRITY_ERROR: Incomplete `moov` box",
85
73
  );
86
74
  });
87
75
 
88
- it("should throw an other error if a regular segment is missing a complete moof", async () => {
89
- const mockFindCompleteBox = vi.fn((_, box) => (box === 0x6d6f6f66 ? -1 : 45));
90
- vi.doMock("../../../parsers/containers/isobmff", () => ({
91
- findCompleteBox: mockFindCompleteBox,
92
- }));
93
- const OtherError = (await vi.importActual("../../../errors"))
94
- .OtherError as typeof IOtherError;
95
- const checkISOBMFFIntegrity = (await vi.importActual("../check_isobmff_integrity"))
96
- .default as typeof ICheckISOBMFFIntegrity;
76
+ it("should throw an other error if a regular segment is missing a complete moof", () => {
77
+ mocks.findCompleteBox.mockImplementation((_, box) => (box === 0x6d6f6f66 ? -1 : 45));
97
78
  const myUint8Array = new Uint8Array([0, 1, 2]);
98
79
  let error: unknown = null;
99
80
  try {
@@ -102,23 +83,16 @@ describe("transports utils - checkISOBMFFIntegrity", () => {
102
83
  error = e;
103
84
  }
104
85
  expect(error).toBeInstanceOf(OtherError);
105
- expect((error as IOtherError).name).toEqual("OtherError");
106
- expect((error as IOtherError).type).toEqual("OTHER_ERROR");
107
- expect((error as IOtherError).code).toEqual("INTEGRITY_ERROR");
108
- expect((error as IOtherError).message).toEqual(
86
+ expect((error as OtherError).name).toEqual("OtherError");
87
+ expect((error as OtherError).type).toEqual("OTHER_ERROR");
88
+ expect((error as OtherError).code).toEqual("INTEGRITY_ERROR");
89
+ expect((error as OtherError).message).toEqual(
109
90
  "INTEGRITY_ERROR: Incomplete `moof` box",
110
91
  );
111
92
  });
112
93
 
113
- it("should throw an other error if a regular segment is missing a complete mdat", async () => {
114
- const mockFindCompleteBox = vi.fn((_, box) => (box === 0x6d646174 ? -1 : 45));
115
- vi.doMock("../../../parsers/containers/isobmff", () => ({
116
- findCompleteBox: mockFindCompleteBox,
117
- }));
118
- const OtherError = (await vi.importActual("../../../errors"))
119
- .OtherError as typeof IOtherError;
120
- const checkISOBMFFIntegrity = (await vi.importActual("../check_isobmff_integrity"))
121
- .default as typeof ICheckISOBMFFIntegrity;
94
+ it("should throw an other error if a regular segment is missing a complete mdat", () => {
95
+ mocks.findCompleteBox.mockImplementation((_, box) => (box === 0x6d646174 ? -1 : 45));
122
96
  const myUint8Array = new Uint8Array([0, 1, 2]);
123
97
  let error: unknown = null;
124
98
  try {
@@ -127,10 +101,10 @@ describe("transports utils - checkISOBMFFIntegrity", () => {
127
101
  error = e;
128
102
  }
129
103
  expect(error).toBeInstanceOf(OtherError);
130
- expect((error as IOtherError).name).toEqual("OtherError");
131
- expect((error as IOtherError).type).toEqual("OTHER_ERROR");
132
- expect((error as IOtherError).code).toEqual("INTEGRITY_ERROR");
133
- expect((error as IOtherError).message).toEqual(
104
+ expect((error as OtherError).name).toEqual("OtherError");
105
+ expect((error as OtherError).type).toEqual("OTHER_ERROR");
106
+ expect((error as OtherError).code).toEqual("INTEGRITY_ERROR");
107
+ expect((error as OtherError).message).toEqual(
134
108
  "INTEGRITY_ERROR: Incomplete `mdat` box",
135
109
  );
136
110
  });
@@ -87,9 +87,16 @@ export function getISOBMFFEmbeddedTextTrackData(
87
87
  language,
88
88
  codecs,
89
89
  }: {
90
+ /** The segment containing that subtitles data. */
90
91
  segment: ISegment;
91
- codecs?: string | undefined;
92
- language?: string | undefined;
92
+ /** The wanted subtitles "codecs" as announced by the packager/encoder. */
93
+ codecs: string | undefined;
94
+ /**
95
+ * The wanted language to display.
96
+ * Some subtitles format embed several different subtitles group for
97
+ * different languages. This allows to select the right one.
98
+ */
99
+ language: string | undefined;
93
100
  },
94
101
  chunkBytes: Uint8Array<ArrayBuffer>,
95
102
  initTimescale: number | undefined,
@@ -175,7 +182,7 @@ export function getPlainTextTrackData(
175
182
  }
176
183
  }
177
184
 
178
- const type = getPlainTextTrackFormat(context.codecs, context.mimeType);
185
+ const type = getPlainTextTrackFormat(context.chosenCodec, context.mimeType);
179
186
  return {
180
187
  data: textTrackData,
181
188
  type,
@@ -5,10 +5,10 @@ describe("utils - objectAssign", () => {
5
5
  it("should throw if target is not an object", () => {
6
6
  expect(() => {
7
7
  objectAssign(null as unknown as object, {});
8
- }).toThrow("Cannot convert undefined or null to object");
8
+ }).toThrow();
9
9
  expect(() => {
10
10
  objectAssign(undefined as unknown as object, {});
11
- }).toThrow("Cannot convert undefined or null to object");
11
+ }).toThrow();
12
12
  });
13
13
 
14
14
  it("should update the first argument and return it", () => {