rx-player 4.0.0-dev.2023111400 → 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 (407) hide show
  1. package/CHANGELOG.md +11 -227
  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 +12 -35
  21. package/dist/_esm5.processed/core/api/option_utils.js +41 -230
  22. package/dist/_esm5.processed/core/api/public_api.d.ts +91 -266
  23. package/dist/_esm5.processed/core/api/public_api.js +439 -805
  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/native/native_text_segment_buffer.d.ts +1 -2
  55. package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.js +2 -3
  56. package/dist/_esm5.processed/core/segment_buffers/implementations/types.d.ts +2 -2
  57. package/dist/_esm5.processed/core/segment_buffers/index.d.ts +2 -2
  58. package/dist/_esm5.processed/core/segment_buffers/index.js +2 -1
  59. package/dist/_esm5.processed/core/segment_buffers/inventory/index.d.ts +1 -0
  60. package/dist/_esm5.processed/core/segment_buffers/inventory/index.js +1 -0
  61. package/dist/_esm5.processed/core/segment_buffers/inventory/utils.d.ts +33 -0
  62. package/dist/_esm5.processed/core/segment_buffers/inventory/utils.js +49 -0
  63. package/dist/_esm5.processed/core/segment_buffers/segment_buffers_store.d.ts +0 -1
  64. package/dist/_esm5.processed/core/segment_buffers/segment_buffers_store.js +2 -16
  65. package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.d.ts +0 -15
  66. package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.js +183 -93
  67. package/dist/_esm5.processed/core/stream/adaptation/get_representations_switch_strategy.d.ts +39 -0
  68. package/dist/_esm5.processed/core/stream/adaptation/get_representations_switch_strategy.js +133 -0
  69. package/dist/_esm5.processed/core/stream/adaptation/types.d.ts +27 -13
  70. package/dist/_esm5.processed/core/stream/index.d.ts +2 -3
  71. package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.d.ts +2 -0
  72. package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.js +5 -7
  73. package/dist/_esm5.processed/core/stream/period/period_stream.js +13 -12
  74. package/dist/_esm5.processed/core/stream/period/types.d.ts +5 -14
  75. package/dist/_esm5.processed/core/stream/period/utils/get_adaptation_switch_strategy.d.ts +2 -4
  76. package/dist/_esm5.processed/core/stream/period/utils/get_adaptation_switch_strategy.js +10 -46
  77. package/dist/_esm5.processed/core/stream/representation/representation_stream.js +29 -23
  78. package/dist/_esm5.processed/core/stream/representation/types.d.ts +11 -1
  79. package/dist/_esm5.processed/default_config.d.ts +35 -98
  80. package/dist/_esm5.processed/default_config.js +36 -113
  81. package/dist/_esm5.processed/errors/custom_loader_error.d.ts +1 -3
  82. package/dist/_esm5.processed/errors/custom_loader_error.js +1 -3
  83. package/dist/_esm5.processed/errors/media_error.js +2 -2
  84. package/dist/_esm5.processed/errors/network_error.d.ts +0 -1
  85. package/dist/_esm5.processed/errors/network_error.js +0 -1
  86. package/dist/_esm5.processed/errors/request_error.d.ts +2 -3
  87. package/dist/_esm5.processed/errors/request_error.js +2 -5
  88. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +3 -3
  89. package/dist/_esm5.processed/features/features_object.js +0 -2
  90. package/dist/_esm5.processed/features/list/directfile.js +2 -5
  91. package/dist/_esm5.processed/features/list/index.d.ts +0 -2
  92. package/dist/_esm5.processed/features/list/index.js +0 -2
  93. package/dist/_esm5.processed/features/types.d.ts +3 -27
  94. package/dist/_esm5.processed/manifest/adaptation.d.ts +9 -11
  95. package/dist/_esm5.processed/manifest/adaptation.js +41 -30
  96. package/dist/_esm5.processed/manifest/index.d.ts +3 -4
  97. package/dist/_esm5.processed/manifest/manifest.d.ts +5 -54
  98. package/dist/_esm5.processed/manifest/manifest.js +5 -110
  99. package/dist/_esm5.processed/manifest/period.d.ts +4 -5
  100. package/dist/_esm5.processed/manifest/representation.d.ts +10 -5
  101. package/dist/_esm5.processed/manifest/representation.js +15 -5
  102. package/dist/_esm5.processed/manifest/representation_index/index.d.ts +2 -2
  103. package/dist/_esm5.processed/manifest/representation_index/static.d.ts +2 -0
  104. package/dist/_esm5.processed/manifest/representation_index/static.js +6 -0
  105. package/dist/_esm5.processed/manifest/representation_index/types.d.ts +42 -21
  106. package/dist/_esm5.processed/manifest/types.d.ts +0 -2
  107. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.d.ts +17 -31
  108. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.js +26 -19
  109. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/list.d.ts +2 -0
  110. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/list.js +7 -1
  111. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.d.ts +2 -6
  112. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.js +11 -8
  113. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.d.ts +2 -0
  114. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +6 -0
  115. package/dist/_esm5.processed/parsers/manifest/dash/common/infer_adaptation_type.d.ts +2 -2
  116. package/dist/_esm5.processed/parsers/manifest/dash/common/infer_adaptation_type.js +1 -6
  117. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_adaptation_sets.js +3 -5
  118. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.d.ts +0 -2
  119. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.js +1 -1
  120. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_periods.js +2 -2
  121. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.d.ts +0 -2
  122. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.js +2 -2
  123. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.js +10 -6
  124. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Representation.js +4 -2
  125. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/utils.d.ts +10 -1
  126. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/utils.js +18 -2
  127. package/dist/_esm5.processed/parsers/manifest/dash/node_parser_types.d.ts +4 -4
  128. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.js +3 -6
  129. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Representation.js +1 -2
  130. package/dist/_esm5.processed/parsers/manifest/local/representation_index.d.ts +2 -0
  131. package/dist/_esm5.processed/parsers/manifest/local/representation_index.js +6 -0
  132. package/dist/_esm5.processed/parsers/manifest/metaplaylist/metaplaylist_parser.js +6 -6
  133. package/dist/_esm5.processed/parsers/manifest/metaplaylist/representation_index.d.ts +12 -3
  134. package/dist/_esm5.processed/parsers/manifest/metaplaylist/representation_index.js +11 -2
  135. package/dist/_esm5.processed/parsers/manifest/smooth/create_parser.d.ts +0 -1
  136. package/dist/_esm5.processed/parsers/manifest/smooth/create_parser.js +11 -17
  137. package/dist/_esm5.processed/parsers/manifest/smooth/representation_index.d.ts +21 -83
  138. package/dist/_esm5.processed/parsers/manifest/smooth/representation_index.js +53 -125
  139. package/dist/_esm5.processed/parsers/manifest/smooth/shared_smooth_segment_timeline.d.ts +119 -0
  140. package/dist/_esm5.processed/parsers/manifest/smooth/shared_smooth_segment_timeline.js +159 -0
  141. package/dist/_esm5.processed/parsers/manifest/smooth/utils/add_segment_infos.d.ts +3 -6
  142. package/dist/_esm5.processed/parsers/manifest/smooth/utils/add_segment_infos.js +4 -4
  143. package/dist/_esm5.processed/parsers/manifest/types.d.ts +3 -3
  144. package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_extent.js +1 -8
  145. package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_origin.js +1 -9
  146. package/dist/_esm5.processed/public_types.d.ts +396 -308
  147. package/dist/_esm5.processed/tools/TextTrackRenderer/text_track_renderer.d.ts +5 -4
  148. package/dist/_esm5.processed/tools/TextTrackRenderer/text_track_renderer.js +5 -4
  149. package/dist/_esm5.processed/transports/dash/add_segment_integrity_checks_to_loader.js +4 -4
  150. package/dist/_esm5.processed/transports/dash/manifest_parser.js +2 -3
  151. package/dist/_esm5.processed/transports/dash/pipelines.js +1 -4
  152. package/dist/_esm5.processed/transports/dash/segment_loader.d.ts +2 -2
  153. package/dist/_esm5.processed/transports/dash/segment_loader.js +26 -20
  154. package/dist/_esm5.processed/transports/dash/segment_parser.js +19 -24
  155. package/dist/_esm5.processed/transports/dash/text_loader.js +5 -5
  156. package/dist/_esm5.processed/transports/dash/text_parser.js +28 -33
  157. package/dist/_esm5.processed/transports/local/pipelines.js +1 -10
  158. package/dist/_esm5.processed/transports/local/segment_loader.js +2 -2
  159. package/dist/_esm5.processed/transports/local/segment_parser.d.ts +1 -1
  160. package/dist/_esm5.processed/transports/local/segment_parser.js +10 -10
  161. package/dist/_esm5.processed/transports/local/text_parser.d.ts +2 -2
  162. package/dist/_esm5.processed/transports/local/text_parser.js +23 -23
  163. package/dist/_esm5.processed/transports/metaplaylist/pipelines.js +34 -52
  164. package/dist/_esm5.processed/{utils/list_to_map.d.ts → transports/smooth/is_mp4_embedded_track.d.ts} +5 -5
  165. package/dist/_esm5.processed/{features/list/image_buffer.d.ts → transports/smooth/is_mp4_embedded_track.js} +7 -6
  166. package/dist/_esm5.processed/transports/smooth/pipelines.js +33 -190
  167. package/dist/_esm5.processed/transports/smooth/segment_loader.d.ts +1 -1
  168. package/dist/_esm5.processed/transports/smooth/segment_loader.js +28 -22
  169. package/dist/_esm5.processed/transports/smooth/utils.d.ts +1 -26
  170. package/dist/_esm5.processed/transports/smooth/utils.js +1 -55
  171. package/dist/_esm5.processed/transports/types.d.ts +94 -89
  172. package/dist/_esm5.processed/transports/utils/call_custom_manifest_loader.js +3 -3
  173. package/dist/_esm5.processed/transports/utils/infer_segment_container.d.ts +3 -3
  174. package/dist/_esm5.processed/transports/utils/infer_segment_container.js +5 -7
  175. package/dist/_esm5.processed/transports/utils/parse_text_track.d.ts +8 -12
  176. package/dist/_esm5.processed/transports/utils/parse_text_track.js +19 -21
  177. package/dist/_esm5.processed/utils/array_includes.d.ts +2 -1
  178. package/dist/_esm5.processed/utils/array_includes.js +30 -28
  179. package/dist/_esm5.processed/utils/request/xhr.js +5 -5
  180. package/dist/commonjs/compat/is_codec_supported.js +22 -1
  181. package/dist/commonjs/config.d.ts +1 -0
  182. package/dist/commonjs/core/api/debug/buffer_graph.js +2 -6
  183. package/dist/commonjs/core/api/debug/modules/general_info.js +17 -10
  184. package/dist/commonjs/core/api/option_utils.d.ts +2 -0
  185. package/dist/commonjs/core/api/option_utils.js +2 -3
  186. package/dist/commonjs/core/api/public_api.d.ts +9 -0
  187. package/dist/commonjs/core/api/public_api.js +34 -9
  188. package/dist/commonjs/core/fetchers/manifest/manifest_fetcher.d.ts +6 -0
  189. package/dist/commonjs/core/fetchers/manifest/manifest_fetcher.js +11 -3
  190. package/dist/commonjs/core/fetchers/segment/segment_fetcher.d.ts +8 -1
  191. package/dist/commonjs/core/fetchers/segment/segment_fetcher.js +8 -4
  192. package/dist/commonjs/core/fetchers/segment/segment_fetcher_creator.d.ts +1 -0
  193. package/dist/commonjs/core/fetchers/utils/schedule_request.js +1 -1
  194. package/dist/commonjs/core/init/directfile_content_initializer.js +24 -7
  195. package/dist/commonjs/core/init/media_source_content_initializer.d.ts +6 -0
  196. package/dist/commonjs/core/init/media_source_content_initializer.js +4 -6
  197. package/dist/commonjs/core/init/utils/content_time_boundaries_observer.d.ts +13 -12
  198. package/dist/commonjs/core/init/utils/content_time_boundaries_observer.js +16 -17
  199. package/dist/commonjs/core/init/utils/get_initial_time.d.ts +17 -3
  200. package/dist/commonjs/core/init/utils/get_initial_time.js +9 -7
  201. package/dist/commonjs/core/stream/representation/utils/get_buffer_status.js +3 -3
  202. package/dist/commonjs/core/stream/representation/utils/get_needed_segments.js +1 -1
  203. package/dist/commonjs/default_config.d.ts +5 -0
  204. package/dist/commonjs/default_config.js +5 -0
  205. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +3 -1
  206. package/dist/commonjs/experimental/tools/createMetaplaylist/get_duration_from_manifest.js +2 -0
  207. package/dist/commonjs/manifest/representation_index/static.d.ts +1 -1
  208. package/dist/commonjs/manifest/representation_index/static.js +2 -2
  209. package/dist/commonjs/manifest/representation_index/types.d.ts +4 -4
  210. package/dist/commonjs/parsers/manifest/dash/common/indexes/base.d.ts +6 -1
  211. package/dist/commonjs/parsers/manifest/dash/common/indexes/base.js +4 -3
  212. package/dist/commonjs/parsers/manifest/dash/common/indexes/get_segments_from_timeline.d.ts +5 -2
  213. package/dist/commonjs/parsers/manifest/dash/common/indexes/get_segments_from_timeline.js +15 -4
  214. package/dist/commonjs/parsers/manifest/dash/common/indexes/index.d.ts +5 -5
  215. package/dist/commonjs/parsers/manifest/dash/common/indexes/list.d.ts +1 -1
  216. package/dist/commonjs/parsers/manifest/dash/common/indexes/list.js +2 -2
  217. package/dist/commonjs/parsers/manifest/dash/common/indexes/template.d.ts +12 -5
  218. package/dist/commonjs/parsers/manifest/dash/common/indexes/template.js +42 -29
  219. package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/index.d.ts +2 -1
  220. package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.d.ts +99 -6
  221. package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +250 -51
  222. package/dist/commonjs/parsers/manifest/dash/common/manifest_bounds_calculator.d.ts +40 -17
  223. package/dist/commonjs/parsers/manifest/dash/common/manifest_bounds_calculator.js +38 -18
  224. package/dist/commonjs/parsers/manifest/dash/common/parse_adaptation_sets.js +13 -10
  225. package/dist/commonjs/parsers/manifest/dash/common/parse_mpd.js +27 -14
  226. package/dist/commonjs/parsers/manifest/dash/common/parse_periods.d.ts +1 -1
  227. package/dist/commonjs/parsers/manifest/dash/common/parse_periods.js +17 -18
  228. package/dist/commonjs/parsers/manifest/dash/common/parse_representation_index.d.ts +19 -6
  229. package/dist/commonjs/parsers/manifest/dash/common/parse_representation_index.js +21 -8
  230. package/dist/commonjs/parsers/manifest/dash/common/parse_representations.js +7 -3
  231. package/dist/commonjs/parsers/manifest/local/representation_index.d.ts +1 -1
  232. package/dist/commonjs/parsers/manifest/local/representation_index.js +3 -3
  233. package/dist/commonjs/parsers/manifest/metaplaylist/representation_index.d.ts +1 -1
  234. package/dist/commonjs/parsers/manifest/metaplaylist/representation_index.js +2 -2
  235. package/dist/commonjs/parsers/manifest/smooth/representation_index.d.ts +5 -5
  236. package/dist/commonjs/parsers/manifest/smooth/representation_index.js +25 -9
  237. package/dist/commonjs/parsers/manifest/utils/index_helpers.js +1 -1
  238. package/dist/commonjs/public_types.d.ts +78 -34
  239. package/dist/commonjs/transports/dash/init_segment_loader.js +10 -5
  240. package/dist/commonjs/transports/dash/manifest_parser.js +5 -2
  241. package/dist/commonjs/transports/dash/segment_loader.js +2 -1
  242. package/dist/commonjs/transports/dash/text_loader.js +2 -0
  243. package/dist/commonjs/transports/metaplaylist/manifest_loader.js +2 -1
  244. package/dist/commonjs/transports/metaplaylist/pipelines.js +4 -1
  245. package/dist/commonjs/transports/smooth/pipelines.js +4 -2
  246. package/dist/commonjs/transports/smooth/segment_loader.js +2 -1
  247. package/dist/commonjs/transports/types.d.ts +12 -0
  248. package/dist/commonjs/transports/utils/generate_manifest_loader.js +6 -3
  249. package/dist/commonjs/utils/request/fetch.d.ts +6 -0
  250. package/dist/commonjs/utils/request/fetch.js +29 -8
  251. package/dist/commonjs/utils/request/xhr.d.ts +11 -5
  252. package/dist/commonjs/utils/request/xhr.js +29 -8
  253. package/dist/es2017/compat/is_codec_supported.js +22 -1
  254. package/dist/es2017/config.d.ts +1 -0
  255. package/dist/es2017/core/api/debug/buffer_graph.js +2 -6
  256. package/dist/es2017/core/api/debug/modules/general_info.js +17 -10
  257. package/dist/es2017/core/api/option_utils.d.ts +2 -0
  258. package/dist/es2017/core/api/option_utils.js +2 -3
  259. package/dist/es2017/core/api/public_api.d.ts +9 -0
  260. package/dist/es2017/core/api/public_api.js +33 -8
  261. package/dist/es2017/core/fetchers/manifest/manifest_fetcher.d.ts +6 -0
  262. package/dist/es2017/core/fetchers/manifest/manifest_fetcher.js +11 -3
  263. package/dist/es2017/core/fetchers/segment/segment_fetcher.d.ts +8 -1
  264. package/dist/es2017/core/fetchers/segment/segment_fetcher.js +8 -4
  265. package/dist/es2017/core/fetchers/segment/segment_fetcher_creator.d.ts +1 -0
  266. package/dist/es2017/core/fetchers/utils/schedule_request.js +1 -1
  267. package/dist/es2017/core/init/directfile_content_initializer.js +24 -7
  268. package/dist/es2017/core/init/media_source_content_initializer.d.ts +6 -0
  269. package/dist/es2017/core/init/media_source_content_initializer.js +4 -6
  270. package/dist/es2017/core/init/utils/content_time_boundaries_observer.d.ts +13 -12
  271. package/dist/es2017/core/init/utils/content_time_boundaries_observer.js +16 -15
  272. package/dist/es2017/core/init/utils/get_initial_time.d.ts +17 -3
  273. package/dist/es2017/core/init/utils/get_initial_time.js +9 -7
  274. package/dist/es2017/core/stream/representation/utils/get_buffer_status.js +3 -3
  275. package/dist/es2017/core/stream/representation/utils/get_needed_segments.js +1 -1
  276. package/dist/es2017/default_config.d.ts +5 -0
  277. package/dist/es2017/default_config.js +5 -0
  278. package/dist/es2017/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +3 -1
  279. package/dist/es2017/experimental/tools/createMetaplaylist/get_duration_from_manifest.js +2 -0
  280. package/dist/es2017/manifest/representation_index/static.d.ts +1 -1
  281. package/dist/es2017/manifest/representation_index/static.js +2 -2
  282. package/dist/es2017/manifest/representation_index/types.d.ts +4 -4
  283. package/dist/es2017/parsers/manifest/dash/common/indexes/base.d.ts +6 -1
  284. package/dist/es2017/parsers/manifest/dash/common/indexes/base.js +4 -3
  285. package/dist/es2017/parsers/manifest/dash/common/indexes/get_segments_from_timeline.d.ts +5 -2
  286. package/dist/es2017/parsers/manifest/dash/common/indexes/get_segments_from_timeline.js +15 -4
  287. package/dist/es2017/parsers/manifest/dash/common/indexes/index.d.ts +5 -5
  288. package/dist/es2017/parsers/manifest/dash/common/indexes/list.d.ts +1 -1
  289. package/dist/es2017/parsers/manifest/dash/common/indexes/list.js +2 -2
  290. package/dist/es2017/parsers/manifest/dash/common/indexes/template.d.ts +12 -5
  291. package/dist/es2017/parsers/manifest/dash/common/indexes/template.js +40 -27
  292. package/dist/es2017/parsers/manifest/dash/common/indexes/timeline/index.d.ts +2 -1
  293. package/dist/es2017/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.d.ts +99 -6
  294. package/dist/es2017/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +246 -51
  295. package/dist/es2017/parsers/manifest/dash/common/manifest_bounds_calculator.d.ts +40 -17
  296. package/dist/es2017/parsers/manifest/dash/common/manifest_bounds_calculator.js +38 -18
  297. package/dist/es2017/parsers/manifest/dash/common/parse_adaptation_sets.js +11 -8
  298. package/dist/es2017/parsers/manifest/dash/common/parse_mpd.js +27 -13
  299. package/dist/es2017/parsers/manifest/dash/common/parse_periods.d.ts +1 -1
  300. package/dist/es2017/parsers/manifest/dash/common/parse_periods.js +13 -16
  301. package/dist/es2017/parsers/manifest/dash/common/parse_representation_index.d.ts +19 -6
  302. package/dist/es2017/parsers/manifest/dash/common/parse_representation_index.js +10 -8
  303. package/dist/es2017/parsers/manifest/dash/common/parse_representations.js +7 -3
  304. package/dist/es2017/parsers/manifest/local/representation_index.d.ts +1 -1
  305. package/dist/es2017/parsers/manifest/local/representation_index.js +3 -3
  306. package/dist/es2017/parsers/manifest/metaplaylist/representation_index.d.ts +1 -1
  307. package/dist/es2017/parsers/manifest/metaplaylist/representation_index.js +2 -2
  308. package/dist/es2017/parsers/manifest/smooth/representation_index.d.ts +5 -5
  309. package/dist/es2017/parsers/manifest/smooth/representation_index.js +25 -9
  310. package/dist/es2017/parsers/manifest/utils/index_helpers.js +1 -1
  311. package/dist/es2017/public_types.d.ts +78 -34
  312. package/dist/es2017/transports/dash/init_segment_loader.js +5 -0
  313. package/dist/es2017/transports/dash/manifest_parser.js +3 -0
  314. package/dist/es2017/transports/dash/segment_loader.js +1 -0
  315. package/dist/es2017/transports/dash/text_loader.js +2 -0
  316. package/dist/es2017/transports/metaplaylist/manifest_loader.js +1 -0
  317. package/dist/es2017/transports/metaplaylist/pipelines.js +4 -1
  318. package/dist/es2017/transports/smooth/pipelines.js +2 -0
  319. package/dist/es2017/transports/smooth/segment_loader.js +1 -0
  320. package/dist/es2017/transports/types.d.ts +12 -0
  321. package/dist/es2017/transports/utils/generate_manifest_loader.js +3 -0
  322. package/dist/es2017/utils/request/fetch.d.ts +6 -0
  323. package/dist/es2017/utils/request/fetch.js +29 -8
  324. package/dist/es2017/utils/request/xhr.d.ts +11 -5
  325. package/dist/es2017/utils/request/xhr.js +30 -9
  326. package/dist/rx-player.js +723 -376
  327. package/dist/rx-player.min.js +1 -1
  328. package/package.json +3 -4
  329. package/scripts/update-version +2 -0
  330. package/sonar-project.properties +1 -1
  331. package/src/compat/is_codec_supported.ts +23 -1
  332. package/src/core/api/debug/buffer_graph.ts +2 -5
  333. package/src/core/api/debug/modules/general_info.ts +15 -10
  334. package/src/core/api/option_utils.ts +3 -3
  335. package/src/core/api/public_api.ts +35 -7
  336. package/src/core/fetchers/manifest/manifest_fetcher.ts +21 -3
  337. package/src/core/fetchers/segment/segment_fetcher.ts +19 -5
  338. package/src/core/fetchers/segment/segment_fetcher_creator.ts +1 -0
  339. package/src/core/fetchers/utils/schedule_request.ts +1 -1
  340. package/src/core/init/directfile_content_initializer.ts +23 -7
  341. package/src/core/init/media_source_content_initializer.ts +13 -7
  342. package/src/core/init/utils/content_time_boundaries_observer.ts +23 -22
  343. package/src/core/init/utils/get_initial_time.ts +25 -12
  344. package/src/core/stream/representation/utils/get_buffer_status.ts +3 -3
  345. package/src/core/stream/representation/utils/get_needed_segments.ts +2 -2
  346. package/src/default_config.ts +5 -0
  347. package/src/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.ts +3 -1
  348. package/src/experimental/tools/createMetaplaylist/get_duration_from_manifest.ts +2 -0
  349. package/src/manifest/representation_index/static.ts +2 -2
  350. package/src/manifest/representation_index/types.ts +4 -4
  351. package/src/parsers/manifest/dash/common/__tests__/manifest_bounds_calculator.test.ts +182 -36
  352. package/src/parsers/manifest/dash/common/indexes/base.ts +12 -4
  353. package/src/parsers/manifest/dash/common/indexes/get_segments_from_timeline.ts +19 -5
  354. package/src/parsers/manifest/dash/common/indexes/index.ts +16 -4
  355. package/src/parsers/manifest/dash/common/indexes/list.ts +2 -2
  356. package/src/parsers/manifest/dash/common/indexes/template.ts +52 -31
  357. package/src/parsers/manifest/dash/common/indexes/timeline/index.ts +4 -1
  358. package/src/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.ts +366 -60
  359. package/src/parsers/manifest/dash/common/manifest_bounds_calculator.ts +63 -25
  360. package/src/parsers/manifest/dash/common/parse_adaptation_sets.ts +10 -4
  361. package/src/parsers/manifest/dash/common/parse_mpd.ts +28 -15
  362. package/src/parsers/manifest/dash/common/parse_periods.ts +12 -17
  363. package/src/parsers/manifest/dash/common/parse_representation_index.ts +50 -26
  364. package/src/parsers/manifest/dash/common/parse_representations.ts +9 -3
  365. package/src/parsers/manifest/local/representation_index.ts +3 -3
  366. package/src/parsers/manifest/metaplaylist/representation_index.ts +2 -2
  367. package/src/parsers/manifest/smooth/representation_index.ts +23 -9
  368. package/src/parsers/manifest/utils/__tests__/get_first_time_from_adaptations.test.ts +1 -1
  369. package/src/parsers/manifest/utils/__tests__/get_last_time_from_adaptation.test.ts +1 -1
  370. package/src/parsers/manifest/utils/index_helpers.ts +1 -1
  371. package/src/public_types.ts +79 -34
  372. package/src/transports/dash/init_segment_loader.ts +5 -0
  373. package/src/transports/dash/manifest_parser.ts +6 -0
  374. package/src/transports/dash/segment_loader.ts +1 -0
  375. package/src/transports/dash/text_loader.ts +2 -0
  376. package/src/transports/metaplaylist/manifest_loader.ts +1 -0
  377. package/src/transports/metaplaylist/pipelines.ts +4 -1
  378. package/src/transports/smooth/pipelines.ts +2 -0
  379. package/src/transports/smooth/segment_loader.ts +1 -0
  380. package/src/transports/types.ts +12 -0
  381. package/src/transports/utils/generate_manifest_loader.ts +3 -0
  382. package/src/utils/request/fetch.ts +35 -8
  383. package/src/utils/request/xhr.ts +45 -14
  384. package/dist/_esm5.processed/compat/fullscreen.d.ts +0 -32
  385. package/dist/_esm5.processed/compat/fullscreen.js +0 -78
  386. package/dist/_esm5.processed/compat/is_offline.d.ts +0 -39
  387. package/dist/_esm5.processed/compat/is_offline.js +0 -43
  388. package/dist/_esm5.processed/core/api/tracks_management/track_choice_manager.d.ts +0 -258
  389. package/dist/_esm5.processed/core/api/tracks_management/track_choice_manager.js +0 -989
  390. package/dist/_esm5.processed/core/segment_buffers/implementations/image/image_segment_buffer.d.ts +0 -75
  391. package/dist/_esm5.processed/core/segment_buffers/implementations/image/image_segment_buffer.js +0 -133
  392. package/dist/_esm5.processed/features/list/bif_parser.d.ts +0 -23
  393. package/dist/_esm5.processed/features/list/bif_parser.js +0 -27
  394. package/dist/_esm5.processed/features/list/image_buffer.js +0 -25
  395. package/dist/_esm5.processed/transports/dash/image_pipelines.d.ts +0 -38
  396. package/dist/_esm5.processed/transports/dash/image_pipelines.js +0 -129
  397. package/dist/_esm5.processed/utils/list_to_map.js +0 -28
  398. package/dist/_esm5.processed/utils/simple_set.d.ts +0 -51
  399. package/dist/_esm5.processed/utils/simple_set.js +0 -57
  400. package/dist/_esm5.processed/utils/uniq.d.ts +0 -36
  401. package/dist/_esm5.processed/utils/uniq.js +0 -43
  402. package/dist/commonjs/parsers/manifest/utils/is_segment_still_available.d.ts +0 -29
  403. package/dist/commonjs/parsers/manifest/utils/is_segment_still_available.js +0 -54
  404. package/dist/es2017/parsers/manifest/utils/is_segment_still_available.d.ts +0 -29
  405. package/dist/es2017/parsers/manifest/utils/is_segment_still_available.js +0 -51
  406. package/src/parsers/manifest/utils/is_segment_still_available.ts +0 -58
  407. package/src/typings/object-assign.d.ts +0 -48
