@bitmovin/player-web-x 10.2.0-beta.0 → 10.2.0-beta.11

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 (256) hide show
  1. package/bundles/playerx-bitmovin-v8-core.js +3 -3
  2. package/bundles/playerx-bitmovin-v8.js +3 -3
  3. package/bundles/playerx-core.js +3 -3
  4. package/bundles/playerx-dash.js +3 -3
  5. package/bundles/playerx-hls-ts-audio.d.ts +1 -0
  6. package/bundles/playerx-hls-ts-audio.js +3 -3
  7. package/bundles/playerx-hls.js +3 -3
  8. package/bundles/playerx-playback.d.ts +1 -0
  9. package/bundles/playerx-playback.js +10 -0
  10. package/bundles/playerx-tv.js +3 -3
  11. package/framework-types/Types.d.ts +3 -1
  12. package/framework-types/effects/LoggerEffect.d.ts +59 -0
  13. package/framework-types/registry/Registry.d.ts +3 -3
  14. package/package.json +1 -1
  15. package/packages/playerx-adaptation.package.js +3 -3
  16. package/packages/playerx-advertising-api.package.d.ts +1 -0
  17. package/packages/playerx-advertising-api.package.js +10 -0
  18. package/packages/playerx-advertising-base.package.d.ts +1 -0
  19. package/packages/playerx-advertising-base.package.js +10 -0
  20. package/packages/playerx-advertising-bitmovin.package.d.ts +1 -0
  21. package/packages/playerx-advertising-bitmovin.package.js +10 -0
  22. package/packages/playerx-analytics.package.d.ts +1 -0
  23. package/packages/playerx-analytics.package.js +3 -3
  24. package/packages/playerx-bitmovin-advertising-bundle.package.d.ts +1 -0
  25. package/packages/playerx-bitmovin-advertising-bundle.package.js +10 -0
  26. package/packages/playerx-bitmovin-source-api.package.js +3 -3
  27. package/packages/playerx-bitmovin-ui.package.js +3 -3
  28. package/packages/playerx-bitmovin-v8-core.package.js +3 -3
  29. package/packages/playerx-bitmovin-v8-static-api.package.js +3 -3
  30. package/packages/playerx-bitmovin-video-element-utils.package.js +3 -3
  31. package/packages/playerx-capabilities.package.js +3 -3
  32. package/packages/playerx-container-mp4.package.js +3 -3
  33. package/packages/playerx-container-ts.package.js +3 -3
  34. package/packages/playerx-core.package.js +3 -3
  35. package/packages/playerx-dash-manifest-technology.package.d.ts +1 -0
  36. package/packages/playerx-dash-manifest-technology.package.js +10 -0
  37. package/packages/playerx-dash-manifest.package.d.ts +1 -0
  38. package/packages/playerx-dash-manifest.package.js +10 -0
  39. package/packages/playerx-dash-parsing.package.js +3 -3
  40. package/packages/playerx-dash-translation.package.js +3 -3
  41. package/packages/playerx-dash.package.js +3 -3
  42. package/packages/playerx-data.package.js +3 -3
  43. package/packages/playerx-event-bus.package.js +3 -3
  44. package/packages/playerx-hls-manifest-technology.package.d.ts +1 -0
  45. package/packages/playerx-hls-manifest-technology.package.js +10 -0
  46. package/packages/playerx-hls-manifest.package.d.ts +1 -0
  47. package/packages/playerx-hls-manifest.package.js +10 -0
  48. package/packages/playerx-hls-parsing.package.js +3 -3
  49. package/packages/playerx-hls-translation.package.js +3 -3
  50. package/packages/playerx-hls.package.js +3 -3
  51. package/packages/playerx-mse-playback.package.d.ts +1 -0
  52. package/packages/playerx-mse-playback.package.js +10 -0
  53. package/packages/playerx-mse-presentation.package.d.ts +1 -0
  54. package/packages/playerx-mse-presentation.package.js +10 -0
  55. package/packages/playerx-native-playback.package.d.ts +1 -0
  56. package/packages/playerx-native-playback.package.js +10 -0
  57. package/packages/playerx-native-presentation.package.d.ts +1 -0
  58. package/packages/playerx-native-presentation.package.js +10 -0
  59. package/packages/playerx-network.package.js +3 -3
  60. package/packages/playerx-no-adaptation.package.d.ts +1 -0
  61. package/packages/playerx-no-adaptation.package.js +3 -3
  62. package/packages/playerx-playback-api.package.js +3 -3
  63. package/packages/playerx-playback-technology.package.d.ts +1 -0
  64. package/packages/playerx-playback-technology.package.js +10 -0
  65. package/packages/playerx-playback.package.js +3 -3
  66. package/packages/playerx-player-api.package.js +3 -3
  67. package/packages/playerx-segment-processing.package.js +3 -3
  68. package/packages/playerx-source.package.js +3 -3
  69. package/packages/playerx-sources-api.package.js +3 -3
  70. package/packages/playerx-stream-data-structure.package.d.ts +1 -0
  71. package/packages/playerx-stream-data-structure.package.js +10 -0
  72. package/packages/playerx-streaming.package.d.ts +1 -0
  73. package/packages/playerx-streaming.package.js +10 -0
  74. package/packages/playerx-subtitle-api.package.js +3 -3
  75. package/packages/playerx-subtitle-base.package.js +3 -3
  76. package/packages/playerx-subtitle-format-detection.package.js +3 -3
  77. package/packages/playerx-subtitle-native-renderer.package.js +3 -3
  78. package/packages/playerx-subtitles.package.js +3 -3
  79. package/packages/playerx-trick-play.package.js +3 -3
  80. package/packages/playerx-ts-transmuxer.package.js +3 -3
  81. package/packages/playerx-tv.package.js +3 -3
  82. package/packages/playerx-ui.package.d.ts +1 -0
  83. package/packages/playerx-ui.package.js +10 -0
  84. package/packages/playerx-view-mode.package.js +3 -3
  85. package/packages/playerx-web-vtt.package.js +3 -3
  86. package/playerx-framework-utils.js +2 -2
  87. package/types/bundles/BitmovinV8.bundle.d.ts +1 -1
  88. package/types/bundles/Dash.bundle.d.ts +2 -3
  89. package/types/bundles/Hls.bundle.d.ts +3 -4
  90. package/types/bundles/HlsTsAudio.bundle.d.ts +26 -0
  91. package/types/bundles/Playback.bundle.d.ts +28 -0
  92. package/types/bundles/Tv.bundle.d.ts +1 -1
  93. package/types/bundles/Types.d.ts +2 -2
  94. package/types/packages/adaptation/Adaptation.package.d.ts +4 -3
  95. package/types/packages/adaptation/AdaptationStateAtom.d.ts +14 -23
  96. package/types/packages/adaptation/NoAdaptation.package.d.ts +10 -0
  97. package/types/packages/adaptation/Types.d.ts +32 -8
  98. package/types/packages/adaptation/WishConfigAtom.d.ts +4 -29
  99. package/types/packages/advertising/BitmovinAdvertisingBundle.package.d.ts +14 -0
  100. package/types/packages/advertising/api/AdvertisingApi.package.d.ts +12 -0
  101. package/types/packages/advertising/api/AdvertisingEvents.d.ts +44 -0
  102. package/types/packages/advertising/api/Types.d.ts +49 -0
  103. package/types/packages/advertising/base/AdPosition.d.ts +4 -0
  104. package/types/packages/advertising/base/AdSchedule.d.ts +3 -0
  105. package/types/packages/advertising/base/AdTagAtom.d.ts +11 -0
  106. package/types/packages/advertising/base/AdvertisingBase.package.d.ts +12 -0
  107. package/types/packages/advertising/base/BaseAdAtom.d.ts +22 -0
  108. package/types/packages/advertising/base/BaseAdBreakAtom.d.ts +29 -0
  109. package/types/packages/advertising/base/PreloadConfigAtom.d.ts +17 -0
  110. package/types/packages/advertising/base/Types.d.ts +67 -0
  111. package/types/packages/advertising/bitmovin/AdvertisingBitmovin.package.d.ts +14 -0
  112. package/types/packages/advertising/bitmovin/Types.d.ts +46 -0
  113. package/types/packages/analytics/Analytics.package.d.ts +15 -0
  114. package/types/packages/analytics/Types.d.ts +20 -0
  115. package/types/packages/capabilities/Capabilities.package.d.ts +1 -1
  116. package/types/packages/capabilities/Types.d.ts +5 -2
  117. package/types/packages/container/container-mp4/ContainerMp4.package.d.ts +3 -2
  118. package/types/packages/container/container-ts/ContainerTs.package.d.ts +3 -2
  119. package/types/packages/container/ts-transmuxer/TsTransmuxer.package.d.ts +3 -2
  120. package/types/packages/core/Constants.d.ts +11 -2
  121. package/types/packages/core/Types.d.ts +4 -54
  122. package/types/packages/core/state/StateMachineAtom.d.ts +20 -6
  123. package/types/packages/core/state/Symbols.d.ts +1 -0
  124. package/types/packages/core/state/Types.d.ts +2 -1
  125. package/types/packages/core/state/stream-timeline/StreamSectionAtom.d.ts +1 -1
  126. package/types/packages/core/state/stream-timeline/StreamSequenceMapAtom.d.ts +2 -2
  127. package/types/packages/core/state/timeline/Types.d.ts +1 -1
  128. package/types/packages/core/technology/Types.d.ts +19 -0
  129. package/types/packages/core/utils/MapUnsubscribedError.d.ts +1 -1
  130. package/types/packages/core/utils/RangesHelper.d.ts +3 -1
  131. package/types/packages/core/utils/StateUtils.d.ts +9 -3
  132. package/types/packages/core/utils/Types.d.ts +0 -2
  133. package/types/packages/data/Data.package.d.ts +1 -1
  134. package/types/packages/data/Types.d.ts +6 -7
  135. package/types/packages/event-bus/EventBus.d.ts +6 -3
  136. package/types/packages/event-bus/EventBus.package.d.ts +2 -1
  137. package/types/packages/event-bus/Types.d.ts +32 -12
  138. package/types/packages/manifest/dash/DashManifest.package.d.ts +3 -0
  139. package/types/packages/manifest/dash/parsing/DashParsing.package.d.ts +0 -3
  140. package/types/packages/manifest/dash/root/Dash.package.d.ts +1 -1
  141. package/types/packages/manifest/dash/root/Types.d.ts +4 -4
  142. package/types/packages/manifest/dash/technology/DashManifestTechnology.package.d.ts +11 -0
  143. package/types/packages/manifest/dash/technology/Types.d.ts +32 -0
  144. package/types/packages/manifest/dash/technology/atoms/DashTechStateAtom.d.ts +10 -0
  145. package/types/packages/manifest/dash/translation/DashTranslation.package.d.ts +1 -1
  146. package/types/packages/manifest/dash/translation/Types.d.ts +2 -4
  147. package/types/packages/manifest/dash/translation/manifests/DashPlaylistTranslatorTask.d.ts +1 -1
  148. package/types/packages/manifest/hls/HlsManifest.package.d.ts +3 -0
  149. package/types/packages/manifest/hls/parsing/HlsParsing.package.d.ts +0 -3
  150. package/types/packages/manifest/hls/parsing/HlsParsingFunctions.d.ts +1 -1
  151. package/types/packages/manifest/hls/parsing/Types.d.ts +1 -1
  152. package/types/packages/manifest/hls/parsing/m3u8/TranslatorStream.d.ts +2 -2
  153. package/types/packages/manifest/hls/root/Hls.package.d.ts +5 -5
  154. package/types/packages/manifest/hls/technology/HlsManifestTechnology.package.d.ts +11 -0
  155. package/types/packages/manifest/hls/technology/Types.d.ts +32 -0
  156. package/types/packages/manifest/hls/technology/atoms/HlsTechStateAtom.d.ts +10 -0
  157. package/types/packages/manifest/hls/translation/HlsTranslation.package.d.ts +3 -5
  158. package/types/packages/manifest/hls/translation/manifests/HlsMultivariantPlaylistTranslatorTask.d.ts +1 -1
  159. package/types/packages/manifest/hls/translation/manifests/HlsVariantTranslationTask.d.ts +2 -2
  160. package/types/packages/network/Network.package.d.ts +1 -1
  161. package/types/packages/playback/play-pause/Types.d.ts +0 -3
  162. package/types/packages/playback/playback-state/Types.d.ts +0 -3
  163. package/types/packages/playback/video-element-state/SeekRestrictionAtom.d.ts +2 -0
  164. package/types/packages/playback/video-element-state/Types.d.ts +4 -1
  165. package/types/packages/playback/volume/TargetVolumeStateAtom.d.ts +10 -0
  166. package/types/packages/playback/volume/Types.d.ts +19 -0
  167. package/types/packages/playback-api/Types.d.ts +5 -3
  168. package/types/packages/playback-api/playback-api-events/Types.d.ts +7 -5
  169. package/types/packages/playback-api/playback-api-events/events/DurationChangedEvent.d.ts +6 -0
  170. package/types/packages/playback-api/playback-api-events/events/PlaybackEventMap.d.ts +14 -1
  171. package/types/packages/playback-api/playback-api-events/events/PlaybackRateChangedEvent.d.ts +6 -0
  172. package/types/packages/playback-api/playback-api-events/events/VolumeChangedEvent.d.ts +6 -0
  173. package/types/packages/playback-api/time-api/SeekableRangeProviderAtom.d.ts +20 -0
  174. package/types/packages/playback-api/time-api/Types.d.ts +36 -0
  175. package/types/packages/playback-api/volume-api/Types.d.ts +19 -0
  176. package/types/packages/playback-technology/PlaybackTechnology.package.d.ts +23 -0
  177. package/types/packages/playback-technology/Types.d.ts +54 -0
  178. package/types/packages/player-api/PlayerApi.package.d.ts +2 -4
  179. package/types/packages/player-api/Types.d.ts +3 -2
  180. package/types/packages/presentation/mse/MsePlayback.package.d.ts +3 -0
  181. package/types/packages/presentation/mse/playback-technology/Types.d.ts +26 -0
  182. package/types/packages/presentation/mse/playback-technology/atoms/MsePresentationStateAtom.d.ts +10 -0
  183. package/types/packages/presentation/mse/presentation/MsePresentation.package.d.ts +55 -0
  184. package/types/packages/presentation/{Types.d.ts → mse/presentation/Types.d.ts} +1 -1
  185. package/types/packages/presentation/mse/presentation/cache/Types.d.ts +4 -0
  186. package/types/packages/presentation/native/NativePlayback.package.d.ts +4 -0
  187. package/types/packages/presentation/native/Types.d.ts +12 -0
  188. package/types/packages/presentation/native/playback-technology/Types.d.ts +26 -0
  189. package/types/packages/presentation/native/playback-technology/atoms/NativePresentationStateAtom.d.ts +10 -0
  190. package/types/packages/presentation/native/presentation/NativePresentation.package.d.ts +14 -0
  191. package/types/packages/presentation/native/presentation/Types.d.ts +12 -0
  192. package/types/packages/segment-processing/SegmentProcessing.package.d.ts +1 -1
  193. package/types/packages/segment-processing/Types.d.ts +4 -6
  194. package/types/packages/source/Source.package.d.ts +1 -1
  195. package/types/packages/source/SourceReference.d.ts +2 -1
  196. package/types/packages/source/Types.d.ts +4 -0
  197. package/types/packages/source/atoms/PlaybackAtom.d.ts +5 -1
  198. package/types/packages/source/atoms/PlaybackConfigAtom.d.ts +1 -0
  199. package/types/packages/source/atoms/SourceConfigAtom.d.ts +11 -4
  200. package/types/packages/source/atoms/SourceStateAtom.d.ts +10 -23
  201. package/types/packages/sources-api/SourceRemovedError.d.ts +5 -0
  202. package/types/packages/sources-api/SourcesApi.package.d.ts +1 -1
  203. package/types/packages/sources-api/Types.d.ts +22 -7
  204. package/types/packages/stream-data-structure/StreamDataStructure.package.d.ts +4 -0
  205. package/types/packages/stream-data-structure/Types.d.ts +23 -0
  206. package/types/packages/stream-data-structure/segment/Exports.d.ts +22 -0
  207. package/types/packages/{core/state → stream-data-structure}/segment/SegmentAtom.d.ts +8 -8
  208. package/types/packages/stream-data-structure/segment/SegmentDataAtom.d.ts +19 -0
  209. package/types/packages/{core/state → stream-data-structure}/segment/SegmentTimingAtom.d.ts +3 -3
  210. package/types/packages/{core/state → stream-data-structure}/segment/SegmentUtils.d.ts +10 -10
  211. package/types/packages/stream-data-structure/selection-group/Exports.d.ts +16 -0
  212. package/types/packages/{core/state → stream-data-structure}/selection-group/SelectionGroupAtom.d.ts +17 -15
  213. package/types/packages/stream-data-structure/selection-group/SelectionGroupTypeGuards.d.ts +11 -0
  214. package/types/packages/stream-data-structure/selection-group/SelectionGroupUtils.d.ts +7 -0
  215. package/types/packages/stream-data-structure/stream/Exports.d.ts +8 -0
  216. package/types/packages/{core/state → stream-data-structure}/stream/StreamAtom.d.ts +8 -8
  217. package/types/packages/stream-data-structure/track/Exports.d.ts +18 -0
  218. package/types/packages/{core/state → stream-data-structure}/track/TrackAtom.d.ts +18 -26
  219. package/types/packages/stream-data-structure/track/TrackTypeGuards.d.ts +13 -0
  220. package/types/packages/streaming/Streaming.package.d.ts +12 -0
  221. package/types/packages/streaming/Types.d.ts +11 -0
  222. package/types/packages/{core/state/data-ranges → streaming/atoms}/DataRangesAtom.d.ts +8 -8
  223. package/types/packages/streaming/atoms/StreamingStateAtom.d.ts +30 -0
  224. package/types/packages/subtitles/subtitle-api/SubtitleApi.package.d.ts +1 -1
  225. package/types/packages/subtitles/subtitle-api/Types.d.ts +8 -5
  226. package/types/packages/subtitles/subtitle-base/SubtitleBase.package.d.ts +1 -1
  227. package/types/packages/subtitles/subtitle-base/SubtitleCueMapAtom.d.ts +1 -1
  228. package/types/packages/subtitles/subtitle-base/Types.d.ts +4 -4
  229. package/types/packages/subtitles/subtitle-format-detection/SubtitleFormatDetection.package.d.ts +1 -1
  230. package/types/packages/subtitles/subtitle-format-detection/Types.d.ts +3 -4
  231. package/types/packages/subtitles/subtitle-native-renderer/SubtitleNativeRenderer.package.d.ts +1 -1
  232. package/types/packages/subtitles/subtitle-native-renderer/Types.d.ts +4 -1
  233. package/types/packages/subtitles/webvtt/Types.d.ts +5 -3
  234. package/types/packages/subtitles/webvtt/WebVtt.package.d.ts +1 -1
  235. package/types/packages/trick-play/TrickPlay.package.d.ts +6 -14
  236. package/types/packages/tv/Tv.package.d.ts +1 -4
  237. package/types/packages/ui/Types.d.ts +36 -0
  238. package/types/packages/ui/Ui.package.d.ts +4 -0
  239. package/types/packages/v8-compat/BitmovinUi.package.d.ts +1 -1
  240. package/types/packages/v8-compat/BitmovinV8StaticApi.package.d.ts +5 -6
  241. package/types/packages/v8-compat/source-api/BitmovinSourceApi.package.d.ts +4 -2
  242. package/types/packages/v8-compat/types/Types.d.ts +1 -1
  243. package/types/packages/v8-compat/video-element/BitmovinVideoElementUtils.package.d.ts +1 -4
  244. package/types/packages/view-mode/ViewMode.package.d.ts +1 -4
  245. package/packages/playerx-presentation.package.d.ts +0 -1
  246. package/packages/playerx-presentation.package.js +0 -10
  247. package/types/packages/core/state/segment/SegmentDataAtom.d.ts +0 -31
  248. package/types/packages/core/state/selection-group/SelectionGroupTypeGuards.d.ts +0 -5
  249. package/types/packages/core/state/selection-group/SelectionGroupUtils.d.ts +0 -7
  250. package/types/packages/core/state/track/TrackTypeGuards.d.ts +0 -7
  251. package/types/packages/core/utils/Logger.d.ts +0 -40
  252. package/types/packages/presentation/Presentation.package.d.ts +0 -62
  253. package/types/packages/presentation/cache/Types.d.ts +0 -4
  254. /package/types/packages/{core/state → stream-data-structure}/segment/SegmentTypeGuards.d.ts +0 -0
  255. /package/types/packages/{source → streaming}/atoms/BufferConfigAtom.d.ts +0 -0
  256. /package/types/packages/{source → streaming}/atoms/MediaTypeMapAtom.d.ts +0 -0
