@videojs/spf 10.0.0-beta.2 → 10.0.0-beta.21

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 (264) hide show
  1. package/README.md +16 -40
  2. package/dist/default/core/abr/bandwidth-estimator.js +95 -0
  3. package/dist/default/core/abr/bandwidth-estimator.js.map +1 -0
  4. package/dist/default/core/abr/ewma.js +71 -0
  5. package/dist/default/core/abr/ewma.js.map +1 -0
  6. package/dist/default/core/abr/quality-selection.js +53 -0
  7. package/dist/default/core/abr/quality-selection.js.map +1 -0
  8. package/dist/default/core/buffer/back-buffer.js +46 -0
  9. package/dist/default/core/buffer/back-buffer.js.map +1 -0
  10. package/dist/default/core/buffer/forward-buffer.js +73 -0
  11. package/dist/default/core/buffer/forward-buffer.js.map +1 -0
  12. package/dist/default/core/create-machine-actor.js +91 -0
  13. package/dist/default/core/create-machine-actor.js.map +1 -0
  14. package/dist/default/core/create-machine-reactor.js +83 -0
  15. package/dist/default/core/create-machine-reactor.js.map +1 -0
  16. package/dist/default/core/create-transition-actor.js +46 -0
  17. package/dist/default/core/create-transition-actor.js.map +1 -0
  18. package/dist/default/core/features/calculate-presentation-duration.js +53 -0
  19. package/dist/default/core/features/calculate-presentation-duration.js.map +1 -0
  20. package/dist/default/core/features/quality-switching.js +69 -0
  21. package/dist/default/core/features/quality-switching.js.map +1 -0
  22. package/dist/default/core/features/resolve-presentation.js +73 -0
  23. package/dist/default/core/features/resolve-presentation.js.map +1 -0
  24. package/dist/default/core/features/resolve-track.js +66 -0
  25. package/dist/default/core/features/resolve-track.js.map +1 -0
  26. package/dist/default/core/features/select-tracks.js +130 -0
  27. package/dist/default/core/features/select-tracks.js.map +1 -0
  28. package/dist/default/core/features/sync-preload-attribute.js +26 -0
  29. package/dist/default/core/features/sync-preload-attribute.js.map +1 -0
  30. package/dist/default/core/hls/parse-attributes.js +134 -0
  31. package/dist/default/core/hls/parse-attributes.js.map +1 -0
  32. package/dist/default/core/hls/parse-media-playlist.js +82 -0
  33. package/dist/default/core/hls/parse-media-playlist.js.map +1 -0
  34. package/dist/default/core/hls/parse-multivariant.js +214 -0
  35. package/dist/default/core/hls/parse-multivariant.js.map +1 -0
  36. package/dist/default/core/hls/resolve-url.js +11 -0
  37. package/dist/default/core/hls/resolve-url.js.map +1 -0
  38. package/dist/default/core/machine.js +26 -0
  39. package/dist/default/core/machine.js.map +1 -0
  40. package/dist/default/core/signals/effect.js +41 -0
  41. package/dist/default/core/signals/effect.js.map +1 -0
  42. package/dist/default/core/signals/primitives.js +32 -0
  43. package/dist/default/core/signals/primitives.js.map +1 -0
  44. package/dist/default/core/task.js +191 -0
  45. package/dist/default/core/task.js.map +1 -0
  46. package/dist/default/core/types/index.js +15 -0
  47. package/dist/default/core/types/index.js.map +1 -0
  48. package/dist/default/core/utils/generate-id.js +21 -0
  49. package/dist/default/core/utils/generate-id.js.map +1 -0
  50. package/dist/default/core/utils/track-selection.js +39 -0
  51. package/dist/default/core/utils/track-selection.js.map +1 -0
  52. package/dist/default/dom/features/end-of-stream.js +145 -0
  53. package/dist/default/dom/features/end-of-stream.js.map +1 -0
  54. package/dist/default/dom/features/load-segments.js +192 -0
  55. package/dist/default/dom/features/load-segments.js.map +1 -0
  56. package/dist/default/dom/features/load-text-track-cues.js +104 -0
  57. package/dist/default/dom/features/load-text-track-cues.js.map +1 -0
  58. package/dist/default/dom/features/segment-loader-actor.js +243 -0
  59. package/dist/default/dom/features/segment-loader-actor.js.map +1 -0
  60. package/dist/default/dom/features/setup-mediasource.js +48 -0
  61. package/dist/default/dom/features/setup-mediasource.js.map +1 -0
  62. package/dist/default/dom/features/setup-sourcebuffer.js +78 -0
  63. package/dist/default/dom/features/setup-sourcebuffer.js.map +1 -0
  64. package/dist/default/dom/features/sync-text-tracks.js +95 -0
  65. package/dist/default/dom/features/sync-text-tracks.js.map +1 -0
  66. package/dist/default/dom/features/text-track-segment-loader-actor.js +55 -0
  67. package/dist/default/dom/features/text-track-segment-loader-actor.js.map +1 -0
  68. package/dist/default/dom/features/text-tracks-actor.js +42 -0
  69. package/dist/default/dom/features/text-tracks-actor.js.map +1 -0
  70. package/dist/default/dom/features/track-current-time.js +49 -0
  71. package/dist/default/dom/features/track-current-time.js.map +1 -0
  72. package/dist/default/dom/features/track-playback-initiated.js +66 -0
  73. package/dist/default/dom/features/track-playback-initiated.js.map +1 -0
  74. package/dist/default/dom/features/track-playback-rate.js +32 -0
  75. package/dist/default/dom/features/track-playback-rate.js.map +1 -0
  76. package/dist/default/dom/features/update-duration.js +78 -0
  77. package/dist/default/dom/features/update-duration.js.map +1 -0
  78. package/dist/default/dom/media/append-segment.js +60 -0
  79. package/dist/default/dom/media/append-segment.js.map +1 -0
  80. package/dist/default/dom/media/buffer-flusher.js +55 -0
  81. package/dist/default/dom/media/buffer-flusher.js.map +1 -0
  82. package/dist/default/dom/media/mediasource-setup.js +146 -0
  83. package/dist/default/dom/media/mediasource-setup.js.map +1 -0
  84. package/dist/default/dom/media/source-buffer-actor.js +137 -0
  85. package/dist/default/dom/media/source-buffer-actor.js.map +1 -0
  86. package/dist/default/dom/network/chunked-stream-iterable.js +49 -0
  87. package/dist/default/dom/network/chunked-stream-iterable.js.map +1 -0
  88. package/dist/default/dom/network/fetch.js +54 -0
  89. package/dist/default/dom/network/fetch.js.map +1 -0
  90. package/dist/default/dom/playback-engine/adapter.js +100 -0
  91. package/dist/default/dom/playback-engine/adapter.js.map +1 -0
  92. package/dist/default/dom/playback-engine/engine.js +142 -0
  93. package/dist/default/dom/playback-engine/engine.js.map +1 -0
  94. package/dist/default/dom/playback-engine.js +4 -0
  95. package/dist/default/dom/text/parse-vtt-segment.js +56 -0
  96. package/dist/default/dom/text/parse-vtt-segment.js.map +1 -0
  97. package/dist/default/dom.js +10 -0
  98. package/dist/{src-DRsS_H80.js → default/index.js} +3 -3
  99. package/dist/default/index.js.map +1 -0
  100. package/dist/dev/core/abr/bandwidth-estimator.d.ts +35 -0
  101. package/dist/dev/core/abr/bandwidth-estimator.d.ts.map +1 -0
  102. package/dist/dev/core/abr/bandwidth-estimator.js +95 -0
  103. package/dist/dev/core/abr/bandwidth-estimator.js.map +1 -0
  104. package/dist/dev/core/abr/ewma.js +71 -0
  105. package/dist/dev/core/abr/ewma.js.map +1 -0
  106. package/dist/dev/core/abr/quality-selection.js +53 -0
  107. package/dist/dev/core/abr/quality-selection.js.map +1 -0
  108. package/dist/dev/core/actor.d.ts +27 -0
  109. package/dist/dev/core/actor.d.ts.map +1 -0
  110. package/dist/dev/core/buffer/back-buffer.js +46 -0
  111. package/dist/dev/core/buffer/back-buffer.js.map +1 -0
  112. package/dist/dev/core/buffer/forward-buffer.js +73 -0
  113. package/dist/dev/core/buffer/forward-buffer.js.map +1 -0
  114. package/dist/dev/core/create-machine-actor.d.ts +12 -0
  115. package/dist/dev/core/create-machine-actor.d.ts.map +1 -0
  116. package/dist/dev/core/create-machine-actor.js +91 -0
  117. package/dist/dev/core/create-machine-actor.js.map +1 -0
  118. package/dist/dev/core/create-machine-reactor.d.ts +8 -0
  119. package/dist/dev/core/create-machine-reactor.d.ts.map +1 -0
  120. package/dist/dev/core/create-machine-reactor.js +83 -0
  121. package/dist/dev/core/create-machine-reactor.js.map +1 -0
  122. package/dist/dev/core/create-transition-actor.d.ts +23 -0
  123. package/dist/dev/core/create-transition-actor.d.ts.map +1 -0
  124. package/dist/dev/core/create-transition-actor.js +46 -0
  125. package/dist/dev/core/create-transition-actor.js.map +1 -0
  126. package/dist/dev/core/features/calculate-presentation-duration.js +53 -0
  127. package/dist/dev/core/features/calculate-presentation-duration.js.map +1 -0
  128. package/dist/dev/core/features/quality-switching.js +69 -0
  129. package/dist/dev/core/features/quality-switching.js.map +1 -0
  130. package/dist/dev/core/features/resolve-presentation.js +73 -0
  131. package/dist/dev/core/features/resolve-presentation.js.map +1 -0
  132. package/dist/dev/core/features/resolve-track.js +66 -0
  133. package/dist/dev/core/features/resolve-track.js.map +1 -0
  134. package/dist/dev/core/features/select-tracks.js +130 -0
  135. package/dist/dev/core/features/select-tracks.js.map +1 -0
  136. package/dist/dev/core/features/sync-preload-attribute.js +26 -0
  137. package/dist/dev/core/features/sync-preload-attribute.js.map +1 -0
  138. package/dist/dev/core/hls/parse-attributes.js +134 -0
  139. package/dist/dev/core/hls/parse-attributes.js.map +1 -0
  140. package/dist/dev/core/hls/parse-media-playlist.js +82 -0
  141. package/dist/dev/core/hls/parse-media-playlist.js.map +1 -0
  142. package/dist/dev/core/hls/parse-multivariant.js +214 -0
  143. package/dist/dev/core/hls/parse-multivariant.js.map +1 -0
  144. package/dist/dev/core/hls/resolve-url.js +11 -0
  145. package/dist/dev/core/hls/resolve-url.js.map +1 -0
  146. package/dist/dev/core/machine.d.ts +21 -0
  147. package/dist/dev/core/machine.d.ts.map +1 -0
  148. package/dist/dev/core/machine.js +26 -0
  149. package/dist/dev/core/machine.js.map +1 -0
  150. package/dist/dev/core/signals/effect.d.ts +15 -0
  151. package/dist/dev/core/signals/effect.d.ts.map +1 -0
  152. package/dist/dev/core/signals/effect.js +41 -0
  153. package/dist/dev/core/signals/effect.js.map +1 -0
  154. package/dist/dev/core/signals/primitives.d.ts +10 -0
  155. package/dist/dev/core/signals/primitives.d.ts.map +1 -0
  156. package/dist/dev/core/signals/primitives.js +32 -0
  157. package/dist/dev/core/signals/primitives.js.map +1 -0
  158. package/dist/dev/core/task.js +191 -0
  159. package/dist/dev/core/task.js.map +1 -0
  160. package/dist/dev/core/types/index.d.ts +166 -0
  161. package/dist/dev/core/types/index.d.ts.map +1 -0
  162. package/dist/dev/core/types/index.js +15 -0
  163. package/dist/dev/core/types/index.js.map +1 -0
  164. package/dist/dev/core/utils/generate-id.js +21 -0
  165. package/dist/dev/core/utils/generate-id.js.map +1 -0
  166. package/dist/dev/core/utils/track-selection.d.ts +16 -0
  167. package/dist/dev/core/utils/track-selection.d.ts.map +1 -0
  168. package/dist/dev/core/utils/track-selection.js +39 -0
  169. package/dist/dev/core/utils/track-selection.js.map +1 -0
  170. package/dist/dev/dom/features/end-of-stream.js +145 -0
  171. package/dist/dev/dom/features/end-of-stream.js.map +1 -0
  172. package/dist/dev/dom/features/load-segments.d.ts +72 -0
  173. package/dist/dev/dom/features/load-segments.d.ts.map +1 -0
  174. package/dist/dev/dom/features/load-segments.js +192 -0
  175. package/dist/dev/dom/features/load-segments.js.map +1 -0
  176. package/dist/dev/dom/features/load-text-track-cues.d.ts +85 -0
  177. package/dist/dev/dom/features/load-text-track-cues.d.ts.map +1 -0
  178. package/dist/dev/dom/features/load-text-track-cues.js +104 -0
  179. package/dist/dev/dom/features/load-text-track-cues.js.map +1 -0
  180. package/dist/dev/dom/features/segment-loader-actor.d.ts +1 -0
  181. package/dist/dev/dom/features/segment-loader-actor.js +243 -0
  182. package/dist/dev/dom/features/segment-loader-actor.js.map +1 -0
  183. package/dist/dev/dom/features/setup-mediasource.js +48 -0
  184. package/dist/dev/dom/features/setup-mediasource.js.map +1 -0
  185. package/dist/dev/dom/features/setup-sourcebuffer.d.ts +9 -0
  186. package/dist/dev/dom/features/setup-sourcebuffer.d.ts.map +1 -0
  187. package/dist/dev/dom/features/setup-sourcebuffer.js +78 -0
  188. package/dist/dev/dom/features/setup-sourcebuffer.js.map +1 -0
  189. package/dist/dev/dom/features/sync-text-tracks.js +95 -0
  190. package/dist/dev/dom/features/sync-text-tracks.js.map +1 -0
  191. package/dist/dev/dom/features/text-track-segment-loader-actor.d.ts +12 -0
  192. package/dist/dev/dom/features/text-track-segment-loader-actor.d.ts.map +1 -0
  193. package/dist/dev/dom/features/text-track-segment-loader-actor.js +55 -0
  194. package/dist/dev/dom/features/text-track-segment-loader-actor.js.map +1 -0
  195. package/dist/dev/dom/features/text-tracks-actor.d.ts +31 -0
  196. package/dist/dev/dom/features/text-tracks-actor.d.ts.map +1 -0
  197. package/dist/dev/dom/features/text-tracks-actor.js +42 -0
  198. package/dist/dev/dom/features/text-tracks-actor.js.map +1 -0
  199. package/dist/dev/dom/features/track-current-time.d.ts +40 -0
  200. package/dist/dev/dom/features/track-current-time.d.ts.map +1 -0
  201. package/dist/dev/dom/features/track-current-time.js +49 -0
  202. package/dist/dev/dom/features/track-current-time.js.map +1 -0
  203. package/dist/dev/dom/features/track-playback-initiated.d.ts +46 -0
  204. package/dist/dev/dom/features/track-playback-initiated.d.ts.map +1 -0
  205. package/dist/dev/dom/features/track-playback-initiated.js +66 -0
  206. package/dist/dev/dom/features/track-playback-initiated.js.map +1 -0
  207. package/dist/dev/dom/features/track-playback-rate.d.ts +34 -0
  208. package/dist/dev/dom/features/track-playback-rate.d.ts.map +1 -0
  209. package/dist/dev/dom/features/track-playback-rate.js +32 -0
  210. package/dist/dev/dom/features/track-playback-rate.js.map +1 -0
  211. package/dist/dev/dom/features/update-duration.js +78 -0
  212. package/dist/dev/dom/features/update-duration.js.map +1 -0
  213. package/dist/dev/dom/media/append-segment.d.ts +24 -0
  214. package/dist/dev/dom/media/append-segment.d.ts.map +1 -0
  215. package/dist/dev/dom/media/append-segment.js +60 -0
  216. package/dist/dev/dom/media/append-segment.js.map +1 -0
  217. package/dist/dev/dom/media/buffer-flusher.d.ts +24 -0
  218. package/dist/dev/dom/media/buffer-flusher.d.ts.map +1 -0
  219. package/dist/dev/dom/media/buffer-flusher.js +55 -0
  220. package/dist/dev/dom/media/buffer-flusher.js.map +1 -0
  221. package/dist/dev/dom/media/mediasource-setup.js +146 -0
  222. package/dist/dev/dom/media/mediasource-setup.js.map +1 -0
  223. package/dist/dev/dom/media/source-buffer-actor.d.ts +62 -0
  224. package/dist/dev/dom/media/source-buffer-actor.d.ts.map +1 -0
  225. package/dist/dev/dom/media/source-buffer-actor.js +137 -0
  226. package/dist/dev/dom/media/source-buffer-actor.js.map +1 -0
  227. package/dist/dev/dom/network/chunked-stream-iterable.js +49 -0
  228. package/dist/dev/dom/network/chunked-stream-iterable.js.map +1 -0
  229. package/dist/dev/dom/network/fetch.js +54 -0
  230. package/dist/dev/dom/network/fetch.js.map +1 -0
  231. package/dist/dev/dom/playback-engine/adapter.d.ts +40 -0
  232. package/dist/dev/dom/playback-engine/adapter.d.ts.map +1 -0
  233. package/dist/dev/dom/playback-engine/adapter.js +100 -0
  234. package/dist/dev/dom/playback-engine/adapter.js.map +1 -0
  235. package/dist/dev/dom/playback-engine/engine.d.ts +124 -0
  236. package/dist/dev/dom/playback-engine/engine.d.ts.map +1 -0
  237. package/dist/dev/dom/playback-engine/engine.js +142 -0
  238. package/dist/dev/dom/playback-engine/engine.js.map +1 -0
  239. package/dist/dev/dom/playback-engine.d.ts +4 -0
  240. package/dist/dev/dom/playback-engine.js +4 -0
  241. package/dist/dev/dom/text/parse-vtt-segment.d.ts +12 -0
  242. package/dist/dev/dom/text/parse-vtt-segment.d.ts.map +1 -0
  243. package/dist/dev/dom/text/parse-vtt-segment.js +56 -0
  244. package/dist/dev/dom/text/parse-vtt-segment.js.map +1 -0
  245. package/dist/dev/dom.d.ts +10 -0
  246. package/dist/dev/dom.js +10 -0
  247. package/dist/dev/index.d.ts.map +1 -0
  248. package/dist/dev/index.js +14 -0
  249. package/dist/dev/index.js.map +1 -0
  250. package/package.json +26 -24
  251. package/dist/adapter-CMw-rvbk.js +0 -3512
  252. package/dist/adapter-CMw-rvbk.js.map +0 -1
  253. package/dist/adapter-l8iJN_GI.d.ts +0 -689
  254. package/dist/adapter-l8iJN_GI.d.ts.map +0 -1
  255. package/dist/dom/index.d.ts +0 -243
  256. package/dist/dom/index.d.ts.map +0 -1
  257. package/dist/dom/index.js +0 -38
  258. package/dist/dom/index.js.map +0 -1
  259. package/dist/dom/playback-engine/index.d.ts +0 -2
  260. package/dist/dom/playback-engine/index.js +0 -4
  261. package/dist/index.d.ts.map +0 -1
  262. package/dist/index.js +0 -3
  263. package/dist/src-DRsS_H80.js.map +0 -1
  264. /package/dist/{index.d.ts → dev/index.d.ts} +0 -0