@@ -18,17 +18,17 @@ import { getKeyIdFromInitSegment } from "../../parsers/containers/isobmff/utils"
18
18
  import { getTimeCodeScale } from "../../parsers/containers/matroska";
19
19
  import getISOBMFFTimingInfos from "../utils/get_isobmff_timing_infos";
20
20
  import inferSegmentContainer from "../utils/infer_segment_container";
21
- export default function segmentParser(loadedSegment, content, initTimescale) {
21
+ export default function segmentParser(loadedSegment, context, initTimescale) {
22
22
  var _a, _b;
23
- var period = content.period, adaptation = content.adaptation, representation = content.representation, segment = content.segment;
23
+ var segment = context.segment, periodStart = context.periodStart, periodEnd = context.periodEnd;
24
24
  var data = loadedSegment.data;
25
- var appendWindow = [period.start, period.end];
25
+ var appendWindow = [periodStart, periodEnd];
26
26
  if (data === null) {
27
27
  if (segment.isInit) {
28
28
  return { segmentType: "init",
29
29
  initializationData: null,
30
30
  initializationDataSize: 0,
31
- protectionDataUpdate: false,
31
+ protectionData: [],
32
32
  initTimescale: undefined };
33
33
  }
34
34
  return { segmentType: "media",
@@ -36,13 +36,13 @@ export default function segmentParser(loadedSegment, content, initTimescale) {
36
36
  chunkSize: 0,
37
37
  chunkInfos: null,
38
38
  chunkOffset: 0,
39
- protectionDataUpdate: false, appendWindow: appendWindow };
39
+ protectionData: [], appendWindow: appendWindow };
40
40
  }
41
41
  var chunkData = new Uint8Array(data);
42
- var containerType = inferSegmentContainer(adaptation.type, representation);
42
+ var containerType = inferSegmentContainer(context.type, context.mimeType);
43
43
  // TODO take a look to check if this is an ISOBMFF/webm?
44
44
  var seemsToBeMP4 = containerType === "mp4" || containerType === undefined;
45
- var protectionDataUpdate = false;
45
+ var protectionData = [];
46
46
  if (seemsToBeMP4) {
47
47
  var psshInfo = takePSSHOut(chunkData);
48
48
  var keyId = void 0;
@@ -50,7 +50,7 @@ export default function segmentParser(loadedSegment, content, initTimescale) {
50
50
  keyId = (_a = getKeyIdFromInitSegment(chunkData)) !== null && _a !== void 0 ? _a : undefined;
51
51
  }
52
52
  if (psshInfo.length > 0 || keyId !== undefined) {
53
- protectionDataUpdate = representation._addProtectionData("cenc", keyId, psshInfo);
53
+ protectionData.push({ initDataType: "cenc", keyId: keyId, initData: psshInfo });
54
54
  }
55
55
  }
56
56
  if (segment.isInit) {
@@ -60,10 +60,10 @@ export default function segmentParser(loadedSegment, content, initTimescale) {
60
60
  return { segmentType: "init",
61
61
  initializationData: chunkData,
62
62
  initializationDataSize: 0,
63
- initTimescale: timescale !== null && timescale !== void 0 ? timescale : undefined, protectionDataUpdate: protectionDataUpdate };
63
+ initTimescale: timescale !== null && timescale !== void 0 ? timescale : undefined, protectionData: protectionData };
64
64
  }
65
65
  var chunkInfos = seemsToBeMP4 ? getISOBMFFTimingInfos(chunkData, false, segment, initTimescale) :
66
66
  null; // TODO extract time info from webm
67
67
  var chunkOffset = (_b = segment.timestampOffset) !== null && _b !== void 0 ? _b : 0;
68
- return { segmentType: "media", chunkData: chunkData, chunkSize: chunkData.length, chunkInfos: chunkInfos, chunkOffset: chunkOffset, protectionDataUpdate: false, appendWindow: appendWindow };
68
+ return { segmentType: "media", chunkData: chunkData, chunkSize: chunkData.length, chunkInfos: chunkInfos, chunkOffset: chunkOffset, protectionData: protectionData, appendWindow: appendWindow };
69
69
  }
@@ -17,11 +17,11 @@ import { ILoadedTextSegmentFormat, ISegmentContext, ISegmentParserParsedInitChun
17
17
  /**
18
18
  * Parse TextTrack data.
19
19
  * @param {Object} loadedSegment
20
- * @param {Object} content
20
+ * @param {Object} context
21
21
  * @param {number | undefined} initTimescale
22
22
  * @returns {Object}
23
23
  */
24
24
  export default function textTrackParser(loadedSegment: {
25
25
  data: ILoadedTextSegmentFormat;
26
26
  isChunked: boolean;
27
- }, content: ISegmentContext, initTimescale: number | undefined): ISegmentParserParsedInitChunk<null> | ISegmentParserParsedMediaChunk<ITextTrackSegmentData | null>;
27
+ }, context: ISegmentContext, initTimescale: number | undefined): ISegmentParserParsedInitChunk<null> | ISegmentParserParsedMediaChunk<ITextTrackSegmentData | null>;
@@ -23,7 +23,7 @@ import { getISOBMFFEmbeddedTextTrackData, getPlainTextTrackData, } from "../util
23
23
  * @param {ArrayBuffer|Uint8Array|string} data - The segment data.
