movi-player 0.3.0 → 0.3.2

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 (61) hide show
  1. package/AGENTS.md +2 -0
  2. package/README.md +54 -7
  3. package/dist/core/MoviPlayer.d.ts +77 -1
  4. package/dist/core/MoviPlayer.d.ts.map +1 -1
  5. package/dist/core/MoviPlayer.js +667 -121
  6. package/dist/core/MoviPlayer.js.map +1 -1
  7. package/dist/core/PlayerState.js +1 -1
  8. package/dist/core/PlayerState.js.map +1 -1
  9. package/dist/decode/VideoDecoder.d.ts.map +1 -1
  10. package/dist/decode/VideoDecoder.js +6 -2
  11. package/dist/decode/VideoDecoder.js.map +1 -1
  12. package/dist/demuxer.cjs +315 -129
  13. package/dist/demuxer.js +377 -191
  14. package/dist/element.cjs +58309 -16596
  15. package/dist/element.js +59520 -17807
  16. package/dist/index.cjs +58309 -16596
  17. package/dist/index.js +59520 -17807
  18. package/dist/player.cjs +56818 -15360
  19. package/dist/player.js +57818 -16360
  20. package/dist/render/DASHPlayerWrapper.d.ts +65 -0
  21. package/dist/render/DASHPlayerWrapper.d.ts.map +1 -0
  22. package/dist/render/DASHPlayerWrapper.js +540 -0
  23. package/dist/render/DASHPlayerWrapper.js.map +1 -0
  24. package/dist/render/HLSPlayerWrapper.d.ts.map +1 -1
  25. package/dist/render/HLSPlayerWrapper.js +47 -11
  26. package/dist/render/HLSPlayerWrapper.js.map +1 -1
  27. package/dist/render/MoviElement.d.ts +97 -0
  28. package/dist/render/MoviElement.d.ts.map +1 -1
  29. package/dist/render/MoviElement.js +852 -152
  30. package/dist/render/MoviElement.js.map +1 -1
  31. package/dist/render/ShakaPlayerWrapper.d.ts +111 -0
  32. package/dist/render/ShakaPlayerWrapper.d.ts.map +1 -0
  33. package/dist/render/ShakaPlayerWrapper.js +956 -0
  34. package/dist/render/ShakaPlayerWrapper.js.map +1 -0
  35. package/dist/source/DashFallback.d.ts +32 -0
  36. package/dist/source/DashFallback.d.ts.map +1 -0
  37. package/dist/source/DashFallback.js +142 -0
  38. package/dist/source/DashFallback.js.map +1 -0
  39. package/dist/source/DashManifest.d.ts +34 -0
  40. package/dist/source/DashManifest.d.ts.map +1 -0
  41. package/dist/source/DashManifest.js +194 -0
  42. package/dist/source/DashManifest.js.map +1 -0
  43. package/dist/source/DashSegmentSource.d.ts +32 -0
  44. package/dist/source/DashSegmentSource.d.ts.map +1 -0
  45. package/dist/source/DashSegmentSource.js +86 -0
  46. package/dist/source/DashSegmentSource.js.map +1 -0
  47. package/dist/source/HttpSource.d.ts +64 -0
  48. package/dist/source/HttpSource.d.ts.map +1 -1
  49. package/dist/source/HttpSource.js +444 -57
  50. package/dist/source/HttpSource.js.map +1 -1
  51. package/dist/source/ThumbnailHttpSource.d.ts +13 -0
  52. package/dist/source/ThumbnailHttpSource.d.ts.map +1 -1
  53. package/dist/source/ThumbnailHttpSource.js +70 -8
  54. package/dist/source/ThumbnailHttpSource.js.map +1 -1
  55. package/dist/source/index.d.ts +2 -0
  56. package/dist/source/index.d.ts.map +1 -1
  57. package/dist/source/index.js +1 -0
  58. package/dist/source/index.js.map +1 -1
  59. package/dist/types.d.ts +10 -0
  60. package/dist/types.d.ts.map +1 -1
  61. package/package.json +16 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DashSegmentSource.js","sourceRoot":"","sources":["../../src/source/DashSegmentSource.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,11 @@ export declare class HttpSource implements SourceAdapter {
26
26
  private streamError;
27
27
  private maxBufferedEnd;
28
28
  private fullyBuffered;
29
+ private rangeUnsupported;
30
+ private linearMode;
31
+ private onLinearMode;
32
+ private readMax;
33
+ private recentReads;
29
34
  private consecutiveForceRestarts;
30
35
  private lastForceRestartTime;
31
36
  private readonly MAX_FORCE_RESTARTS;
@@ -50,6 +55,21 @@ export declare class HttpSource implements SourceAdapter {
50
55
  * Pass a number of megabytes. 0 or negative values are ignored.
51
56
  */
52
57
  setMaxBufferSize(megabytes: number): void;
58
+ /**
59
+ * Register a callback fired once when the source falls back to linear
60
+ * (forward-only, non-seekable) playback because the server has no Range
61
+ * support and the file is too large to cache whole. The UI uses this to
62
+ * hide the timeline and disable seeking/thumbnails.
63
+ */
64
+ setOnLinearMode(cb: () => void): void;
65
+ /** True once the source is in forward-only linear (non-seekable) playback. */
66
+ isLinearMode(): boolean;
67
+ /**
68
+ * True once we've confirmed the server has no Range support (covers both the
69
+ * full-cache and the linear fallback). Callers use it to skip features that
70
+ * need scattered random-access reads (e.g. the thumbnail pipeline).
71
+ */
72
+ isRangeUnsupported(): boolean;
53
73
  /**
54
74
  * Resize buffer based on file size (3% of file, clamped to min/max)
55
75
  */
@@ -76,6 +96,23 @@ export declare class HttpSource implements SourceAdapter {
76
96
  * throw on failure.
77
97
  */
78
98
  protected resolveSize(): Promise<number>;
99
+ /**
100
+ * Recover the total file size from a 1-byte ranged GET when HEAD didn't
101
+ * carry Content-Length. Reads the total out of Content-Range; returns null
102
+ * if the server gives us nothing usable. The body is cancelled immediately —
103
+ * we only want headers, and a server that ignores Range would otherwise
104
+ * start streaming the whole file.
105
+ */
106
+ protected resolveSizeViaRange(): Promise<number | null>;
107
+ /**
108
+ * Last-resort size probe: a plain (un-ranged) GET. Catches servers that strip
109
+ * Content-Length on HEAD and don't CORS-expose Content-Range on a 206, yet
110
+ * still send Content-Length on a full 200 response. The body is cancelled the
111
+ * moment headers are in, so nothing past the headers is downloaded.
112
+ */
113
+ protected resolveSizeViaPlainGet(): Promise<number | null>;
114
+ /** Pull a download filename out of a Content-Disposition header, if present. */
115
+ private setFilenameFromDisposition;
79
116
  /**
80
117
  * Build the HTTP headers used for every outbound request (HEAD, range
81
118
  * GET, stream GET). Default implementation just returns the static
@@ -129,6 +166,33 @@ export declare class HttpSource implements SourceAdapter {
129
166
  */
130
167
  private startStream;
131
168
  private readStreamBackground;
169
+ /**
170
+ * Consume a single 200 response as the whole file from byte 0, used when the
171
+ * server has no Range support. Two outcomes:
172
+ * - File fits the buffer cap → cache it entirely → full random access
173
+ * (seek/thumbnails keep working once downloaded).
174
+ * - File exceeds the cap (or size unknown) → bounded forward-only sliding
175
+ * window (linearMode): playback is linear, seeking impossible. The UI is
176
+ * notified via onLinearMode so it can hide the timeline.
177
+ * The response body MUST start at byte 0 (caller guarantees startOffset===0).
178
+ */
179
+ private consumeNonRangeStream;
180
+ /**
181
+ * Append a chunk to the buffer for the non-range stream. In full-cache mode
182
+ * the buffer always has room. In linearMode it slides the window forward by
183
+ * discarding already-consumed bytes, applying backpressure (waiting for the
184
+ * demuxer to catch up) when the window can't be advanced yet.
185
+ */
186
+ private writeSequential;
187
+ /**
188
+ * Slide the linear-mode window forward to make room for new download. Keeps a
189
+ * trailing history of up to LINEAR_TRAIL_BYTES behind the playhead so the user
190
+ * can seek backward into already-played content that's still in RAM — only the
191
+ * bytes older than that are dropped. Returns false when nothing can be dropped
192
+ * yet (playhead hasn't advanced past the trailing window), so the caller
193
+ * applies backpressure. This bounds read-ahead to (bufferSize - trail).
194
+ */
195
+ private slideWindow;
132
196
  private stopStream;
133
197
  private waitForData;
134
198
  read(offset: number, length: number): Promise<ArrayBuffer>;
@@ -1 +1 @@
1
- {"version":3,"file":"HttpSource.d.ts","sourceRoot":"","sources":["../../src/source/HttpSource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HttpSource.d.ts","sourceRoot":"","sources":["../../src/source/HttpSource.ts"],"names":[],"mappings":"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"}