rx-player 4.0.0-dev.2023110700 → 4.0.0-dev.2023120600

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 (479) hide show
  1. package/CHANGELOG.md +18 -226
  2. package/FILES.md +1 -1
  3. package/VERSION +1 -1
  4. package/dist/_esm5.processed/compat/add_text_track.d.ts +1 -3
  5. package/dist/_esm5.processed/compat/add_text_track.js +4 -7
  6. package/dist/_esm5.processed/compat/browser_compatibility_types.d.ts +0 -7
  7. package/dist/_esm5.processed/compat/event_listeners.d.ts +2 -15
  8. package/dist/_esm5.processed/compat/event_listeners.js +2 -37
  9. package/dist/_esm5.processed/compat/index.d.ts +1 -3
  10. package/dist/_esm5.processed/compat/index.js +1 -3
  11. package/dist/_esm5.processed/config.d.ts +9 -21
  12. package/dist/_esm5.processed/core/adaptive/adaptive_representation_selector.d.ts +0 -58
  13. package/dist/_esm5.processed/core/adaptive/adaptive_representation_selector.js +14 -54
  14. package/dist/_esm5.processed/core/adaptive/utils/select_optimal_representation.d.ts +2 -8
  15. package/dist/_esm5.processed/core/adaptive/utils/select_optimal_representation.js +2 -11
  16. package/dist/_esm5.processed/core/api/debug/buffer_graph.js +2 -6
  17. package/dist/_esm5.processed/core/api/debug/modules/general_info.js +13 -32
  18. package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_content.js +3 -3
  19. package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_size.js +1 -1
  20. package/dist/_esm5.processed/core/api/option_utils.d.ts +14 -35
  21. package/dist/_esm5.processed/core/api/option_utils.js +47 -230
  22. package/dist/_esm5.processed/core/api/public_api.d.ts +92 -266
  23. package/dist/_esm5.processed/core/api/public_api.js +451 -807
  24. package/dist/_esm5.processed/core/{segment_buffers/implementations/image → api/track_management}/index.d.ts +3 -2
  25. package/dist/_esm5.processed/core/{segment_buffers/implementations/image → api/track_management}/index.js +3 -2
  26. package/dist/_esm5.processed/core/api/{tracks_management/media_element_track_choice_manager.d.ts → track_management/media_element_tracks_store.d.ts} +15 -75
  27. package/dist/_esm5.processed/core/api/{tracks_management/media_element_track_choice_manager.js → track_management/media_element_tracks_store.js} +74 -193
  28. package/dist/_esm5.processed/core/api/track_management/track_dispatcher.d.ts +84 -0
  29. package/dist/_esm5.processed/core/api/track_management/track_dispatcher.js +158 -0
  30. package/dist/_esm5.processed/core/api/track_management/tracks_store.d.ts +406 -0
  31. package/dist/_esm5.processed/core/api/track_management/tracks_store.js +932 -0
  32. package/dist/_esm5.processed/core/api/utils.d.ts +1 -0
  33. package/dist/_esm5.processed/core/api/utils.js +28 -11
  34. package/dist/_esm5.processed/core/decrypt/content_decryptor.js +3 -3
  35. package/dist/_esm5.processed/core/decrypt/find_key_system.js +83 -71
  36. package/dist/_esm5.processed/core/decrypt/get_media_keys.js +6 -5
  37. package/dist/_esm5.processed/core/decrypt/session_events_listener.js +10 -72
  38. package/dist/_esm5.processed/core/decrypt/utils/persistent_sessions_store.d.ts +4 -4
  39. package/dist/_esm5.processed/core/decrypt/utils/persistent_sessions_store.js +6 -4
  40. package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.d.ts +1 -3
  41. package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.js +7 -26
  42. package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.d.ts +3 -9
  43. package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.js +16 -9
  44. package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher_creator.d.ts +1 -3
  45. package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher_creator.js +1 -1
  46. package/dist/_esm5.processed/core/fetchers/utils/schedule_request.d.ts +1 -6
  47. package/dist/_esm5.processed/core/fetchers/utils/schedule_request.js +4 -41
  48. package/dist/_esm5.processed/core/init/directfile_content_initializer.js +1 -1
  49. package/dist/_esm5.processed/core/init/media_source_content_initializer.d.ts +1 -8
  50. package/dist/_esm5.processed/core/init/media_source_content_initializer.js +5 -19
  51. package/dist/_esm5.processed/core/init/types.d.ts +5 -15
  52. package/dist/_esm5.processed/core/init/utils/rebuffering_controller.d.ts +2 -36
  53. package/dist/_esm5.processed/core/init/utils/rebuffering_controller.js +2 -82
  54. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/text_track_cues_store.js +54 -6
  55. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/utils.d.ts +2 -1
  56. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/utils.js +19 -2
  57. package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.d.ts +1 -2
  58. package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.js +2 -3
  59. package/dist/_esm5.processed/core/segment_buffers/implementations/types.d.ts +2 -2
  60. package/dist/_esm5.processed/core/segment_buffers/index.d.ts +2 -2
  61. package/dist/_esm5.processed/core/segment_buffers/index.js +2 -1
  62. package/dist/_esm5.processed/core/segment_buffers/inventory/index.d.ts +1 -0
  63. package/dist/_esm5.processed/core/segment_buffers/inventory/index.js +1 -0
  64. package/dist/_esm5.processed/core/segment_buffers/inventory/utils.d.ts +33 -0
  65. package/dist/_esm5.processed/core/segment_buffers/inventory/utils.js +49 -0
  66. package/dist/_esm5.processed/core/segment_buffers/segment_buffers_store.d.ts +0 -1
  67. package/dist/_esm5.processed/core/segment_buffers/segment_buffers_store.js +2 -16
  68. package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.d.ts +0 -15
  69. package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.js +183 -93
  70. package/dist/_esm5.processed/core/stream/adaptation/get_representations_switch_strategy.d.ts +39 -0
  71. package/dist/_esm5.processed/core/stream/adaptation/get_representations_switch_strategy.js +133 -0
  72. package/dist/_esm5.processed/core/stream/adaptation/types.d.ts +27 -13
  73. package/dist/_esm5.processed/core/stream/index.d.ts +2 -3
  74. package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.d.ts +2 -0
  75. package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.js +5 -7
  76. package/dist/_esm5.processed/core/stream/period/period_stream.js +13 -12
  77. package/dist/_esm5.processed/core/stream/period/types.d.ts +5 -14
  78. package/dist/_esm5.processed/core/stream/period/utils/get_adaptation_switch_strategy.d.ts +2 -4
  79. package/dist/_esm5.processed/core/stream/period/utils/get_adaptation_switch_strategy.js +10 -46
  80. package/dist/_esm5.processed/core/stream/representation/representation_stream.js +29 -23
  81. package/dist/_esm5.processed/core/stream/representation/types.d.ts +11 -1
  82. package/dist/_esm5.processed/default_config.d.ts +35 -98
  83. package/dist/_esm5.processed/default_config.js +36 -113
  84. package/dist/_esm5.processed/errors/custom_loader_error.d.ts +1 -3
  85. package/dist/_esm5.processed/errors/custom_loader_error.js +1 -3
  86. package/dist/_esm5.processed/errors/media_error.js +2 -2
  87. package/dist/_esm5.processed/errors/network_error.d.ts +0 -1
  88. package/dist/_esm5.processed/errors/network_error.js +0 -1
  89. package/dist/_esm5.processed/errors/request_error.d.ts +2 -3
  90. package/dist/_esm5.processed/errors/request_error.js +2 -5
  91. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +3 -3
  92. package/dist/_esm5.processed/features/features_object.js +0 -2
  93. package/dist/_esm5.processed/features/list/directfile.js +2 -5
  94. package/dist/_esm5.processed/features/list/index.d.ts +0 -2
  95. package/dist/_esm5.processed/features/list/index.js +0 -2
  96. package/dist/_esm5.processed/features/types.d.ts +3 -27
  97. package/dist/_esm5.processed/manifest/adaptation.d.ts +9 -11
  98. package/dist/_esm5.processed/manifest/adaptation.js +41 -30
  99. package/dist/_esm5.processed/manifest/index.d.ts +3 -4
  100. package/dist/_esm5.processed/manifest/manifest.d.ts +5 -54
  101. package/dist/_esm5.processed/manifest/manifest.js +5 -110
  102. package/dist/_esm5.processed/manifest/period.d.ts +4 -5
  103. package/dist/_esm5.processed/manifest/representation.d.ts +10 -5
  104. package/dist/_esm5.processed/manifest/representation.js +33 -10
  105. package/dist/_esm5.processed/manifest/representation_index/index.d.ts +2 -2
  106. package/dist/_esm5.processed/manifest/representation_index/static.d.ts +2 -0
  107. package/dist/_esm5.processed/manifest/representation_index/static.js +6 -0
  108. package/dist/_esm5.processed/manifest/representation_index/types.d.ts +42 -21
  109. package/dist/_esm5.processed/manifest/types.d.ts +0 -2
  110. package/dist/_esm5.processed/parsers/manifest/dash/common/convert_supplemental_codecs.d.ts +17 -0
  111. package/dist/_esm5.processed/parsers/manifest/dash/common/convert_supplemental_codecs.js +26 -0
  112. package/dist/_esm5.processed/parsers/manifest/dash/common/flatten_overlapping_periods.js +5 -0
  113. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.d.ts +17 -31
  114. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.js +26 -19
  115. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/list.d.ts +2 -0
  116. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/list.js +7 -1
  117. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.d.ts +2 -6
  118. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.js +11 -8
  119. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.d.ts +2 -0
  120. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +6 -0
  121. package/dist/_esm5.processed/parsers/manifest/dash/common/infer_adaptation_type.d.ts +2 -2
  122. package/dist/_esm5.processed/parsers/manifest/dash/common/infer_adaptation_type.js +1 -6
  123. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_adaptation_sets.js +3 -5
  124. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.d.ts +0 -2
  125. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.js +1 -1
  126. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_periods.js +2 -2
  127. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.d.ts +0 -2
  128. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.js +2 -2
  129. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representations.js +29 -17
  130. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.js +13 -6
  131. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Representation.js +7 -2
  132. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/utils.d.ts +10 -1
  133. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/utils.js +18 -2
  134. package/dist/_esm5.processed/parsers/manifest/dash/node_parser_types.d.ts +6 -4
  135. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.js +7 -6
  136. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Representation.js +5 -2
  137. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/types.d.ts +2 -1
  138. package/dist/_esm5.processed/parsers/manifest/local/representation_index.d.ts +2 -0
  139. package/dist/_esm5.processed/parsers/manifest/local/representation_index.js +6 -0
  140. package/dist/_esm5.processed/parsers/manifest/metaplaylist/metaplaylist_parser.js +6 -6
  141. package/dist/_esm5.processed/parsers/manifest/metaplaylist/representation_index.d.ts +12 -3
  142. package/dist/_esm5.processed/parsers/manifest/metaplaylist/representation_index.js +11 -2
  143. package/dist/_esm5.processed/parsers/manifest/smooth/create_parser.d.ts +0 -1
  144. package/dist/_esm5.processed/parsers/manifest/smooth/create_parser.js +11 -17
  145. package/dist/_esm5.processed/parsers/manifest/smooth/representation_index.d.ts +21 -83
  146. package/dist/_esm5.processed/parsers/manifest/smooth/representation_index.js +53 -125
  147. package/dist/_esm5.processed/parsers/manifest/smooth/shared_smooth_segment_timeline.d.ts +119 -0
  148. package/dist/_esm5.processed/parsers/manifest/smooth/shared_smooth_segment_timeline.js +159 -0
  149. package/dist/_esm5.processed/parsers/manifest/smooth/utils/add_segment_infos.d.ts +3 -6
  150. package/dist/_esm5.processed/parsers/manifest/smooth/utils/add_segment_infos.js +4 -4
  151. package/dist/_esm5.processed/parsers/manifest/types.d.ts +4 -3
  152. package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_extent.js +1 -8
  153. package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_origin.js +1 -9
  154. package/dist/_esm5.processed/public_types.d.ts +396 -308
  155. package/dist/_esm5.processed/tools/TextTrackRenderer/text_track_renderer.d.ts +5 -4
  156. package/dist/_esm5.processed/tools/TextTrackRenderer/text_track_renderer.js +5 -4
  157. package/dist/_esm5.processed/transports/dash/add_segment_integrity_checks_to_loader.js +4 -4
  158. package/dist/_esm5.processed/transports/dash/manifest_parser.js +2 -3
  159. package/dist/_esm5.processed/transports/dash/pipelines.js +1 -4
  160. package/dist/_esm5.processed/transports/dash/segment_loader.d.ts +2 -2
  161. package/dist/_esm5.processed/transports/dash/segment_loader.js +26 -20
  162. package/dist/_esm5.processed/transports/dash/segment_parser.js +19 -24
  163. package/dist/_esm5.processed/transports/dash/text_loader.js +5 -5
  164. package/dist/_esm5.processed/transports/dash/text_parser.js +28 -33
  165. package/dist/_esm5.processed/transports/local/pipelines.js +1 -10
  166. package/dist/_esm5.processed/transports/local/segment_loader.js +2 -2
  167. package/dist/_esm5.processed/transports/local/segment_parser.d.ts +1 -1
  168. package/dist/_esm5.processed/transports/local/segment_parser.js +10 -10
  169. package/dist/_esm5.processed/transports/local/text_parser.d.ts +2 -2
  170. package/dist/_esm5.processed/transports/local/text_parser.js +23 -23
  171. package/dist/_esm5.processed/transports/metaplaylist/pipelines.js +34 -52
  172. package/dist/_esm5.processed/{utils/list_to_map.d.ts → transports/smooth/is_mp4_embedded_track.d.ts} +5 -5
  173. package/dist/_esm5.processed/{features/list/image_buffer.d.ts → transports/smooth/is_mp4_embedded_track.js} +7 -6
  174. package/dist/_esm5.processed/transports/smooth/pipelines.js +33 -190
  175. package/dist/_esm5.processed/transports/smooth/segment_loader.d.ts +1 -1
  176. package/dist/_esm5.processed/transports/smooth/segment_loader.js +28 -22
  177. package/dist/_esm5.processed/transports/smooth/utils.d.ts +1 -26
  178. package/dist/_esm5.processed/transports/smooth/utils.js +1 -55
  179. package/dist/_esm5.processed/transports/types.d.ts +94 -89
  180. package/dist/_esm5.processed/transports/utils/call_custom_manifest_loader.js +3 -3
  181. package/dist/_esm5.processed/transports/utils/infer_segment_container.d.ts +3 -3
  182. package/dist/_esm5.processed/transports/utils/infer_segment_container.js +5 -7
  183. package/dist/_esm5.processed/transports/utils/parse_text_track.d.ts +8 -12
  184. package/dist/_esm5.processed/transports/utils/parse_text_track.js +19 -21
  185. package/dist/_esm5.processed/utils/array_includes.d.ts +2 -1
  186. package/dist/_esm5.processed/utils/array_includes.js +30 -28
  187. package/dist/_esm5.processed/utils/request/xhr.js +5 -5
  188. package/dist/commonjs/compat/is_codec_supported.js +22 -1
  189. package/dist/commonjs/compat/patch_webkit_source_buffer.js +2 -2
  190. package/dist/commonjs/config.d.ts +1 -0
  191. package/dist/commonjs/core/api/debug/buffer_graph.js +2 -6
  192. package/dist/commonjs/core/api/debug/modules/general_info.js +17 -10
  193. package/dist/commonjs/core/api/option_utils.d.ts +4 -0
  194. package/dist/commonjs/core/api/option_utils.js +8 -3
  195. package/dist/commonjs/core/api/public_api.d.ts +11 -1
  196. package/dist/commonjs/core/api/public_api.js +46 -11
  197. package/dist/commonjs/core/fetchers/manifest/manifest_fetcher.d.ts +6 -0
  198. package/dist/commonjs/core/fetchers/manifest/manifest_fetcher.js +11 -3
  199. package/dist/commonjs/core/fetchers/segment/segment_fetcher.d.ts +8 -1
  200. package/dist/commonjs/core/fetchers/segment/segment_fetcher.js +8 -4
  201. package/dist/commonjs/core/fetchers/segment/segment_fetcher_creator.d.ts +1 -0
  202. package/dist/commonjs/core/fetchers/utils/schedule_request.js +1 -1
  203. package/dist/commonjs/core/init/directfile_content_initializer.js +24 -7
  204. package/dist/commonjs/core/init/media_source_content_initializer.d.ts +6 -0
  205. package/dist/commonjs/core/init/media_source_content_initializer.js +4 -6
  206. package/dist/commonjs/core/init/utils/content_time_boundaries_observer.d.ts +13 -12
  207. package/dist/commonjs/core/init/utils/content_time_boundaries_observer.js +16 -17
  208. package/dist/commonjs/core/init/utils/get_initial_time.d.ts +17 -3
  209. package/dist/commonjs/core/init/utils/get_initial_time.js +9 -7
  210. package/dist/commonjs/core/segment_buffers/implementations/text/html/text_track_cues_store.js +54 -6
  211. package/dist/commonjs/core/segment_buffers/implementations/text/html/utils.d.ts +2 -1
  212. package/dist/commonjs/core/segment_buffers/implementations/text/html/utils.js +19 -2
  213. package/dist/commonjs/core/stream/adaptation/adaptation_stream.js +2 -2
  214. package/dist/commonjs/core/stream/orchestrator/stream_orchestrator.js +3 -3
  215. package/dist/commonjs/core/stream/period/period_stream.js +2 -2
  216. package/dist/commonjs/core/stream/representation/utils/get_buffer_status.js +3 -3
  217. package/dist/commonjs/core/stream/representation/utils/get_needed_segments.js +1 -1
  218. package/dist/commonjs/default_config.d.ts +5 -0
  219. package/dist/commonjs/default_config.js +5 -0
  220. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +3 -1
  221. package/dist/commonjs/experimental/tools/createMetaplaylist/get_duration_from_manifest.js +2 -0
  222. package/dist/commonjs/manifest/representation.js +18 -5
  223. package/dist/commonjs/manifest/representation_index/static.d.ts +1 -1
  224. package/dist/commonjs/manifest/representation_index/static.js +2 -2
  225. package/dist/commonjs/manifest/representation_index/types.d.ts +4 -4
  226. package/dist/commonjs/parsers/manifest/dash/common/convert_supplemental_codecs.d.ts +17 -0
  227. package/dist/commonjs/parsers/manifest/dash/common/convert_supplemental_codecs.js +30 -0
  228. package/dist/commonjs/parsers/manifest/dash/common/flatten_overlapping_periods.js +5 -0
  229. package/dist/commonjs/parsers/manifest/dash/common/indexes/base.d.ts +6 -1
  230. package/dist/commonjs/parsers/manifest/dash/common/indexes/base.js +4 -3
  231. package/dist/commonjs/parsers/manifest/dash/common/indexes/get_segments_from_timeline.d.ts +5 -2
  232. package/dist/commonjs/parsers/manifest/dash/common/indexes/get_segments_from_timeline.js +15 -4
  233. package/dist/commonjs/parsers/manifest/dash/common/indexes/index.d.ts +5 -5
  234. package/dist/commonjs/parsers/manifest/dash/common/indexes/list.d.ts +1 -1
  235. package/dist/commonjs/parsers/manifest/dash/common/indexes/list.js +2 -2
  236. package/dist/commonjs/parsers/manifest/dash/common/indexes/template.d.ts +12 -5
  237. package/dist/commonjs/parsers/manifest/dash/common/indexes/template.js +42 -29
  238. package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/index.d.ts +2 -1
  239. package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.d.ts +99 -6
  240. package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +250 -51
  241. package/dist/commonjs/parsers/manifest/dash/common/manifest_bounds_calculator.d.ts +40 -17
  242. package/dist/commonjs/parsers/manifest/dash/common/manifest_bounds_calculator.js +38 -18
  243. package/dist/commonjs/parsers/manifest/dash/common/parse_adaptation_sets.js +13 -10
  244. package/dist/commonjs/parsers/manifest/dash/common/parse_mpd.js +27 -14
  245. package/dist/commonjs/parsers/manifest/dash/common/parse_periods.d.ts +1 -1
  246. package/dist/commonjs/parsers/manifest/dash/common/parse_periods.js +17 -18
  247. package/dist/commonjs/parsers/manifest/dash/common/parse_representation_index.d.ts +19 -6
  248. package/dist/commonjs/parsers/manifest/dash/common/parse_representation_index.js +21 -8
  249. package/dist/commonjs/parsers/manifest/dash/common/parse_representations.js +36 -20
  250. package/dist/commonjs/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.js +3 -0
  251. package/dist/commonjs/parsers/manifest/dash/js-parser/node_parsers/Representation.js +3 -0
  252. package/dist/commonjs/parsers/manifest/dash/node_parser_types.d.ts +2 -0
  253. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.js +4 -0
  254. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/Representation.js +4 -0
  255. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/types.d.ts +2 -1
  256. package/dist/commonjs/parsers/manifest/local/representation_index.d.ts +1 -1
  257. package/dist/commonjs/parsers/manifest/local/representation_index.js +3 -3
  258. package/dist/commonjs/parsers/manifest/metaplaylist/representation_index.d.ts +1 -1
  259. package/dist/commonjs/parsers/manifest/metaplaylist/representation_index.js +2 -2
  260. package/dist/commonjs/parsers/manifest/smooth/representation_index.d.ts +5 -5
  261. package/dist/commonjs/parsers/manifest/smooth/representation_index.js +25 -9
  262. package/dist/commonjs/parsers/manifest/types.d.ts +1 -0
  263. package/dist/commonjs/parsers/manifest/utils/index_helpers.js +1 -1
  264. package/dist/commonjs/public_types.d.ts +78 -34
  265. package/dist/commonjs/transports/dash/init_segment_loader.js +10 -5
  266. package/dist/commonjs/transports/dash/manifest_parser.js +5 -2
  267. package/dist/commonjs/transports/dash/segment_loader.js +2 -1
  268. package/dist/commonjs/transports/dash/text_loader.js +2 -0
  269. package/dist/commonjs/transports/metaplaylist/manifest_loader.js +2 -1
  270. package/dist/commonjs/transports/metaplaylist/pipelines.js +4 -1
  271. package/dist/commonjs/transports/smooth/pipelines.js +4 -2
  272. package/dist/commonjs/transports/smooth/segment_loader.js +2 -1
  273. package/dist/commonjs/transports/types.d.ts +12 -0
  274. package/dist/commonjs/transports/utils/generate_manifest_loader.js +6 -3
  275. package/dist/commonjs/utils/queue_microtask.d.ts +2 -0
  276. package/dist/commonjs/utils/queue_microtask.js +7 -0
  277. package/dist/commonjs/utils/request/fetch.d.ts +6 -0
  278. package/dist/commonjs/utils/request/fetch.js +29 -8
  279. package/dist/commonjs/utils/request/xhr.d.ts +11 -5
  280. package/dist/commonjs/utils/request/xhr.js +29 -8
  281. package/dist/es2017/compat/is_codec_supported.js +22 -1
  282. package/dist/es2017/compat/patch_webkit_source_buffer.js +2 -2
  283. package/dist/es2017/config.d.ts +1 -0
  284. package/dist/es2017/core/api/debug/buffer_graph.js +2 -6
  285. package/dist/es2017/core/api/debug/modules/general_info.js +17 -10
  286. package/dist/es2017/core/api/option_utils.d.ts +4 -0
  287. package/dist/es2017/core/api/option_utils.js +8 -3
  288. package/dist/es2017/core/api/public_api.d.ts +11 -1
  289. package/dist/es2017/core/api/public_api.js +44 -9
  290. package/dist/es2017/core/fetchers/manifest/manifest_fetcher.d.ts +6 -0
  291. package/dist/es2017/core/fetchers/manifest/manifest_fetcher.js +11 -3
  292. package/dist/es2017/core/fetchers/segment/segment_fetcher.d.ts +8 -1
  293. package/dist/es2017/core/fetchers/segment/segment_fetcher.js +8 -4
  294. package/dist/es2017/core/fetchers/segment/segment_fetcher_creator.d.ts +1 -0
  295. package/dist/es2017/core/fetchers/utils/schedule_request.js +1 -1
  296. package/dist/es2017/core/init/directfile_content_initializer.js +24 -7
  297. package/dist/es2017/core/init/media_source_content_initializer.d.ts +6 -0
  298. package/dist/es2017/core/init/media_source_content_initializer.js +4 -6
  299. package/dist/es2017/core/init/utils/content_time_boundaries_observer.d.ts +13 -12
  300. package/dist/es2017/core/init/utils/content_time_boundaries_observer.js +16 -15
  301. package/dist/es2017/core/init/utils/get_initial_time.d.ts +17 -3
  302. package/dist/es2017/core/init/utils/get_initial_time.js +9 -7
  303. package/dist/es2017/core/segment_buffers/implementations/text/html/text_track_cues_store.js +54 -6
  304. package/dist/es2017/core/segment_buffers/implementations/text/html/utils.d.ts +2 -1
  305. package/dist/es2017/core/segment_buffers/implementations/text/html/utils.js +18 -2
  306. package/dist/es2017/core/stream/adaptation/adaptation_stream.js +2 -2
  307. package/dist/es2017/core/stream/orchestrator/stream_orchestrator.js +3 -3
  308. package/dist/es2017/core/stream/period/period_stream.js +2 -2
  309. package/dist/es2017/core/stream/representation/utils/get_buffer_status.js +3 -3
  310. package/dist/es2017/core/stream/representation/utils/get_needed_segments.js +1 -1
  311. package/dist/es2017/default_config.d.ts +5 -0
  312. package/dist/es2017/default_config.js +5 -0
  313. package/dist/es2017/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +3 -1
  314. package/dist/es2017/experimental/tools/createMetaplaylist/get_duration_from_manifest.js +2 -0
  315. package/dist/es2017/manifest/representation.js +18 -5
  316. package/dist/es2017/manifest/representation_index/static.d.ts +1 -1
  317. package/dist/es2017/manifest/representation_index/static.js +2 -2
  318. package/dist/es2017/manifest/representation_index/types.d.ts +4 -4
  319. package/dist/es2017/parsers/manifest/dash/common/convert_supplemental_codecs.d.ts +17 -0
  320. package/dist/es2017/parsers/manifest/dash/common/convert_supplemental_codecs.js +26 -0
  321. package/dist/es2017/parsers/manifest/dash/common/flatten_overlapping_periods.js +5 -0
  322. package/dist/es2017/parsers/manifest/dash/common/indexes/base.d.ts +6 -1
  323. package/dist/es2017/parsers/manifest/dash/common/indexes/base.js +4 -3
  324. package/dist/es2017/parsers/manifest/dash/common/indexes/get_segments_from_timeline.d.ts +5 -2
  325. package/dist/es2017/parsers/manifest/dash/common/indexes/get_segments_from_timeline.js +15 -4
  326. package/dist/es2017/parsers/manifest/dash/common/indexes/index.d.ts +5 -5
  327. package/dist/es2017/parsers/manifest/dash/common/indexes/list.d.ts +1 -1
  328. package/dist/es2017/parsers/manifest/dash/common/indexes/list.js +2 -2
  329. package/dist/es2017/parsers/manifest/dash/common/indexes/template.d.ts +12 -5
  330. package/dist/es2017/parsers/manifest/dash/common/indexes/template.js +40 -27
  331. package/dist/es2017/parsers/manifest/dash/common/indexes/timeline/index.d.ts +2 -1
  332. package/dist/es2017/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.d.ts +99 -6
  333. package/dist/es2017/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +246 -51
  334. package/dist/es2017/parsers/manifest/dash/common/manifest_bounds_calculator.d.ts +40 -17
  335. package/dist/es2017/parsers/manifest/dash/common/manifest_bounds_calculator.js +38 -18
  336. package/dist/es2017/parsers/manifest/dash/common/parse_adaptation_sets.js +11 -8
  337. package/dist/es2017/parsers/manifest/dash/common/parse_mpd.js +27 -13
  338. package/dist/es2017/parsers/manifest/dash/common/parse_periods.d.ts +1 -1
  339. package/dist/es2017/parsers/manifest/dash/common/parse_periods.js +13 -16
  340. package/dist/es2017/parsers/manifest/dash/common/parse_representation_index.d.ts +19 -6
  341. package/dist/es2017/parsers/manifest/dash/common/parse_representation_index.js +10 -8
  342. package/dist/es2017/parsers/manifest/dash/common/parse_representations.js +36 -20
  343. package/dist/es2017/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.js +3 -0
  344. package/dist/es2017/parsers/manifest/dash/js-parser/node_parsers/Representation.js +3 -0
  345. package/dist/es2017/parsers/manifest/dash/node_parser_types.d.ts +2 -0
  346. package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.js +4 -0
  347. package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/Representation.js +4 -0
  348. package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/types.d.ts +2 -1
  349. package/dist/es2017/parsers/manifest/local/representation_index.d.ts +1 -1
  350. package/dist/es2017/parsers/manifest/local/representation_index.js +3 -3
  351. package/dist/es2017/parsers/manifest/metaplaylist/representation_index.d.ts +1 -1
  352. package/dist/es2017/parsers/manifest/metaplaylist/representation_index.js +2 -2
  353. package/dist/es2017/parsers/manifest/smooth/representation_index.d.ts +5 -5
  354. package/dist/es2017/parsers/manifest/smooth/representation_index.js +25 -9
  355. package/dist/es2017/parsers/manifest/types.d.ts +1 -0
  356. package/dist/es2017/parsers/manifest/utils/index_helpers.js +1 -1
  357. package/dist/es2017/public_types.d.ts +78 -34
  358. package/dist/es2017/transports/dash/init_segment_loader.js +5 -0
  359. package/dist/es2017/transports/dash/manifest_parser.js +3 -0
  360. package/dist/es2017/transports/dash/segment_loader.js +1 -0
  361. package/dist/es2017/transports/dash/text_loader.js +2 -0
  362. package/dist/es2017/transports/metaplaylist/manifest_loader.js +1 -0
  363. package/dist/es2017/transports/metaplaylist/pipelines.js +4 -1
  364. package/dist/es2017/transports/smooth/pipelines.js +2 -0
  365. package/dist/es2017/transports/smooth/segment_loader.js +1 -0
  366. package/dist/es2017/transports/types.d.ts +12 -0
  367. package/dist/es2017/transports/utils/generate_manifest_loader.js +3 -0
  368. package/dist/es2017/utils/queue_microtask.d.ts +2 -0
  369. package/dist/es2017/utils/queue_microtask.js +5 -0
  370. package/dist/es2017/utils/request/fetch.d.ts +6 -0
  371. package/dist/es2017/utils/request/fetch.js +29 -8
  372. package/dist/es2017/utils/request/xhr.d.ts +11 -5
  373. package/dist/es2017/utils/request/xhr.js +30 -9
  374. package/dist/mpd-parser.wasm +0 -0
  375. package/dist/rx-player.js +900 -492
  376. package/dist/rx-player.min.js +1 -1
  377. package/package.json +3 -7
  378. package/scripts/update-version +2 -0
  379. package/sonar-project.properties +1 -1
  380. package/src/compat/is_codec_supported.ts +23 -1
  381. package/src/compat/patch_webkit_source_buffer.ts +2 -2
  382. package/src/core/api/debug/buffer_graph.ts +2 -5
  383. package/src/core/api/debug/modules/general_info.ts +15 -10
  384. package/src/core/api/option_utils.ts +11 -3
  385. package/src/core/api/public_api.ts +48 -8
  386. package/src/core/fetchers/manifest/manifest_fetcher.ts +21 -3
  387. package/src/core/fetchers/segment/segment_fetcher.ts +19 -5
  388. package/src/core/fetchers/segment/segment_fetcher_creator.ts +1 -0
  389. package/src/core/fetchers/utils/schedule_request.ts +1 -1
  390. package/src/core/init/directfile_content_initializer.ts +23 -7
  391. package/src/core/init/media_source_content_initializer.ts +13 -7
  392. package/src/core/init/utils/content_time_boundaries_observer.ts +23 -22
  393. package/src/core/init/utils/get_initial_time.ts +25 -12
  394. package/src/core/segment_buffers/implementations/text/html/__tests__/utils.test.ts +15 -0
  395. package/src/core/segment_buffers/implementations/text/html/text_track_cues_store.ts +57 -6
  396. package/src/core/segment_buffers/implementations/text/html/utils.ts +19 -2
  397. package/src/core/stream/adaptation/adaptation_stream.ts +2 -2
  398. package/src/core/stream/orchestrator/stream_orchestrator.ts +3 -3
  399. package/src/core/stream/period/period_stream.ts +2 -2
  400. package/src/core/stream/representation/utils/get_buffer_status.ts +3 -3
  401. package/src/core/stream/representation/utils/get_needed_segments.ts +2 -2
  402. package/src/default_config.ts +5 -0
  403. package/src/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.ts +3 -1
  404. package/src/experimental/tools/createMetaplaylist/get_duration_from_manifest.ts +2 -0
  405. package/src/manifest/representation.ts +19 -6
  406. package/src/manifest/representation_index/static.ts +2 -2
  407. package/src/manifest/representation_index/types.ts +4 -4
  408. package/src/parsers/manifest/dash/common/__tests__/convert_supplemental_codecs.test.ts +37 -0
  409. package/src/parsers/manifest/dash/common/__tests__/flatten_overlapping_period.test.ts +20 -0
  410. package/src/parsers/manifest/dash/common/__tests__/manifest_bounds_calculator.test.ts +182 -36
  411. package/src/parsers/manifest/dash/common/convert_supplemental_codecs.ts +32 -0
  412. package/src/parsers/manifest/dash/common/flatten_overlapping_periods.ts +5 -0
  413. package/src/parsers/manifest/dash/common/indexes/base.ts +12 -4
  414. package/src/parsers/manifest/dash/common/indexes/get_segments_from_timeline.ts +19 -5
  415. package/src/parsers/manifest/dash/common/indexes/index.ts +16 -4
  416. package/src/parsers/manifest/dash/common/indexes/list.ts +2 -2
  417. package/src/parsers/manifest/dash/common/indexes/template.ts +52 -31
  418. package/src/parsers/manifest/dash/common/indexes/timeline/index.ts +4 -1
  419. package/src/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.ts +366 -60
  420. package/src/parsers/manifest/dash/common/manifest_bounds_calculator.ts +63 -25
  421. package/src/parsers/manifest/dash/common/parse_adaptation_sets.ts +10 -4
  422. package/src/parsers/manifest/dash/common/parse_mpd.ts +28 -15
  423. package/src/parsers/manifest/dash/common/parse_periods.ts +12 -17
  424. package/src/parsers/manifest/dash/common/parse_representation_index.ts +50 -26
  425. package/src/parsers/manifest/dash/common/parse_representations.ts +39 -20
  426. package/src/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.ts +4 -0
  427. package/src/parsers/manifest/dash/js-parser/node_parsers/Representation.ts +4 -0
  428. package/src/parsers/manifest/dash/node_parser_types.ts +2 -0
  429. package/src/parsers/manifest/dash/wasm-parser/rs/events.rs +2 -0
  430. package/src/parsers/manifest/dash/wasm-parser/rs/processor/attributes.rs +2 -0
  431. package/src/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.ts +4 -0
  432. package/src/parsers/manifest/dash/wasm-parser/ts/generators/Representation.ts +4 -0
  433. package/src/parsers/manifest/dash/wasm-parser/ts/types.ts +2 -0
  434. package/src/parsers/manifest/local/representation_index.ts +3 -3
  435. package/src/parsers/manifest/metaplaylist/representation_index.ts +2 -2
  436. package/src/parsers/manifest/smooth/representation_index.ts +23 -9
  437. package/src/parsers/manifest/types.ts +2 -0
  438. package/src/parsers/manifest/utils/__tests__/get_first_time_from_adaptations.test.ts +1 -1
  439. package/src/parsers/manifest/utils/__tests__/get_last_time_from_adaptation.test.ts +1 -1
  440. package/src/parsers/manifest/utils/index_helpers.ts +1 -1
  441. package/src/public_types.ts +79 -34
  442. package/src/transports/dash/init_segment_loader.ts +5 -0
  443. package/src/transports/dash/manifest_parser.ts +6 -0
  444. package/src/transports/dash/segment_loader.ts +1 -0
  445. package/src/transports/dash/text_loader.ts +2 -0
  446. package/src/transports/metaplaylist/manifest_loader.ts +1 -0
  447. package/src/transports/metaplaylist/pipelines.ts +4 -1
  448. package/src/transports/smooth/pipelines.ts +2 -0
  449. package/src/transports/smooth/segment_loader.ts +1 -0
  450. package/src/transports/types.ts +12 -0
  451. package/src/transports/utils/generate_manifest_loader.ts +3 -0
  452. package/src/utils/queue_microtask.ts +7 -0
  453. package/src/utils/request/fetch.ts +35 -8
  454. package/src/utils/request/xhr.ts +45 -14
  455. package/dist/_esm5.processed/compat/fullscreen.d.ts +0 -32
  456. package/dist/_esm5.processed/compat/fullscreen.js +0 -78
  457. package/dist/_esm5.processed/compat/is_offline.d.ts +0 -39
  458. package/dist/_esm5.processed/compat/is_offline.js +0 -43
  459. package/dist/_esm5.processed/core/api/tracks_management/track_choice_manager.d.ts +0 -258
  460. package/dist/_esm5.processed/core/api/tracks_management/track_choice_manager.js +0 -989
  461. package/dist/_esm5.processed/core/segment_buffers/implementations/image/image_segment_buffer.d.ts +0 -75
  462. package/dist/_esm5.processed/core/segment_buffers/implementations/image/image_segment_buffer.js +0 -133
  463. package/dist/_esm5.processed/features/list/bif_parser.d.ts +0 -23
  464. package/dist/_esm5.processed/features/list/bif_parser.js +0 -27
  465. package/dist/_esm5.processed/features/list/image_buffer.js +0 -25
  466. package/dist/_esm5.processed/transports/dash/image_pipelines.d.ts +0 -38
  467. package/dist/_esm5.processed/transports/dash/image_pipelines.js +0 -129
  468. package/dist/_esm5.processed/utils/list_to_map.js +0 -28
  469. package/dist/_esm5.processed/utils/simple_set.d.ts +0 -51
  470. package/dist/_esm5.processed/utils/simple_set.js +0 -57
  471. package/dist/_esm5.processed/utils/uniq.d.ts +0 -36
  472. package/dist/_esm5.processed/utils/uniq.js +0 -43
  473. package/dist/commonjs/parsers/manifest/utils/is_segment_still_available.d.ts +0 -29
  474. package/dist/commonjs/parsers/manifest/utils/is_segment_still_available.js +0 -54
  475. package/dist/es2017/parsers/manifest/utils/is_segment_still_available.d.ts +0 -29
  476. package/dist/es2017/parsers/manifest/utils/is_segment_still_available.js +0 -51
  477. package/src/parsers/manifest/utils/is_segment_still_available.ts +0 -58
  478. package/src/typings/next-tick.d.ts +0 -23
  479. package/src/typings/object-assign.d.ts +0 -48