24
24
  * @param {boolean} isChunked - If `true`, the `data` may contain only a
25
25
  * decodable subpart of the full data in the linked segment.
26
- * @param {Object} content - Object describing the context of the given
26
+ * @param {Object} context - Object describing the context of the given
27
27
  * segment's data: of which segment, `Representation`, `Adaptation`, `Period`,
28
28
  * `Manifest` it is a part of etc.
29
29
  * @param {number|undefined} initTimescale - `timescale` value - encountered
@@ -33,9 +33,9 @@ import { getISOBMFFEmbeddedTextTrackData, getPlainTextTrackData, } from "../util
33
33
  * no linked initialization segment was yet parsed.
34
34
  * @returns {Object}
35
35
  */
36
- function parseISOBMFFEmbeddedTextTrack(data, isChunked, content, initTimescale) {
36
+ function parseISOBMFFEmbeddedTextTrack(data, isChunked, context, initTimescale) {
37
37
  var _a;
38
- var period = content.period, segment = content.segment;
38
+ var periodStart = context.periodStart, periodEnd = context.periodEnd, segment = context.segment;
39
39
  var chunkBytes = typeof data === "string" ? strToUtf8(data) :
40
40
  data instanceof Uint8Array ? data :
41
41
  new Uint8Array(data);
@@ -45,33 +45,33 @@ function parseISOBMFFEmbeddedTextTrack(data, isChunked, content, initTimescale)
45
45
  initializationData: null,
46
46
  initializationDataSize: 0,
47
47
  initTimescale: mdhdTimescale,
48
- protectionDataUpdate: false };
48
+ protectionData: [] };
49
49
  }
