libbitsub 1.10.2 → 1.12.0
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.
- package/README.md +296 -49
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/integrations/hlsjs.d.ts +45 -0
- package/dist/integrations/hlsjs.d.ts.map +1 -0
- package/dist/integrations/hlsjs.js +121 -0
- package/dist/integrations/hlsjs.js.map +1 -0
- package/dist/integrations/index.d.ts +11 -0
- package/dist/integrations/index.d.ts.map +1 -0
- package/dist/integrations/index.js +11 -0
- package/dist/integrations/index.js.map +1 -0
- package/dist/integrations/react.d.ts +55 -0
- package/dist/integrations/react.d.ts.map +1 -0
- package/dist/integrations/react.js +133 -0
- package/dist/integrations/react.js.map +1 -0
- package/dist/integrations/shaka.d.ts +38 -0
- package/dist/integrations/shaka.d.ts.map +1 -0
- package/dist/integrations/shaka.js +71 -0
- package/dist/integrations/shaka.js.map +1 -0
- package/dist/integrations/shared.d.ts +41 -0
- package/dist/integrations/shared.d.ts.map +1 -0
- package/dist/integrations/shared.js +123 -0
- package/dist/integrations/shared.js.map +1 -0
- package/dist/integrations/videojs.d.ts +85 -0
- package/dist/integrations/videojs.d.ts.map +1 -0
- package/dist/integrations/videojs.js +111 -0
- package/dist/integrations/videojs.js.map +1 -0
- package/dist/ts/capabilities.d.ts +8 -0
- package/dist/ts/capabilities.d.ts.map +1 -0
- package/dist/ts/capabilities.js +105 -0
- package/dist/ts/capabilities.js.map +1 -0
- package/dist/ts/diagnostics.d.ts.map +1 -1
- package/dist/ts/diagnostics.js.map +1 -1
- package/dist/ts/frame-export.d.ts.map +1 -1
- package/dist/ts/frame-export.js +4 -4
- package/dist/ts/frame-export.js.map +1 -1
- package/dist/ts/parsers.d.ts +46 -8
- package/dist/ts/parsers.d.ts.map +1 -1
- package/dist/ts/parsers.js +305 -14
- package/dist/ts/parsers.js.map +1 -1
- package/dist/ts/range-loader.d.ts +31 -0
- package/dist/ts/range-loader.d.ts.map +1 -0
- package/dist/ts/range-loader.js +220 -0
- package/dist/ts/range-loader.js.map +1 -0
- package/dist/ts/renderers.d.ts +140 -8
- package/dist/ts/renderers.d.ts.map +1 -1
- package/dist/ts/renderers.js +1773 -287
- package/dist/ts/renderers.js.map +1 -1
- package/dist/ts/types.d.ts +210 -7
- package/dist/ts/types.d.ts.map +1 -1
- package/dist/ts/utils.d.ts.map +1 -1
- package/dist/ts/utils.js +98 -2
- package/dist/ts/utils.js.map +1 -1
- package/dist/ts/video-frame-scheduler.d.ts +35 -0
- package/dist/ts/video-frame-scheduler.d.ts.map +1 -0
- package/dist/ts/video-frame-scheduler.js +98 -0
- package/dist/ts/video-frame-scheduler.js.map +1 -0
- package/dist/ts/wasm.d.ts +2 -0
- package/dist/ts/wasm.d.ts.map +1 -1
- package/dist/ts/wasm.js +12 -0
- package/dist/ts/wasm.js.map +1 -1
- package/dist/ts/webgl2-renderer.d.ts +9 -0
- package/dist/ts/webgl2-renderer.d.ts.map +1 -1
- package/dist/ts/webgl2-renderer.js +34 -0
- package/dist/ts/webgl2-renderer.js.map +1 -1
- package/dist/ts/webgpu-renderer.d.ts +9 -0
- package/dist/ts/webgpu-renderer.d.ts.map +1 -1
- package/dist/ts/webgpu-renderer.js +70 -2
- package/dist/ts/webgpu-renderer.js.map +1 -1
- package/dist/ts/worker.d.ts +11 -0
- package/dist/ts/worker.d.ts.map +1 -1
- package/dist/ts/worker.js +620 -158
- package/dist/ts/worker.js.map +1 -1
- package/dist/wrapper.d.ts +6 -3
- package/dist/wrapper.d.ts.map +1 -1
- package/dist/wrapper.js +5 -2
- package/dist/wrapper.js.map +1 -1
- package/examples/README.md +38 -0
- package/examples/hlsjs/README.md +53 -0
- package/examples/react/README.md +60 -0
- package/examples/shaka/README.md +61 -0
- package/examples/videojs/README.md +55 -0
- package/package.json +66 -8
- package/pkg/README.md +296 -49
- package/pkg/libbitsub.d.ts +65 -1
- package/pkg/libbitsub.js +228 -3
- package/pkg/libbitsub_bg.wasm +0 -0
- package/pkg/libbitsub_bg.wasm.d.ts +28 -0
- package/pkg/package.json +4 -4
- package/src/integrations/hlsjs.ts +154 -0
- package/src/integrations/index.ts +36 -0
- package/src/integrations/react.tsx +176 -0
- package/src/integrations/shaka.ts +92 -0
- package/src/integrations/shared.ts +171 -0
- package/src/integrations/videojs.ts +200 -0
- package/src/wrapper.ts +34 -2
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
const DEFAULT_RANGE_CHUNK_THRESHOLD = 2 * 1024 * 1024;
|
|
2
|
+
const DEFAULT_RANGE_CHUNK_SIZE = 512 * 1024;
|
|
3
|
+
function emitProgress(onProgress, loaded, total, rangeSupported, strategy) {
|
|
4
|
+
if (!onProgress)
|
|
5
|
+
return;
|
|
6
|
+
onProgress({
|
|
7
|
+
loaded,
|
|
8
|
+
total,
|
|
9
|
+
ratio: total && total > 0 ? Math.min(1, loaded / total) : null,
|
|
10
|
+
rangeSupported,
|
|
11
|
+
strategy
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
function parseContentLength(header) {
|
|
15
|
+
if (!header)
|
|
16
|
+
return null;
|
|
17
|
+
const value = Number(header);
|
|
18
|
+
return Number.isFinite(value) && value >= 0 ? value : null;
|
|
19
|
+
}
|
|
20
|
+
function parseContentRangeTotal(header) {
|
|
21
|
+
if (!header)
|
|
22
|
+
return null;
|
|
23
|
+
const match = /bytes\s+(?:\d+-\d+|\*)\/(\d+|\*)/i.exec(header);
|
|
24
|
+
if (!match)
|
|
25
|
+
return null;
|
|
26
|
+
if (match[1] === '*')
|
|
27
|
+
return null;
|
|
28
|
+
return parseContentLength(match[1]);
|
|
29
|
+
}
|
|
30
|
+
function mergeHeaders(base, extra) {
|
|
31
|
+
const headers = new Headers(base);
|
|
32
|
+
if (extra) {
|
|
33
|
+
const more = new Headers(extra);
|
|
34
|
+
more.forEach((value, key) => headers.set(key, value));
|
|
35
|
+
}
|
|
36
|
+
return headers;
|
|
37
|
+
}
|
|
38
|
+
export async function probeRangeSupport(url, options = {}) {
|
|
39
|
+
const headers = mergeHeaders(options.headers, { Range: 'bytes=0-0' });
|
|
40
|
+
try {
|
|
41
|
+
const response = await fetch(url, {
|
|
42
|
+
method: 'GET',
|
|
43
|
+
headers,
|
|
44
|
+
signal: options.signal
|
|
45
|
+
});
|
|
46
|
+
if (response.status === 206) {
|
|
47
|
+
const size = parseContentRangeTotal(response.headers.get('content-range')) ??
|
|
48
|
+
parseContentLength(response.headers.get('content-length'));
|
|
49
|
+
try {
|
|
50
|
+
await response.body?.cancel();
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
/* ignore */
|
|
54
|
+
}
|
|
55
|
+
return {
|
|
56
|
+
supportsRange: true,
|
|
57
|
+
size,
|
|
58
|
+
acceptRanges: response.headers.get('accept-ranges')
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
if (response.ok) {
|
|
62
|
+
const accept = response.headers.get('accept-ranges');
|
|
63
|
+
const size = parseContentLength(response.headers.get('content-length'));
|
|
64
|
+
try {
|
|
65
|
+
await response.body?.cancel();
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
/* ignore */
|
|
69
|
+
}
|
|
70
|
+
return {
|
|
71
|
+
supportsRange: Boolean(accept && accept.toLowerCase() !== 'none'),
|
|
72
|
+
size,
|
|
73
|
+
acceptRanges: accept
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
/* try HEAD */
|
|
79
|
+
}
|
|
80
|
+
try {
|
|
81
|
+
const head = await fetch(url, {
|
|
82
|
+
method: 'HEAD',
|
|
83
|
+
headers: mergeHeaders(options.headers),
|
|
84
|
+
signal: options.signal
|
|
85
|
+
});
|
|
86
|
+
if (!head.ok) {
|
|
87
|
+
return { supportsRange: false, size: null, acceptRanges: null };
|
|
88
|
+
}
|
|
89
|
+
const accept = head.headers.get('accept-ranges');
|
|
90
|
+
return {
|
|
91
|
+
supportsRange: Boolean(accept && accept.toLowerCase() !== 'none'),
|
|
92
|
+
size: parseContentLength(head.headers.get('content-length')),
|
|
93
|
+
acceptRanges: accept
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
catch {
|
|
97
|
+
return { supportsRange: false, size: null, acceptRanges: null };
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
async function readResponseStream(response, totalHint, rangeSupported, strategy, onProgress, onChunk) {
|
|
101
|
+
const total = totalHint ?? parseContentLength(response.headers.get('content-length'));
|
|
102
|
+
if (!response.body || typeof response.body.getReader !== 'function') {
|
|
103
|
+
const buffer = new Uint8Array(await response.arrayBuffer());
|
|
104
|
+
const progress = {
|
|
105
|
+
loaded: buffer.byteLength,
|
|
106
|
+
total: total ?? buffer.byteLength,
|
|
107
|
+
ratio: 1,
|
|
108
|
+
rangeSupported,
|
|
109
|
+
strategy: strategy === 'stream' ? 'basic' : strategy
|
|
110
|
+
};
|
|
111
|
+
await onChunk?.(buffer, progress);
|
|
112
|
+
onProgress?.(progress);
|
|
113
|
+
return buffer;
|
|
114
|
+
}
|
|
115
|
+
const reader = response.body.getReader();
|
|
116
|
+
const chunks = [];
|
|
117
|
+
let loaded = 0;
|
|
118
|
+
while (true) {
|
|
119
|
+
const { done, value } = await reader.read();
|
|
120
|
+
if (done)
|
|
121
|
+
break;
|
|
122
|
+
if (!value || value.byteLength === 0)
|
|
123
|
+
continue;
|
|
124
|
+
const chunk = value instanceof Uint8Array ? value : new Uint8Array(value);
|
|
125
|
+
chunks.push(chunk);
|
|
126
|
+
loaded += chunk.byteLength;
|
|
127
|
+
const progress = {
|
|
128
|
+
loaded,
|
|
129
|
+
total,
|
|
130
|
+
ratio: total && total > 0 ? Math.min(1, loaded / total) : null,
|
|
131
|
+
rangeSupported,
|
|
132
|
+
strategy
|
|
133
|
+
};
|
|
134
|
+
await onChunk?.(chunk, progress);
|
|
135
|
+
onProgress?.(progress);
|
|
136
|
+
}
|
|
137
|
+
const assembled = new Uint8Array(loaded);
|
|
138
|
+
let offset = 0;
|
|
139
|
+
for (const chunk of chunks) {
|
|
140
|
+
assembled.set(chunk, offset);
|
|
141
|
+
offset += chunk.byteLength;
|
|
142
|
+
}
|
|
143
|
+
emitProgress(onProgress, assembled.byteLength, total ?? assembled.byteLength, rangeSupported, strategy);
|
|
144
|
+
return assembled;
|
|
145
|
+
}
|
|
146
|
+
async function fetchByRangeChunks(url, size, options, onChunk) {
|
|
147
|
+
const chunkSize = Math.max(1, Math.floor(options.rangeChunkSize ?? DEFAULT_RANGE_CHUNK_SIZE));
|
|
148
|
+
const assembled = new Uint8Array(size);
|
|
149
|
+
let loaded = 0;
|
|
150
|
+
for (let start = 0; start < size; start += chunkSize) {
|
|
151
|
+
const end = Math.min(size - 1, start + chunkSize - 1);
|
|
152
|
+
const response = await fetch(url, {
|
|
153
|
+
method: 'GET',
|
|
154
|
+
headers: mergeHeaders(options.headers, { Range: `bytes=${start}-${end}` }),
|
|
155
|
+
signal: options.signal
|
|
156
|
+
});
|
|
157
|
+
if (response.status !== 206 && !(response.ok && start === 0 && end >= size - 1)) {
|
|
158
|
+
throw new Error(`Failed to fetch subtitle range ${start}-${end}: ${response.status}`);
|
|
159
|
+
}
|
|
160
|
+
const buffer = new Uint8Array(await response.arrayBuffer());
|
|
161
|
+
if (buffer.byteLength === 0) {
|
|
162
|
+
throw new Error(`Empty subtitle range response for bytes=${start}-${end}`);
|
|
163
|
+
}
|
|
164
|
+
if (start + buffer.byteLength > size) {
|
|
165
|
+
assembled.set(buffer.subarray(0, size - start), start);
|
|
166
|
+
loaded = size;
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
assembled.set(buffer, start);
|
|
170
|
+
loaded = start + buffer.byteLength;
|
|
171
|
+
}
|
|
172
|
+
const slice = assembled.subarray(start, loaded);
|
|
173
|
+
const progress = {
|
|
174
|
+
loaded,
|
|
175
|
+
total: size,
|
|
176
|
+
ratio: size > 0 ? Math.min(1, loaded / size) : null,
|
|
177
|
+
rangeSupported: true,
|
|
178
|
+
strategy: 'range-chunks'
|
|
179
|
+
};
|
|
180
|
+
await onChunk?.(slice, progress);
|
|
181
|
+
options.onProgress?.(progress);
|
|
182
|
+
}
|
|
183
|
+
return assembled;
|
|
184
|
+
}
|
|
185
|
+
export async function fetchSubtitleAsset(url, options = {}, onChunk) {
|
|
186
|
+
const preferRange = options.preferRange !== false;
|
|
187
|
+
const threshold = options.rangeChunkThreshold ?? DEFAULT_RANGE_CHUNK_THRESHOLD;
|
|
188
|
+
let rangeSupported = false;
|
|
189
|
+
let knownSize = null;
|
|
190
|
+
if (preferRange) {
|
|
191
|
+
const probe = await probeRangeSupport(url, options);
|
|
192
|
+
rangeSupported = probe.supportsRange;
|
|
193
|
+
knownSize = probe.size;
|
|
194
|
+
if (rangeSupported && knownSize != null && knownSize >= threshold) {
|
|
195
|
+
const data = await fetchByRangeChunks(url, knownSize, options, onChunk);
|
|
196
|
+
return { data, strategy: 'range-chunks', rangeSupported: true, total: knownSize };
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
const response = await fetch(url, {
|
|
200
|
+
method: 'GET',
|
|
201
|
+
headers: mergeHeaders(options.headers),
|
|
202
|
+
signal: options.signal
|
|
203
|
+
});
|
|
204
|
+
if (!response.ok) {
|
|
205
|
+
throw new Error(`Failed to fetch subtitle: ${response.status}`);
|
|
206
|
+
}
|
|
207
|
+
const total = knownSize ?? parseContentLength(response.headers.get('content-length'));
|
|
208
|
+
const strategy = response.body ? 'stream' : 'basic';
|
|
209
|
+
const data = await readResponseStream(response, total, rangeSupported, strategy, options.onProgress, onChunk);
|
|
210
|
+
return { data, strategy, rangeSupported, total: total ?? data.byteLength };
|
|
211
|
+
}
|
|
212
|
+
export async function fetchSubtitleText(url, options = {}) {
|
|
213
|
+
const { data } = await fetchSubtitleAsset(url, {
|
|
214
|
+
...options,
|
|
215
|
+
rangeChunkThreshold: Number.POSITIVE_INFINITY,
|
|
216
|
+
preferRange: false
|
|
217
|
+
});
|
|
218
|
+
return new TextDecoder('utf-8').decode(data);
|
|
219
|
+
}
|
|
220
|
+
//# sourceMappingURL=range-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"range-loader.js","sourceRoot":"","sources":["../../src/ts/range-loader.ts"],"names":[],"mappings":"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"}
|
package/dist/ts/renderers.d.ts
CHANGED
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
* High-level video-integrated subtitle renderers for libbitsub.
|
|
3
3
|
* Handles canvas overlay, video sync, and subtitle fetching.
|
|
4
4
|
*/
|
|
5
|
-
import type { AutoVideoSubtitleOptions, SubtitleCacheStats, SubtitleCueMetadata, SubtitleData, SubtitleDiagnosticWarning, SubtitleDisplaySettings, SubtitleLastRenderInfo, SubtitleParserMetadata, SubtitleRendererBackend, SubtitleRendererEvent, VideoSubtitleOptions, VideoVobSubOptions, WorkerRendererState } from './types';
|
|
5
|
+
import type { AutoVideoSubtitleOptions, LiveSubtitleRenderer, SubtitleCacheStats, SubtitleCueBounds, SubtitleCueMetadata, SubtitleData, SubtitleDiagnosticWarning, SubtitleDisplaySettings, SubtitleLastRenderInfo, SubtitleParserMetadata, SubtitleRendererBackend, SubtitleRendererEvent, SubtitleStreamChunk, SubtitleSynchronizationMode, VideoSubtitleOptions, VideoVobSubOptions, WorkerRendererState } from './types';
|
|
6
|
+
import { type AssetFetchProgress } from './range-loader';
|
|
6
7
|
import { WebGPURenderer } from './webgpu-renderer';
|
|
7
8
|
import { WebGL2Renderer } from './webgl2-renderer';
|
|
8
9
|
interface SubtitleRenderLayout {
|
|
@@ -17,6 +18,12 @@ interface RenderFrameOutcome {
|
|
|
17
18
|
data: SubtitleData | null;
|
|
18
19
|
warning: SubtitleDiagnosticWarning | null;
|
|
19
20
|
}
|
|
21
|
+
interface OffscreenFrameMetadata {
|
|
22
|
+
width: number | null;
|
|
23
|
+
height: number | null;
|
|
24
|
+
bounds: SubtitleCueBounds | null;
|
|
25
|
+
compositionCount: number;
|
|
26
|
+
}
|
|
20
27
|
/** Performance statistics for subtitle renderer */
|
|
21
28
|
export interface SubtitleRendererStats {
|
|
22
29
|
/** Total frames rendered since initialization */
|
|
@@ -43,6 +50,8 @@ export interface SubtitleRendererStats {
|
|
|
43
50
|
totalEntries: number;
|
|
44
51
|
/** Current subtitle index being displayed */
|
|
45
52
|
currentIndex: number;
|
|
53
|
+
/** Active video synchronization clock */
|
|
54
|
+
syncMode: SubtitleSynchronizationMode;
|
|
46
55
|
}
|
|
47
56
|
/**
|
|
48
57
|
* Base class for video-integrated subtitle renderers.
|
|
@@ -50,12 +59,18 @@ export interface SubtitleRendererStats {
|
|
|
50
59
|
*/
|
|
51
60
|
declare abstract class BaseVideoSubtitleRenderer {
|
|
52
61
|
protected video: HTMLVideoElement;
|
|
53
|
-
protected readonly format: 'pgs' | 'vobsub';
|
|
62
|
+
protected readonly format: 'pgs' | 'vobsub' | 'dvb';
|
|
54
63
|
protected subUrl?: string;
|
|
55
64
|
protected subContent?: ArrayBuffer;
|
|
56
65
|
protected canvas: HTMLCanvasElement | null;
|
|
66
|
+
private readonly providedCanvas;
|
|
67
|
+
private readonly requestedContainer;
|
|
68
|
+
private overlayContainer;
|
|
69
|
+
private ownsCanvas;
|
|
70
|
+
private readonly devicePixelRatioCap;
|
|
71
|
+
private readonly backendOption;
|
|
57
72
|
protected ctx: CanvasRenderingContext2D | null;
|
|
58
|
-
|
|
73
|
+
private frameScheduler;
|
|
59
74
|
protected isLoaded: boolean;
|
|
60
75
|
protected lastRenderedIndex: number;
|
|
61
76
|
protected lastRenderedTime: number;
|
|
@@ -69,11 +84,12 @@ declare abstract class BaseVideoSubtitleRenderer {
|
|
|
69
84
|
protected parserMetadata: SubtitleParserMetadata | null;
|
|
70
85
|
/** Display settings for subtitle rendering */
|
|
71
86
|
protected displaySettings: SubtitleDisplaySettings;
|
|
72
|
-
|
|
73
|
-
timeOffset: number;
|
|
87
|
+
private _timeOffset;
|
|
74
88
|
protected cacheLimit: number;
|
|
75
89
|
protected prefetchBefore: number;
|
|
76
90
|
protected prefetchAfter: number;
|
|
91
|
+
protected streamingLoad: boolean;
|
|
92
|
+
protected rangeRequests: boolean;
|
|
77
93
|
protected onEvent?: (event: SubtitleRendererEvent) => void;
|
|
78
94
|
protected onWarning?: (warning: SubtitleDiagnosticWarning) => void;
|
|
79
95
|
protected currentRendererBackend: SubtitleRendererBackend | null;
|
|
@@ -81,12 +97,25 @@ declare abstract class BaseVideoSubtitleRenderer {
|
|
|
81
97
|
protected lastRenderInfo: SubtitleLastRenderInfo | null;
|
|
82
98
|
private loadedMetadataHandler;
|
|
83
99
|
private seekedHandler;
|
|
100
|
+
private initPromise;
|
|
84
101
|
protected webgpuRenderer: WebGPURenderer | null;
|
|
85
102
|
protected useWebGPU: boolean;
|
|
86
103
|
protected onWebGPUFallback?: () => void;
|
|
87
104
|
protected webgl2Renderer: WebGL2Renderer | null;
|
|
88
105
|
protected useWebGL2: boolean;
|
|
89
106
|
protected onWebGL2Fallback?: () => void;
|
|
107
|
+
protected readonly offscreenRenderOption: boolean;
|
|
108
|
+
protected readonly frameAwareSync: boolean;
|
|
109
|
+
protected pendingWorkerOffscreen: boolean;
|
|
110
|
+
protected useWorkerOffscreen: boolean;
|
|
111
|
+
protected canvasPixelWidth: number;
|
|
112
|
+
protected canvasPixelHeight: number;
|
|
113
|
+
private presentationToken;
|
|
114
|
+
private offscreenAttachPromise;
|
|
115
|
+
private offscreenTransferPending;
|
|
116
|
+
private offscreenFrameMetadata;
|
|
117
|
+
private lastSynchronizedTime;
|
|
118
|
+
private lastPresentedFrames;
|
|
90
119
|
protected perfStats: {
|
|
91
120
|
framesRendered: number;
|
|
92
121
|
framesDropped: number;
|
|
@@ -95,9 +124,15 @@ declare abstract class BaseVideoSubtitleRenderer {
|
|
|
95
124
|
fpsTimestamps: number[];
|
|
96
125
|
lastFrameTime: number;
|
|
97
126
|
};
|
|
98
|
-
constructor(options: VideoSubtitleOptions, format: 'pgs' | 'vobsub');
|
|
127
|
+
constructor(options: VideoSubtitleOptions, format: 'pgs' | 'vobsub' | 'dvb');
|
|
128
|
+
protected emitLoadProgress(format: 'pgs' | 'vobsub' | 'dvb', progress: AssetFetchProgress, indexedCues: number): void;
|
|
129
|
+
protected emitIndexed(format: 'pgs' | 'vobsub' | 'dvb', metadata: SubtitleParserMetadata, partial: boolean): void;
|
|
130
|
+
protected memoryProgress(byteLength: number): AssetFetchProgress;
|
|
99
131
|
/** Get current display settings */
|
|
100
132
|
getDisplaySettings(): SubtitleDisplaySettings;
|
|
133
|
+
/** Time offset in seconds added to the active video clock for subtitle lookup. */
|
|
134
|
+
get timeOffset(): number;
|
|
135
|
+
set timeOffset(value: number);
|
|
101
136
|
/** Get performance statistics */
|
|
102
137
|
abstract getStats(): SubtitleRendererStats;
|
|
103
138
|
/** Get cache-related diagnostics for the active renderer session. */
|
|
@@ -114,16 +149,39 @@ declare abstract class BaseVideoSubtitleRenderer {
|
|
|
114
149
|
getCacheLimit(): number;
|
|
115
150
|
/** Get base stats common to all renderers */
|
|
116
151
|
protected getBaseStats(): Omit<SubtitleRendererStats, 'usingWorker' | 'cachedFrames' | 'pendingRenders' | 'totalEntries'>;
|
|
152
|
+
/** Get the active video synchronization clock. */
|
|
153
|
+
getSynchronizationMode(): SubtitleSynchronizationMode;
|
|
117
154
|
/** Set display settings and force re-render */
|
|
118
155
|
setDisplaySettings(settings: Partial<SubtitleDisplaySettings>): void;
|
|
119
156
|
/** Reset display settings to defaults */
|
|
120
157
|
resetDisplaySettings(): void;
|
|
121
158
|
/** Start initialization. */
|
|
122
159
|
protected startInit(): void;
|
|
160
|
+
/** Wait for canvas, parser, and worker initialization before accepting pushed data. */
|
|
161
|
+
protected waitUntilInitialized(): Promise<void>;
|
|
162
|
+
/** Re-run cue selection after a live stream mutation. */
|
|
163
|
+
protected refreshStreamPresentation(): void;
|
|
164
|
+
/** Clear the currently presented cue after a live stream reset. */
|
|
165
|
+
protected clearStreamPresentation(): void;
|
|
123
166
|
/** Initialize the renderer. */
|
|
124
167
|
protected init(): Promise<void>;
|
|
168
|
+
protected shouldPreferWorkerOffscreen(): boolean;
|
|
169
|
+
protected isWorkerOffscreenPresent(): boolean;
|
|
170
|
+
private getDefaultContainer;
|
|
171
|
+
private getContainerElement;
|
|
172
|
+
private getCanvasParent;
|
|
173
|
+
private removeOwnedCanvas;
|
|
174
|
+
private mountOverlayCanvas;
|
|
175
|
+
private selectBackend;
|
|
125
176
|
/** Create the canvas overlay positioned over the video. */
|
|
126
177
|
protected createCanvas(): void;
|
|
178
|
+
private preferWorkerOffscreenOrCanvas2D;
|
|
179
|
+
protected ensureWorkerOffscreenAttached(): Promise<void>;
|
|
180
|
+
private attachWorkerOffscreen;
|
|
181
|
+
private recreateCanvasForMainThreadFallback;
|
|
182
|
+
private fallbackFromWorkerOffscreen;
|
|
183
|
+
protected getOffscreenFrameMetadata(index: number): OffscreenFrameMetadata | null;
|
|
184
|
+
protected clearOffscreenFrameMetadata(): void;
|
|
127
185
|
protected emitEvent(event: SubtitleRendererEvent): void;
|
|
128
186
|
protected emitWarning(warning: SubtitleDiagnosticWarning): void;
|
|
129
187
|
protected setParserMetadata(metadata: SubtitleParserMetadata | null): void;
|
|
@@ -140,6 +198,8 @@ declare abstract class BaseVideoSubtitleRenderer {
|
|
|
140
198
|
private initCanvas2D;
|
|
141
199
|
/** Called when video seeks. */
|
|
142
200
|
protected onSeek(): void;
|
|
201
|
+
private getDevicePixelRatio;
|
|
202
|
+
private getCanvasMountOffset;
|
|
143
203
|
/** Calculate the actual video content bounds, accounting for letterboxing/pillarboxing */
|
|
144
204
|
protected getVideoContentBounds(): {
|
|
145
205
|
x: number;
|
|
@@ -159,8 +219,18 @@ declare abstract class BaseVideoSubtitleRenderer {
|
|
|
159
219
|
protected abstract isPendingRender(index: number): boolean;
|
|
160
220
|
/** Start the render loop. */
|
|
161
221
|
protected startRenderLoop(): void;
|
|
222
|
+
protected renderPausedFrame(): void;
|
|
223
|
+
private renderSynchronizedFrame;
|
|
224
|
+
protected getCurrentSynchronizationTime(): number;
|
|
225
|
+
protected getPresentationToken(): number;
|
|
226
|
+
protected isCurrentPresentation(token: number): boolean;
|
|
227
|
+
protected invalidatePresentation(): void;
|
|
228
|
+
protected watchPendingRender(index: number, pending: Promise<SubtitleData | null>): void;
|
|
229
|
+
private recordRenderPerformance;
|
|
230
|
+
private recordOffscreenRenderCompletion;
|
|
162
231
|
/** Render a subtitle frame to the canvas. */
|
|
163
232
|
protected renderFrame(time: number, index: number): RenderFrameOutcome;
|
|
233
|
+
private renderFrameWorkerOffscreen;
|
|
164
234
|
protected computeLayout(data: SubtitleData): SubtitleRenderLayout;
|
|
165
235
|
/** Render using WebGPU. */
|
|
166
236
|
private renderFrameWebGPU;
|
|
@@ -175,14 +245,27 @@ declare abstract class BaseVideoSubtitleRenderer {
|
|
|
175
245
|
* High-level PGS subtitle renderer with Web Worker support.
|
|
176
246
|
* Compatible with the old libpgs-js API.
|
|
177
247
|
*/
|
|
178
|
-
export declare class PgsRenderer extends BaseVideoSubtitleRenderer {
|
|
248
|
+
export declare class PgsRenderer extends BaseVideoSubtitleRenderer implements LiveSubtitleRenderer {
|
|
179
249
|
private pgsParser;
|
|
180
250
|
private state;
|
|
251
|
+
private streamOperationQueue;
|
|
252
|
+
private streamGeneration;
|
|
181
253
|
private onLoading?;
|
|
182
254
|
private onLoaded?;
|
|
183
255
|
private onError?;
|
|
184
256
|
constructor(options: VideoSubtitleOptions);
|
|
185
257
|
protected loadSubtitles(): Promise<void>;
|
|
258
|
+
private applyPgsIndexState;
|
|
259
|
+
private beginPgsPushSession;
|
|
260
|
+
private enqueueStreamOperation;
|
|
261
|
+
/** Append a chunk to the active PGS stream and return the number of newly indexed cues. */
|
|
262
|
+
append(data: SubtitleStreamChunk): Promise<number>;
|
|
263
|
+
/** Flush incomplete trailing PGS input and return the total indexed cue count. */
|
|
264
|
+
flush(): Promise<number>;
|
|
265
|
+
/** Reset the PGS stream while keeping the renderer and canvas ready for more chunks. */
|
|
266
|
+
reset(): Promise<void>;
|
|
267
|
+
private loadPgsBuffer;
|
|
268
|
+
private loadPgsStreaming;
|
|
186
269
|
private loadOnMainThread;
|
|
187
270
|
protected getWorkerRendererState(): WorkerRendererState;
|
|
188
271
|
/** Yield to main thread to prevent UI blocking */
|
|
@@ -219,6 +302,11 @@ export declare class VobSubRenderer extends BaseVideoSubtitleRenderer {
|
|
|
219
302
|
private pendingIndexLookup;
|
|
220
303
|
constructor(options: VideoVobSubOptions);
|
|
221
304
|
protected loadSubtitles(): Promise<void>;
|
|
305
|
+
private applyVobSubIndexState;
|
|
306
|
+
private ensureVobSubWorkerSession;
|
|
307
|
+
private loadVobSubBuffer;
|
|
308
|
+
private loadVobSubMksStreaming;
|
|
309
|
+
private loadVobSubIdxSubStreaming;
|
|
222
310
|
private loadOnMainThread;
|
|
223
311
|
protected getWorkerRendererState(): WorkerRendererState;
|
|
224
312
|
/** Yield to main thread to prevent UI blocking */
|
|
@@ -245,7 +333,51 @@ export declare class VobSubRenderer extends BaseVideoSubtitleRenderer {
|
|
|
245
333
|
get debandEnabled(): boolean;
|
|
246
334
|
dispose(): void;
|
|
247
335
|
}
|
|
336
|
+
export declare class DvbRenderer extends BaseVideoSubtitleRenderer implements LiveSubtitleRenderer {
|
|
337
|
+
private dvbParser;
|
|
338
|
+
private endTimestamps;
|
|
339
|
+
private state;
|
|
340
|
+
private streamOperationQueue;
|
|
341
|
+
private streamGeneration;
|
|
342
|
+
private onLoading?;
|
|
343
|
+
private onLoaded?;
|
|
344
|
+
private onError?;
|
|
345
|
+
constructor(options: VideoSubtitleOptions);
|
|
346
|
+
protected loadSubtitles(): Promise<void>;
|
|
347
|
+
private applyDvbIndexState;
|
|
348
|
+
private beginDvbPushSession;
|
|
349
|
+
private enqueueStreamOperation;
|
|
350
|
+
/** Append a chunk to the active DVB stream and return the number of newly indexed cues. */
|
|
351
|
+
append(data: SubtitleStreamChunk): Promise<number>;
|
|
352
|
+
/** Flush incomplete trailing DVB input and return the total indexed cue count. */
|
|
353
|
+
flush(): Promise<number>;
|
|
354
|
+
/** Reset the DVB stream while keeping the renderer and canvas ready for more chunks. */
|
|
355
|
+
reset(): Promise<void>;
|
|
356
|
+
private loadDvbBuffer;
|
|
357
|
+
private loadDvbStreaming;
|
|
358
|
+
private loadOnMainThread;
|
|
359
|
+
protected getWorkerRendererState(): WorkerRendererState;
|
|
360
|
+
/** Yield to main thread to prevent UI blocking */
|
|
361
|
+
private yieldToMain;
|
|
362
|
+
protected renderAtTime(time: number): SubtitleData | undefined;
|
|
363
|
+
protected findCurrentIndex(time: number): number;
|
|
364
|
+
protected renderAtIndex(index: number): SubtitleData | undefined;
|
|
365
|
+
protected buildCueMetadata(index: number): SubtitleCueMetadata | null;
|
|
366
|
+
protected isPendingRender(index: number): boolean;
|
|
367
|
+
protected onSeek(): void;
|
|
368
|
+
setCacheLimit(limit: number): void;
|
|
369
|
+
clearFrameCache(): void;
|
|
370
|
+
prefetchRange(startIndex: number, endIndex: number): Promise<void>;
|
|
371
|
+
prefetchAroundTime(time: number, before?: number, after?: number): Promise<void>;
|
|
372
|
+
/** Get performance statistics for DVB renderer */
|
|
373
|
+
getStats(): SubtitleRendererStats;
|
|
374
|
+
dispose(): void;
|
|
375
|
+
}
|
|
376
|
+
/**
|
|
377
|
+
* High-level VobSub subtitle renderer with Web Worker support.
|
|
378
|
+
* Compatible with the old libpgs-js API.
|
|
379
|
+
*/
|
|
248
380
|
/** Create a video subtitle renderer with automatic format detection. */
|
|
249
|
-
export declare function createAutoSubtitleRenderer(options: AutoVideoSubtitleOptions): PgsRenderer | VobSubRenderer;
|
|
381
|
+
export declare function createAutoSubtitleRenderer(options: AutoVideoSubtitleOptions): PgsRenderer | VobSubRenderer | DvbRenderer;
|
|
250
382
|
export {};
|
|
251
383
|
//# sourceMappingURL=renderers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderers.d.ts","sourceRoot":"","sources":["../../src/ts/renderers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"renderers.d.ts","sourceRoot":"","sources":["../../src/ts/renderers.ts"],"names":[],"mappings":"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"}
|