@@ -1,243 +0,0 @@
1
- import { a as PresentationAction, c as SourceBufferActor, d as WritableState, f as BandwidthState, l as TrackSelectionState, o as EventStream, s as loadTextTrackCues, t as SpfMedia, u as Presentation } from "../adapter-l8iJN_GI.js";
2
-
3
- //#region src/dom/features/setup-sourcebuffer.d.ts
4
-
5
- /**
6
- * Media track type for SourceBuffer setup.
7
- * Text tracks are excluded as they don't use MSE SourceBuffers.
8
- */
9
- type MediaTrackType = 'video' | 'audio';
10
- //#endregion
11
- //#region src/dom/features/load-segments.d.ts
12
-
13
- /**
14
- * State shape for segment loading.
15
- */
16
- interface SegmentLoadingState extends TrackSelectionState {
17
- presentation?: Presentation;
18
- preload?: string;
19
- bandwidthState?: BandwidthState;
20
- /** Current playback position in seconds. Defaults to 0 when undefined. */
21
- currentTime?: number;
22
- /** True once the user has initiated playback. Allows segment loading regardless of preload setting. */
23
- playbackInitiated?: boolean;
24
- }
25
- /**
26
- * Owners shape for segment loading.
27
- */
28
- interface SegmentLoadingOwners {
29
- videoBuffer?: SourceBuffer;
30
- audioBuffer?: SourceBuffer;
31
- videoBufferActor?: SourceBufferActor;
32
- audioBufferActor?: SourceBufferActor;
33
- }
34
- /**
35
- * Load segments orchestration — Reactor layer.
36
- *
37
- * Sends typed load messages to a SegmentLoaderActor when relevant conditions
38
- * change. Uses targeted subscriptions rather than broad combineLatest so only
39
- * meaningful state changes trigger evaluation.
40
- *
41
- * Condition hierarchy (see SegmentLoadingKey for detail):
42
- *
43
- * !playbackInitiated
44
- * preload==='none' (or unset) → dormant; no trigger
45
- * preload==='metadata' → trigger on transition to 'metadata'
46
- * preload==='auto' → trigger on transition to 'auto'
47
- *
48
- * !playbackInitiated → playbackInitiated
49
- * preload !== 'auto' → trigger (message shape changes)
50
- * preload === 'auto' → suppressed (was already full-range mode;
51
- * let segmentStart take over post-play)
52
- * KNOWN LIMITATION: seek-before-play with
53
- * preload='auto' is not supported — if the
54
- * user seeks before pressing play, the
55
- * first re-send is delayed until the next
56
- * segment boundary crossing post-play.
57
- *
58
- * playbackInitiated
59
- * resolvedTrackId changes → trigger
60
- * segmentStart(currentTime) changes → trigger (segment boundary only)
61
- *
62
- * @example
63
- * const cleanup = loadSegments({ state, owners }, { type: 'video' });
64
- */
65
- declare function loadSegments({
66
- state,
67
- owners
68
- }: {
69
- state: WritableState<SegmentLoadingState>;
70
- owners: WritableState<SegmentLoadingOwners>;
71
- }, config: {
72
- type: MediaTrackType;
73
- }): () => void;
74
- //#endregion
75
- //#region src/dom/features/track-current-time.d.ts
76
- /**
77
- * State shape for current time tracking.
78
- */
79
- interface CurrentTimeState {
80
- currentTime?: number;
81
- }
82
- /**
83
- * Owners shape for current time tracking.
84
- */
85
- interface CurrentTimeOwners {
86
- mediaElement?: HTMLMediaElement | undefined;
87
- }
88
- /**
89
- * Track current playback position from the media element.
90
- *
91
- * Mirrors `mediaElement.currentTime` into reactive state on:
92
- * - `timeupdate` — fires during playback (~4 Hz)
93
- * - `seeking` — fires when a seek begins; per spec, `currentTime` is
94
- * already at the new position when this event dispatches, so buffer
95
- * management can react immediately rather than waiting for `timeupdate`,
96
- * which does not fire while paused.
97
- *
98
- * Also syncs immediately when a media element becomes available.
99
- *
100
- * @example
101
- * const cleanup = trackCurrentTime({ state, owners });
102
- */
103
- declare function trackCurrentTime({
104
- state,
105
- owners
106
- }: {
107
- state: WritableState<CurrentTimeState>;
108
- owners: WritableState<CurrentTimeOwners>;
109
- }): () => void;
110
- //#endregion
111
- //#region src/dom/features/track-playback-initiated.d.ts
112
- /**
113
- * State shape for playback initiation tracking.
114
- */
115
- interface PlaybackInitiatedState {
116
- /** True once the user has initiated playback (play event fired). */
117
- playbackInitiated?: boolean;
118
- /** Current presentation — watched for URL changes to reset playbackInitiated. */
119
- presentation?: {
120
- url?: string;
121
- };
122
- }
123
- /**
124
- * Owners shape for playback initiation tracking.
125
- */
126
- interface PlaybackInitiatedOwners {
127
- mediaElement?: HTMLMediaElement | undefined;
128
- }
129
- /**
130
- * Track whether playback has been initiated by the user.
131
- *
132
- * Sets `state.playbackInitiated = true` when the media element fires a `play`
133
- * event (via `element.play()`, native controls, or autoplay) and simultaneously
134
- * dispatches `{ type: 'play' }` to the event stream so `resolvePresentation`
135
- * can react.
136
- *
137
- * Resets `state.playbackInitiated = false` when `presentation.url` changes,
138
- * so a new source with `preload="none"` won't load segments until play is
139
- * triggered again.
140
- *
141
- * This flag is used by `shouldLoadSegments` to allow segment loading after
142
- * play is initiated regardless of the initial `preload` setting — `preload`
143
- * is a startup hint, not a runtime gate.
144
- *
145
- * @example
146
- * const cleanup = trackPlaybackInitiated({ state, owners, events });
147
- */
148
- declare function trackPlaybackInitiated({
149
- state,
150
- owners,
151
- events
152
- }: {
153
- state: WritableState<PlaybackInitiatedState>;
154
- owners: WritableState<PlaybackInitiatedOwners>;
155
- events: EventStream<PresentationAction>;
156
- }): () => void;
157
- //#endregion
158
- //#region src/dom/features/track-playback-rate.d.ts
159
- /**
160
- * State shape for playback rate tracking.
161
- */
162
- interface PlaybackRateState {
163
- playbackRate?: number;
164
- }
165
- /**
166
- * Owners shape for playback rate tracking.
167
- */
168
- interface PlaybackRateOwners {
169
- mediaElement?: HTMLMediaElement | undefined;
170
- }
171
- /**
172
- * Track playback rate from the media element.
173
- *
174
- * Mirrors `mediaElement.playbackRate` into reactive state on each `ratechange`
175
- * event. Also syncs immediately when a media element becomes available.
176
- *
177
- * @example
178
- * const cleanup = trackPlaybackRate({ state, owners });
179
- */
180
- declare function trackPlaybackRate({
181
- state,
182
- owners
183
- }: {
184
- state: WritableState<PlaybackRateState>;
185
- owners: WritableState<PlaybackRateOwners>;
186
- }): () => void;
187
- //#endregion
188
- //#region src/dom/media/append-segment.d.ts
189
- /**
190
- * Segment appender helper (P11)
191
- *
192
- * Appends media segments (ArrayBuffer) to SourceBuffer.
193
- */
194
- /**
195
- * Append a media segment to a SourceBuffer.
196
- *
197
- * Waits for the SourceBuffer to be ready (not updating), then appends
198
- * the segment data. Returns a promise that resolves when append completes.
199
- *
200
- * @param sourceBuffer - The SourceBuffer to append to
201
- * @param segmentData - The segment data as ArrayBuffer
202
- * @returns Promise that resolves when append completes
203
- *
204
- * @example
205
- * const data = await fetch(segmentUrl).then(r => r.arrayBuffer());
206
- * await appendSegment(videoSourceBuffer, data);
207
- */
208
- declare function appendSegment(sourceBuffer: SourceBuffer, segmentData: ArrayBuffer): Promise<void>;
209
- //#endregion
210
- //#region src/dom/media/buffer-flusher.d.ts
211
- /**
212
- * Buffer flusher helper (P12)
213
- *
214
- * Removes a time range from a SourceBuffer to manage memory.
215
- */
216
- /**
217
- * Remove a time range from a SourceBuffer.
218
- *
219
- * Waits for the SourceBuffer to be ready (not updating), then removes
220
- * the specified range. Returns a promise that resolves when removal completes.
221
- *
222
- * @param sourceBuffer - The SourceBuffer to remove data from
223
- * @param start - Start of the time range to remove (seconds)
224
- * @param end - End of the time range to remove (seconds)
225
- * @returns Promise that resolves when removal completes
226
- *
227
- * @example
228
- * await flushBuffer(videoSourceBuffer, 0, 30);
229
- */
230
- declare function flushBuffer(sourceBuffer: SourceBuffer, start: number, end: number): Promise<void>;
231
- //#endregion
232
- //#region src/dom/text/parse-vtt-segment.d.ts
233
- /**
234
- * Parse a VTT segment using browser's native parser.
235
- *
236
- * Creates a dummy video element with a track element to leverage
237
- * the browser's optimized VTT parsing. Returns parsed VTTCue objects.
238
- */
239
- declare function parseVttSegment(url: string): Promise<VTTCue[]>;
240
- declare function destroyVttParser(): void;
241
- //#endregion
242
- export { type CurrentTimeOwners, type CurrentTimeState, type PlaybackInitiatedOwners, type PlaybackInitiatedState, type PlaybackRateOwners, type PlaybackRateState, SpfMedia, appendSegment, destroyVttParser, flushBuffer, loadSegments, loadTextTrackCues, parseVttSegment, trackCurrentTime, trackPlaybackInitiated, trackPlaybackRate };
243
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/dom/features/setup-sourcebuffer.ts","../../src/dom/features/load-segments.ts","../../src/dom/features/track-current-time.ts","../../src/dom/features/track-playback-initiated.ts","../../src/dom/features/track-playback-rate.ts","../../src/dom/media/append-segment.ts","../../src/dom/media/buffer-flusher.ts","../../src/dom/text/parse-vtt-segment.ts"],"sourcesContent":[],"mappings":";;;;;;;AC+DA;AACiB,KD7CL,cAAA,GC6CK,OAAA,GAAA,OAAA;;;;;;;AAD+C,UAA/C,mBAAA,SAA4B,mBAAmB,CAAA;EAa/C,YAAA,CAAA,EAZA,YAYoB;EACrB,OAAA,CAAA,EAAA,MAAA;EACA,cAAA,CAAA,EAZG,cAYH;EACK;EACA,WAAA,CAAA,EAAA,MAAA;EAAiB;EAgItB,iBAAY,CAAA,EAAA,OAAA;;;;;AAMF,UA1IT,oBAAA,CA0IS;EAAd,WAAA,CAAA,EAzII,YAyIJ;EAEM,WAAA,CAAA,EA1IF,YA0IE;EAAc,gBAAA,CAAA,EAzIX,iBAyIW;qBAxIX;;;AC1ErB;AAOA;AA6BA;;;;;;;;;;;AClCA;AAUA;AAuBA;;;;;;;;;;;;;;ACnCA;AAOiB,iBHmMD,YAAA,CGlMC;EAAA,KAAA;EAAA;CAAgB,EAAA;EAsBjB,KAAA,EHiLL,aGjLsB,CHiLR,mBGjLQ,CAAA;EAC/B,MAAA,EHiLU,aGjLV,CHiLwB,oBGjLxB,CAAA;CACA,EAAA,MAAA,EAAA;EAEqB,IAAA,EHgLL,cGhLK;CAAd,CAAA,EAAA,GAAA,GAAA,IAAA;;;;;AJrBT;UEbiB,gBAAA;;;ADyDjB;;;AAA6C,UClD5B,iBAAA,CDkD4B;EAAmB,YAAA,CAAA,ECjD/C,gBDiD+C,GAAA,SAAA;AAahE;;;;;;;;;;;ACtEA;AAOA;AA6BA;;;AAIuB,iBAJP,gBAAA,CAIO;EAAA,KAAA;EAAA;CAAA,EAAA;EAAd,KAAA,EAAA,aAAA,CAAc,gBAAd,CAAA;EACe,MAAA,EAAd,aAAc,CAAA,iBAAA,CAAA;CAAd,CAAA,EAAA,GAAA,GAAA,IAAA;;;AF5BV;;;UGXiB,sBAAA;EFuDA;EACA,iBAAA,CAAA,EAAA,OAAA;EAEE;EAH0B,YAAA,CAAA,EAAA;IAAmB,GAAA,CAAA,EAAA,MAAA;EAa/C,CAAA;;;;;AAIqB,UE9DrB,uBAAA,CF8DqB;EAgItB,YAAA,CAAA,EE7LC,gBF6LW,GAAA,SAAA;;;;;;;;;;;;AC1M5B;AAOA;AA6BA;;;;;;;AAKuB,iBCNP,sBAAA,CDMO;EAAA,KAAA;EAAA,MAAA;EAAA;ACvCvB,CDuCuB,EAAA;SCDd,cAAc;UACb,cAAc;UACd,YAAY;AAxCtB,CAAA,CAAA,EAAiB,GAAA,GAAA,IAAA;;;;;AHWjB;UIbiB,iBAAA;;;AHyDjB;;;AAA6C,UGlD5B,kBAAA,CHkD4B;EAAmB,YAAA,CAAA,EGjD/C,gBHiD+C,GAAA,SAAA;AAahE;;;;;;;;;;iBGxCgB,iBAAA;;;AFMhB;EApCiB,KAAA,EEkCR,aFlCwB,CEkCV,iBFlCU,CAAA;EAOhB,MAAA,EE4BP,aF5BwB,CE4BV,kBF3BP,CAAA;AA4BjB,CAAA,CAAA,EAAgB,GAAA,GAAA,IAAA;;;;;;AFvBhB;;;;AC4CA;;;;;AAaA;;;;;;AAoIA;AAEI,iBI9LkB,aAAA,CJ8LlB,YAAA,EI9L8C,YJ8L9C,EAAA,WAAA,EI9LyE,WJ8LzE,CAAA,EI9LuF,OJ8LvF,CAAA,IAAA,CAAA;;;;;;AD/LJ;;;;AC4CA;;;;;AAaA;;;;;;AAoIA;AAEI,iBK9LkB,WAAA,CL8LlB,YAAA,EK9L4C,YL8L5C,EAAA,KAAA,EAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,EK9LuF,OL8LvF,CAAA,IAAA,CAAA;;;;;;AD/LJ;;;iBOEgB,eAAA,eAA8B,QAAQ;AN0CrC,iBMAD,gBAAA,CAAA,CNAqB,EAAA,IAAA"}
package/dist/dom/index.js DELETED
@@ -1,38 +0,0 @@
1
- import "../src-DRsS_H80.js";
2
- import { a as trackPlaybackInitiated, c as destroyVttParser, i as appendSegment, l as parseVttSegment, o as trackCurrentTime, r as flushBuffer, s as loadTextTrackCues, t as SpfMedia, u as loadSegments } from "../adapter-CMw-rvbk.js";
3
- import { listen } from "@videojs/utils/dom";
4
-
5
- //#region src/dom/features/track-playback-rate.ts
6
- /**
7
- * Track playback rate from the media element.
8
- *
9
- * Mirrors `mediaElement.playbackRate` into reactive state on each `ratechange`
10
- * event. Also syncs immediately when a media element becomes available.
11
- *
12
- * @example
13
- * const cleanup = trackPlaybackRate({ state, owners });
14
- */
15
- function trackPlaybackRate({ state, owners }) {
16
- let lastMediaElement;
17
- let removeListener = null;
18
- const unsubscribe = owners.subscribe((currentOwners) => {
19
- const { mediaElement } = currentOwners;
20
- if (mediaElement === lastMediaElement) return;
21
- removeListener?.();
22
- removeListener = null;
23
- lastMediaElement = mediaElement;
24
- if (!mediaElement) return;
25
- state.patch({ playbackRate: mediaElement.playbackRate });
26
- removeListener = listen(mediaElement, "ratechange", () => {
27
- state.patch({ playbackRate: mediaElement.playbackRate });
28
- });
29
- });
30
- return () => {
31
- removeListener?.();
32
- unsubscribe();
33
- };
34
- }
35
-
36
- //#endregion
37
- export { SpfMedia, appendSegment, destroyVttParser, flushBuffer, loadSegments, loadTextTrackCues, parseVttSegment, trackCurrentTime, trackPlaybackInitiated, trackPlaybackRate };
38
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["lastMediaElement: HTMLMediaElement | undefined","removeListener: (() => void) | null"],"sources":["../../src/dom/features/track-playback-rate.ts"],"sourcesContent":["import { listen } from '@videojs/utils/dom';\nimport type { WritableState } from '../../core/state/create-state';\n\n/**\n * State shape for playback rate tracking.\n */\nexport interface PlaybackRateState {\n playbackRate?: number;\n}\n\n/**\n * Owners shape for playback rate tracking.\n */\nexport interface PlaybackRateOwners {\n mediaElement?: HTMLMediaElement | undefined;\n}\n\n/**\n * Check if we can track playback rate.\n *\n * Requires:\n * - mediaElement exists in owners\n */\nexport function canTrackPlaybackRate(owners: PlaybackRateOwners): boolean {\n return !!owners.mediaElement;\n}\n\n/**\n * Track playback rate from the media element.\n *\n * Mirrors `mediaElement.playbackRate` into reactive state on each `ratechange`\n * event. Also syncs immediately when a media element becomes available.\n *\n * @example\n * const cleanup = trackPlaybackRate({ state, owners });\n */\nexport function trackPlaybackRate({\n state,\n owners,\n}: {\n state: WritableState<PlaybackRateState>;\n owners: WritableState<PlaybackRateOwners>;\n}): () => void {\n let lastMediaElement: HTMLMediaElement | undefined;\n let removeListener: (() => void) | null = null;\n\n const unsubscribe = owners.subscribe((currentOwners) => {\n const { mediaElement } = currentOwners;\n\n if (mediaElement === lastMediaElement) return;\n\n removeListener?.();\n removeListener = null;\n lastMediaElement = mediaElement;\n\n if (!mediaElement) return;\n\n state.patch({ playbackRate: mediaElement.playbackRate });\n\n removeListener = listen(mediaElement, 'ratechange', () => {\n state.patch({ playbackRate: mediaElement.playbackRate });\n });\n });\n\n return () => {\n removeListener?.();\n unsubscribe();\n };\n}\n"],"mappings":";;;;;;;;;;;;;;AAoCA,SAAgB,kBAAkB,EAChC,OACA,UAIa;CACb,IAAIA;CACJ,IAAIC,iBAAsC;CAE1C,MAAM,cAAc,OAAO,WAAW,kBAAkB;EACtD,MAAM,EAAE,iBAAiB;AAEzB,MAAI,iBAAiB,iBAAkB;AAEvC,oBAAkB;AAClB,mBAAiB;AACjB,qBAAmB;AAEnB,MAAI,CAAC,aAAc;AAEnB,QAAM,MAAM,EAAE,cAAc,aAAa,cAAc,CAAC;AAExD,mBAAiB,OAAO,cAAc,oBAAoB;AACxD,SAAM,MAAM,EAAE,cAAc,aAAa,cAAc,CAAC;IACxD;GACF;AAEF,cAAa;AACX,oBAAkB;AAClB,eAAa"}
@@ -1,2 +0,0 @@
1
- import { i as createPlaybackEngine, n as PlaybackEngine, r as PlaybackEngineConfig, t as SpfMedia } from "../../adapter-l8iJN_GI.js";
2
- export { type PlaybackEngine, type PlaybackEngineConfig, SpfMedia, createPlaybackEngine };
@@ -1,4 +0,0 @@
1
- import "../../src-DRsS_H80.js";
2
- import { n as createPlaybackEngine, t as SpfMedia } from "../../adapter-CMw-rvbk.js";
3
-
4
- export { SpfMedia, createPlaybackEngine };
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/index.ts"],"sourcesContent":[],"mappings":";;AAWA;;;;;;;cAAa,OAAA"}
package/dist/index.js DELETED
@@ -1,3 +0,0 @@
1
- import { t as VERSION } from "./src-DRsS_H80.js";
2
-
3
- export { VERSION };
@@ -1 +0,0 @@
1
- {"version":3,"file":"src-DRsS_H80.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["/**\n * Stream Processing Framework (SPF) for Video.js 10\n *\n * Bundle size target: < 20KB (minified + gzipped)\n * Primary use case: CMAF HLS playback with Video.js v10\n *\n * @packageDocumentation\n */\n\n// Public API exports will be added here as features are implemented\n\nexport const VERSION = '0.1.0';\n"],"mappings":";;;;;;;;;AAWA,MAAa,UAAU"}
File without changes