50
50
  var chunkInfos = getISOBMFFTimingInfos(chunkBytes, isChunked, segment, initTimescale);
51
- var chunkData = getISOBMFFEmbeddedTextTrackData(content, chunkBytes, chunkInfos, isChunked);
51
+ var chunkData = getISOBMFFEmbeddedTextTrackData(context, chunkBytes, chunkInfos, isChunked);
52
52
  var chunkOffset = (_a = segment.timestampOffset) !== null && _a !== void 0 ? _a : 0;
53
- return { segmentType: "media", chunkData: chunkData, chunkSize: chunkBytes.length, chunkInfos: chunkInfos, chunkOffset: chunkOffset, protectionDataUpdate: false,
54
- appendWindow: [period.start, period.end] };
53
+ return { segmentType: "media", chunkData: chunkData, chunkSize: chunkBytes.length, chunkInfos: chunkInfos, chunkOffset: chunkOffset, protectionData: [],
54
+ appendWindow: [periodStart, periodEnd] };
55
55
  }
56
56
  /**
57
57
  * Parse TextTrack data when it is in plain text form.
58
58
  * @param {ArrayBuffer|Uint8Array|string} data - The segment data.
59
59
  * @param {boolean} isChunked - If `true`, the `data` may contain only a
60
60
  * decodable subpart of the full data in the linked segment.
61
- * @param {Object} content - Object describing the context of the given
61
+ * @param {Object} context - Object describing the context of the given
62
62
  * segment's data: of which segment, `Representation`, `Adaptation`, `Period`,
63
63
  * `Manifest` it is a part of etc.
64
64
  * @returns {Object}
65
65
  */
