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
@@ -17,13 +17,9 @@ import log from "../log";
17
17
  import arrayFind from "../utils/array_find";
18
18
  import isNullOrUndefined from "../utils/is_null_or_undefined";
19
19
  import normalizeLanguage from "../utils/languages";
20
- import uniq from "../utils/uniq";
21
20
  import Representation from "./representation";
22
21
  /** List in an array every possible value for the Adaptation's `type` property. */
23
- export var SUPPORTED_ADAPTATIONS_TYPE = ["audio",
24
- "video",
25
- "text",
26
- "image"];
22
+ export var SUPPORTED_ADAPTATIONS_TYPE = ["audio", "video", "text"];
27
23
  /**
28
24
  * Normalized Adaptation structure.
29
25
  * An `Adaptation` describes a single `Track`. For example a specific audio
@@ -78,14 +74,36 @@ var Adaptation = /** @class */ (function () {
78
74
  var isSupported = false;
79
75
  for (var i = 0; i < argsRepresentations.length; i++) {
80
76
  var representation = new Representation(argsRepresentations[i], { type: this.type });
81
- var shouldAdd = isNullOrUndefined(representationFilter) ||
82
- representationFilter(representation, { bufferType: this.type,
77
+ var shouldAdd = true;
78
+ if (!isNullOrUndefined(representationFilter)) {
79
+ var reprObject = {
80
+ id: representation.id,
81
+ bitrate: representation.bitrate,
82
+ codec: representation.codec,
83
+ height: representation.height,
84
+ width: representation.width,
85
+ frameRate: representation.frameRate,
86
+ hdrInfo: representation.hdrInfo,
87
+ };
88
+ if (representation.contentProtections !== undefined) {
89
+ reprObject.contentProtections = {};
90
+ if (representation.contentProtections.keyIds !== undefined) {
91
+ var keyIds = representation.contentProtections.keyIds
92
+ .map(function (_a) {
93
+ var keyId = _a.keyId;
94
+ return keyId;
95
+ });
96
+ reprObject.contentProtections.keyIds = keyIds;
97
+ }
98
+ }
99
+ shouldAdd = representationFilter(reprObject, { bufferType: this.type,
83
100
  language: this.language,
84
101
  normalizedLanguage: this.normalizedLanguage,
85
102
  isClosedCaption: this.isClosedCaption,
86
103
  isDub: this.isDub,
87
104
  isAudioDescription: this.isAudioDescription,
88
105
  isSignInterpreted: this.isSignInterpreted });
106
+ }
89
107
  if (shouldAdd) {
90
108
  representations.push(representation);
91
109
  if (!isSupported && representation.isSupported) {
@@ -102,29 +120,13 @@ var Adaptation = /** @class */ (function () {
102
120
  // for manuallyAdded adaptations (not in the manifest)
103
121
  this.manuallyAdded = isManuallyAdded === true;
104
122
  }
105
- /**
106
- * Returns unique bitrate for every Representation in this Adaptation.
107
- * @returns {Array.<Number>}
108
- */
109
- Adaptation.prototype.getAvailableBitrates = function () {
110
- var bitrates = [];
111
- for (var i = 0; i < this.representations.length; i++) {
112
- var representation = this.representations[i];
113
- if (representation.decipherable !== false) {
114
- bitrates.push(representation.bitrate);
115
- }
116
- }
117
- return uniq(bitrates);
118
- };
119
123
  /**
120
124
  * Returns all Representation in this Adaptation that can be played (that is:
121
125
  * not undecipherable and with a supported codec).
122
126
  * @returns {Array.<Representation>}
123
127
  */
124
128
  Adaptation.prototype.getPlayableRepresentations = function () {
125
- return this.representations.filter(function (rep) {
126
- return rep.isSupported && rep.decipherable !== false;
127
- });
129
+ return this.representations.filter(function (rep) { return rep.isPlayable(); });
128
130
  };
129
131
  /**
130
132
  * Returns the Representation linked to the given ID.
@@ -139,16 +141,20 @@ var Adaptation = /** @class */ (function () {
139
141
  };
140
142
  /**
141
143
  * Format an `Adaptation`, generally of type `"audio"`, as an `IAudioTrack`.
144
+ * @param {boolean} filterPlayable - If `true` only "playable" Representation
145
+ * will be returned.
142
146
  * @returns {Object}
143
147
  */
144
- Adaptation.prototype.toAudioTrack = function () {
148
+ Adaptation.prototype.toAudioTrack = function (filterPlayable) {
145
149
  var _a, _b;
146
150
  var formatted = {
147
151
  language: (_a = this.language) !== null && _a !== void 0 ? _a : "",
148
152
  normalized: (_b = this.normalizedLanguage) !== null && _b !== void 0 ? _b : "",
149
153
  audioDescription: this.isAudioDescription === true,
150
154
  id: this.id,
151
- representations: this.representations.map(function (r) { return r.toAudioRepresentation(); }),
155
+ representations: (filterPlayable ?
156
+ this.getPlayableRepresentations() :
157
+ this.representations).map(function (r) { return r.toAudioRepresentation(); }),
152
158
  label: this.label,
153
159
  };
154
160
  if (this.isDub === true) {
@@ -173,13 +179,16 @@ var Adaptation = /** @class */ (function () {
173
179
  };
174
180
  /**
175
181
  * Format an `Adaptation`, generally of type `"video"`, as an `IAudioTrack`.
182
+ * @param {boolean} filterPlayable - If `true` only "playable" Representation
183
+ * will be returned.
176
184
  * @returns {Object}
177
185
  */
178
- Adaptation.prototype.toVideoTrack = function () {
186
+ Adaptation.prototype.toVideoTrack = function (filterPlayable) {
179
187
  var trickModeTracks = this.trickModeTracks !== undefined ?
180
188
  this.trickModeTracks.map(function (trickModeAdaptation) {
181
- var representations = trickModeAdaptation.representations
182
- .map(function (r) { return r.toVideoRepresentation(); });
189
+ var representations = (filterPlayable ?
190
+ trickModeAdaptation.getPlayableRepresentations() :
191
+ trickModeAdaptation.representations).map(function (r) { return r.toVideoRepresentation(); });
183
192
  var trickMode = { id: trickModeAdaptation.id, representations: representations, isTrickModeTrack: true };
184
193
  if (trickModeAdaptation.isSignInterpreted === true) {
185
194
  trickMode.signInterpreted = true;
@@ -189,7 +198,9 @@ var Adaptation = /** @class */ (function () {
189
198
  undefined;
190
199
  var videoTrack = {
191
200
  id: this.id,
192
- representations: this.representations.map(function (r) { return r.toVideoRepresentation(); }),
201
+ representations: (filterPlayable ?
202
+ this.getPlayableRepresentations() :
203
+ this.representations).map(function (r) { return r.toVideoRepresentation(); }),
193
204
  label: this.label,
194
205
  };
195
206
  if (this.isSignInterpreted === true) {
@@ -14,12 +14,11 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import Adaptation, { SUPPORTED_ADAPTATIONS_TYPE } from "./adaptation";
17
- import Manifest, { IDecipherabilityUpdateElement, IManifestParsingOptions, ISupplementaryImageTrack, ISupplementaryTextTrack } from "./manifest";
17
+ import Manifest, { IDecipherabilityUpdateElement, IManifestParsingOptions } from "./manifest";
18
18
  import Period from "./period";
19
19
  import Representation from "./representation";
20
- import { IBaseContentInfos, IMetaPlaylistPrivateInfos, IRepresentationIndex, ISegment, StaticRepresentationIndex } from "./representation_index";
21
- import { IAdaptationType } from "./types";
20
+ import { IMetaPlaylistPrivateInfos, IRepresentationIndex, ISegment, StaticRepresentationIndex } from "./representation_index";
22
21
  import { areSameContent, getLoggableSegmentId, IBufferedChunkInfos } from "./utils";
23
22
  export default Manifest;
24
23
  export * from "./types";
25
- export { areSameContent, getLoggableSegmentId, IBufferedChunkInfos, Period, Adaptation, Representation, IAdaptationType, IBaseContentInfos, IDecipherabilityUpdateElement, IManifestParsingOptions, IMetaPlaylistPrivateInfos, IRepresentationIndex, ISegment, ISupplementaryImageTrack, ISupplementaryTextTrack, StaticRepresentationIndex, SUPPORTED_ADAPTATIONS_TYPE, };
24
+ export { areSameContent, getLoggableSegmentId, IBufferedChunkInfos, Period, Adaptation, Representation, IDecipherabilityUpdateElement, IManifestParsingOptions, IMetaPlaylistPrivateInfos, IRepresentationIndex, ISegment, StaticRepresentationIndex, SUPPORTED_ADAPTATIONS_TYPE, };
@@ -14,51 +14,14 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import { IParsedManifest } from "../parsers/manifest";
17
- import { IPlayerError, IRepresentationFilter } from "../public_types";
17
+ import { ITrackType, IPlayerError, IRepresentationFilter } from "../public_types";
18
18
  import EventEmitter from "../utils/event_emitter";
19
19
  import Adaptation from "./adaptation";
20
20
  import Period, { IManifestAdaptations } from "./period";
21
21
  import Representation from "./representation";
22
- import { IAdaptationType } from "./types";
23
22
  import { IPeriodsUpdateResult } from "./update_periods";
24
- /**
25
- * Interface a manually-added supplementary image track should respect.
26
- * @deprecated
27
- */
28
- interface ISupplementaryImageTrack {
29
- /** mime-type identifying the type of container for the track. */
30
- mimeType: string;
31
- /** URL to the thumbnails file */
32
- url: string;
33
- }
34
- /**
35
- * Interface a manually-added supplementary text track should respect.
36
- * @deprecated
37
- */
38
- interface ISupplementaryTextTrack {
39
- /** mime-type identifying the type of container for the track. */
40
- mimeType: string;
41
- /** codecs in the container (mimeType can be enough) */
42
- codecs?: string;
43
- /** URL to the text track file */
44
- url: string;
45
- /** ISO639-{1,2,3} code for the language of the track */
46
- language?: string;
47
- /**
48
- * Same as `language`, but in an Array.
49
- * Kept for compatibility with old API.
50
- * @deprecated
51
- */
52
- languages?: string[];
53
- /** If true, the track are closed captions. */
54
- closedCaption: boolean;
55
- }
56
23
  /** Options given to the `Manifest` constructor. */
57
24
  interface IManifestParsingOptions {
58
- /** Text tracks to add manually to the Manifest instance. */
59
- supplementaryTextTracks?: ISupplementaryTextTrack[] | undefined;
60
- /** Image tracks to add manually to the Manifest instance. */
61
- supplementaryImageTracks?: ISupplementaryImageTrack[] | undefined;
62
25
  /** External callback peforming an automatic filtering of wanted Representations. */
63
26
  representationFilter?: IRepresentationFilter | undefined;
64
27
  /** Optional URL that points to a shorter version of the Manifest used
@@ -234,9 +197,9 @@ export default class Manifest extends EventEmitter<IManifestEvents> {
234
197
  /**
235
198
  * Returns the most important URL from which the Manifest can be refreshed.
236
199
  * `undefined` if no URL is found.
237
- * @returns {string|undefined}
200
+ * @returns {Array.<string>}
238
201
  */
239
- getUrl(): string | undefined;
202
+ getUrls(): string[];
240
203
  /**
241
204
  * Update the current Manifest properties by giving a new updated version.
242
205
  * This instance will be updated with the new information coming from it.
@@ -290,28 +253,16 @@ export default class Manifest extends EventEmitter<IManifestEvents> {
290
253
  * @deprecated only returns adaptations for the first period
291
254
  * @returns {Array.<Object>}
292
255
  */
293
- getAdaptationsForType(adaptationType: IAdaptationType): Adaptation[];
256
+ getAdaptationsForType(adaptationType: ITrackType): Adaptation[];
294
257
  /**
295
258
  * @deprecated only returns adaptations for the first period
296
259
  * @returns {Array.<Object>}
297
260
  */
298
261
  getAdaptation(wantedId: number | string): Adaptation | undefined;
299
- /**
300
- * Add supplementary image Adaptation(s) to the manifest.
301
- * @private
302
- * @param {Object|Array.<Object>} imageTracks
303
- */
304
- private _addSupplementaryImageAdaptations;
305
- /**
306
- * Add supplementary text Adaptation(s) to the manifest.
307
- * @private
308
- * @param {Object|Array.<Object>} textTracks
309
- */
310
- private _addSupplementaryTextAdaptations;
311
262
  /**
312
263
  * @param {Object} newManifest
313
264
  * @param {number} updateType
314
265
  */
315
266
  private _performUpdate;
316
267
  }
317
- export { IManifestParsingOptions, ISupplementaryImageTrack, ISupplementaryTextTrack, };
268
+ export { IManifestParsingOptions };
@@ -28,19 +28,14 @@ var __extends = (this && this.__extends) || (function () {
28
28
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
29
29
  };
30
30
  })();
31
- import { MediaError } from "../errors";
32
31
  import log from "../log";
33
32
  import arrayFind from "../utils/array_find";
34
33
  import EventEmitter from "../utils/event_emitter";
35
34
  import idGenerator from "../utils/id_generator";
36
- import { getFilenameIndexInUrl } from "../utils/resolve_url";
37
35
  import warnOnce from "../utils/warn_once";
38
- import Adaptation from "./adaptation";
39
36
  import Period from "./period";
40
- import { StaticRepresentationIndex } from "./representation_index";
41
- import { MANIFEST_UPDATE_TYPE, } from "./types";
37
+ import { MANIFEST_UPDATE_TYPE } from "./types";
42
38
  import { replacePeriods, updatePeriods, } from "./update_periods";
43
- var generateSupplementaryTrackID = idGenerator();
44
39
  var generateNewManifestId = idGenerator();
45
40
  /**
46
41
  * Normalized Manifest structure.
@@ -75,7 +70,7 @@ var Manifest = /** @class */ (function (_super) {
75
70
  function Manifest(parsedManifest, options) {
76
71
  var _a;
77
72
  var _this = _super.call(this) || this;
78
- var _b = options.supplementaryTextTracks, supplementaryTextTracks = _b === void 0 ? [] : _b, _c = options.supplementaryImageTracks, supplementaryImageTracks = _c === void 0 ? [] : _c, representationFilter = options.representationFilter, manifestUpdateUrl = options.manifestUpdateUrl;
73
+ var representationFilter = options.representationFilter, manifestUpdateUrl = options.manifestUpdateUrl;
79
74
  _this.contentWarnings = [];
80
75
  _this.id = generateNewManifestId();
81
76
  _this.expired = (_a = parsedManifest.expired) !== null && _a !== void 0 ? _a : null;
@@ -106,12 +101,6 @@ var Manifest = /** @class */ (function (_super) {
106
101
  _this.suggestedPresentationDelay = parsedManifest.suggestedPresentationDelay;
107
102
  _this.availabilityStartTime = parsedManifest.availabilityStartTime;
108
103
  _this.publishTime = parsedManifest.publishTime;
109
- if (supplementaryImageTracks.length > 0) {
110
- _this._addSupplementaryImageAdaptations(supplementaryImageTracks);
111
- }
112
- if (supplementaryTextTracks.length > 0) {
113
- _this._addSupplementaryTextAdaptations(supplementaryTextTracks);
114
- }
115
104
  return _this;
116
105
  }
117
106
  /**
@@ -168,10 +157,10 @@ var Manifest = /** @class */ (function (_super) {
168
157
  /**
169
158
  * Returns the most important URL from which the Manifest can be refreshed.
170
159
  * `undefined` if no URL is found.
171
- * @returns {string|undefined}
160
+ * @returns {Array.<string>}
172
161
  */
173
- Manifest.prototype.getUrl = function () {
174
- return this.uris[0];
162
+ Manifest.prototype.getUrls = function () {
163
+ return this.uris;
175
164
  };
176
165
  /**
177
166
  * Update the current Manifest properties by giving a new updated version.
@@ -310,100 +299,6 @@ var Manifest = /** @class */ (function (_super) {
310
299
  });
311
300
  /* eslint-enable import/no-deprecated */
312
301
  };
313
- /**
314
- * Add supplementary image Adaptation(s) to the manifest.
315
- * @private
316
- * @param {Object|Array.<Object>} imageTracks
317
- */
318
- Manifest.prototype._addSupplementaryImageAdaptations = function (
319
- /* eslint-disable import/no-deprecated */
320
- imageTracks) {
321
- var _this = this;
322
- var _imageTracks = Array.isArray(imageTracks) ? imageTracks : [imageTracks];
323
- var newImageTracks = _imageTracks.map(function (_a) {
324
- var mimeType = _a.mimeType, url = _a.url;
325
- var adaptationID = "gen-image-ada-" + generateSupplementaryTrackID();
326
- var representationID = "gen-image-rep-" + generateSupplementaryTrackID();
327
- var indexOfFilename = getFilenameIndexInUrl(url);
328
- var cdnUrl = url.substring(0, indexOfFilename);
329
- var filename = url.substring(indexOfFilename);
330
- var newAdaptation = new Adaptation({ id: adaptationID,
331
- type: "image",
332
- representations: [{
333
- bitrate: 0,
334
- cdnMetadata: [{ baseUrl: cdnUrl }],
335
- id: representationID,
336
- mimeType: mimeType,
337
- index: new StaticRepresentationIndex({
338
- media: filename,
339
- })
340
- }] }, { isManuallyAdded: true });
341
- if (newAdaptation.representations.length > 0 && !newAdaptation.isSupported) {
342
- var error = new MediaError("MANIFEST_INCOMPATIBLE_CODECS_ERROR", "An Adaptation contains only incompatible codecs.", { adaptation: newAdaptation });
343
- _this.contentWarnings.push(error);
344
- }
345
- return newAdaptation;
346
- });
347
- if (newImageTracks.length > 0 && this.periods.length > 0) {
348
- var adaptations = this.periods[0].adaptations;
349
- adaptations.image =
350
- adaptations.image != null ? adaptations.image.concat(newImageTracks) :
351
- newImageTracks;
352
- }
353
- };
354
- /**
355
- * Add supplementary text Adaptation(s) to the manifest.
356
- * @private
357
- * @param {Object|Array.<Object>} textTracks
358
- */
359
- Manifest.prototype._addSupplementaryTextAdaptations = function (
360
- /* eslint-disable import/no-deprecated */
361
- textTracks
362
- /* eslint-enable import/no-deprecated */
363
- ) {
364
- var _this = this;
365
- var _textTracks = Array.isArray(textTracks) ? textTracks : [textTracks];
366
- var newTextAdaptations = _textTracks.reduce(function (allSubs, _a) {
367
- var mimeType = _a.mimeType, codecs = _a.codecs, url = _a.url, language = _a.language,
368
- /* eslint-disable import/no-deprecated */
369
- languages = _a.languages,
370
- /* eslint-enable import/no-deprecated */
371
- closedCaption = _a.closedCaption;
372
- var langsToMapOn = language != null ? [language] :
373
- languages != null ? languages :
374
- [];
375
- var indexOfFilename = getFilenameIndexInUrl(url);
376
- var cdnUrl = url.substring(0, indexOfFilename);
377
- var filename = url.substring(indexOfFilename);
378
- return allSubs.concat(langsToMapOn.map(function (_language) {
379
- var adaptationID = "gen-text-ada-" + generateSupplementaryTrackID();
380
- var representationID = "gen-text-rep-" + generateSupplementaryTrackID();
381
- var newAdaptation = new Adaptation({ id: adaptationID,
382
- type: "text",
383
- language: _language, closedCaption: closedCaption, representations: [{
384
- bitrate: 0,
385
- cdnMetadata: [{ baseUrl: cdnUrl }],
386
- id: representationID,
387
- mimeType: mimeType,
388
- codecs: codecs,
389
- index: new StaticRepresentationIndex({
390
- media: filename,
391
- })
392
- }] }, { isManuallyAdded: true });
393
- if (newAdaptation.representations.length > 0 && !newAdaptation.isSupported) {
394
- var error = new MediaError("MANIFEST_INCOMPATIBLE_CODECS_ERROR", "An Adaptation contains only incompatible codecs.", { adaptation: newAdaptation });
395
- _this.contentWarnings.push(error);
396
- }
397
- return newAdaptation;
398
- }));
399
- }, []);
400
- if (newTextAdaptations.length > 0 && this.periods.length > 0) {
401
- var adaptations = this.periods[0].adaptations;
402
- adaptations.text =
403
- adaptations.text != null ? adaptations.text.concat(newTextAdaptations) :
404
- newTextAdaptations;
405
- }
406
- };
407
302
  /**
408
303
  * @param {Object} newManifest
409
304
  * @param {number} updateType
@@ -1,9 +1,8 @@
1
1
  import { IManifestStreamEvent, IParsedPeriod } from "../parsers/manifest";
2
- import { IPlayerError, IRepresentationFilter } from "../public_types";
2
+ import { ITrackType, IPlayerError, IRepresentationFilter } from "../public_types";
3
3
  import Adaptation from "./adaptation";
4
- import { IAdaptationType } from "./types";
5
4
  /** Structure listing every `Adaptation` in a Period. */
6
- export type IManifestAdaptations = Partial<Record<IAdaptationType, Adaptation[]>>;
5
+ export type IManifestAdaptations = Partial<Record<ITrackType, Adaptation[]>>;
7
6
  /**
8
7
  * Class representing the tracks and qualities available from a given time
9
8
  * period in the the Manifest.
@@ -51,7 +50,7 @@ export default class Period {
51
50
  * @param {string} adaptationType
52
51
  * @returns {Array.<Object>}
53
52
  */
54
- getAdaptationsForType(adaptationType: IAdaptationType): Adaptation[];
53
+ getAdaptationsForType(adaptationType: ITrackType): Adaptation[];
55
54
  /**
56
55
  * Returns the Adaptation linked to the given ID.
57
56
  * @param {number|string} wantedId
@@ -64,7 +63,7 @@ export default class Period {
64
63
  * type. Will return for all types if `undefined`.
65
64
  * @returns {Array.<Adaptation>}
66
65
  */
67
- getSupportedAdaptations(type?: IAdaptationType): Adaptation[];
66
+ getSupportedAdaptations(type?: ITrackType): Adaptation[];
68
67
  /**
69
68
  * Returns true if the give time is in the time boundaries of this `Period`.
70
69
  * @param {number} time
@@ -14,9 +14,8 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import { ICdnMetadata, IContentProtections, IParsedRepresentation } from "../parsers/manifest";
17
- import { IAudioRepresentation, IHDRInformation, IVideoRepresentation } from "../public_types";
17
+ import { IAudioRepresentation, ITrackType, IHDRInformation, IVideoRepresentation } from "../public_types";
18
18
  import { IRepresentationIndex } from "./representation_index";
19
- import { IAdaptationType } from "./types";
20
19
  /**
21
20
  * Normalized Representation structure.
22
21
  * @class Representation
@@ -67,7 +66,7 @@ declare class Representation {
67
66
  * Frame-rate, when it can be applied, of this Representation, in any textual
68
67
  * indication possible (often under a ratio form).
69
68
  */
70
- frameRate?: string;
69
+ frameRate?: number;
71
70
  /**
72
71
  * `true` if this `Representation` is linked to a spatial audio technology.
73
72
  * For example, it may be set to `true` if the Representation relies on the
@@ -123,7 +122,7 @@ declare class Representation {
123
122
  * @param {Object} args
124
123
  */
125
124
  constructor(args: IParsedRepresentation, opts: {
126
- type: IAdaptationType;
125
+ type: ITrackType;
127
126
  });
128
127
  /**
129
128
  * Returns "mime-type string" which includes both the mime-type and the codec,
@@ -195,7 +194,7 @@ declare class Representation {
195
194
  * @param {Uint8Array} data
196
195
  * @returns {boolean}
197
196
  */
198
- _addProtectionData(initDataType: string, keyId: Uint8Array | undefined, data: Array<{
197
+ addProtectionData(initDataType: string, keyId: Uint8Array | undefined, data: Array<{
199
198
  systemId: string;
200
199
  data: Uint8Array;
201
200
  }>): boolean;
@@ -209,6 +208,12 @@ declare class Representation {
209
208
  * @returns {Object}
210
209
  */
211
210
  toVideoRepresentation(): IVideoRepresentation;
211
+ /**
212
+ * Returns `true` if this Representation can be played (that is: not
213
+ * undecipherable and with a supported codec).
214
+ * @returns {Array.<Representation>}
215
+ */
216
+ isPlayable(): boolean;
212
217
  }
213
218
  /** Protection data as returned by a Representation. */
214
219
  export interface IRepresentationProtectionData {
@@ -27,6 +27,7 @@ var Representation = /** @class */ (function () {
27
27
  * @param {Object} args
28
28
  */
29
29
  function Representation(args, opts) {
30
+ var _a;
30
31
  this.id = args.id;
31
32
  this.uniqueId = generateRepresentationUniqueId();
32
33
  this.bitrate = args.bitrate;
@@ -55,12 +56,24 @@ var Representation = /** @class */ (function () {
55
56
  this.cdnMetadata = args.cdnMetadata;
56
57
  this.index = args.index;
57
58
  if (opts.type === "audio" || opts.type === "video") {
58
- var mimeTypeStr = this.getMimeTypeString();
59
- var isSupported = isCodecSupported(mimeTypeStr);
60
- if (!isSupported) {
61
- log.info("Unsupported Representation", mimeTypeStr, this.id, this.bitrate);
59
+ this.isSupported = false;
60
+ // Supplemental codecs are defined as backwards-compatible codecs enhancing
61
+ // the experience of a base layer codec
62
+ if (args.supplementalCodecs !== undefined) {
63
+ var supplementalCodecMimeTypeStr = "".concat((_a = this.mimeType) !== null && _a !== void 0 ? _a : "", ";codecs=\"").concat(args.supplementalCodecs, "\"");
64
+ if (isCodecSupported(supplementalCodecMimeTypeStr)) {
65
+ this.codec = args.supplementalCodecs;
66
+ this.isSupported = true;
67
+ }
68
+ }
69
+ if (!this.isSupported) {
70
+ var mimeTypeStr = this.getMimeTypeString();
71
+ var isSupported = isCodecSupported(mimeTypeStr);
72
+ if (!isSupported) {
73
+ log.info("Unsupported Representation", mimeTypeStr, this.id, this.bitrate);
74
+ }
75
+ this.isSupported = isSupported;
62
76
  }
63
- this.isSupported = isSupported;
64
77
  }
65
78
  else {
66
79
  this.isSupported = true; // TODO for other types
@@ -170,7 +183,7 @@ var Representation = /** @class */ (function () {
170
183
  * @param {Uint8Array} data
171
184
  * @returns {boolean}
172
185
  */
173
- Representation.prototype._addProtectionData = function (initDataType, keyId, data) {
186
+ Representation.prototype.addProtectionData = function (initDataType, keyId, data) {
174
187
  var hasUpdatedProtectionData = false;
175
188
  if (this.contentProtections === undefined) {
176
189
  this.contentProtections = { keyIds: keyId !== undefined ? [{ keyId: keyId }] : [],
@@ -236,16 +249,26 @@ var Representation = /** @class */ (function () {
236
249
  * @returns {Object}
237
250
  */
238
251
  Representation.prototype.toAudioRepresentation = function () {
239
- var _a = this, id = _a.id, isSpatialAudio = _a.isSpatialAudio, bitrate = _a.bitrate, codec = _a.codec;
240
- return { id: id, isSpatialAudio: isSpatialAudio, bitrate: bitrate, codec: codec };
252
+ var _a = this, id = _a.id, bitrate = _a.bitrate, codec = _a.codec, isSpatialAudio = _a.isSpatialAudio, isSupported = _a.isSupported, decipherable = _a.decipherable;
253
+ return { id: id, bitrate: bitrate, codec: codec, isSpatialAudio: isSpatialAudio, isCodecSupported: isSupported,
254
+ seemsDecipherable: decipherable };
241
255
  };
242
256
  /**
243
257
  * Format Representation as an `IVideoRepresentation`.
244
258
  * @returns {Object}
245
259
  */
246
260
  Representation.prototype.toVideoRepresentation = function () {
247
- var _a = this, id = _a.id, bitrate = _a.bitrate, frameRate = _a.frameRate, width = _a.width, height = _a.height, codec = _a.codec, hdrInfo = _a.hdrInfo;
248
- return { id: id, bitrate: bitrate, frameRate: frameRate, width: width, height: height, codec: codec, hdrInfo: hdrInfo };
261
+ var _a = this, id = _a.id, bitrate = _a.bitrate, frameRate = _a.frameRate, width = _a.width, height = _a.height, codec = _a.codec, hdrInfo = _a.hdrInfo, isSupported = _a.isSupported, decipherable = _a.decipherable;
262
+ return { id: id, bitrate: bitrate, frameRate: frameRate, width: width, height: height, codec: codec, hdrInfo: hdrInfo, isCodecSupported: isSupported,
263
+ seemsDecipherable: decipherable };
264
+ };
265
+ /**
266
+ * Returns `true` if this Representation can be played (that is: not
267
+ * undecipherable and with a supported codec).
268
+ * @returns {Array.<Representation>}
269
+ */
270
+ Representation.prototype.isPlayable = function () {
271
+ return this.isSupported && this.decipherable !== false;
249
272
  };
250
273
  return Representation;
251
274
  }());
@@ -14,5 +14,5 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import StaticRepresentationIndex from "./static";
17
- import { IBaseContentInfos, IMetaPlaylistPrivateInfos, IRepresentationIndex, ISegment } from "./types";
18
- export { IBaseContentInfos, IMetaPlaylistPrivateInfos, IRepresentationIndex, ISegment, StaticRepresentationIndex, };
17
+ import { IMetaPlaylistPrivateInfos, IRepresentationIndex, ISegment } from "./types";
18
+ export { IMetaPlaylistPrivateInfos, IRepresentationIndex, ISegment, StaticRepresentationIndex, };
@@ -94,6 +94,8 @@ export default class StaticRepresentationIndex implements IRepresentationIndex {
94
94
  * @returns {Boolean}
95
95
  */
96
96
  isInitialized(): true;
97
+ initialize(): void;
98
+ addPredictedSegments(): void;
97
99
  _replace(): void;
98
100
  _update(): void;
99
101
  }
@@ -124,6 +124,12 @@ var StaticRepresentationIndex = /** @class */ (function () {
124
124
  StaticRepresentationIndex.prototype.isInitialized = function () {
125
125
  return true;
126
126
  };
127
+ StaticRepresentationIndex.prototype.initialize = function () {
128
+ log.error("A `StaticRepresentationIndex` does not need to be initialized");
129
+ };
130
+ StaticRepresentationIndex.prototype.addPredictedSegments = function () {
131
+ log.warn("Cannot add predicted segments to a `StaticRepresentationIndex`");
132
+ };
127
133
  StaticRepresentationIndex.prototype._replace = function () {
128
134
  log.warn("Tried to replace a static RepresentationIndex");
129
135
  };