akarisub 0.2.2 → 1.0.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 +198 -167
- package/THIRD_PARTY_NOTICES.md +55 -163
- package/dist/COPYRIGHT +56 -164
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -147
- package/dist/index.js.map +1 -0
- package/dist/ts/{ts/akarisub.d.ts → akarisub.d.ts} +80 -99
- package/dist/ts/akarisub.d.ts.map +1 -0
- package/dist/ts/akarisub.js +2086 -0
- package/dist/ts/akarisub.js.map +1 -0
- package/dist/ts/timing.d.ts +63 -0
- package/dist/ts/timing.d.ts.map +1 -0
- package/dist/ts/timing.js +219 -0
- package/dist/ts/timing.js.map +1 -0
- package/dist/ts/{ts/types.d.ts → types.d.ts} +103 -78
- package/dist/ts/types.d.ts.map +1 -0
- package/dist/ts/types.js +2 -0
- package/dist/ts/{ts/types.js.map → types.js.map} +1 -1
- package/dist/ts/{ts/utils.d.ts → utils.d.ts} +0 -31
- package/dist/ts/utils.d.ts.map +1 -0
- package/dist/ts/{ts/utils.js → utils.js} +0 -56
- package/dist/ts/utils.js.map +1 -0
- package/dist/ts/wasm.d.ts +12 -0
- package/dist/ts/wasm.d.ts.map +1 -0
- package/dist/ts/wasm.js +46 -0
- package/dist/ts/wasm.js.map +1 -0
- package/dist/ts/{ts/webgl2-renderer.d.ts → webgl2-renderer.d.ts} +0 -12
- package/dist/ts/webgl2-renderer.d.ts.map +1 -0
- package/dist/ts/{ts/webgl2-renderer.js → webgl2-renderer.js} +0 -27
- package/dist/ts/webgl2-renderer.js.map +1 -0
- package/dist/ts/{ts/webgpu-renderer.d.ts → webgpu-renderer.d.ts} +17 -16
- package/dist/ts/webgpu-renderer.d.ts.map +1 -0
- package/dist/ts/{ts/webgpu-renderer.js → webgpu-renderer.js} +148 -71
- package/dist/ts/webgpu-renderer.js.map +1 -0
- package/dist/ts/worker.d.ts +2 -0
- package/dist/ts/{ts/worker.d.ts.map → worker.d.ts.map} +1 -1
- package/dist/ts/{ts/worker.js → worker.js} +1064 -264
- package/dist/ts/worker.js.map +1 -0
- package/dist/wrapper.d.ts +8 -0
- package/dist/wrapper.d.ts.map +1 -0
- package/dist/{ts/index.js → wrapper.js} +4 -14
- package/dist/wrapper.js.map +1 -0
- package/package.json +24 -22
- package/pkg/akarisub.js +53 -0
- package/{dist/akarisub-worker.wasm → pkg/akarisub.wasm} +0 -0
- package/src/wrapper.ts +46 -0
- package/dist/akarisub-worker.js +0 -39
- package/dist/akarisub.umd.js +0 -159
- package/dist/ts/index.d.ts +0 -14
- package/dist/ts/index.d.ts.map +0 -1
- package/dist/ts/index.js.map +0 -1
- package/dist/ts/ts/akarisub.d.ts.map +0 -1
- package/dist/ts/ts/akarisub.js +0 -1073
- package/dist/ts/ts/akarisub.js.map +0 -1
- package/dist/ts/ts/types.d.ts.map +0 -1
- package/dist/ts/ts/types.js +0 -5
- package/dist/ts/ts/utils.d.ts.map +0 -1
- package/dist/ts/ts/utils.js.map +0 -1
- package/dist/ts/ts/webgl2-renderer.d.ts.map +0 -1
- package/dist/ts/ts/webgl2-renderer.js.map +0 -1
- package/dist/ts/ts/webgpu-renderer.d.ts.map +0 -1
- package/dist/ts/ts/webgpu-renderer.js.map +0 -1
- package/dist/ts/ts/worker.d.ts +0 -6
- package/dist/ts/ts/worker.js.map +0 -1
- package/dist/ts/wrapper.d.ts +0 -8
- package/dist/ts/wrapper.d.ts.map +0 -1
- package/dist/ts/wrapper.js +0 -9
- package/dist/ts/wrapper.js.map +0 -1
- package/src/ts/akarisub.ts +0 -1272
- package/src/ts/types.ts +0 -397
- package/src/ts/utils.ts +0 -512
- package/src/ts/webgl2-renderer.ts +0 -426
- package/src/ts/webgpu-renderer.ts +0 -691
- package/src/ts/worker.ts +0 -2052
- /package/{dist → assets}/default.woff2 +0 -0
|
@@ -1,48 +1,30 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Type definitions for AkariSub TypeScript implementation.
|
|
3
|
-
*/
|
|
4
|
-
/** ASS Event (dialogue/subtitle entry) */
|
|
5
1
|
export interface ASSEvent {
|
|
6
|
-
/** Start Time of the Event (in milliseconds) */
|
|
7
2
|
Start: number;
|
|
8
|
-
/** Duration of the Event (in milliseconds) */
|
|
9
3
|
Duration: number;
|
|
10
|
-
/** Style name */
|
|
11
4
|
Style: string;
|
|
12
5
|
/** Character name (for information only) */
|
|
13
6
|
Name: string;
|
|
14
|
-
/** Left Margin override in pixels */
|
|
15
7
|
MarginL: number;
|
|
16
|
-
/** Right Margin override in pixels */
|
|
17
8
|
MarginR: number;
|
|
18
|
-
/** Bottom Margin override in pixels */
|
|
19
9
|
MarginV: number;
|
|
20
|
-
/** Transition Effect */
|
|
21
10
|
Effect: string;
|
|
22
|
-
/** Subtitle Text */
|
|
23
11
|
Text: string;
|
|
24
|
-
/** Read order number */
|
|
25
12
|
ReadOrder: number;
|
|
26
|
-
/** Z-index layer */
|
|
27
13
|
Layer: number;
|
|
28
|
-
/** Internal index */
|
|
29
14
|
_index?: number;
|
|
30
15
|
}
|
|
31
|
-
/** ASS Style definition */
|
|
32
16
|
export interface ASSStyle {
|
|
33
17
|
/** Style name (case sensitive) */
|
|
34
18
|
Name: string;
|
|
35
|
-
/** Font family name */
|
|
36
19
|
FontName: string;
|
|
37
|
-
/** Font size */
|
|
38
20
|
FontSize: number;
|
|
39
|
-
/**
|
|
21
|
+
/** RGBA packed as uint32 */
|
|
40
22
|
PrimaryColour: number;
|
|
41
|
-
/**
|
|
23
|
+
/** RGBA packed as uint32 */
|
|
42
24
|
SecondaryColour: number;
|
|
43
|
-
/**
|
|
25
|
+
/** RGBA packed as uint32 */
|
|
44
26
|
OutlineColour: number;
|
|
45
|
-
/**
|
|
27
|
+
/** RGBA packed as uint32 */
|
|
46
28
|
BackColour: number;
|
|
47
29
|
/** Bold (-1 = true, 0 = false) */
|
|
48
30
|
Bold: number;
|
|
@@ -52,82 +34,77 @@ export interface ASSStyle {
|
|
|
52
34
|
Underline: number;
|
|
53
35
|
/** StrikeOut (-1 = true, 0 = false) */
|
|
54
36
|
StrikeOut: number;
|
|
55
|
-
/** Width scale
|
|
37
|
+
/** Width scale percent */
|
|
56
38
|
ScaleX: number;
|
|
57
|
-
/** Height scale
|
|
39
|
+
/** Height scale percent */
|
|
58
40
|
ScaleY: number;
|
|
59
|
-
/** Extra spacing between characters (pixels) */
|
|
60
41
|
Spacing: number;
|
|
61
|
-
/** Rotation angle (degrees) */
|
|
62
42
|
Angle: number;
|
|
63
43
|
/** Border style (1 = outline + shadow, 3 = opaque box) */
|
|
64
44
|
BorderStyle: number;
|
|
65
|
-
/** Outline width (0-4 pixels) */
|
|
66
45
|
Outline: number;
|
|
67
|
-
/** Shadow depth (0-4 pixels) */
|
|
68
46
|
Shadow: number;
|
|
69
47
|
/** Alignment (1-9, numpad style) */
|
|
70
48
|
Alignment: number;
|
|
71
|
-
/** Left margin (pixels) */
|
|
72
49
|
MarginL: number;
|
|
73
|
-
/** Right margin (pixels) */
|
|
74
50
|
MarginR: number;
|
|
75
|
-
/** Vertical margin (pixels) */
|
|
76
51
|
MarginV: number;
|
|
77
|
-
/** Font encoding */
|
|
78
52
|
Encoding: number;
|
|
79
|
-
/** Treat font name as pattern */
|
|
80
53
|
treat_fontname_as_pattern: number;
|
|
81
|
-
/** Blur amount */
|
|
82
54
|
Blur: number;
|
|
83
|
-
/** Text justification */
|
|
84
55
|
Justify: number;
|
|
85
56
|
}
|
|
86
|
-
/** Performance statistics for the renderer */
|
|
87
57
|
export interface PerformanceStats {
|
|
88
|
-
/** Total frames rendered since reset */
|
|
89
58
|
framesRendered: number;
|
|
90
|
-
/** Number of frames dropped */
|
|
91
59
|
framesDropped: number;
|
|
92
|
-
/** Average render time in milliseconds */
|
|
93
60
|
avgRenderTime: number;
|
|
94
|
-
/** Maximum render time in milliseconds */
|
|
95
61
|
maxRenderTime: number;
|
|
96
|
-
/** Minimum render time in milliseconds */
|
|
97
62
|
minRenderTime: number;
|
|
98
|
-
/** Last render time in milliseconds */
|
|
99
63
|
lastRenderTime: number;
|
|
100
|
-
/**
|
|
64
|
+
/** Current automatically learned presentation-latency compensation in milliseconds */
|
|
65
|
+
timingCompensationMs?: number;
|
|
66
|
+
/** Number of image planes emitted by the last render */
|
|
67
|
+
lastImageCount?: number;
|
|
68
|
+
/** Total RGBA/raw image pixels emitted by the last render */
|
|
69
|
+
lastImagePixels?: number;
|
|
101
70
|
renderFps: number;
|
|
102
|
-
/** Whether using Web Worker */
|
|
103
71
|
usingWorker: boolean;
|
|
104
|
-
/** Whether
|
|
72
|
+
/** Whether worker-side raw ASS_Image WebGL2 composition is active */
|
|
73
|
+
rawAssImageGpu?: boolean;
|
|
74
|
+
workerRenderer?: 'webgl2-raw-ass' | 'canvas2d' | 'hybrid' | 'main-thread';
|
|
105
75
|
offscreenRender: boolean;
|
|
106
|
-
/** Whether on-demand rendering is enabled */
|
|
107
76
|
onDemandRender: boolean;
|
|
108
|
-
/** Number of pending render operations */
|
|
109
77
|
pendingRenders: number;
|
|
110
|
-
/** Total subtitle events in current track */
|
|
111
78
|
totalEvents: number;
|
|
112
|
-
/** Number of cache hits (unchanged frames) */
|
|
113
79
|
cacheHits: number;
|
|
114
|
-
/** Number of cache misses (rendered frames) */
|
|
115
80
|
cacheMisses: number;
|
|
116
81
|
}
|
|
117
|
-
/**
|
|
82
|
+
/** Encoded-frame timestamps with optional media/subtitle clock offsets. */
|
|
83
|
+
export interface FrameTimeline extends ArrayLike<number> {
|
|
84
|
+
/** Origin subtracted from raw browser media timestamps when locating a frame. */
|
|
85
|
+
mediaTimeOrigin?: number;
|
|
86
|
+
/** Signed offset subtracted from frame time when sampling libass. */
|
|
87
|
+
subtitleTimeOffset?: number;
|
|
88
|
+
}
|
|
118
89
|
export interface AkariSubOptions {
|
|
119
|
-
/** Video element to sync with and overlay */
|
|
120
90
|
video?: HTMLVideoElement;
|
|
121
|
-
/** Custom canvas element (optional if video is provided) */
|
|
122
91
|
canvas?: HTMLCanvasElement;
|
|
123
92
|
/** Image blending mode: 'js' for hardware acceleration, 'wasm' for software */
|
|
124
93
|
blendMode?: 'js' | 'wasm';
|
|
125
94
|
/** Use async rendering with ImageBitmap (default: true) */
|
|
126
95
|
asyncRender?: boolean;
|
|
127
|
-
/** Use offscreen canvas rendering (default: true) */
|
|
96
|
+
/** Use offscreen canvas rendering (default: true for video-managed canvases, false for custom canvases) */
|
|
128
97
|
offscreenRender?: boolean;
|
|
98
|
+
/** Use worker-side raw ASS_Image WebGL2 composition (default: false) */
|
|
99
|
+
rawAssImageGpu?: boolean;
|
|
129
100
|
/** Use requestVideoFrameCallback for precise sync (default: true) */
|
|
130
101
|
onDemandRender?: boolean;
|
|
102
|
+
/** Compensate measured render/presentation latency while playing (default: true) */
|
|
103
|
+
adaptiveTiming?: boolean;
|
|
104
|
+
/** Encoded video-frame timestamps and optional browser/subtitle clock offsets, in seconds */
|
|
105
|
+
frameTimeline?: FrameTimeline;
|
|
106
|
+
/** Number of exact subtitle frames to prepare ahead (default: 2) */
|
|
107
|
+
framePrefetch?: number;
|
|
131
108
|
/** Target FPS when not using onDemandRender (default: 24) */
|
|
132
109
|
targetFps?: number;
|
|
133
110
|
/** Time offset in seconds (default: 0) */
|
|
@@ -146,34 +123,40 @@ export interface AkariSubOptions {
|
|
|
146
123
|
dropAllBlur?: boolean;
|
|
147
124
|
/** Clamp \\pos values to script resolution (default: false) */
|
|
148
125
|
clampPos?: boolean;
|
|
149
|
-
/** URL to the worker
|
|
126
|
+
/** Optional worker script URL. Defaults to the package worker module URL. */
|
|
150
127
|
workerUrl?: string;
|
|
151
|
-
/** URL to the WASM
|
|
128
|
+
/** Optional WASM binary URL. Defaults to the package WASM URL resolved from import.meta.url. */
|
|
152
129
|
wasmUrl?: string;
|
|
153
|
-
/** URL to
|
|
130
|
+
/** Optional WASM glue script URL. Defaults to the package glue URL resolved from import.meta.url. */
|
|
131
|
+
glueUrl?: string;
|
|
154
132
|
subUrl?: string;
|
|
155
|
-
/** Subtitle content as string or UTF-8 bytes */
|
|
156
133
|
subContent?: string | Uint8Array | ArrayBuffer;
|
|
157
134
|
/** Encrypted subtitle content decrypted inside the worker before loading into libass */
|
|
158
135
|
encryptedSubContent?: EncryptedSubtitleContent;
|
|
159
|
-
/** Array of font URLs or Uint8Arrays */
|
|
160
136
|
fonts?: (string | Uint8Array)[];
|
|
161
|
-
/** Available fonts map (lowercase name -> URL/data) */
|
|
162
137
|
availableFonts?: Record<string, string | Uint8Array>;
|
|
163
138
|
/** Fallback font families in order (default: ['liberation sans']). Fontconfig uses these for cascade. */
|
|
164
139
|
fallbackFonts?: string[];
|
|
165
|
-
/** Use Local Font Access API (default: true if available) */
|
|
140
|
+
/** Use Local Font Access API for OS font lookup (default: true if available) */
|
|
166
141
|
useLocalFonts?: boolean;
|
|
142
|
+
/** Use libass fontconfig provider for virtual/packaged font lookup (default: true) */
|
|
143
|
+
useFontconfigProvider?: boolean;
|
|
167
144
|
/** libass bitmap cache memory limit in MiB */
|
|
168
145
|
libassMemoryLimit?: number;
|
|
169
146
|
/** libass glyph cache limit */
|
|
170
147
|
libassGlyphLimit?: number;
|
|
171
148
|
/** Callback invoked when all GPU renderers (WebGPU, WebGL2) are unavailable and the renderer falls back to Canvas2D */
|
|
172
149
|
onCanvasFallback?: () => void;
|
|
173
|
-
/** Additional time in seconds to render subtitles ahead
|
|
150
|
+
/** Additional time in seconds to render subtitles ahead, on top of adaptive timing (default: 0) */
|
|
174
151
|
renderAhead?: number;
|
|
175
152
|
/** Pre-render early track windows after load to warm libass caches (default: false) */
|
|
176
153
|
fullTrackWarmup?: boolean;
|
|
154
|
+
/** Wait for fullTrackWarmup to finish before ready (default: false) */
|
|
155
|
+
blockingFullTrackWarmup?: boolean;
|
|
156
|
+
/** Step in seconds for fullTrackWarmup; lower values warm more frames (default: 1) */
|
|
157
|
+
fullTrackWarmupStep?: number;
|
|
158
|
+
/** Allow adaptive CPU preblend layouts for text-heavy frames (default: false) */
|
|
159
|
+
adaptiveBlendLayouts?: boolean;
|
|
177
160
|
}
|
|
178
161
|
export interface EncryptedSubtitleContent {
|
|
179
162
|
/** Non-extractable AES-GCM content key from akari-crypto's v2 transport flow */
|
|
@@ -191,7 +174,6 @@ export type ASSStyleCallback = (error: Error | null, styles: ASSStyle[]) => void
|
|
|
191
174
|
export type PerformanceStatsCallback = (error: Error | null, stats: PerformanceStats | null) => void;
|
|
192
175
|
/** @deprecated Use Promise-based resetStats() instead */
|
|
193
176
|
export type ResetStatsCallback = (error: Error | null) => void;
|
|
194
|
-
/** Image data for rendering */
|
|
195
177
|
export interface RenderImage {
|
|
196
178
|
x: number;
|
|
197
179
|
y: number;
|
|
@@ -199,7 +181,19 @@ export interface RenderImage {
|
|
|
199
181
|
h: number;
|
|
200
182
|
image: ImageBitmap | ArrayBuffer | Uint8Array | Uint8ClampedArray | number;
|
|
201
183
|
}
|
|
202
|
-
/**
|
|
184
|
+
/** Raw libass ASS_Image plane exposed directly from WASM for GPU mask composition. */
|
|
185
|
+
export interface RawASSImage {
|
|
186
|
+
dst_x: number;
|
|
187
|
+
dst_y: number;
|
|
188
|
+
w: number;
|
|
189
|
+
h: number;
|
|
190
|
+
/** Pointer to ASS_Image.bitmap in WASM memory */
|
|
191
|
+
bitmap: number;
|
|
192
|
+
/** ASS_Image.color packed as RRGGBBAA */
|
|
193
|
+
color: number;
|
|
194
|
+
stride: number;
|
|
195
|
+
type: number;
|
|
196
|
+
}
|
|
203
197
|
export interface RenderTimes {
|
|
204
198
|
WASMRenderTime?: number;
|
|
205
199
|
WASMBitmapDecodeTime?: number;
|
|
@@ -208,7 +202,6 @@ export interface RenderTimes {
|
|
|
208
202
|
IPCTime?: number;
|
|
209
203
|
bitmaps?: number;
|
|
210
204
|
}
|
|
211
|
-
/** Worker -> Main thread message for rendering */
|
|
212
205
|
export interface RenderMessage {
|
|
213
206
|
target: 'render';
|
|
214
207
|
asyncRender: boolean;
|
|
@@ -217,14 +210,20 @@ export interface RenderMessage {
|
|
|
217
210
|
width: number;
|
|
218
211
|
height: number;
|
|
219
212
|
colorSpace: string | null;
|
|
213
|
+
requestId?: number;
|
|
214
|
+
renderEpoch?: number;
|
|
215
|
+
presentationId?: number;
|
|
220
216
|
}
|
|
221
|
-
/** Worker -> Main thread messages */
|
|
222
217
|
export type WorkerOutboundMessage = {
|
|
223
218
|
target: 'ready';
|
|
224
219
|
} | {
|
|
225
220
|
target: 'trackReady';
|
|
226
221
|
} | {
|
|
227
222
|
target: 'unbusy';
|
|
223
|
+
requestId?: number;
|
|
224
|
+
renderEpoch?: number;
|
|
225
|
+
presentationId?: number;
|
|
226
|
+
painted?: boolean;
|
|
228
227
|
} | {
|
|
229
228
|
target: 'console';
|
|
230
229
|
command: string;
|
|
@@ -255,14 +254,21 @@ export type WorkerOutboundMessage = {
|
|
|
255
254
|
target: 'getStyleCount';
|
|
256
255
|
count: number;
|
|
257
256
|
} | RenderMessage;
|
|
258
|
-
/** Main thread -> Worker init message */
|
|
259
257
|
export interface WorkerInitMessage {
|
|
260
258
|
target: 'init';
|
|
261
259
|
wasmUrl: string;
|
|
260
|
+
glueUrl?: string;
|
|
262
261
|
asyncRender: boolean;
|
|
263
262
|
fullTrackWarmup: boolean;
|
|
263
|
+
blockingFullTrackWarmup: boolean;
|
|
264
|
+
fullTrackWarmupStep: number;
|
|
265
|
+
adaptiveBlendLayouts: boolean;
|
|
266
|
+
rawAssImageGpu: boolean;
|
|
264
267
|
onDemandRender: boolean;
|
|
265
268
|
initialTime: number;
|
|
269
|
+
initialIsPaused: boolean;
|
|
270
|
+
initialPlaybackRate: number;
|
|
271
|
+
initialTimeSnapshotAtMs: number;
|
|
266
272
|
width: number;
|
|
267
273
|
height: number;
|
|
268
274
|
blendMode: 'js' | 'wasm';
|
|
@@ -274,17 +280,21 @@ export interface WorkerInitMessage {
|
|
|
274
280
|
fallbackFonts: string[];
|
|
275
281
|
debug: boolean;
|
|
276
282
|
targetFps: number;
|
|
283
|
+
renderAhead: number;
|
|
284
|
+
adaptiveTiming: boolean;
|
|
285
|
+
frameTimelineMode: boolean;
|
|
277
286
|
dropAllAnimations?: boolean;
|
|
278
287
|
dropAllBlur?: boolean;
|
|
279
288
|
clampPos?: boolean;
|
|
280
289
|
libassMemoryLimit?: number;
|
|
281
290
|
libassGlyphLimit?: number;
|
|
282
291
|
useLocalFonts: boolean;
|
|
292
|
+
useFontconfigProvider: boolean;
|
|
283
293
|
hasBitmapBug: boolean;
|
|
284
294
|
}
|
|
285
|
-
/** Main thread -> Worker messages */
|
|
286
295
|
export type WorkerInboundMessage = WorkerInitMessage | {
|
|
287
296
|
target: 'offscreenCanvas';
|
|
297
|
+
rawAssImageGpu?: boolean;
|
|
288
298
|
transferable: [OffscreenCanvas];
|
|
289
299
|
} | {
|
|
290
300
|
target: 'detachOffscreen';
|
|
@@ -300,6 +310,7 @@ export type WorkerInboundMessage = WorkerInitMessage | {
|
|
|
300
310
|
currentTime?: number;
|
|
301
311
|
isPaused?: boolean;
|
|
302
312
|
rate?: number;
|
|
313
|
+
renderAhead?: number;
|
|
303
314
|
colorSpace?: string | null;
|
|
304
315
|
} | {
|
|
305
316
|
target: 'setTrack';
|
|
@@ -315,6 +326,26 @@ export type WorkerInboundMessage = WorkerInitMessage | {
|
|
|
315
326
|
} | {
|
|
316
327
|
target: 'demand';
|
|
317
328
|
time: number;
|
|
329
|
+
force?: boolean;
|
|
330
|
+
requestId?: number;
|
|
331
|
+
renderEpoch?: number;
|
|
332
|
+
presentationId?: number;
|
|
333
|
+
} | {
|
|
334
|
+
target: 'prepare';
|
|
335
|
+
time: number;
|
|
336
|
+
prepareId: number;
|
|
337
|
+
renderEpoch: number;
|
|
338
|
+
force?: boolean;
|
|
339
|
+
} | {
|
|
340
|
+
target: 'presentation';
|
|
341
|
+
presentationId: number;
|
|
342
|
+
} | {
|
|
343
|
+
target: 'presentFrame';
|
|
344
|
+
bitmap: ImageBitmap;
|
|
345
|
+
presentationId: number;
|
|
346
|
+
} | {
|
|
347
|
+
target: 'frameTimelineMode';
|
|
348
|
+
enabled: boolean;
|
|
318
349
|
} | {
|
|
319
350
|
target: 'destroy';
|
|
320
351
|
} | {
|
|
@@ -363,39 +394,32 @@ export type WorkerInboundMessage = WorkerInitMessage | {
|
|
|
363
394
|
} | {
|
|
364
395
|
target: 'getColorSpace';
|
|
365
396
|
};
|
|
366
|
-
/** requestVideoFrameCallback metadata */
|
|
367
397
|
export interface VideoFrameCallbackMetadata {
|
|
368
|
-
/** The current media time of the frame being displayed (seconds) */
|
|
369
398
|
mediaTime: number;
|
|
370
|
-
/** Video intrinsic width */
|
|
371
399
|
width: number;
|
|
372
|
-
/** Video intrinsic height */
|
|
373
400
|
height: number;
|
|
374
|
-
/** Number of frames presented so far */
|
|
375
401
|
presentedFrames?: number;
|
|
376
|
-
/** Time spent processing the frame (milliseconds) */
|
|
377
402
|
processingDuration?: number;
|
|
378
|
-
/** Expected time when this frame will be displayed (DOMHighResTimeStamp) */
|
|
379
403
|
expectedDisplayTime?: number;
|
|
380
|
-
/** Time at which the frame was presented (DOMHighResTimeStamp) */
|
|
381
404
|
presentationTime?: number;
|
|
382
405
|
}
|
|
383
406
|
export type WebYCbCrColorSpace = 'BT709' | 'BT601';
|
|
384
407
|
export type SubtitleColorSpace = 'BT601' | 'BT709' | 'SMPTE240M' | 'FCC' | null;
|
|
385
|
-
/** Emscripten AkariSub Module (C ABI exports) */
|
|
386
408
|
export interface AkariSubModule extends EmscriptenModule {
|
|
387
409
|
_malloc: (size: number) => number;
|
|
388
410
|
_free: (ptr: number) => void;
|
|
389
411
|
_akarisub_create: (width: number, height: number, fallbackFontPtr: number, debug: number) => number;
|
|
390
412
|
_akarisub_destroy: (handle: number) => void;
|
|
391
413
|
_akarisub_set_drop_animations: (handle: number, value: number) => void;
|
|
414
|
+
_akarisub_set_adaptive_blend_layouts: (handle: number, value: number) => void;
|
|
392
415
|
_akarisub_create_track_mem: (handle: number, contentPtr: number) => void;
|
|
393
416
|
_akarisub_remove_track: (handle: number) => void;
|
|
394
417
|
_akarisub_resize_canvas: (handle: number, width: number, height: number, videoWidth: number, videoHeight: number) => void;
|
|
395
|
-
_akarisub_add_font: (handle: number, namePtr: number, dataPtr: number, size: number) =>
|
|
418
|
+
_akarisub_add_font: (handle: number, namePtr: number, dataPtr: number, size: number) => number;
|
|
396
419
|
_akarisub_reload_fonts: (handle: number) => void;
|
|
397
420
|
_akarisub_set_default_font: (handle: number, fontPtr: number) => void;
|
|
398
421
|
_akarisub_set_fallback_fonts: (handle: number, fontsPtr: number) => void;
|
|
422
|
+
_akarisub_set_use_fontconfig_provider: (handle: number, enabled: number) => void;
|
|
399
423
|
_akarisub_set_memory_limits: (handle: number, glyphLimit: number, memoryLimit: number) => void;
|
|
400
424
|
_akarisub_get_event_count: (handle: number) => number;
|
|
401
425
|
_akarisub_alloc_event: (handle: number) => number;
|
|
@@ -418,6 +442,7 @@ export interface AkariSubModule extends EmscriptenModule {
|
|
|
418
442
|
_akarisub_get_empty_window: (handle: number, tm: number, outPtr: number) => number;
|
|
419
443
|
_akarisub_render_blend_collect: (handle: number, time: number, force: number, outPtr: number, maxItems: number) => number;
|
|
420
444
|
_akarisub_render_image_collect: (handle: number, time: number, force: number, outPtr: number, maxItems: number) => number;
|
|
445
|
+
_akarisub_render_raw_collect: (handle: number, time: number, force: number, outPtr: number, maxItems: number) => number;
|
|
421
446
|
FS_createPath: (parent: string, path: string, canRead: boolean, canWrite: boolean) => void;
|
|
422
447
|
FS_createDataFile: (parent: string, name: string | null, data: Uint8Array, canRead: boolean, canWrite: boolean, canOwn?: boolean) => void;
|
|
423
448
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ts/types.ts"],"names":[],"mappings":"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"}
|
package/dist/ts/types.js
ADDED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ts/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,27 +1,12 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Utility functions for AkariSub.
|
|
3
|
-
*/
|
|
4
1
|
import type { SubtitleColorSpace, WebYCbCrColorSpace } from './types';
|
|
5
|
-
/** Map video color space to standard name */
|
|
6
2
|
export declare const webYCbCrMap: Record<string, WebYCbCrColorSpace>;
|
|
7
|
-
/** Color matrix conversion values for SVG filter */
|
|
8
3
|
export declare const colorMatrixConversionMap: Record<string, Record<string, string>>;
|
|
9
|
-
/** libass YCbCr color space index map */
|
|
10
4
|
export declare const libassYCbCrMap: (SubtitleColorSpace | null)[];
|
|
11
|
-
/**
|
|
12
|
-
* Generate SVG filter URL for color space conversion.
|
|
13
|
-
*/
|
|
14
5
|
export declare function getColorSpaceFilterUrl(subtitleColorSpace: SubtitleColorSpace, videoColorSpace: WebYCbCrColorSpace): string | null;
|
|
15
|
-
/**
|
|
16
|
-
* Compute canvas size with prescaling.
|
|
17
|
-
*/
|
|
18
6
|
export declare function computeCanvasSize(width: number, height: number, prescaleFactor: number, prescaleHeightLimit: number, maxRenderHeight: number): {
|
|
19
7
|
width: number;
|
|
20
8
|
height: number;
|
|
21
9
|
};
|
|
22
|
-
/**
|
|
23
|
-
* Get video position and size accounting for aspect ratio.
|
|
24
|
-
*/
|
|
25
10
|
export declare function getVideoPosition(video: HTMLVideoElement, videoWidth?: number, videoHeight?: number): {
|
|
26
11
|
width: number;
|
|
27
12
|
height: number;
|
|
@@ -41,38 +26,22 @@ interface ASSBodyEntry {
|
|
|
41
26
|
key?: string;
|
|
42
27
|
value: string | string[] | Record<string, string>;
|
|
43
28
|
}
|
|
44
|
-
/**
|
|
45
|
-
* Parse ASS file content.
|
|
46
|
-
* @param content - ASS file content
|
|
47
|
-
* @param stopAtEvents - Stop parsing when [Events] section is reached (for font detection)
|
|
48
|
-
*/
|
|
49
29
|
export declare function parseAss(content: string, stopAtEvents?: boolean): ASSSection[];
|
|
50
|
-
/**
|
|
51
|
-
* Remove all blur tags from subtitle content.
|
|
52
|
-
*/
|
|
53
30
|
export declare function dropBlur(subContent: string): string;
|
|
54
31
|
/**
|
|
55
32
|
* Scale override tags in Events from detected source resolution to PlayRes.
|
|
56
33
|
* Only scales tags within override blocks {...} in the Events section.
|
|
57
34
|
*/
|
|
58
35
|
export declare function fixPlayRes(subContent: string): string;
|
|
59
|
-
/**
|
|
60
|
-
* Test for browser image bugs.
|
|
61
|
-
*/
|
|
62
36
|
export declare function testImageBugs(): Promise<{
|
|
63
37
|
hasAlphaBug: boolean;
|
|
64
38
|
hasBitmapBug: boolean;
|
|
65
39
|
}>;
|
|
66
|
-
/**
|
|
67
|
-
* Run all feature detection tests.
|
|
68
|
-
*/
|
|
69
40
|
export declare function runFeatureTests(): Promise<{
|
|
70
41
|
hasAlphaBug: boolean;
|
|
71
42
|
hasBitmapBug: boolean;
|
|
72
43
|
}>;
|
|
73
|
-
/** Get cached alpha bug value */
|
|
74
44
|
export declare function getAlphaBug(): boolean | null;
|
|
75
|
-
/** Get cached bitmap bug value */
|
|
76
45
|
export declare function getBitmapBug(): boolean | null;
|
|
77
46
|
export {};
|
|
78
47
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/ts/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAErE,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAI1D,CAAA;AAED,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAe3E,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,CAAC,kBAAkB,GAAG,IAAI,CAAC,EAYvD,CAAA;AAED,wBAAgB,sBAAsB,CACpC,kBAAkB,EAAE,kBAAkB,EACtC,eAAe,EAAE,kBAAkB,GAClC,MAAM,GAAG,IAAI,CAQf;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,EACtB,mBAAmB,EAAE,MAAM,EAC3B,eAAe,EAAE,MAAM,GACtB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAyBnC;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,gBAAgB,EACvB,UAAU,GAAE,MAAyB,EACrC,WAAW,GAAE,MAA0B,GACtC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAkBzD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,OAAO,GAAG,iBAAiB,CAmB1F;AAED,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,YAAY,EAAE,CAAA;CACrB;AAED,UAAU,YAAY;IACpB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAClD;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,GAAE,OAAe,GAAG,UAAU,EAAE,CA0ErF;AAID,wBAAgB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEnD;AAyBD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAmHrD;AAKD,wBAAsB,aAAa,IAAI,OAAO,CAAC;IAAE,WAAW,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,OAAO,CAAA;CAAE,CAAC,CAyD9F;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC;IAC/C,WAAW,EAAE,OAAO,CAAA;IACpB,YAAY,EAAE,OAAO,CAAA;CACtB,CAAC,CAED;AAED,wBAAgB,WAAW,IAAI,OAAO,GAAG,IAAI,CAE5C;AAED,wBAAgB,YAAY,IAAI,OAAO,GAAG,IAAI,CAE7C"}
|