@@ -1,6 +1,8 @@
1
1
  import type { EventBus } from '../event-bus/Types';
2
2
  import type { PlayPauseApi } from './play-pause-api/Types';
3
- import type { PlaybackEventMap } from './playback-api-events/events/PlaybackEventMap';
4
- export type PlaybackApi = PlayPauseApi & {
5
- events: EventBus<PlaybackEventMap>;
3
+ import type { PlaybackEvent, PlaybackEventMap } from './playback-api-events/events/PlaybackEventMap';
4
+ import type { TimeApi } from './time-api/Types';
5
+ import type { VolumeApi } from './volume-api/Types';
6
+ export type PlaybackApi = PlayPauseApi & TimeApi & VolumeApi & {
7
+ events: EventBus<PlaybackEventMap, typeof PlaybackEvent>;
6
8
  };
@@ -1,23 +1,25 @@
1
1
  import type { ApiManager } from '../../../../framework-types/api-manager/ApiManager';
2
2
  import type { ContextHaving } from '../../../../framework-types/execution-context/Types';
3
- import type { BundleExportNames } from '../../../bundles/Types';
4
3
  import type { CoreEffects, CoreExportNames } from '../../core/Types';
5
- import type { Logger } from '../../core/utils/Logger';
6
- import type { EventBus } from '../../event-bus/Types';
4
+ import type { extendEventBusTypes } from '../../event-bus/EventBus';
5
+ import type { EventBus, EventBusExportNames } from '../../event-bus/Types';
7
6
  import type { PlaybackState, PlaybackStateMachineAtom, PlaybackStatePackageExportNames } from '../../playback/playback-state/Types';
7
+ import type { VideoElementStateExportNames } from '../../playback/video-element-state/Types';
8
+ import type { VideoElementStateAtom } from '../../playback/video-element-state/VideoElementStateAtom';
8
9
  import type { SourceStateAtom } from '../../source/atoms/SourceStateAtom';
9
10
  import type { SourceExportNames } from '../../source/Types';
10
11
  import type { SourcesApiExportNames } from '../../sources-api/Types';
11
12
  import type { ContextWithState } from '../../Types';
12
13
  import type { PlaybackEvent, PlaybackEventMap } from './events/PlaybackEventMap';
13
14
  export type PlaybackApiEventsPackageDependencies = {
14
- [BundleExportNames.Logger]: Logger;
15
15
  [CoreExportNames.CoreEffects]: CoreEffects;
16
+ [EventBusExportNames.ExtendEventBusTypes]: typeof extendEventBusTypes;
16
17
  [PlaybackStatePackageExportNames.PlaybackState]: typeof PlaybackState;
17
18
  [PlaybackStatePackageExportNames.PlaybackStateMachine]: PlaybackStateMachineAtom;
18
19
  [SourcesApiExportNames.SourceEventBus]: EventBus<PlaybackEventMap>;
19
20
  [SourcesApiExportNames.SourceApiManager]: ApiManager<PlaybackStateApi>;
20
21
  [SourceExportNames.SourceState]: SourceStateAtom;
22
+ [VideoElementStateExportNames.VideoElementState]: VideoElementStateAtom;
21
23
  };
22
24
  export declare enum PlaybackApiEventsPackageExportNames {
23
25
  PlaybackEvent = "playback-event"
@@ -27,5 +29,5 @@ export type PlaybackApiEventsPackageExports = {
27
29
  };
28
30
  export type PlaybackApiEventsPackageContext = ContextHaving<PlaybackApiEventsPackageDependencies, PlaybackApiEventsPackageExports, ContextWithState>;
29
31
  export type PlaybackStateApi = {
30
- getState(): PlaybackState;
32
+ readonly state: PlaybackState;
31
33
  };
@@ -0,0 +1,6 @@
1
+ import type { EventBase } from '../../../event-bus/Types';
2
+ import type { PlaybackApiEventsPackageContext } from '../Types';
3
+ export interface DurationChangedEvent extends EventBase {
4
+ duration: number;
5
+ }
6
+ export declare function createDurationChangedEvent(context: PlaybackApiEventsPackageContext): DurationChangedEvent;
@@ -1,7 +1,10 @@
1
1
  import type { EventBase } from '../../../event-bus/Types';
2
+ import type { DurationChangedEvent } from './DurationChangedEvent';
3
+ import type { PlaybackRateChangedEvent } from './PlaybackRateChangedEvent';
2
4
  import type { SeekedEvent } from './SeekedEvent';
3
5
  import type { SeekingEvent } from './SeekingEvent';
4
6
  import type { TimeChangedEvent } from './TimeChanged';
7
+ import type { VolumeChangedEvent } from './VolumeChangedEvent';
5
8
  export declare enum PlaybackEvent {
6
9
  Ready = "ready",
7
10
  Play = "play",
@@ -14,7 +17,12 @@ export declare enum PlaybackEvent {
14
17
  StallStarted = "stall-started",
15
18
  StallEnded = "stall-ended",
16
19
  VideoDetached = "video-detached",
17
- VideoAttached = "video-attached"
20
+ VideoAttached = "video-attached",
21
+ Muted = "muted",
22
+ Unmuted = "unmuted",
23
+ VolumeChanged = "volume-changed",
24
+ DurationChanged = "duration-changed",
25
+ PlaybackRateChanged = "playback-rate-changed"
18
26
  }
19
27
  export type PlaybackEventMap = {
20
28
  [PlaybackEvent.Ready]: EventBase;
@@ -29,4 +37,9 @@ export type PlaybackEventMap = {
29
37
  [PlaybackEvent.StallEnded]: EventBase;
30
38
  [PlaybackEvent.VideoDetached]: EventBase;
31
39
  [PlaybackEvent.VideoAttached]: EventBase;
40
+ [PlaybackEvent.Muted]: EventBase;
41
+ [PlaybackEvent.Unmuted]: EventBase;
42
+ [PlaybackEvent.VolumeChanged]: VolumeChangedEvent;
43
+ [PlaybackEvent.DurationChanged]: DurationChangedEvent;
44
+ [PlaybackEvent.PlaybackRateChanged]: PlaybackRateChangedEvent;
32
45
  };
@@ -0,0 +1,6 @@
1
+ import type { EventBase } from '../../../event-bus/Types';
2
+ import type { PlaybackApiEventsPackageContext } from '../Types';
3
+ export interface PlaybackRateChangedEvent extends EventBase {
4
+ playbackRate: number;
5
+ }
6
+ export declare function createPlaybackRateChangedEvent(context: PlaybackApiEventsPackageContext): PlaybackRateChangedEvent;
@@ -0,0 +1,6 @@
1
+ import type { EventBase } from '../../../event-bus/Types';
2
+ import type { PlaybackApiEventsPackageContext } from '../Types';
3
+ export interface VolumeChangedEvent extends EventBase {
4
+ volume: number;
5
+ }
6
+ export declare function createVolumeChangedEvent(context: PlaybackApiEventsPackageContext): VolumeChangedEvent;
@@ -0,0 +1,20 @@
1
+ import type { EmptyObject } from '../../../../framework-types/BaseTypes';
2
+ import type { ContextHaving } from '../../../../framework-types/execution-context/Types';
3
+ import type { ArrayAtom } from '../../core/state/ArrayStateAtom';
4
+ import type { StateAtom } from '../../core/state/Types';
5
+ import { CoreExportNames } from '../../core/Types';
6
+ import type { CoreUtils } from '../../core/utils/Types';
7
+ import type { VideoElementAtom } from '../../source/atoms/VideoElementAtom';
8
+ import type { TrackAtom } from '../../stream-data-structure/track/TrackAtom';
9
+ import type { ContextWithState } from '../../Types';
10
+ import type { TimeRange } from './Types';
11
+ type SeekableRangerProvider = {
12
+ range: TimeRange | undefined;
13
+ };
14
+ type Context = ContextHaving<{
15
+ [CoreExportNames.Utils]: CoreUtils;
16
+ }, EmptyObject, ContextWithState>;
17
+ export type SeekableRangeProviderAtom = StateAtom<SeekableRangerProvider>;
18
+ export declare function createSeekableRangeProvider(context: Context, video: VideoElementAtom): SeekableRangeProviderAtom;
19
+ export declare function createSeekableRangeProvider(context: Context, tracks: ArrayAtom<TrackAtom>): SeekableRangeProviderAtom;
20
+ export {};
@@ -0,0 +1,36 @@
1
+ import type { ApiManager } from '../../../../framework-types/api-manager/ApiManager';
2
+ import type { ContextHaving } from '../../../../framework-types/execution-context/Types';
3
+ import type { ArrayAtom } from '../../core/state/ArrayStateAtom';
4
+ import type { CoreEffects, CoreExportNames, CoreStateAtoms } from '../../core/Types';
5
+ import type { CoreUtils } from '../../core/utils/Types';
6
+ import type { VideoElementStateExportNames } from '../../playback/video-element-state/Types';
7
+ import type { VideoElementStateAtom } from '../../playback/video-element-state/VideoElementStateAtom';
8
+ import type { SourceStateAtom } from '../../source/atoms/SourceStateAtom';
9
+ import type { SourceExportNames } from '../../source/Types';
10
+ import type { SourcesApiExportNames } from '../../sources-api/Types';
11
+ import type { ContextWithState } from '../../Types';
12
+ import type { SeekableRangeProviderAtom } from './SeekableRangeProviderAtom';
13
+ export type TimeRange = {
14
+ start: number;
15
+ end: number;
16
+ };
17
+ export type TimeApi = {
18
+ currentTime: number;
19
+ readonly duration: number;
20
+ readonly seekableRange: TimeRange;
21
+ playbackRate: number;
22
+ };
23
+ export type TimeApiPackageDependencies = {
24
+ [CoreExportNames.CoreStateAtoms]: CoreStateAtoms;
25
+ [CoreExportNames.CoreEffects]: CoreEffects;
26
+ [CoreExportNames.Utils]: CoreUtils;
27
+ [VideoElementStateExportNames.VideoElementState]: VideoElementStateAtom;
28
+ [SourceExportNames.SourceState]: SourceStateAtom;
29
+ [SourcesApiExportNames.SourceApiManager]: ApiManager<TimeApi>;
30
+ };
31
+ export declare const SeekableRangeProviders = "seekable-range-providers";
32
+ export type SeekableRangeProviders = {
33
+ [SeekableRangeProviders]: ArrayAtom<SeekableRangeProviderAtom>;
34
+ };
35
+ export type TimeApiPackageExports = SeekableRangeProviders;
36
+ export type TimeApiPackageContext = ContextHaving<TimeApiPackageDependencies, TimeApiPackageExports, ContextWithState>;
@@ -0,0 +1,19 @@
1
+ import type { ApiManager } from '../../../../framework-types/api-manager/ApiManager';
2
+ import type { EmptyObject } from '../../../../framework-types/BaseTypes';
3
+ import type { ContextHaving } from '../../../../framework-types/execution-context/Types';
4
+ import type { CoreEffects, CoreExportNames } from '../../core/Types';
5
+ import type { TargetVolumeStateAtom } from '../../playback/volume/TargetVolumeStateAtom';
6
+ import type { TargetVolumeState } from '../../playback/volume/Types';
7
+ import type { SourcesApiExportNames } from '../../sources-api/Types';
8
+ import type { ContextWithState } from '../../Types';
9
+ export type VolumeApi = {
10
+ volume: number;
11
+ muted: boolean;
12
+ };
13
+ export type VolumeApiPackageDependencies = {
14
+ [CoreExportNames.CoreEffects]: CoreEffects;
15
+ [TargetVolumeState]: TargetVolumeStateAtom;
16
+ [SourcesApiExportNames.SourceApiManager]: ApiManager<VolumeApi>;
17
+ };
18
+ export type VolumeApiPackageExports = EmptyObject;
19
+ export type VolumeApiPackageContext = ContextHaving<VolumeApiPackageDependencies, VolumeApiPackageExports, ContextWithState>;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @packageDocumentation PlaybackTechnology.package
3
+ *
4
+ * Provides the PlaybackTechnologyComponent for managing and resolving playback technologies.
5
+ *
6
+ * Technologies register themselves with the component, declaring:
7
+ * - Their type (manifest-parsing, segment-loading, presentation)
8
+ * - What other types they depend on
9
+ * - What source types they handle
10
+ * - Whether they're supported in the current environment
11
+ *
12
+ * The component auto-resolves valid technology chains when technologies are added.
13
+ *
14
+ * Example chain: [manifest-parsing (dash)] -> [presentation (mse)]
15
+ * Example standalone: [presentation (native)]
16
+ *
17
+ * ### `PlaybackTechnology` Package Dependency Graph
18
+ * <svg aria-roledescription="flowchart-v2" role="graphics-document document" viewBox="-8 -8 292.578125 49" style="max-width: 292.578px; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="100%" id="my-svg"><style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#ccc;}#my-svg .error-icon{fill:#a44141;}#my-svg .error-text{fill:#ddd;stroke:#ddd;}#my-svg .edge-thickness-normal{stroke-width:2px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:lightgrey;stroke:lightgrey;}#my-svg .marker.cross{stroke:lightgrey;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#ccc;}#my-svg .cluster-label text{fill:#F9FFFE;}#my-svg .cluster-label span,#my-svg p{color:#F9FFFE;}#my-svg .label text,#my-svg span,#my-svg p{fill:#ccc;color:#ccc;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#1f2020;stroke:#81B1DB;stroke-width:1px;}#my-svg .flowchart-label text{text-anchor:middle;}#my-svg .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#my-svg .node .label{text-align:center;}#my-svg .node.clickable{cursor:pointer;}#my-svg .arrowheadPath{fill:lightgrey;}#my-svg .edgePath .path{stroke:lightgrey;stroke-width:2.0px;}#my-svg .flowchart-link{stroke:lightgrey;fill:none;}#my-svg .edgeLabel{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#my-svg .edgeLabel rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#my-svg .labelBkg{background-color:rgba(87.75, 87.75, 87.75, 0.5);}#my-svg .cluster rect{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:rgba(255, 255, 255, 0.25);stroke-width:1px;}#my-svg .cluster text{fill:#F9FFFE;}#my-svg .cluster span,#my-svg p{color:#F9FFFE;}#my-svg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(20, 1.5873015873%, 12.3529411765%);border:1px solid rgba(255, 255, 255, 0.25);border-radius:2px;pointer-events:none;z-index:100;}#my-svg .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#ccc;}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g><marker orient="auto" markerHeight="12" markerWidth="12" markerUnits="userSpaceOnUse" refY="5" refX="6" viewBox="0 0 10 10" class="marker flowchart" id="my-svg_flowchart-pointEnd"><path style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 0 0 L 10 5 L 0 10 z"/></marker><marker orient="auto" markerHeight="12" markerWidth="12" markerUnits="userSpaceOnUse" refY="5" refX="4.5" viewBox="0 0 10 10" class="marker flowchart" id="my-svg_flowchart-pointStart"><path style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 0 5 L 10 10 L 10 0 z"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5" refX="11" viewBox="0 0 10 10" class="marker flowchart" id="my-svg_flowchart-circleEnd"><circle style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" r="5" cy="5" cx="5"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5" refX="-1" viewBox="0 0 10 10" class="marker flowchart" id="my-svg_flowchart-circleStart"><circle style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" r="5" cy="5" cx="5"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5.2" refX="12" viewBox="0 0 11 11" class="marker cross flowchart" id="my-svg_flowchart-crossEnd"><path style="stroke-width: 2; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 1,1 l 9,9 M 10,1 l -9,9"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5.2" refX="-1" viewBox="0 0 11 11" class="marker cross flowchart" id="my-svg_flowchart-crossStart"><path style="stroke-width: 2; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 1,1 l 9,9 M 10,1 l -9,9"/></marker><g class="root"><g class="clusters"/><g class="edgePaths"><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-PlaybackTechnology LE-Source" id="L-PlaybackTechnology-Source-0" d="M160.875,16.5L165.042,16.5C169.208,16.5,177.542,16.5,184.992,16.5C192.442,16.5,199.008,16.5,202.292,16.5L205.575,16.5"/></g><g class="edgeLabels"><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g></g><g class="nodes"><g transform="translate(80.4375, 16.5)" data-id="PlaybackTechnology" data-node="true" id="flowchart-PlaybackTechnology-0" class="node default default flowchart-label"><rect height="33" width="160.875" y="-16.5" x="-80.4375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-72.9375, -9)" style="" class="label"><rect/><foreignObject height="18" width="145.875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">PlaybackTechnology</span></div></foreignObject></g></g><g transform="translate(243.7265625, 16.5)" data-id="Source" data-node="true" id="flowchart-Source-1" class="node default default flowchart-label"><rect height="33" width="65.703125" y="-16.5" x="-32.8515625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-25.3515625, -9)" style="" class="label"><rect/><foreignObject height="18" width="50.703125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Source</span></div></foreignObject></g></g></g></g></g></svg>
19
+ */
20
+ import type { EmptyObject } from '../../Types';
21
+ import type { PlaybackTechnologyDependencies, PlaybackTechnologyExports } from './Types';
22
+ export declare const PlaybackTechnologyPackage: import("../../../framework-types/package-api/Package").Package<PlaybackTechnologyDependencies, PlaybackTechnologyExports, EmptyObject>;
23
+ export default PlaybackTechnologyPackage;
@@ -0,0 +1,54 @@
1
+ import type { AnyRecord } from '../../../framework-types/BaseTypes';
2
+ import type { ContextHaving } from '../../../framework-types/execution-context/Types';
3
+ import type { NamedTask, Task } from '../../../framework-types/task/Types';
4
+ import type { BaseContext } from '../../../framework-types/Types';
5
+ import type { EmptyObject } from '../../Types';
6
+ import type { Constants, PlaybackTechnology, ResourceType } from '../core/Constants';
7
+ import type { CoreEffects, CoreExportNames } from '../core/Types';
8
+ import type { Resource } from '../source/atoms/SourceConfigAtom';
9
+ import type { SourceStateAtom } from '../source/atoms/SourceStateAtom';
10
+ import type { SourceExportNames } from '../source/Types';
11
+ import type { ContextWithState } from '../Types';
12
+ export declare enum PlaybackTechnologyEntryType {
13
+ Presentation = "presentation",
14
+ Manifest = "manifest"
15
+ }
16
+ export declare function isManifestEntry(entry: TechnologyEntry): entry is ManifestTechnologyEntry;
17
+ export declare function isPresentationEntry(entry: TechnologyEntry): entry is PresentationTechnologyEntry;
18
+ export interface TechnologyEntryBase<Exports extends AnyRecord = EmptyObject> {
19
+ type: PlaybackTechnologyEntryType;
20
+ name: string;
21
+ depends: PlaybackTechnologyEntryType[];
22
+ supported: (resource: Resource, playbackTechnology?: PlaybackTechnology) => boolean;
23
+ instantiate: NamedTask<Task<ContextHaving<PlaybackTechnologyDependencies, Exports, ContextWithState>, Resource, void>>;
24
+ }
25
+ export type PresentationTechnologyEntry<Exports extends AnyRecord = EmptyObject> = TechnologyEntryBase<Exports> & {
26
+ type: PlaybackTechnologyEntryType.Presentation;
27
+ supported: (resource: Resource, playbackTechnology: PlaybackTechnology) => boolean;
28
+ };
29
+ export type ManifestTechnologyEntry<Exports extends AnyRecord = EmptyObject> = TechnologyEntryBase<Exports> & {
30
+ type: PlaybackTechnologyEntryType.Manifest;
31
+ supported: (resource: Resource) => boolean;
32
+ };
33
+ export type TechnologyEntry<Exports extends AnyRecord = EmptyObject> = PresentationTechnologyEntry<Exports> | ManifestTechnologyEntry<Exports>;
34
+ export interface TechnologyChain {
35
+ technologies: TechnologyEntry[];
36
+ playbackTechnology: PlaybackTechnology;
37
+ }
38
+ export type TechnologyPriority = {
39
+ manifest: ResourceType[];
40
+ playback: PlaybackTechnology[];
41
+ };
42
+ export type PlaybackTechnologyDependencies = {
43
+ [SourceExportNames.SourceState]: SourceStateAtom;
44
+ [CoreExportNames.CoreEffects]: CoreEffects;
45
+ [CoreExportNames.Constants]: Constants;
46
+ };
47
+ export type PlaybackTechnologyContext = ContextHaving<PlaybackTechnologyDependencies, EmptyObject, ContextWithState>;
48
+ export interface PlaybackTechnologyComponent {
49
+ addTechnology: NamedTask<Task<BaseContext, TechnologyEntry<AnyRecord>, void>>;
50
+ }
51
+ export declare const PlaybackTechnologyComponent = "playback-technology-component";
52
+ export type PlaybackTechnologyExports = {
53
+ [PlaybackTechnologyComponent]: PlaybackTechnologyComponent;
54
+ };
@@ -10,16 +10,14 @@
10
10
  */
11
11
  import type { ContextHaving } from '../../../framework-types/execution-context/Types';
12
12
  import type { BaseContext } from '../../../framework-types/Types';
13
- import { BundleExportNames } from '../../bundles/Types';
14
- import type { Logger } from '../core/utils/Logger';
15
- import type { createEventBus } from '../event-bus/EventBus';
13
+ import type { createEventBus, extendEventBusTypes } from '../event-bus/EventBus';
16
14
  import type { EventBus } from '../event-bus/Types';
17
15
  import { EventBusExportNames } from '../event-bus/Types';
18
16
  import type { PlayerApi, PlayerEventMap } from './Types';
19
17
  import { PlayerApiExportNames } from './Types';
20
18
  type PlayerApiDependencies = {
21
- [BundleExportNames.Logger]: Logger;
22
19
  [EventBusExportNames.CreateEventBus]: typeof createEventBus;
20
+ [EventBusExportNames.ExtendEventBusTypes]: typeof extendEventBusTypes;
23
21
  };
24
22
  type PlayerApiExports = {
25
23
  [PlayerApiExportNames.PlayerEventBus]: EventBus<PlayerEventMap>;
@@ -1,4 +1,4 @@
1
- import type { LogLevel } from '../core/utils/Logger';
1
+ import type { LogLevel, OnLogCallback } from '../../../framework-types/effects/LoggerEffect';
2
2
  import type { EventBus } from '../event-bus/Types';
3
3
  export declare enum PlayerApiExportNames {
4
4
  PlayerEventBus = "player-event-bus"
@@ -16,6 +16,7 @@ export type PlayerEventMap = {
16
16
  };
17
17
  export type PlayerEventBus = EventBus<PlayerEventMap>;
18
18
  export type PlayerApi = {
19
- events: EventBus<PlayerEventMap>;
19
+ events: EventBus<PlayerEventMap, typeof PlayerEvent>;
20
20
  logLevel: LogLevel;
21
+ addOnLogCallback: (callback: OnLogCallback) => () => void;
21
22
  };
@@ -0,0 +1,3 @@
1
+ import type { EmptyObject } from '../../../../framework-types/BaseTypes';
2
+ export declare const MsePlaybackPackage: import("../../../../framework-types/package-api/Package").Package<EmptyObject, EmptyObject, EmptyObject>;
3
+ export default MsePlaybackPackage;
@@ -0,0 +1,26 @@
1
+ import type { EmptyObject } from '../../../../../framework-types/BaseTypes';
2
+ import type { ContextHaving } from '../../../../../framework-types/execution-context/Types';
3
+ import type { CapabilitiesExportNames, PlatformCapabilities } from '../../../capabilities/Types';
4
+ import type { Constants } from '../../../core/Constants';
5
+ import type { CoreEffects, CoreExportNames, CoreStateAtoms } from '../../../core/Types';
6
+ import type { PlaybackTechnologyComponent, PresentationTechnologyEntry } from '../../../playback-technology/Types';
7
+ import type { Resource } from '../../../source/atoms/SourceConfigAtom';
8
+ import type { ContextWithState } from '../../../Types';
9
+ import type { MsePresentationStateAtom } from './atoms/MsePresentationStateAtom';
10
+ export declare const MsePresentationState = "mse-presentation-state";
11
+ export type MsePresentationState = {
12
+ [MsePresentationState]: MsePresentationStateAtom;
13
+ };
14
+ export interface MsePresentationStateData {
15
+ resource: Resource;
16
+ }
17
+ export type MsePlaybackTechnologyExports = EmptyObject;
18
+ export type MsePlaybackTechnologyDependencies = {
19
+ [PlaybackTechnologyComponent]: PlaybackTechnologyComponent;
20
+ [CoreExportNames.Constants]: Constants;
21
+ [CoreExportNames.CoreStateAtoms]: CoreStateAtoms;
22
+ [CoreExportNames.CoreEffects]: CoreEffects;
23
+ [CapabilitiesExportNames.PlatformCapabilities]: PlatformCapabilities;
24
+ };
25
+ export type MsePlaybackTechnologyContext = ContextHaving<MsePlaybackTechnologyDependencies, MsePlaybackTechnologyExports, ContextWithState>;
26
+ export type MsePlaybackTechnology = PresentationTechnologyEntry<MsePresentationState>;
@@ -0,0 +1,10 @@
1
+ import type { EmptyObject } from '../../../../../../framework-types/BaseTypes';
2
+ import type { ContextHaving } from '../../../../../../framework-types/execution-context/Types';
3
+ import type { StateAtom } from '../../../../core/state/Types';
4
+ import type { Resource } from '../../../../source/atoms/SourceConfigAtom';
5
+ import type { ContextWithState } from '../../../../Types';
6
+ import type { MsePresentationStateData } from '../Types';
7
+ export type MsePresentationStateAtom = StateAtom<MsePresentationStateData, EmptyObject>;
8
+ type ExtendedContext = ContextHaving<EmptyObject, EmptyObject, ContextWithState>;
9
+ export declare function createMsePresentationStateAtom(context: ExtendedContext, resource: Resource): MsePresentationStateAtom;
10
+ export {};
@@ -0,0 +1,55 @@
1
+ /**
2
+ * @packageDocumentation Presentation.package
3
+ *
4
+ * Provides MSE interface to render the content from the PWX Stream
5
+ * data structure. It handles all of the related presentation logic:
6
+ *
7
+ * - Segment data queuing and appendage
8
+ * - Buffer clearing
9
+ * - timestamp offset handling
10
+ * - Gap handling
11
+ * - Video element related utilities
12
+ *
13
+ * ### `MsePresentation` Package Dependency Graph
14
+ * <svg aria-roledescription="flowchart-v2" role="graphics-document document" viewBox="-8 -8 16 16" style="max-width: 16px; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="100%" id="my-svg"><style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#ccc;}#my-svg .error-icon{fill:#a44141;}#my-svg .error-text{fill:#ddd;stroke:#ddd;}#my-svg .edge-thickness-normal{stroke-width:2px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:lightgrey;stroke:lightgrey;}#my-svg .marker.cross{stroke:lightgrey;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#ccc;}#my-svg .cluster-label text{fill:#F9FFFE;}#my-svg .cluster-label span,#my-svg p{color:#F9FFFE;}#my-svg .label text,#my-svg span,#my-svg p{fill:#ccc;color:#ccc;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#1f2020;stroke:#81B1DB;stroke-width:1px;}#my-svg .flowchart-label text{text-anchor:middle;}#my-svg .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#my-svg .node .label{text-align:center;}#my-svg .node.clickable{cursor:pointer;}#my-svg .arrowheadPath{fill:lightgrey;}#my-svg .edgePath .path{stroke:lightgrey;stroke-width:2.0px;}#my-svg .flowchart-link{stroke:lightgrey;fill:none;}#my-svg .edgeLabel{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#my-svg .edgeLabel rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#my-svg .labelBkg{background-color:rgba(87.75, 87.75, 87.75, 0.5);}#my-svg .cluster rect{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:rgba(255, 255, 255, 0.25);stroke-width:1px;}#my-svg .cluster text{fill:#F9FFFE;}#my-svg .cluster span,#my-svg p{color:#F9FFFE;}#my-svg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(20, 1.5873015873%, 12.3529411765%);border:1px solid rgba(255, 255, 255, 0.25);border-radius:2px;pointer-events:none;z-index:100;}#my-svg .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#ccc;}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g><marker orient="auto" markerHeight="12" markerWidth="12" markerUnits="userSpaceOnUse" refY="5" refX="6" viewBox="0 0 10 10" class="marker flowchart" id="my-svg_flowchart-pointEnd"><path style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 0 0 L 10 5 L 0 10 z"/></marker><marker orient="auto" markerHeight="12" markerWidth="12" markerUnits="userSpaceOnUse" refY="5" refX="4.5" viewBox="0 0 10 10" class="marker flowchart" id="my-svg_flowchart-pointStart"><path style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 0 5 L 10 10 L 10 0 z"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5" refX="11" viewBox="0 0 10 10" class="marker flowchart" id="my-svg_flowchart-circleEnd"><circle style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" r="5" cy="5" cx="5"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5" refX="-1" viewBox="0 0 10 10" class="marker flowchart" id="my-svg_flowchart-circleStart"><circle style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" r="5" cy="5" cx="5"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5.2" refX="12" viewBox="0 0 11 11" class="marker cross flowchart" id="my-svg_flowchart-crossEnd"><path style="stroke-width: 2; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 1,1 l 9,9 M 10,1 l -9,9"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5.2" refX="-1" viewBox="0 0 11 11" class="marker cross flowchart" id="my-svg_flowchart-crossStart"><path style="stroke-width: 2; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 1,1 l 9,9 M 10,1 l -9,9"/></marker><g class="root"><g class="clusters"/><g class="edgePaths"/><g class="edgeLabels"/><g class="nodes"/></g></g></svg>
15
+ */
16
+ import type { ContextHaving, ContextUsing } from '../../../../../framework-types/execution-context/Types';
17
+ import type { NamedTask, Task } from '../../../../../framework-types/task/Types';
18
+ import type { EmptyObject } from '../../../../Types';
19
+ import type { PlatformCapabilities } from '../../../capabilities/Types';
20
+ import { CapabilitiesExportNames } from '../../../capabilities/Types';
21
+ import type { MapStateAtom } from '../../../core/state/MapStateAtom';
22
+ import type { StoreEffectFactory } from '../../../core/state/StoreEffectFactory';
23
+ import type { StreamTimelineAtom } from '../../../core/state/stream-timeline/StreamTimelineMapAtom';
24
+ import type { CoreExports } from '../../../core/Types';
25
+ import { DataExportNames } from '../../../data/Types';
26
+ import type SegmentProcessorErrors from '../../../segment-processing/Errors';
27
+ import type { SegmentProcessingComponent, SegmentProcessorContext, SelectContainerFormatInput } from '../../../segment-processing/Types';
28
+ import { SegmentProcessingExportNames } from '../../../segment-processing/Types';
29
+ import type { SourceState } from '../../../source/atoms/SourceStateAtom';
30
+ import { SourceExportNames } from '../../../source/Types';
31
+ import type { ContainerFormat } from '../../../stream-data-structure/segment/SegmentDataAtom';
32
+ import type { SelectionGroupAtom } from '../../../stream-data-structure/selection-group/SelectionGroupAtom';
33
+ import type { StreamDataStructurePackageExports } from '../../../stream-data-structure/Types';
34
+ import { StreamingState } from '../../../streaming/Types';
35
+ import type { ContextWithState } from '../../../Types';
36
+ import { MsePresentationState } from '../playback-technology/Types';
37
+ import type { SegmentOutputCache } from './cache/Types';
38
+ import { MsePresentationExportNames } from './Types';
39
+ type Dependencies = {
40
+ [SourceExportNames.SourceState]: SourceState;
41
+ [DataExportNames.StreamTimeline]: StreamTimelineAtom;
42
+ [CapabilitiesExportNames.PlatformCapabilities]: PlatformCapabilities;
43
+ [SegmentProcessingExportNames.SegmentProcessingComponent]: SegmentProcessingComponent;
44
+ [SegmentProcessingExportNames.SegmentProcessorErrors]: typeof SegmentProcessorErrors;
45
+ } & CoreExports & StreamDataStructurePackageExports & MsePresentationState & StreamingState;
46
+ export type SelectContainerFormatTaskType = (context: PresentationContext) => NamedTask<Task<SegmentProcessorContext, SelectContainerFormatInput, ContainerFormat>>;
47
+ export type PresentationExports = {
48
+ [MsePresentationExportNames.SelectContainerFormat]: SelectContainerFormatTaskType;
49
+ };
50
+ export type PresentationContext = ContextUsing<[
51
+ StoreEffectFactory<'segmentDataCache', SegmentOutputCache>,
52
+ StoreEffectFactory<'containerFormatMap', MapStateAtom<SelectionGroupAtom, ContainerFormat>>
53
+ ], ContextHaving<Dependencies, PresentationExports, ContextWithState>>;
54
+ export declare const MsePresentationPackage: import("../../../../../framework-types/package-api/Package").Package<Dependencies, PresentationExports, EmptyObject>;
55
+ export default MsePresentationPackage;
@@ -1,3 +1,3 @@
1
- export declare enum PresentationExportNames {
1
+ export declare enum MsePresentationExportNames {
2
2
  SelectContainerFormat = "presentation-select-container-format-task"
3
3
  }
@@ -0,0 +1,4 @@
1
+ import type { DataStreamAtom } from '../../../../core/state/data-stream/DataStreamAtom';
2
+ import type { SegmentAtom } from '../../../../stream-data-structure/segment/SegmentAtom';
3
+ import type { SegmentDataAtom } from '../../../../stream-data-structure/segment/SegmentDataAtom';
4
+ export type SegmentOutputCache = Map<SegmentAtom, DataStreamAtom<SegmentDataAtom>>;
@@ -0,0 +1,4 @@
1
+ import type { EmptyObject } from '../../../../framework-types/BaseTypes';
2
+ import type { NativePlaybackDependencies } from './Types';
3
+ export declare const NativePlaybackPackage: import("../../../../framework-types/package-api/Package").Package<NativePlaybackDependencies, EmptyObject, EmptyObject>;
4
+ export default NativePlaybackPackage;
@@ -0,0 +1,12 @@
1
+ import type { EmptyObject } from '../../../../framework-types/BaseTypes';
2
+ import type { ContextHaving } from '../../../../framework-types/execution-context/Types';
3
+ import { type createNetworkAtom } from '../../core/network/NetworkAtom';
4
+ import type { NetworkTask } from '../../network/NetworkTask';
5
+ import type { NetworkExportNames } from '../../network/Types';
6
+ import type { ContextWithState } from '../../Types';
7
+ export type NativePlaybackExports = EmptyObject;
8
+ export type NativePlaybackDependencies = {
9
+ [NetworkExportNames.NetworkAtom]: typeof createNetworkAtom;
10
+ [NetworkExportNames.NetworkTask]: typeof NetworkTask;
11
+ };
12
+ export type NativePlaybackContext = ContextHaving<NativePlaybackDependencies, NativePlaybackExports, ContextWithState>;
@@ -0,0 +1,26 @@
1
+ import type { EmptyObject } from '../../../../../framework-types/BaseTypes';
2
+ import type { ContextHaving } from '../../../../../framework-types/execution-context/Types';
3
+ import type { CapabilitiesExportNames, PlatformCapabilities } from '../../../capabilities/Types';
4
+ import type { Constants } from '../../../core/Constants';
5
+ import type { CoreEffects, CoreExportNames, CoreStateAtoms } from '../../../core/Types';
6
+ import type { PlaybackTechnologyComponent, PresentationTechnologyEntry } from '../../../playback-technology/Types';
7
+ import type { Resource } from '../../../source/atoms/SourceConfigAtom';
8
+ import type { ContextWithState } from '../../../Types';
9
+ import type { NativePresentationStateAtom } from './atoms/NativePresentationStateAtom';
10
+ export declare const NativePresentationState = "native-presentation-state";
11
+ export type NativePresentationState = {
12
+ [NativePresentationState]: NativePresentationStateAtom;
13
+ };
14
+ export interface NativePresentationStateData {
15
+ resource: Resource;
16
+ }
17
+ export type NativePlaybackTechnologyExports = EmptyObject;
18
+ export type NativePlaybackTechnologyDependencies = {
19
+ [PlaybackTechnologyComponent]: PlaybackTechnologyComponent;
20
+ [CoreExportNames.Constants]: Constants;
21
+ [CoreExportNames.CoreStateAtoms]: CoreStateAtoms;
22
+ [CoreExportNames.CoreEffects]: CoreEffects;
23
+ [CapabilitiesExportNames.PlatformCapabilities]: PlatformCapabilities;
24
+ };
25
+ export type NativePlaybackTechnologyContext = ContextHaving<NativePlaybackTechnologyDependencies, NativePlaybackTechnologyExports, ContextWithState>;
26
+ export type NativePlaybackTechnology = PresentationTechnologyEntry<NativePresentationState>;
@@ -0,0 +1,10 @@
1
+ import type { EmptyObject } from '../../../../../../framework-types/BaseTypes';
2
+ import type { ContextHaving } from '../../../../../../framework-types/execution-context/Types';
3
+ import type { StateAtom } from '../../../../core/state/Types';
4
+ import type { Resource } from '../../../../source/atoms/SourceConfigAtom';
5
+ import type { ContextWithState } from '../../../../Types';
6
+ import type { NativePresentationStateData } from '../Types';
7
+ export type NativePresentationStateAtom = StateAtom<NativePresentationStateData, EmptyObject>;
8
+ type ExtendedContext = ContextHaving<EmptyObject, EmptyObject, ContextWithState>;
9
+ export declare function createNativePresentationStateAtom(context: ExtendedContext, resource: Resource): NativePresentationStateAtom;
10
+ export {};
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @packageDocumentation NativePresentation.package
3
+ *
4
+ * Provides native playback presentation for HLS (on Safari) and progressive
5
+ * resources. Sets `video.src` directly and lets the browser handle playback
6
+ * natively without MSE or segment processing.
7
+ *
8
+ * ### `NativePresentation` Package Dependency Graph
9
+ * <svg aria-roledescription="flowchart-v2" role="graphics-document document" viewBox="-8 -8 16 16" style="max-width: 16px; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="100%" id="my-svg"><style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#ccc;}#my-svg .error-icon{fill:#a44141;}#my-svg .error-text{fill:#ddd;stroke:#ddd;}#my-svg .edge-thickness-normal{stroke-width:2px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:lightgrey;stroke:lightgrey;}#my-svg .marker.cross{stroke:lightgrey;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#ccc;}#my-svg .cluster-label text{fill:#F9FFFE;}#my-svg .cluster-label span,#my-svg p{color:#F9FFFE;}#my-svg .label text,#my-svg span,#my-svg p{fill:#ccc;color:#ccc;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#1f2020;stroke:#81B1DB;stroke-width:1px;}#my-svg .flowchart-label text{text-anchor:middle;}#my-svg .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#my-svg .node .label{text-align:center;}#my-svg .node.clickable{cursor:pointer;}#my-svg .arrowheadPath{fill:lightgrey;}#my-svg .edgePath .path{stroke:lightgrey;stroke-width:2.0px;}#my-svg .flowchart-link{stroke:lightgrey;fill:none;}#my-svg .edgeLabel{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#my-svg .edgeLabel rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#my-svg .labelBkg{background-color:rgba(87.75, 87.75, 87.75, 0.5);}#my-svg .cluster rect{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:rgba(255, 255, 255, 0.25);stroke-width:1px;}#my-svg .cluster text{fill:#F9FFFE;}#my-svg .cluster span,#my-svg p{color:#F9FFFE;}#my-svg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(20, 1.5873015873%, 12.3529411765%);border:1px solid rgba(255, 255, 255, 0.25);border-radius:2px;pointer-events:none;z-index:100;}#my-svg .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#ccc;}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g><marker orient="auto" markerHeight="12" markerWidth="12" markerUnits="userSpaceOnUse" refY="5" refX="6" viewBox="0 0 10 10" class="marker flowchart" id="my-svg_flowchart-pointEnd"><path style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 0 0 L 10 5 L 0 10 z"/></marker><marker orient="auto" markerHeight="12" markerWidth="12" markerUnits="userSpaceOnUse" refY="5" refX="4.5" viewBox="0 0 10 10" class="marker flowchart" id="my-svg_flowchart-pointStart"><path style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 0 5 L 10 10 L 10 0 z"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5" refX="11" viewBox="0 0 10 10" class="marker flowchart" id="my-svg_flowchart-circleEnd"><circle style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" r="5" cy="5" cx="5"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5" refX="-1" viewBox="0 0 10 10" class="marker flowchart" id="my-svg_flowchart-circleStart"><circle style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" r="5" cy="5" cx="5"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5.2" refX="12" viewBox="0 0 11 11" class="marker cross flowchart" id="my-svg_flowchart-crossEnd"><path style="stroke-width: 2; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 1,1 l 9,9 M 10,1 l -9,9"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5.2" refX="-1" viewBox="0 0 11 11" class="marker cross flowchart" id="my-svg_flowchart-crossStart"><path style="stroke-width: 2; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 1,1 l 9,9 M 10,1 l -9,9"/></marker><g class="root"><g class="clusters"/><g class="edgePaths"/><g class="edgeLabels"/><g class="nodes"/></g></g></svg>
10
+ */
11
+ import type { EmptyObject } from '../../../../Types';
12
+ import type { NativePresentationDependencies } from './Types';
13
+ export declare const NativePresentationPackage: import("../../../../../framework-types/package-api/Package").Package<NativePresentationDependencies, import("../../../../../framework-types/BaseTypes").EmptyObject, EmptyObject>;
14
+ export default NativePresentationPackage;
@@ -0,0 +1,12 @@
1
+ import type { EmptyObject } from '../../../../../framework-types/BaseTypes';
2
+ import type { ContextHaving } from '../../../../../framework-types/execution-context/Types';
3
+ import type { CoreExports } from '../../../core/Types';
4
+ import type { SourceState } from '../../../source/atoms/SourceStateAtom';
5
+ import type { SourceExportNames } from '../../../source/Types';
6
+ import type { ContextWithState } from '../../../Types';
7
+ import type { NativePresentationState } from '../playback-technology/Types';
8
+ export type NativePresentationExports = EmptyObject;
9
+ export type NativePresentationDependencies = {
10
+ [SourceExportNames.SourceState]: SourceState;
11
+ } & CoreExports & NativePresentationState;
12
+ export type NativePresentationContext = ContextHaving<NativePresentationDependencies, NativePresentationExports, ContextWithState>;