66
- function parsePlainTextTrack(data, isChunked, content) {
66
+ function parsePlainTextTrack(data, isChunked, context) {
67
67
  var _a;
68
- var period = content.period, segment = content.segment;
68
+ var segment = context.segment, periodStart = context.periodStart, periodEnd = context.periodEnd;
69
69
  if (segment.isInit) {
70
70
  return { segmentType: "init",
71
71
  initializationData: null,
72
72
  initializationDataSize: 0,
73
73
  initTimescale: undefined,
74
- protectionDataUpdate: false };
74
+ protectionData: [] };
75
75
  }
76
76
  var textTrackData;
77
77
  var chunkSize;
@@ -84,21 +84,21 @@ function parsePlainTextTrack(data, isChunked, content) {
84
84
  else {
85
85
  textTrackData = data;
86
86
  }
87
- var chunkData = getPlainTextTrackData(content, textTrackData, isChunked);
87
+ var chunkData = getPlainTextTrackData(context, textTrackData, isChunked);
88
88
  var chunkOffset = (_a = segment.timestampOffset) !== null && _a !== void 0 ? _a : 0;
89
- return { segmentType: "media", chunkData: chunkData, chunkSize: chunkSize, chunkInfos: null, chunkOffset: chunkOffset, protectionDataUpdate: false,
90
- appendWindow: [period.start, period.end] };
89
+ return { segmentType: "media", chunkData: chunkData, chunkSize: chunkSize, chunkInfos: null, chunkOffset: chunkOffset, protectionData: [],
90
+ appendWindow: [periodStart, periodEnd] };
91
91
  }
92
92
  /**
93
93
  * Parse TextTrack data.
94
94
  * @param {Object} loadedSegment
95
- * @param {Object} content
95
+ * @param {Object} context
96
96
  * @param {number | undefined} initTimescale
97
97
  * @returns {Object}
98
98
  */
99
- export default function textTrackParser(loadedSegment, content, initTimescale) {
99
+ export default function textTrackParser(loadedSegment, context, initTimescale) {
100
100
  var _a;
101
- var period = content.period, adaptation = content.adaptation, representation = content.representation, segment = content.segment;
101
+ var segment = context.segment, periodStart = context.periodStart, periodEnd = context.periodEnd;
102
102
  var data = loadedSegment.data, isChunked = loadedSegment.isChunked;
103
103
  if (data === null) {
104
104
  // No data, just return an empty placeholder object
@@ -106,26 +106,26 @@ export default function textTrackParser(loadedSegment, content, initTimescale) {
106
106
  return { segmentType: "init",
107
107
  initializationData: null,
108
108
  initializationDataSize: 0,
109
- protectionDataUpdate: false,
109
+ protectionData: [],
110
110
  initTimescale: undefined };
111
111
  }
112
112
  var chunkOffset = (_a = segment.timestampOffset) !== null && _a !== void 0 ? _a : 0;
113
113
  return { segmentType: "media",
114
114
  chunkData: null,
115
115
  chunkSize: 0,
116
- chunkInfos: null, chunkOffset: chunkOffset, protectionDataUpdate: false,
117
- appendWindow: [period.start, period.end] };
116
+ chunkInfos: null, chunkOffset: chunkOffset, protectionData: [],
117
+ appendWindow: [periodStart, periodEnd] };
118
118
  }
119
- var containerType = inferSegmentContainer(adaptation.type, representation);
119
+ var containerType = inferSegmentContainer(context.type, context.mimeType);
120
120
  // TODO take a look to check if this is an ISOBMFF/webm when undefined?
121
121
  if (containerType === "webm") {
122
122
  // TODO Handle webm containers
123
123
  throw new Error("Text tracks with a WEBM container are not yet handled.");
124
124
  }
125
125
  else if (containerType === "mp4") {
126
- return parseISOBMFFEmbeddedTextTrack(data, isChunked, content, initTimescale);
126
+ return parseISOBMFFEmbeddedTextTrack(data, isChunked, context, initTimescale);
127
127
  }
128
128
  else {
129
- return parsePlainTextTrack(data, isChunked, content);
129
+ return parsePlainTextTrack(data, isChunked, context);
130
130
  }
131
131
  }
@@ -36,14 +36,19 @@ import generateManifestLoader from "./manifest_loader";
36
36
  * @param {Object} segment
37
37
  * @returns {Object}
38
38
  */
39
- function getOriginalContent(segment) {
39
+ function getOriginalContext(mplContext) {
40
40
  var _a;
41
+ var segment = mplContext.segment;
41
42
  if (((_a = segment.privateInfos) === null || _a === void 0 ? void 0 : _a.metaplaylistInfos) === undefined) {
42
43
  throw new Error("MetaPlaylist: missing private infos");
43
44
  }
44
- var _b = segment.privateInfos.metaplaylistInfos.baseContent, manifest = _b.manifest, period = _b.period, adaptation = _b.adaptation, representation = _b.representation;
45
+ var _b = segment.privateInfos.metaplaylistInfos, isLive = _b.isLive, periodStart = _b.periodStart, periodEnd = _b.periodEnd, manifestPublishTime = _b.manifestPublishTime;
45
46
  var originalSegment = segment.privateInfos.metaplaylistInfos.originalSegment;
46
- return { manifest: manifest, period: period, adaptation: adaptation, representation: representation, segment: originalSegment };
47
+ return { segment: originalSegment,
48
+ type: mplContext.type,
49
+ language: mplContext.language,
50
+ mimeType: mplContext.mimeType,
51
+ codecs: mplContext.codecs, isLive: isLive, periodStart: periodStart, periodEnd: periodEnd, manifestPublishTime: manifestPublishTime };
47
52
  }
48
53
  /**
49
54
  * @param {Object} transports
@@ -82,9 +87,7 @@ export default function (options) {
82
87
  });
83
88
  // remove some options that we might not want to apply to the
84
89
  // other streaming protocols used here
85
- var otherTransportOptions = objectAssign({}, options, { manifestLoader: undefined,
86
- supplementaryTextTracks: [],
87
- supplementaryImageTracks: [] });
90
+ var otherTransportOptions = objectAssign({}, options, { manifestLoader: undefined });
88
91
  var manifestPipeline = {
89
92
  loadManifest: manifestLoader,
90
93
  parseManifest: function (manifestData, parserOptions, onWarnings, cancelSignal, scheduleRequest) {
@@ -167,18 +170,18 @@ export default function (options) {
167
170
  appendWindow: [offsetedWindowStart, offsetedWindowEnd] };
168
171
  }
169
172
  var audioPipeline = {
170
- loadSegment: function (wantedCdn, content, loaderOptions, cancelToken, callbacks) {
171
- var segment = content.segment;
173
+ loadSegment: function (wantedCdn, context, loaderOptions, cancelToken, callbacks) {
174
+ var segment = context.segment;
172
175
  var audio = getTransportPipelinesFromSegment(segment).audio;
173
- var ogContent = getOriginalContent(segment);
174
- return audio.loadSegment(wantedCdn, ogContent, loaderOptions, cancelToken, callbacks);
176
+ var ogContext = getOriginalContext(context);
177
+ return audio.loadSegment(wantedCdn, ogContext, loaderOptions, cancelToken, callbacks);
175
178
  },
176
- parseSegment: function (loadedSegment, content, initTimescale) {
177
- var segment = content.segment;
179
+ parseSegment: function (loadedSegment, context, initTimescale) {
180
+ var segment = context.segment;
178
181
  var _a = getMetaPlaylistPrivateInfos(segment), contentStart = _a.contentStart, contentEnd = _a.contentEnd;
179
182
  var audio = getTransportPipelinesFromSegment(segment).audio;
180
- var ogContent = getOriginalContent(segment);
181
- var parsed = audio.parseSegment(loadedSegment, ogContent, initTimescale);
183
+ var ogContext = getOriginalContext(context);
184
+ var parsed = audio.parseSegment(loadedSegment, ogContext, initTimescale);
182
185
  if (parsed.segmentType === "init") {
183
186
  return parsed;
184
187
  }
@@ -187,18 +190,18 @@ export default function (options) {
187
190
  },
188
191
  };
189
192
  var videoPipeline = {
190
- loadSegment: function (wantedCdn, content, loaderOptions, cancelToken, callbacks) {
191
- var segment = content.segment;
193
+ loadSegment: function (wantedCdn, context, loaderOptions, cancelToken, callbacks) {
194
+ var segment = context.segment;
192
195
  var video = getTransportPipelinesFromSegment(segment).video;
193
- var ogContent = getOriginalContent(segment);
194
- return video.loadSegment(wantedCdn, ogContent, loaderOptions, cancelToken, callbacks);
196
+ var ogContext = getOriginalContext(context);
197
+ return video.loadSegment(wantedCdn, ogContext, loaderOptions, cancelToken, callbacks);
195
198
  },
196
- parseSegment: function (loadedSegment, content, initTimescale) {
197
- var segment = content.segment;
199
+ parseSegment: function (loadedSegment, context, initTimescale) {
200
+ var segment = context.segment;
198
201
  var _a = getMetaPlaylistPrivateInfos(segment), contentStart = _a.contentStart, contentEnd = _a.contentEnd;
199
202
  var video = getTransportPipelinesFromSegment(segment).video;
200
- var ogContent = getOriginalContent(segment);
201
- var parsed = video.parseSegment(loadedSegment, ogContent, initTimescale);
203
+ var ogContext = getOriginalContext(context);
204
+ var parsed = video.parseSegment(loadedSegment, ogContext, initTimescale);
202
205
  if (parsed.segmentType === "init") {
203
206
  return parsed;
204
207
  }
@@ -207,38 +210,18 @@ export default function (options) {
207
210
  },
208
211
  };
209
212
  var textTrackPipeline = {
210
- loadSegment: function (wantedCdn, content, loaderOptions, cancelToken, callbacks) {
211
- var segment = content.segment;
213
+ loadSegment: function (wantedCdn, context, loaderOptions, cancelToken, callbacks) {
214
+ var segment = context.segment;
212
215
  var text = getTransportPipelinesFromSegment(segment).text;
213
- var ogContent = getOriginalContent(segment);
214
- return text.loadSegment(wantedCdn, ogContent, loaderOptions, cancelToken, callbacks);
216
+ var ogContext = getOriginalContext(context);
217
+ return text.loadSegment(wantedCdn, ogContext, loaderOptions, cancelToken, callbacks);
215
218
  },
216
- parseSegment: function (loadedSegment, content, initTimescale) {
217
- var segment = content.segment;
219
+ parseSegment: function (loadedSegment, context, initTimescale) {
220
+ var segment = context.segment;
218
221
  var _a = getMetaPlaylistPrivateInfos(segment), contentStart = _a.contentStart, contentEnd = _a.contentEnd;
219
222
  var text = getTransportPipelinesFromSegment(segment).text;
220
- var ogContent = getOriginalContent(segment);
221
- var parsed = text.parseSegment(loadedSegment, ogContent, initTimescale);
222
- if (parsed.segmentType === "init") {
223
- return parsed;
224
- }
225
- var timeInfos = offsetTimeInfos(contentStart, contentEnd, parsed);
226
- return objectAssign({}, parsed, timeInfos);
227
- },
228
- };
229
- var imageTrackPipeline = {
230
- loadSegment: function (wantedCdn, content, loaderOptions, cancelToken, callbacks) {
231
- var segment = content.segment;
232
- var image = getTransportPipelinesFromSegment(segment).image;
233
- var ogContent = getOriginalContent(segment);
234
- return image.loadSegment(wantedCdn, ogContent, loaderOptions, cancelToken, callbacks);
235
- },
236
- parseSegment: function (loadedSegment, content, initTimescale) {
237
- var segment = content.segment;
238
- var _a = getMetaPlaylistPrivateInfos(segment), contentStart = _a.contentStart, contentEnd = _a.contentEnd;
239
- var image = getTransportPipelinesFromSegment(segment).image;
240
- var ogContent = getOriginalContent(segment);
241
- var parsed = image.parseSegment(loadedSegment, ogContent, initTimescale);
223
+ var ogContext = getOriginalContext(context);
224
+ var parsed = text.parseSegment(loadedSegment, ogContext, initTimescale);
242
225
  if (parsed.segmentType === "init") {
243
226
  return parsed;
244
227
  }
@@ -249,6 +232,5 @@ export default function (options) {
249
232
  return { manifest: manifestPipeline,
250
233
  audio: audioPipeline,
251
234
  video: videoPipeline,
252
- text: textTrackPipeline,
253
- image: imageTrackPipeline };
235
+ text: textTrackPipeline };
254
236
  }
@@ -14,9 +14,9 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  /**
17
- * Transform an array of strings into an Object with the key and value
18
- * mirrored.
19
- * @param {Array.<string>} list
20
- * @returns {Object}
17
+ * Returns `true` if the given Representation refers to segments in an MP4
18
+ * container
19
+ * @param {Representation} representation
20
+ * @returns {Boolean}
21
21
  */
22
- export default function listToMap(list: string[]): Partial<Record<string, string>>;
22
+ export default function isMP4EmbeddedTrack(mimeType: string | undefined): boolean;
@@ -13,11 +13,12 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { IFeaturesObject } from "../types";
17
16
  /**
18
- * Add ability to display image tracks.
19
- * @param {Object} features
17
+ * Returns `true` if the given Representation refers to segments in an MP4
18
+ * container
19
+ * @param {Representation} representation
20
+ * @returns {Boolean}
20
21
  */
21
- declare function addImageBufferFeature(features: IFeaturesObject): void;
22
- export { addImageBufferFeature as IMAGE_BUFFER };
23
- export default addImageBufferFeature;
22
+ export default function isMP4EmbeddedTrack(mimeType) {
23
+ return typeof mimeType === "string" && mimeType.indexOf("mp4") >= 0;
24
+ }