@@ -41,10 +41,11 @@ export default class TextTrackRenderer {
41
41
  static addParsers(parsersList: IFeature[]): void;
42
42
  private _segmentBuffer;
43
43
  /**
44
- * @param {HTMLMediaElement} videoElement - The media element the text track
45
- * has to be synchronized to.
46
- * @param {HTMLElement} textTrackElement - The HTML element which will contain
47
- * the text tracks.
44
+ * @param {Object} opts
45
+ * @param {HTMLMediaElement} opts.videoElement - The media element the text
46
+ * track has to be synchronized to.
47
+ * @param {HTMLElement} opt.textTrackElement - The HTML element which will
48
+ * contain the text tracks.
48
49
  */
49
50
  constructor({ videoElement, textTrackElement }: {
50
51
  videoElement: HTMLMediaElement;
@@ -24,10 +24,11 @@ import { addFeatures, } from "../../features";
24
24
  */
25
25
  var TextTrackRenderer = /** @class */ (function () {
26
26
  /**
27
- * @param {HTMLMediaElement} videoElement - The media element the text track
28
- * has to be synchronized to.
29
- * @param {HTMLElement} textTrackElement - The HTML element which will contain
30
- * the text tracks.
27
+ * @param {Object} opts
28
+ * @param {HTMLMediaElement} opts.videoElement - The media element the text
29
+ * track has to be synchronized to.
30
+ * @param {HTMLElement} opt.textTrackElement - The HTML element which will
31
+ * contain the text tracks.
31
32
  */
32
33
  function TextTrackRenderer(_a) {
33
34
  var videoElement = _a.videoElement, textTrackElement = _a.textTrackElement;
@@ -35,12 +35,12 @@ import inferSegmentContainer from "../utils/infer_segment_container";
35
35
  * @returns {Function}
36
36
  */
37
37
  export default function addSegmentIntegrityChecks(segmentLoader) {
38
- return function (url, content, loaderOptions, initialCancelSignal, callbacks) {
38
+ return function (url, context, loaderOptions, initialCancelSignal, callbacks) {
39
39
  return new Promise(function (resolve, reject) {
40
40
  var requestCanceller = new TaskCanceller();
41
41
  var unlinkCanceller = requestCanceller.linkToSignal(initialCancelSignal);
42
42
  requestCanceller.signal.register(reject);
43
- segmentLoader(url, content, loaderOptions, requestCanceller.signal, __assign(__assign({}, callbacks), { onNewChunk: function (data) {
43
+ segmentLoader(url, context, loaderOptions, requestCanceller.signal, __assign(__assign({}, callbacks), { onNewChunk: function (data) {
44
44
  try {
45
45
  trowOnIntegrityError(data);
46
46
  callbacks.onNewChunk(data);
@@ -84,10 +84,10 @@ export default function addSegmentIntegrityChecks(segmentLoader) {
84
84
  */
85
85
  function trowOnIntegrityError(data) {
86
86
  if (!(data instanceof ArrayBuffer) && !(data instanceof Uint8Array) ||
87
- inferSegmentContainer(content.adaptation.type, content.representation) !== "mp4") {
87
+ inferSegmentContainer(context.type, context.mimeType) !== "mp4") {
88
88
  return;
89
89
  }
90
- checkISOBMFFIntegrity(new Uint8Array(data), content.segment.isInit);
90
+ checkISOBMFFIntegrity(new Uint8Array(data), context.segment.isInit);
91
91
  }
92
92
  };
93
93
  }
@@ -22,7 +22,7 @@ import objectAssign from "../../utils/object_assign";
22
22
  import request from "../../utils/request";
23
23
  import { strToUtf8, utf8ToStr, } from "../../utils/string_parsing";
24
24
  export default function generateManifestParser(options) {
25
- var aggressiveMode = options.aggressiveMode, referenceDateTime = options.referenceDateTime;
25
+ var referenceDateTime = options.referenceDateTime;
26
26
  var serverTimeOffset = options.serverSyncInfos !== undefined ?
27
27
  options.serverSyncInfos.serverTimestamp - options.serverSyncInfos.clientTime :
28
28
  undefined;
@@ -31,12 +31,11 @@ export default function generateManifestParser(options) {
31
31
  var responseData = manifestData.responseData;
32
32
  var argClockOffset = parserOptions.externalClockOffset;
33
33
  var url = (_a = manifestData.url) !== null && _a !== void 0 ? _a : parserOptions.originalUrl;
34
- var optAggressiveMode = aggressiveMode === true;
35
34
  var externalClockOffset = serverTimeOffset !== null && serverTimeOffset !== void 0 ? serverTimeOffset : argClockOffset;
36
35
  var unsafelyBaseOnPreviousManifest = parserOptions.unsafeMode ?
37
36
  parserOptions.previousManifest :
38
37
  null;
39
- var dashParserOpts = { aggressiveMode: optAggressiveMode, unsafelyBaseOnPreviousManifest: unsafelyBaseOnPreviousManifest, url: url, referenceDateTime: referenceDateTime, externalClockOffset: externalClockOffset };
38
+ var dashParserOpts = { unsafelyBaseOnPreviousManifest: unsafelyBaseOnPreviousManifest, url: url, referenceDateTime: referenceDateTime, externalClockOffset: externalClockOffset };
40
39
  var parsers = features.dashParsers;
41
40
  if (parsers.wasm === null ||
42
41
  parsers.wasm.status === "uninitialized" ||
@@ -15,7 +15,6 @@
15
15
  */
16
16
  import features from "../../features";
17
17
  import generateManifestLoader from "../utils/generate_manifest_loader";
18
- import { imageLoader, imageParser, } from "./image_pipelines";
19
18
  import generateManifestParser from "./manifest_parser";
20
19
  import generateSegmentLoader from "./segment_loader";
21
20
  import generateAudioVideoSegmentParser from "./segment_parser";
@@ -42,9 +41,7 @@ export default function (options) {
42
41
  video: { loadSegment: segmentLoader,
43
42
  parseSegment: audioVideoSegmentParser },
44
43
  text: { loadSegment: textTrackLoader,
45
- parseSegment: textTrackParser },
46
- image: { loadSegment: imageLoader,
47
- parseSegment: imageParser } };
44
+ parseSegment: textTrackParser } };
48
45
  }
49
46
  /**
50
47
  * Returns true if the DASH-WASM parser is either initialized or being
@@ -19,14 +19,14 @@ import { ILoadedAudioVideoSegmentFormat, ISegmentContext, ISegmentLoader, ISegme
19
19
  /**
20
20
  * Segment loader triggered if there was no custom-defined one in the API.
21
21
  * @param {string} url
22
- * @param {Object} content
22
+ * @param {Object} context
23
23
  * @param {boolean} lowLatencyMode
24
24
  * @param {Object} options
25
25
  * @param {Object} callbacks
26
26
  * @param {Object} cancelSignal
27
27
  * @returns {Promise}
28
28
  */
29
- export declare function regularSegmentLoader(url: string, content: ISegmentContext, lowLatencyMode: boolean, options: ISegmentLoaderOptions, callbacks: ISegmentLoaderCallbacks<ILoadedAudioVideoSegmentFormat>, cancelSignal: CancellationSignal): Promise<ISegmentLoaderResultSegmentLoaded<ILoadedAudioVideoSegmentFormat> | ISegmentLoaderResultSegmentCreated<ILoadedAudioVideoSegmentFormat> | ISegmentLoaderResultChunkedComplete>;
29
+ export declare function regularSegmentLoader(url: string, context: ISegmentContext, lowLatencyMode: boolean, options: ISegmentLoaderOptions, callbacks: ISegmentLoaderCallbacks<ILoadedAudioVideoSegmentFormat>, cancelSignal: CancellationSignal): Promise<ISegmentLoaderResultSegmentLoaded<ILoadedAudioVideoSegmentFormat> | ISegmentLoaderResultSegmentCreated<ILoadedAudioVideoSegmentFormat> | ISegmentLoaderResultChunkedComplete>;
30
30
  /**
31
31
  * @param {Object} config
32
32
  * @returns {Function}
@@ -25,28 +25,28 @@ import lowLatencySegmentLoader from "./low_latency_segment_loader";
25
25
  /**
26
26
  * Segment loader triggered if there was no custom-defined one in the API.
27
27
  * @param {string} url
28
- * @param {Object} content
28
+ * @param {Object} context
29
29
  * @param {boolean} lowLatencyMode
30
30
  * @param {Object} options
31
31
  * @param {Object} callbacks
32
32
  * @param {Object} cancelSignal
33
33
  * @returns {Promise}
34
34
  */
35
- export function regularSegmentLoader(url, content, lowLatencyMode, options, callbacks, cancelSignal) {
36
- if (content.segment.isInit) {
37
- return initSegmentLoader(url, content.segment, options, cancelSignal, callbacks);
35
+ export function regularSegmentLoader(url, context, lowLatencyMode, options, callbacks, cancelSignal) {
36
+ if (context.segment.isInit) {
37
+ return initSegmentLoader(url, context.segment, options, cancelSignal, callbacks);
38
38
  }
39
- var containerType = inferSegmentContainer(content.adaptation.type, content.representation);
39
+ var containerType = inferSegmentContainer(context.type, context.mimeType);
40
40
  if (lowLatencyMode && (containerType === "mp4" || containerType === undefined)) {
41
41
  if (fetchIsSupported()) {
42
- return lowLatencySegmentLoader(url, content, options, callbacks, cancelSignal);
42
+ return lowLatencySegmentLoader(url, context, options, callbacks, cancelSignal);
43
43
  }
44
44
  else {
45
45
  warnOnce("DASH: Your browser does not have the fetch API. You will have " +
46
46
  "a higher chance of rebuffering when playing close to the live edge");
47
47
  }
48
48
  }
49
- var segment = content.segment;
49
+ var segment = context.segment;
50
50
  return request({ url: url, responseType: "arraybuffer",
51
51
  headers: segment.range !== undefined ?
52
52
  { Range: byteRange(segment.range) } :
@@ -65,24 +65,21 @@ export default function generateSegmentLoader(_a) {
65
65
  addSegmentIntegrityChecks(segmentLoader);
66
66
  /**
67
67
  * @param {Object|null} wantedCdn
68
+ * @param {Object} context
69
+ * @param {Object} options
70
+ * @param {Object} cancelSignal
71
+ * @param {Object} callbacks
68
72
  * @returns {Promise.<Object>}
69
73
  */
70
- function segmentLoader(wantedCdn, content, options, cancelSignal, callbacks) {
71
- var url = constructSegmentUrl(wantedCdn, content.segment);
74
+ function segmentLoader(wantedCdn, context, options, cancelSignal, callbacks) {
75
+ var url = constructSegmentUrl(wantedCdn, context.segment);
72
76
  if (url == null) {
73
77
  return Promise.resolve({ resultType: "segment-created",
74
78
  resultData: null });
75
79
  }
76
80
  if (lowLatencyMode || customSegmentLoader === undefined) {
77
- return regularSegmentLoader(url, content, lowLatencyMode, options, callbacks, cancelSignal);
81
+ return regularSegmentLoader(url, context, lowLatencyMode, options, callbacks, cancelSignal);
78
82
  }
79
- var args = { adaptation: content.adaptation,
80
- manifest: content.manifest,
81
- period: content.period,
82
- representation: content.representation,
83
- segment: content.segment,
84
- transport: "dash",
85
- timeout: options.timeout, url: url };
86
83
  return new Promise(function (res, rej) {
87
84
  /** `true` when the custom segmentLoader should not be active anymore. */
88
85
  var hasFinished = false;
@@ -106,7 +103,7 @@ export default function generateSegmentLoader(_a) {
106
103
  * @param {*} err - The corresponding error encountered
107
104
  */
108
105
  var reject = function (err) {
109
- var _a, _b, _c;
106
+ var _a, _b;
110
107
  if (hasFinished || cancelSignal.isCancelled()) {
111
108
  return;
112
109
  }
@@ -116,7 +113,7 @@ export default function generateSegmentLoader(_a) {
116
113
  var castedErr = err;
117
114
  var message = (_a = castedErr === null || castedErr === void 0 ? void 0 : castedErr.message) !== null && _a !== void 0 ? _a : "Unknown error when fetching a DASH segment through a " +
118
115
  "custom segmentLoader.";
119
- var emittedErr = new CustomLoaderError(message, (_b = castedErr === null || castedErr === void 0 ? void 0 : castedErr.canRetry) !== null && _b !== void 0 ? _b : false, (_c = castedErr === null || castedErr === void 0 ? void 0 : castedErr.isOfflineError) !== null && _c !== void 0 ? _c : false, castedErr === null || castedErr === void 0 ? void 0 : castedErr.xhr);
116
+ var emittedErr = new CustomLoaderError(message, (_b = castedErr === null || castedErr === void 0 ? void 0 : castedErr.canRetry) !== null && _b !== void 0 ? _b : false, castedErr === null || castedErr === void 0 ? void 0 : castedErr.xhr);
120
117
  rej(emittedErr);
121
118
  };
122
119
  var progress = function (_args) {
@@ -137,10 +134,19 @@ export default function generateSegmentLoader(_a) {
137
134
  }
138
135
  hasFinished = true;
139
136
  cancelSignal.deregister(abortCustomLoader);
140
- regularSegmentLoader(url, content, lowLatencyMode, options, callbacks, cancelSignal)
137
+ regularSegmentLoader(url, context, lowLatencyMode, options, callbacks, cancelSignal)
141
138
  .then(res, rej);
142
139
  };
143
140
  var customCallbacks = { reject: reject, resolve: resolve, progress: progress, fallback: fallback };
141
+ var byteRanges;
142
+ if (context.segment.range !== undefined) {
143
+ byteRanges = [context.segment.range];
144
+ if (context.segment.indexRange !== undefined) {
145
+ byteRanges.push(context.segment.indexRange);
146
+ }
147
+ }
148
+ var args = { isInit: context.segment.isInit,
149
+ timeout: options.timeout, byteRanges: byteRanges, type: context.type, url: url };
144
150
  var abort = customSegmentLoader(args, customCallbacks);
145
151
  cancelSignal.register(abortCustomLoader);
146
152
  /**
@@ -16,7 +16,6 @@
16
16
  import { getMDHDTimescale, getSegmentsFromSidx, takePSSHOut, } from "../../parsers/containers/isobmff";
17
17
  import { getKeyIdFromInitSegment, parseEmsgBoxes, } from "../../parsers/containers/isobmff/utils";
18
18
  import { getSegmentsFromCues, getTimeCodeScale, } from "../../parsers/containers/matroska";
19
- import { BaseRepresentationIndex } from "../../parsers/manifest/dash";
20
19
  import isNullOrUndefined from "../../utils/is_null_or_undefined";
21
20
  import getISOBMFFTimingInfos from "../utils/get_isobmff_timing_infos";
22
21
  import inferSegmentContainer from "../utils/infer_segment_container";
@@ -27,17 +26,17 @@ import getEventsOutOfEMSGs from "./get_events_out_of_emsgs";
27
26
  */
28
27
  export default function generateAudioVideoSegmentParser(_a) {
29
28
  var __priv_patchLastSegmentInSidx = _a.__priv_patchLastSegmentInSidx;
30
- return function audioVideoSegmentParser(loadedSegment, content, initTimescale) {
29
+ return function audioVideoSegmentParser(loadedSegment, context, initTimescale) {
31
30
  var _a, _b;
32
- var period = content.period, adaptation = content.adaptation, representation = content.representation, segment = content.segment, manifest = content.manifest;
31
+ var segment = context.segment, periodStart = context.periodStart, periodEnd = context.periodEnd;
33
32
  var data = loadedSegment.data, isChunked = loadedSegment.isChunked;
34
- var appendWindow = [period.start, period.end];
33
+ var appendWindow = [periodStart, periodEnd];
35
34
  if (data === null) {
36
35
  if (segment.isInit) {
37
36
  return { segmentType: "init",
38
37
  initializationData: null,
39
38
  initializationDataSize: 0,
40
- protectionDataUpdate: false,
39
+ protectionData: [],
41
40
  initTimescale: undefined };
42
41
  }
43
42
  return { segmentType: "media",
@@ -45,14 +44,14 @@ export default function generateAudioVideoSegmentParser(_a) {
45
44
  chunkSize: 0,
46
45
  chunkInfos: null,
47
46
  chunkOffset: 0,
48
- protectionDataUpdate: false, appendWindow: appendWindow };
47
+ protectionData: [], appendWindow: appendWindow };
49
48
  }
50
49
  var chunkData = data instanceof Uint8Array ? data :
51
50
  new Uint8Array(data);
52
- var containerType = inferSegmentContainer(adaptation.type, representation);
51
+ var containerType = inferSegmentContainer(context.type, context.mimeType);
53
52
  // TODO take a look to check if this is an ISOBMFF/webm?
54
53
  var seemsToBeMP4 = containerType === "mp4" || containerType === undefined;
55
- var protectionDataUpdate = false;
54
+ var protectionData = [];
56
55
  if (seemsToBeMP4) {
57
56
  var psshInfo = takePSSHOut(chunkData);
58
57
  var keyId = void 0;
@@ -60,7 +59,7 @@ export default function generateAudioVideoSegmentParser(_a) {
60
59
  keyId = (_a = getKeyIdFromInitSegment(chunkData)) !== null && _a !== void 0 ? _a : undefined;
61
60
  }
62
61
  if (psshInfo.length > 0 || keyId !== undefined) {
63
- protectionDataUpdate = representation._addProtectionData("cenc", keyId, psshInfo);
62
+ protectionData.push({ initDataType: "cenc", keyId: keyId, initData: psshInfo });
64
63
  }
65
64
  }
66
65
  if (!segment.isInit) {
@@ -77,23 +76,23 @@ export default function generateAudioVideoSegmentParser(_a) {
77
76
  }
78
77
  return segment.privateInfos.isEMSGWhitelisted(evt);
79
78
  });
80
- var events = getEventsOutOfEMSGs(whitelistedEMSGs, manifest.publishTime);
79
+ var events = getEventsOutOfEMSGs(whitelistedEMSGs, context.manifestPublishTime);
81
80
  if (events !== undefined) {
82
81
  var needsManifestRefresh = events.needsManifestRefresh, inbandEvents = events.inbandEvents;
83
- return { segmentType: "media", chunkData: chunkData, chunkSize: chunkData.length, chunkInfos: chunkInfos, chunkOffset: chunkOffset, appendWindow: appendWindow, inbandEvents: inbandEvents, protectionDataUpdate: protectionDataUpdate, needsManifestRefresh: needsManifestRefresh };
82
+ return { segmentType: "media", chunkData: chunkData, chunkSize: chunkData.length, chunkInfos: chunkInfos, chunkOffset: chunkOffset, appendWindow: appendWindow, inbandEvents: inbandEvents, protectionData: protectionData, needsManifestRefresh: needsManifestRefresh };
84
83
  }
85
84
  }
86
85
  }
87
- return { segmentType: "media", chunkData: chunkData, chunkSize: chunkData.length, chunkInfos: chunkInfos, chunkOffset: chunkOffset, protectionDataUpdate: protectionDataUpdate, appendWindow: appendWindow };
86
+ return { segmentType: "media", chunkData: chunkData, chunkSize: chunkData.length, chunkInfos: chunkInfos, chunkOffset: chunkOffset, protectionData: protectionData, appendWindow: appendWindow };
88
87
  }
89
88
  // we're handling an initialization segment
90
89
  var indexRange = segment.indexRange;
91
- var nextSegments = null;
90
+ var segmentList;
92
91
  if (containerType === "webm") {
93
- nextSegments = getSegmentsFromCues(chunkData, 0);
92
+ segmentList = getSegmentsFromCues(chunkData, 0);
94
93
  }
95
94
  else if (seemsToBeMP4) {
96
- nextSegments = getSegmentsFromSidx(chunkData, Array.isArray(indexRange) ?
95
+ segmentList = getSegmentsFromSidx(chunkData, Array.isArray(indexRange) ?
97
96
  indexRange[0] :
98
97
  0);
99
98
  // This is a very specific handling for streams we know have a very
@@ -104,19 +103,14 @@ export default function generateAudioVideoSegmentParser(_a) {
104
103
  // TODO Cleaner way? I tried to always check the obtained segment after
105
104
  // a byte-range request but it leads to a lot of code.
106
105
  if (__priv_patchLastSegmentInSidx === true &&
107
- nextSegments !== null &&
108
- nextSegments.length > 0) {
109
- var lastSegment = nextSegments[nextSegments.length - 1];
106
+ segmentList !== null &&
107
+ segmentList.length > 0) {
108
+ var lastSegment = segmentList[segmentList.length - 1];
110
109
  if (Array.isArray(lastSegment.range)) {
111
110
  lastSegment.range[1] = Infinity;
112
111
  }
113
112
  }
114
113
  }
115
- if (representation.index instanceof BaseRepresentationIndex &&
116
- nextSegments !== null &&
117
- nextSegments.length > 0) {
118
- representation.index.initializeIndex(nextSegments);
119
- }
120
114
  var timescale = seemsToBeMP4 ? getMDHDTimescale(chunkData) :
121
115
  containerType === "webm" ? getTimeCodeScale(chunkData, 0) :
122
116
  undefined;
@@ -124,6 +118,7 @@ export default function generateAudioVideoSegmentParser(_a) {
124
118
  timescale;
125
119
  return { segmentType: "init",
126
120
  initializationData: chunkData,
127
- initializationDataSize: chunkData.length, protectionDataUpdate: protectionDataUpdate, initTimescale: parsedTimescale };
121
+ initializationDataSize: chunkData.length, protectionData: protectionData, initTimescale: parsedTimescale,
122
+ segmentList: segmentList !== null && segmentList !== void 0 ? segmentList : undefined };
128
123
  };
129
124
  }
@@ -32,14 +32,14 @@ export default function generateTextTrackLoader(_a) {
32
32
  addSegmentIntegrityChecks(textTrackLoader);
33
33
  /**
34
34
  * @param {Object|null} wantedCdn
35
- * @param {Object} content
35
+ * @param {Object} context
36
36
  * @param {Object} options
37
37
  * @param {Object} cancelSignal
38
38
  * @param {Object} callbacks
39
39
  * @returns {Promise}
40
40
  */
41
- function textTrackLoader(wantedCdn, content, options, cancelSignal, callbacks) {
42
- var adaptation = content.adaptation, representation = content.representation, segment = content.segment;
41
+ function textTrackLoader(wantedCdn, context, options, cancelSignal, callbacks) {
42
+ var segment = context.segment;
43
43
  var range = segment.range;
44
44
  var url = constructSegmentUrl(wantedCdn, segment);
45
45
  if (url === null) {
@@ -49,11 +49,11 @@ export default function generateTextTrackLoader(_a) {
49
49
  if (segment.isInit) {
50
50
  return initSegmentLoader(url, segment, options, cancelSignal, callbacks);
51
51
  }
52
- var containerType = inferSegmentContainer(adaptation.type, representation);
52
+ var containerType = inferSegmentContainer(context.type, context.mimeType);
53
53
  var seemsToBeMP4 = containerType === "mp4" || containerType === undefined;
54
54
  if (lowLatencyMode && seemsToBeMP4) {
55
55
  if (fetchIsSupported()) {
56
- return lowLatencySegmentLoader(url, content, options, callbacks, cancelSignal);
56
+ return lowLatencySegmentLoader(url, context, options, callbacks, cancelSignal);
57
57
  }
58
58
  else {
59
59
  warnOnce("DASH: Your browser does not have the fetch API. You will have " +
@@ -14,7 +14,6 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import { getMDHDTimescale, getSegmentsFromSidx, } from "../../parsers/containers/isobmff";
17
- import { BaseRepresentationIndex } from "../../parsers/manifest/dash";
18
17
  import { strToUtf8, utf8ToStr, } from "../../utils/string_parsing";
19
18
  import getISOBMFFTimingInfos from "../utils/get_isobmff_timing_infos";
20
19
  import inferSegmentContainer from "../utils/infer_segment_container";
@@ -25,7 +24,7 @@ import { getISOBMFFEmbeddedTextTrackData, getPlainTextTrackData, } from "../util
25
24
  * @param {ArrayBuffer|Uint8Array|string} data - The segment data.
26
25
  * @param {boolean} isChunked - If `true`, the `data` may contain only a
27
26
  * decodable subpart of the full data in the linked segment.
28
- * @param {Object} content - Object describing the context of the given
27
+ * @param {Object} context - Object describing the context of the given
29
28
  * segment's data: of which segment, `Representation`, `Adaptation`, `Period`,
30
29
  * `Manifest` it is a part of etc.
31
30
  * @param {number|undefined} initTimescale - `timescale` value - encountered
@@ -38,15 +37,15 @@ import { getISOBMFFEmbeddedTextTrackData, getPlainTextTrackData, } from "../util
38
37
  * For more information on that, look at the code using it.
39
38
  * @returns {Object}
40
39
  */
41
- function parseISOBMFFEmbeddedTextTrack(data, isChunked, content, initTimescale, __priv_patchLastSegmentInSidx) {
40
+ function parseISOBMFFEmbeddedTextTrack(data, isChunked, context, initTimescale, __priv_patchLastSegmentInSidx) {
42
41
  var _a;
43
- var period = content.period, representation = content.representation, segment = content.segment;
42
+ var segment = context.segment;
44
43
  var isInit = segment.isInit, indexRange = segment.indexRange;
45
44
  var chunkBytes = typeof data === "string" ? strToUtf8(data) :
46
45
  data instanceof Uint8Array ? data :
47
46
  new Uint8Array(data);
48
47
  if (isInit) {
49
- var sidxSegments = getSegmentsFromSidx(chunkBytes, Array.isArray(indexRange) ? indexRange[0] :
48
+ var segmentList = getSegmentsFromSidx(chunkBytes, Array.isArray(indexRange) ? indexRange[0] :
50
49
  0);
51
50
  // This is a very specific handling for streams we know have a very
52
51
  // specific problem at Canal+: The last reference gives a truncated
@@ -56,30 +55,26 @@ function parseISOBMFFEmbeddedTextTrack(data, isChunked, content, initTimescale,
56
55
  // TODO Cleaner way? I tried to always check the obtained segment after
57
56
  // a byte-range request but it leads to a lot of code.
58
57
  if (__priv_patchLastSegmentInSidx === true &&
59
- sidxSegments !== null &&
60
- sidxSegments.length > 0) {
61
- var lastSegment = sidxSegments[sidxSegments.length - 1];
58
+ segmentList !== null &&
59
+ segmentList.length > 0) {
60
+ var lastSegment = segmentList[segmentList.length - 1];
62
61
  if (Array.isArray(lastSegment.range)) {
63
62
  lastSegment.range[1] = Infinity;
64
63
  }
65
64
  }
66
65
  var mdhdTimescale = getMDHDTimescale(chunkBytes);
67
- if (representation.index instanceof BaseRepresentationIndex &&
68
- sidxSegments !== null &&
69
- sidxSegments.length > 0) {
70
- representation.index.initializeIndex(sidxSegments);
71
- }
72
66
  return { segmentType: "init",
73
67
  initializationData: null,
74
68
  initializationDataSize: 0,
75
- protectionDataUpdate: false,
76
- initTimescale: mdhdTimescale };
69
+ protectionData: [],
70
+ initTimescale: mdhdTimescale,
71
+ segmentList: segmentList !== null && segmentList !== void 0 ? segmentList : undefined };
77
72
  }
78
73
  var chunkInfos = getISOBMFFTimingInfos(chunkBytes, isChunked, segment, initTimescale);
79
- var chunkData = getISOBMFFEmbeddedTextTrackData(content, chunkBytes, chunkInfos, isChunked);
74
+ var chunkData = getISOBMFFEmbeddedTextTrackData(context, chunkBytes, chunkInfos, isChunked);
80
75
  var chunkOffset = (_a = segment.timestampOffset) !== null && _a !== void 0 ? _a : 0;
81
- return { segmentType: "media", chunkData: chunkData, chunkSize: chunkBytes.length, chunkInfos: chunkInfos, chunkOffset: chunkOffset, protectionDataUpdate: false,
82
- appendWindow: [period.start, period.end] };
76
+ return { segmentType: "media", chunkData: chunkData, chunkSize: chunkBytes.length, chunkInfos: chunkInfos, chunkOffset: chunkOffset, protectionData: [],
77
+ appendWindow: [context.periodStart, context.periodEnd] };
83
78
  }
84
79
  /**
85
80
  * Parse TextTrack data when it is in plain text form.
@@ -87,19 +82,19 @@ function parseISOBMFFEmbeddedTextTrack(data, isChunked, content, initTimescale,
87
82
  * @param {ArrayBuffer|Uint8Array|string} data - The segment data.
88
83
  * @param {boolean} isChunked - If `true`, the `data` may contain only a
89
84
  * decodable subpart of the full data in the linked segment.
90
- * @param {Object} content - Object describing the context of the given
85
+ * @param {Object} context - Object describing the context of the given
91
86
  * segment's data: of which segment, `Representation`, `Adaptation`, `Period`,
92
87
  * `Manifest` it is a part of etc.
93
88
  * @returns {Object}
94
89
  */
95
- function parsePlainTextTrack(data, isChunked, content) {
96
- var period = content.period, segment = content.segment;
90
+ function parsePlainTextTrack(data, isChunked, context) {
91
+ var periodStart = context.periodStart, periodEnd = context.periodEnd, segment = context.segment;
97
92
  var _a = segment.timestampOffset, timestampOffset = _a === void 0 ? 0 : _a;
98
93
  if (segment.isInit) {
99
94
  return { segmentType: "init",
100
95
  initializationData: null,
101
96
  initializationDataSize: 0,
102
- protectionDataUpdate: false,
97
+ protectionData: [],
103
98
  initTimescale: undefined };
104
99
  }
105
100
  var textTrackData;
@@ -113,11 +108,11 @@ function parsePlainTextTrack(data, isChunked, content) {
113
108
  else {
114
109
  textTrackData = data;
115
110
  }
116
- var chunkData = getPlainTextTrackData(content, textTrackData, isChunked);
111
+ var chunkData = getPlainTextTrackData(context, textTrackData, isChunked);
117
112
  return { segmentType: "media", chunkData: chunkData, chunkSize: chunkSize, chunkInfos: null,
118
113
  chunkOffset: timestampOffset,
119
- protectionDataUpdate: false,
120
- appendWindow: [period.start, period.end] };
114
+ protectionData: [],
115
+ appendWindow: [periodStart, periodEnd] };
121
116
  }
122
117
  /**
123
118
  * Generate a "segment parser" for DASH text tracks.
@@ -134,36 +129,36 @@ export default function generateTextTrackParser(_a) {
134
129
  * @param {number|undefined} initTimescale
135
130
  * @returns {Object}
136
131
  */
137
- return function textTrackParser(loadedSegment, content, initTimescale) {
132
+ return function textTrackParser(loadedSegment, context, initTimescale) {
138
133
  var _a;
139
- var period = content.period, adaptation = content.adaptation, representation = content.representation, segment = content.segment;
134
+ var periodStart = context.periodStart, periodEnd = context.periodEnd, segment = context.segment;
140
135
  var data = loadedSegment.data, isChunked = loadedSegment.isChunked;
141
136
  if (data === null) {
142
137
  // No data, just return an empty placeholder object
143
138
  return segment.isInit ? { segmentType: "init",
144
139
  initializationData: null,
145
140
  initializationDataSize: 0,
146
- protectionDataUpdate: false,
141
+ protectionData: [],
147
142
  initTimescale: undefined } :
148
143
  { segmentType: "media",
149
144
  chunkData: null,
150
145
  chunkSize: 0,
151
146
  chunkInfos: null,
152
147
  chunkOffset: (_a = segment.timestampOffset) !== null && _a !== void 0 ? _a : 0,
153
- protectionDataUpdate: false,
154
- appendWindow: [period.start, period.end] };
148
+ protectionData: [],
149
+ appendWindow: [periodStart, periodEnd] };
155
150
  }
156
- var containerType = inferSegmentContainer(adaptation.type, representation);
151
+ var containerType = inferSegmentContainer(context.type, context.mimeType);
157
152
  // TODO take a look to check if this is an ISOBMFF/webm when undefined?
158
153
  if (containerType === "webm") {
159
154
  // TODO Handle webm containers
160
155
  throw new Error("Text tracks with a WEBM container are not yet handled.");
161
156
  }
162
157
  else if (containerType === "mp4") {
163
- return parseISOBMFFEmbeddedTextTrack(data, isChunked, content, initTimescale, __priv_patchLastSegmentInSidx);
158
+ return parseISOBMFFEmbeddedTextTrack(data, isChunked, context, initTimescale, __priv_patchLastSegmentInSidx);
164
159
  }
165
160
  else {
166
- return parsePlainTextTrack(data, isChunked, content);
161
+ return parsePlainTextTrack(data, isChunked, context);
167
162
  }
168
163
  };
169
164
  }
@@ -57,17 +57,8 @@ export default function getLocalManifestPipelines(transportOptions) {
57
57
  parseSegment: segmentParser };
58
58
  var textTrackPipeline = { loadSegment: segmentLoader,
59
59
  parseSegment: textTrackParser };
60
- var imageTrackPipeline = {
61
- loadSegment: function () {
62
- throw new Error("Images track not supported in local transport.");
63
- },
64
- parseSegment: function () {
65
- throw new Error("Images track not supported in local transport.");
66
- },
67
- };
68
60
  return { manifest: manifestPipeline,
69
61
  audio: segmentPipeline,
70
62
  video: segmentPipeline,
71
- text: textTrackPipeline,
72
- image: imageTrackPipeline };
63
+ text: textTrackPipeline };
73
64
  }
@@ -92,7 +92,7 @@ function loadSegment(segment, customSegmentLoader, cancelSignal) {
92
92
  * @param {*} err - The corresponding error encountered
93
93
  */
94
94
  var reject = function (err) {
95
- var _a, _b, _c;
95
+ var _a, _b;
96
96
  if (hasFinished || cancelSignal.isCancelled()) {
97
97
  return;
98
98
  }
@@ -101,7 +101,7 @@ function loadSegment(segment, customSegmentLoader, cancelSignal) {
101
101
  var castedErr = err;
102
102
  var message = (_a = castedErr === null || castedErr === void 0 ? void 0 : castedErr.message) !== null && _a !== void 0 ? _a : "Unknown error when fetching a local segment through a " +
103
103
  "custom segmentLoader.";
104
- var emittedErr = new CustomLoaderError(message, (_b = castedErr === null || castedErr === void 0 ? void 0 : castedErr.canRetry) !== null && _b !== void 0 ? _b : false, (_c = castedErr === null || castedErr === void 0 ? void 0 : castedErr.isOfflineError) !== null && _c !== void 0 ? _c : false, castedErr === null || castedErr === void 0 ? void 0 : castedErr.xhr);
104
+ var emittedErr = new CustomLoaderError(message, (_b = castedErr === null || castedErr === void 0 ? void 0 : castedErr.canRetry) !== null && _b !== void 0 ? _b : false, castedErr === null || castedErr === void 0 ? void 0 : castedErr.xhr);
105
105
  rej(emittedErr);
106
106
  };
107
107
  var abort = customSegmentLoader(segment, { resolve: resolve, reject: reject });
@@ -17,4 +17,4 @@ import { ISegmentContext, ISegmentParserParsedInitChunk, ISegmentParserParsedMed
17
17
  export default function segmentParser(loadedSegment: {
18
18
  data: ArrayBuffer | Uint8Array | null;
19
19
  isChunked: boolean;
20
- }, content: ISegmentContext, initTimescale: number | undefined): ISegmentParserParsedInitChunk<ArrayBuffer | Uint8Array | null> | ISegmentParserParsedMediaChunk<ArrayBuffer | Uint8Array | null>;
20
+ }, context: ISegmentContext, initTimescale: number | undefined): ISegmentParserParsedInitChunk<ArrayBuffer | Uint8Array | null> | ISegmentParserParsedMediaChunk<ArrayBuffer | Uint8Array | null>;