akarisub 1.1.4 → 1.1.6
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 +4 -5
- package/dist/SHA256SUMS +109 -0
- package/dist/ts/akarisub.d.ts +14 -0
- package/dist/ts/akarisub.d.ts.map +1 -1
- package/dist/ts/akarisub.js +63 -2
- package/dist/ts/akarisub.js.map +1 -1
- package/dist/ts/encrypted-payload.d.ts +6 -0
- package/dist/ts/encrypted-payload.d.ts.map +1 -0
- package/dist/ts/encrypted-payload.js +86 -0
- package/dist/ts/encrypted-payload.js.map +1 -0
- package/dist/ts/gpu-budget.d.ts +11 -0
- package/dist/ts/gpu-budget.d.ts.map +1 -0
- package/dist/ts/gpu-budget.js +16 -0
- package/dist/ts/gpu-budget.js.map +1 -0
- package/dist/ts/subtitle-budget.d.ts +36 -0
- package/dist/ts/subtitle-budget.d.ts.map +1 -0
- package/dist/ts/subtitle-budget.js +97 -0
- package/dist/ts/subtitle-budget.js.map +1 -0
- package/dist/ts/types.d.ts +20 -4
- package/dist/ts/types.d.ts.map +1 -1
- package/dist/ts/utils.d.ts.map +1 -1
- package/dist/ts/utils.js +3 -2
- package/dist/ts/utils.js.map +1 -1
- package/dist/ts/webgl2-renderer.d.ts +5 -1
- package/dist/ts/webgl2-renderer.d.ts.map +1 -1
- package/dist/ts/webgl2-renderer.js +22 -9
- package/dist/ts/webgl2-renderer.js.map +1 -1
- package/dist/ts/webgpu-renderer.d.ts +6 -1
- package/dist/ts/webgpu-renderer.d.ts.map +1 -1
- package/dist/ts/webgpu-renderer.js +24 -11
- package/dist/ts/webgpu-renderer.js.map +1 -1
- package/dist/ts/worker.js +175 -77
- package/dist/ts/worker.js.map +1 -1
- package/package.json +1 -1
- package/pkg/akarisub-mt.wasm +0 -0
- package/pkg/akarisub.wasm +0 -0
package/README.md
CHANGED
|
@@ -178,7 +178,7 @@ const ja = await renderer.preloadTrack({ kind: 'url', url: '/subs/ja.ass' })
|
|
|
178
178
|
await renderer.activatePreloadedTrack(ja.id)
|
|
179
179
|
```
|
|
180
180
|
|
|
181
|
-
`preloadTrack()` also accepts ASS text or bytes,
|
|
181
|
+
`preloadTrack()` also accepts ASS text or bytes, or `{ kind: 'content', content }`. `activatePreloadedTrack()` without an id uses the most recently preloaded track.
|
|
182
182
|
|
|
183
183
|
## Streaming and live tracks
|
|
184
184
|
|
|
@@ -217,7 +217,7 @@ renderer.initStreamingTrack({ header: codecPrivate, format: 'matroska', pruneDel
|
|
|
217
217
|
renderer.appendSubtitleChunk(packet, startSeconds, durationSeconds)
|
|
218
218
|
```
|
|
219
219
|
|
|
220
|
-
`pruneDelay` deletes events that ended more than that many seconds before the last rendered timestamp. Call `pruneEvents(video.currentTime - 30)` yourself when you want an explicit live window. `flushEvents()` drops every event and keeps the header.
|
|
220
|
+
`pruneDelay` defaults to 600 seconds (pass `null` to retain everything; the track is still capped at 250,000 events, packets at 4 MiB, batches at 10,000 events, and unacknowledged appends are limited, so `append*` throws when the worker is backed up). It deletes events that ended more than that many seconds before the last rendered timestamp. Call `pruneEvents(video.currentTime - 30)` yourself when you want an explicit live window. `flushEvents()` drops every event and keeps the header.
|
|
221
221
|
|
|
222
222
|
Do not mix `appendSubtitleChunk` with `appendSubtitleData` / `createEvent` on the same track. libass uses ReadOrder to drop duplicate Matroska packets, and that check breaks if the event list is edited some other way.
|
|
223
223
|
|
|
@@ -370,12 +370,12 @@ The default options are best, and automatically fallback to the next fastest opt
|
|
|
370
370
|
| `hdr` | boolean \| `'auto'` | `'auto'` | Request an HDR canvas when the video transfer is PQ or HLG |
|
|
371
371
|
| `subUrl` | string | - | URL of the subtitle file to play |
|
|
372
372
|
| `subContent` | string \| Uint8Array \| ArrayBuffer | - | Content of the subtitle file to play |
|
|
373
|
-
| `encryptedSubContent` | EncryptedSubtitleContent | - | AES-GCM encrypted subtitle payload, decrypted inside the worker |
|
|
374
373
|
| `fonts` | (string \| Uint8Array)[] | - | Font URLs or bytes to force-load in full |
|
|
375
374
|
| `availableFonts` | Record<string, FontFamilySource> | liberation sans from package assets | Family name (lowercase) → URL, bytes, or unicode-range / script slices. Slices load lazily from the current track |
|
|
376
375
|
| `lazyFonts` | boolean | `true` | When `availableFonts` entries declare slices, fetch only the ones the current scripts need |
|
|
377
376
|
| `fallbackFonts` | string[] | `['liberation sans']` | Fallback font families in order, used for the fontconfig cascade |
|
|
378
377
|
| `useLocalFonts` | boolean | `true` | Use Local Font Access API if available |
|
|
378
|
+
| `maxSubtitleBytes` | number | `33554432` | Largest subtitle accepted from any source, in bytes. Raising it increases worker/WASM memory use
|
|
379
379
|
| `libassMemoryLimit` | number | `128` | libass bitmap cache memory limit in MiB |
|
|
380
380
|
| `libassGlyphLimit` | number | `2048` | libass glyph cache limit |
|
|
381
381
|
| `fullTrackWarmup` | boolean | `false` | Pre-render early track windows after load to warm libass caches |
|
|
@@ -394,7 +394,6 @@ The default options are best, and automatically fallback to the next fastest opt
|
|
|
394
394
|
| ----------------------------- | ---------------------------------------------- | -------------------------------------------------------------------------------- |
|
|
395
395
|
| `setTrackByUrl(url)` | `url: string` | Load subtitle from URL |
|
|
396
396
|
| `setTrack(content)` | `content: string \| Uint8Array \| ArrayBuffer` | Set subtitle from content |
|
|
397
|
-
| `setEncryptedTrack(content)` | `content: EncryptedSubtitleContent` | Set subtitle from an encrypted payload (decrypted in the worker) |
|
|
398
397
|
| `freeTrack()` | - | Remove current subtitles |
|
|
399
398
|
| `initStreamingTrack(options?)` | `StreamingTrackOptions \| string \| bytes` | Create a header-only track that can accept later fragments |
|
|
400
399
|
| `appendSubtitleData(content)` | `content: string \| Uint8Array \| ArrayBuffer` | Parse ASS text (Dialogue lines, extra styles) into the current track |
|
|
@@ -446,7 +445,7 @@ renderer.addEventListener('rendererChange', (event) => {
|
|
|
446
445
|
})
|
|
447
446
|
```
|
|
448
447
|
|
|
449
|
-
`CueEvent.start` and `CueEvent.duration` are seconds on the subtitle clock, matching `video.currentTime` plus `timeOffset`.
|
|
448
|
+
`CueEvent.start` and `CueEvent.duration` are seconds on the subtitle clock, matching `video.currentTime` plus `timeOffset`.
|
|
450
449
|
|
|
451
450
|
### Event Management
|
|
452
451
|
|
package/dist/SHA256SUMS
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
c123e009e4b481b06e7ca995645cb63e1628d70bd9ac7ffcaf64a09fc7a982d5 dist/COPYRIGHT
|
|
2
|
+
875e830e8d3ffc9dd4ac04e35bbff1679e8c2cca04b9e253a52c13cdd427e002 dist/index.d.ts
|
|
3
|
+
fa747f7391ea35d6b59c07de76361eb681eef308bb7e0b551172a28af0477b44 dist/index.d.ts.map
|
|
4
|
+
f0871506c51e81b20a9e897475035e77b320c647dc2bcf188868a79cacfb5796 dist/index.js
|
|
5
|
+
67016996be9755a0ef87973ead977d8273ea81787ccfae84c49fc640ebe32587 dist/index.js.map
|
|
6
|
+
0923a0094808cdbee10540c9d3216f6a259d11e73b76e4a19529327bad58f539 dist/ts/akarisub.d.ts
|
|
7
|
+
e898f480502cf2ae37c3a171e0bd1e8e082e8df3e84ae26494342bf9ea1469c1 dist/ts/akarisub.d.ts.map
|
|
8
|
+
7f6c7db8b97cbf1dd6630382c2320aa74be3bff9a21e40387e02643745163d03 dist/ts/akarisub.js
|
|
9
|
+
f7e0b58377fa2afa38e43959245b70ef2bae99f3974a94b688a814f1822e5746 dist/ts/akarisub.js.map
|
|
10
|
+
2e3ec3f18d67bd58a48e96df1045319f6a9ba6c9eccdf1b5875e695a15c6eae6 dist/ts/asset-loader.d.ts
|
|
11
|
+
f0ed2554e5776285d3af64375e59d0b9825d6c1cf9ad126d36a1d5e6aca1dfb5 dist/ts/asset-loader.d.ts.map
|
|
12
|
+
415a79d77f55489e5a2fa72e88afee2d0a61a5afd6052617b0db2fb18b005a1b dist/ts/asset-loader.js
|
|
13
|
+
17be612a73c2a1f7eb7af90b7d1813104e1e6b44fd6278988f7542ee7619ad9d dist/ts/asset-loader.js.map
|
|
14
|
+
f9c00b421bd12c1751956b14ddc04ea21023a25da679ed3e70015a7a658c1981 dist/ts/bitmap-settlements.d.ts
|
|
15
|
+
73b4dc1ed738fbbf76ee9af47ad90bf7f605b97dea2137a466666b2ea295fd32 dist/ts/bitmap-settlements.d.ts.map
|
|
16
|
+
20893aad692f02d2b3fdb515faa60227db96b67367e9aff86b13d1e51d55276c dist/ts/bitmap-settlements.js
|
|
17
|
+
fcf015ab2375d5cc772ef6253811e837edac5fb00e03cb8e25b7768ec54cf1fa dist/ts/bitmap-settlements.js.map
|
|
18
|
+
3578fdccd0cdf24a8090f84ef348459928b8592000087e96693206946d1d722f dist/ts/color-space.d.ts
|
|
19
|
+
84575e4736f5d0b3de4b0bfb774a4ae75a99ce01e31743f02df80142ca91ff91 dist/ts/color-space.d.ts.map
|
|
20
|
+
0baec6616569f4839c9336b6c55f83bd97543c6d9f7002187f43ee25e4270ed2 dist/ts/color-space.js
|
|
21
|
+
798b385537179e1b82df6caa90462f01cb05a5a049ea70643b2ac817d16336e1 dist/ts/color-space.js.map
|
|
22
|
+
f9c04172077ddd7ce5159815878f7c20256744c53afd22199f7bffbc977b8788 dist/ts/cue-events.d.ts
|
|
23
|
+
0410ba647170e1da8ce742075860de8dd839f7369e6ae5cd6adfabb45272343f dist/ts/cue-events.d.ts.map
|
|
24
|
+
20aae4b28222605b6bdae476ecf5feb910a8edf779a55e2a3ed01f233c97c0e8 dist/ts/cue-events.js
|
|
25
|
+
1827bfba70231ce14a8c6f1e4e3cdc45573d66b9c1acea2416e5ad59dfd55645 dist/ts/cue-events.js.map
|
|
26
|
+
cbbc4aeaf2f89b1a3aeb5c4606706a6a9cc68baf80e39a1490e6e97d4cf66647 dist/ts/encrypted-payload.d.ts
|
|
27
|
+
d727370e6929511b46240579cfd607e8e51fe85da52f878cd9ae4e4d424e2faf dist/ts/encrypted-payload.d.ts.map
|
|
28
|
+
5000e8b50894b3417f70d07ac1f1093112c8c35c5f7c79f3571b58bf3cf093de dist/ts/encrypted-payload.js
|
|
29
|
+
cc98eaa114056ef3db51d6b967311b81c08d90f1d9d07bb14b16374ff411dbfe dist/ts/encrypted-payload.js.map
|
|
30
|
+
96de10dcc3b39f1892343d4381efa6cfbb0f2731814876c786698cb3b72c15a0 dist/ts/font-reload.d.ts
|
|
31
|
+
375b8c5b95fd8fb9fd4109d6de5728c10d117d230c988840c9206dcdca8e02fe dist/ts/font-reload.d.ts.map
|
|
32
|
+
ae523b7c8321011eff40e545eddc952b5de3f4283578f5d4f69a442e1296b113 dist/ts/font-reload.js
|
|
33
|
+
6f4bfc3746c3eacc8538eb8ab3caa0244d2a2dbbbbc7dcfb4735f2c744b61623 dist/ts/font-reload.js.map
|
|
34
|
+
6c7de97f4bcbaad5bb6550a6c903c6b983e8972e007e41c9cae3de0a9ec0eb98 dist/ts/font-subsets.d.ts
|
|
35
|
+
3fdeeadd36e5f27bcfd051541881dd4d88180c126f2474f70df7bb89407c4f4b dist/ts/font-subsets.d.ts.map
|
|
36
|
+
56295413035ff2ad03b262bb5a0de6d61532bc1651a36006376131c8dccc9888 dist/ts/font-subsets.js
|
|
37
|
+
83ce6a1b7fbdc52efc096ca27bdd6baa90968b1bf2c07ab465af4d349cbcd794 dist/ts/font-subsets.js.map
|
|
38
|
+
7d8046a94b3f16ecffdb771299e38fa2c223926d6d694fbdf5f91ca990da11a2 dist/ts/gpu-budget.d.ts
|
|
39
|
+
12c21d6d41ec09c598253ff435dd33bed3d4edf79e2929b490d5944fd0e34b59 dist/ts/gpu-budget.d.ts.map
|
|
40
|
+
9df1b632f44890b211f20536883b5460e87356dbb48d20c6ca8caa626a261337 dist/ts/gpu-budget.js
|
|
41
|
+
31c55334ba2feac2cdb4f4c7b28582f9cb8790c64fab9a750942a98e0aab7e9b dist/ts/gpu-budget.js.map
|
|
42
|
+
9782e391d1e0dd8d1937effa43f4022d571d95eb74a5370292856638254c28d6 dist/ts/gpu-recovery.d.ts
|
|
43
|
+
610f15df8f9d43d826a2c9576a808f1e1ab2b1bbd897a127bc401537f4e7c9c7 dist/ts/gpu-recovery.d.ts.map
|
|
44
|
+
e63217eaf44b7d85809e57df99c0e067c831a8c98503df2ae1c93a37c0d1ee4b dist/ts/gpu-recovery.js
|
|
45
|
+
642160676977e7087c7d6867143db7c8492fad0b3a34dfdce5e9fa6e17ba5ae0 dist/ts/gpu-recovery.js.map
|
|
46
|
+
028420fc464397a719156eb8acceee23e5b435632ee188eb7dc371c39b5422f4 dist/ts/prepared-presentation.d.ts
|
|
47
|
+
b840b4191d937097ba3cfd07fb43b4c3f4e3856fc9a40fdc2273204a918b539c dist/ts/prepared-presentation.d.ts.map
|
|
48
|
+
632c199012591176e4793f208173c4deb408ab9235791aeedb53c58ef8a9f5f6 dist/ts/prepared-presentation.js
|
|
49
|
+
a5405c79e0fecb7687c189876ef79584f9f6e18f672f5782af46c513a6690e00 dist/ts/prepared-presentation.js.map
|
|
50
|
+
f438521761285e122f980bf303340c896ae8900653592aca8a50490cef248c0d dist/ts/streaming.d.ts
|
|
51
|
+
c9f15e4d436110dc5fd759a89c99c1062b531fa2c12397f71b2f279db9193a74 dist/ts/streaming.d.ts.map
|
|
52
|
+
d1a3884fa5d724e7f2008a4bb8d72f4b93aa50e65c3aa747b3db35d01e43187c dist/ts/streaming.js
|
|
53
|
+
3dc142c892b4474f04086957bea6b34c6bef4738f3ecd7a7425f853e8db774bf dist/ts/streaming.js.map
|
|
54
|
+
97841b0e571ec401d18480cdae5ee8f2c24618e59b1ecc441681e6f6f2daebc1 dist/ts/subtitle-budget.d.ts
|
|
55
|
+
b9c8de9266ff1ad5b10da955a5efc148f7957f8803319083a80652dae2491391 dist/ts/subtitle-budget.d.ts.map
|
|
56
|
+
e861eb287f7c7d1b62518bcb8fcc9e3436505b43da96b8ceaa04d0e193bc3060 dist/ts/subtitle-budget.js
|
|
57
|
+
f2e4f786a42f2c5852012846de1363abf9bad3d21863285e913d7657cb70582d dist/ts/subtitle-budget.js.map
|
|
58
|
+
5be6a5f6e545d4779d5c69f57f01c749f5a70f682f4df154a745cf901b23822f dist/ts/timing.d.ts
|
|
59
|
+
9dde42fc0ef84e31651bbcf8dfa8e030a448f667969796a706a93b6eafe91f67 dist/ts/timing.d.ts.map
|
|
60
|
+
9d7e3f9299315bc05519cae424f46405896b4a2418f347067b7dd768189d129f dist/ts/timing.js
|
|
61
|
+
57eb5b3d9bfecd0d636b63bc9a8cde65225300241dc54da29988dc3bb1582e0e dist/ts/timing.js.map
|
|
62
|
+
f9a58c4bec2b483a5d86520227bff9d00a0ea255694d82b768f2010c1b09e42e dist/ts/track-lifecycle.d.ts
|
|
63
|
+
54f3c89a8bf08ba2fbdce4ef7e10ed21fd9c40e939760100b3d52c3403e56116 dist/ts/track-lifecycle.d.ts.map
|
|
64
|
+
ff1b29b6eb330955d7f49e43184814b7b2b648b99fc8b30f6666e813428c7489 dist/ts/track-lifecycle.js
|
|
65
|
+
50bccd0ab3fa035fe1e5925b7bfb6d8063f010a25c3831d793a9ba8bdc9f25fc dist/ts/track-lifecycle.js.map
|
|
66
|
+
5b722e750b0611832165849d6d652ca919d9adbabe58d9c10f3c77c2a2399db4 dist/ts/types.d.ts
|
|
67
|
+
8e4eeb6aaee171b25ba969d26106f66ba117cbe5002f097f313cc6140e52d163 dist/ts/types.d.ts.map
|
|
68
|
+
01ae2a5b120382f9a648ced7ee8507493a134f216d100fc61600c6c9738235d2 dist/ts/types.js
|
|
69
|
+
dcf4d5b79e4b7e0be9a882c40457fde920685f8bbe01bf6f565ef0d97ef33564 dist/ts/types.js.map
|
|
70
|
+
6f613569c4b1a778519fe1b34b0ec2087d5e430c5166c6fc243f0e533a21353f dist/ts/unicode-scripts.d.ts
|
|
71
|
+
b025e538a09ac40f01a4f8e581f90b794f6ec910bb008eac5d9ddbbb467ddfe1 dist/ts/unicode-scripts.d.ts.map
|
|
72
|
+
c050ec72ccc364bfa8d2a1a53abe8836d5e6903eee8b88919ee71f5734c20148 dist/ts/unicode-scripts.js
|
|
73
|
+
7ba0d7e5698cd35e11fae23751fee71dc2982fd84c3acd7769cf3eaadf6d31b4 dist/ts/unicode-scripts.js.map
|
|
74
|
+
66454e981ab2117db51f266225b557de41cad19e6e6b3d6fdcfe39a0d442c4e5 dist/ts/utils.d.ts
|
|
75
|
+
db7036adb60d2ae0cea8d74ea11bf5a43809603f5430c4f5d927f8afb668e205 dist/ts/utils.d.ts.map
|
|
76
|
+
82439f71206943dda4b7c41a6e6dde50701b75f4a990c2e38e208f43502ff9a9 dist/ts/utils.js
|
|
77
|
+
0793a7e3e385357162d6b8fea698e9c0fcee8bd1b5455d088820dc0a476dcc62 dist/ts/utils.js.map
|
|
78
|
+
1b40bed7596eced2d837645da6bb7c7d0306b31e61929a5a16a3777e6d6353bc dist/ts/video-frame.d.ts
|
|
79
|
+
0dc947ff8ddc10e4df3d6a4b8ca35582fd489b21dd4d498ba81cde63274ff998 dist/ts/video-frame.d.ts.map
|
|
80
|
+
7b3d814bcad3af12aae169884d642b4636968c01e489867a8f11b5ccd9e8ea00 dist/ts/video-frame.js
|
|
81
|
+
462a770060f2b0990a9c911cfc2ac3cc92082c4a6b45b16b3271642b3ce75f7e dist/ts/video-frame.js.map
|
|
82
|
+
8f488d2b6b68c1d01d2327787e85c7586d8cb708ededbe5e0a867b851501b8e8 dist/ts/wasm-capabilities.d.ts
|
|
83
|
+
2aef84a1e131578ea04ba5cb22fd9e281a8567da1c2a84987086000aac284984 dist/ts/wasm-capabilities.d.ts.map
|
|
84
|
+
b79ede654642c72dcaa3b726032e856f766d32fe62e7b355e95bfeec75181687 dist/ts/wasm-capabilities.js
|
|
85
|
+
e8a1b1a1885eb022ee0e99911d6a60b7709c11749adad4b4ebb6baa849eda30b dist/ts/wasm-capabilities.js.map
|
|
86
|
+
753194762f4682dbf22e7ed9490af9bac16fdd36265c5419c48a9ba51cd94de0 dist/ts/wasm.d.ts
|
|
87
|
+
0b883ca8d5285ff418717b3e0cc640c863afdd53260524fa5045cf7329c6c9eb dist/ts/wasm.d.ts.map
|
|
88
|
+
ab836d9d7ed47a66a23bc6115d3c5cd32ed230517382a9b1c76018bca4b5d2cb dist/ts/wasm.js
|
|
89
|
+
1ec9ba5f889e7cbcf27e8c5d929a23cfa1f1c1f915bbd75f9e7d43e18688fcc2 dist/ts/wasm.js.map
|
|
90
|
+
71a65f4541486c9cd7f70f27e1c88e1013789afc7621d36c1361bf38f56fb894 dist/ts/webgl2-renderer.d.ts
|
|
91
|
+
1c57a3445915436546141ddfe93a01e3c742ba15ddc228a945df24491afd6388 dist/ts/webgl2-renderer.d.ts.map
|
|
92
|
+
f2eef6dadea7a8eff37bca5401dc7572d47b88229f9e0719192724e4c42f629b dist/ts/webgl2-renderer.js
|
|
93
|
+
a6b67ad65e81288e24d837065fd0dcab019f8c79bb9372f02007220ad71e88f7 dist/ts/webgl2-renderer.js.map
|
|
94
|
+
cb6de44628c62b49105160468270f74f97da3a0636e3ede63174da2555dec05c dist/ts/webgpu-renderer.d.ts
|
|
95
|
+
7aea5a5a43136b7ea794ec09289e2c7b1ecf702bad388bab8b7f20de8363a919 dist/ts/webgpu-renderer.d.ts.map
|
|
96
|
+
2ad4868dbc716b2ac8efe113c1e756d4aebaf7c0fef6ece6d4a5ddffb66530bb dist/ts/webgpu-renderer.js
|
|
97
|
+
7bba440c325155741e844e48626c3ace8f8144cd3691ee2f34a01b62408ae3ba dist/ts/webgpu-renderer.js.map
|
|
98
|
+
14e7397ad7aab084b1c5b23b9f101c079611e43e872d5b4250f2be5499a6a273 dist/ts/worker.d.ts
|
|
99
|
+
1fc2a3d6079a60bb0114cdcaea636e3dcca0b9aefad8c8260fe74bad79329dc3 dist/ts/worker.d.ts.map
|
|
100
|
+
294357e66964a068f43da03694888cc670de7942a336c5ac4e04b6d7f4d2712d dist/ts/worker.js
|
|
101
|
+
2bb598ea151578fdf8436156d7d49249fb5305035220b8e64f3fac2a8e0e0c16 dist/ts/worker.js.map
|
|
102
|
+
c33f5b7b3948884b2571c66fbc9eead2542944becb3aaf028414be69c18a8905 dist/wrapper.d.ts
|
|
103
|
+
32addba2866bac68b19d9176471f48f53f835a0c2267e79708cc137a46e3e542 dist/wrapper.d.ts.map
|
|
104
|
+
92c414eb37e60cf9eb51e9a5ad34a2d52127801f62b91319452f0f27bdfe6ab3 dist/wrapper.js
|
|
105
|
+
969db85f288bec05a65200d3d9cec06a8e12fec82913b06ea7462360a687c489 dist/wrapper.js.map
|
|
106
|
+
3a520ec41601947a363e8562ebbca234e380b418085ee555acf4428dbb50b834 pkg/akarisub-mt.js
|
|
107
|
+
b46f318fb30425bf450e1f588eb3ac38568b452ffdd15c027aa6cb5e6731dbdd pkg/akarisub-mt.wasm
|
|
108
|
+
ffc230dad4ce5aca5920f6ea27ff895ff9116c31becc691b8179394b8ddccdca pkg/akarisub.js
|
|
109
|
+
5fa47e6a58cb2f769ce72116ae613c527bfe104ed0b3dcae23446cbdd0041601 pkg/akarisub.wasm
|
package/dist/ts/akarisub.d.ts
CHANGED
|
@@ -105,6 +105,10 @@ export default class AkariSub extends EventTarget {
|
|
|
105
105
|
private _onPerformanceWarning?;
|
|
106
106
|
private _preloadedTrackId;
|
|
107
107
|
private _nextTrackRequestId;
|
|
108
|
+
private _maxSubtitleBytes;
|
|
109
|
+
private _localFontIndex;
|
|
110
|
+
private _pendingStreamingSizes;
|
|
111
|
+
private _pendingStreamingBytes;
|
|
108
112
|
private _lastRenderWidth;
|
|
109
113
|
private _lastRenderHeight;
|
|
110
114
|
private _gpuBitmapImages;
|
|
@@ -321,6 +325,8 @@ export default class AkariSub extends EventTarget {
|
|
|
321
325
|
getEventCount(): Promise<number>;
|
|
322
326
|
/** Number of styles in the loaded track. */
|
|
323
327
|
getStyleCount(): Promise<number>;
|
|
328
|
+
/** One enumeration per renderer; retried only if it failed. @internal */
|
|
329
|
+
private _getLocalFontIndex;
|
|
324
330
|
/** @internal */
|
|
325
331
|
private _sendLocalFont;
|
|
326
332
|
/** @internal */
|
|
@@ -367,6 +373,14 @@ export default class AkariSub extends EventTarget {
|
|
|
367
373
|
private _activatePresentation;
|
|
368
374
|
/** @internal */
|
|
369
375
|
private _bumpRenderEpoch;
|
|
376
|
+
/**
|
|
377
|
+
* Account for one unacknowledged append. Throws instead of queueing without
|
|
378
|
+
* bound; callers should retry after the worker catches up.
|
|
379
|
+
* @internal
|
|
380
|
+
*/
|
|
381
|
+
private _reserveStreaming;
|
|
382
|
+
/** @internal */
|
|
383
|
+
private _streamingAck;
|
|
370
384
|
/** @internal */
|
|
371
385
|
private _sendMutatingMessage;
|
|
372
386
|
/** @internal */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"akarisub.d.ts","sourceRoot":"","sources":["../../src/ts/akarisub.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,eAAe,EACf,QAAQ,EACR,QAAQ,EAER,gBAAgB,EAEhB,cAAc,EACd,kBAAkB,EAKlB,YAAY,EAEZ,qBAAqB,EAGrB,kBAAkB,EAClB,aAAa,EACb,wBAAwB,EACxB,cAAc,EACf,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"akarisub.d.ts","sourceRoot":"","sources":["../../src/ts/akarisub.ts"],"names":[],"mappings":"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"}
|
package/dist/ts/akarisub.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { GPURecovery } from './gpu-recovery';
|
|
2
2
|
import { PreparedPresentation } from './prepared-presentation';
|
|
3
|
+
import { MAX_STREAM_PENDING_BYTES, MAX_STREAM_PENDING_MESSAGES, assertEncryptedBudget, assertStreamingEventBatch, assertStreamingPacket, assertSubtitleBudget, resolveSubtitleLimit, streamingPayloadBytes } from './subtitle-budget';
|
|
4
|
+
import { MAX_SUBTITLE_BYTES } from './asset-loader';
|
|
3
5
|
import { classifyPerformanceWarnings, parsePreloadTrackSource, resolveCueTracking } from './cue-events';
|
|
4
6
|
import { parseStreamingTrackOptions } from './streaming';
|
|
5
7
|
import { normalizeFontFamilySource } from './font-subsets';
|
|
@@ -177,6 +179,10 @@ export default class AkariSub extends EventTarget {
|
|
|
177
179
|
_onPerformanceWarning;
|
|
178
180
|
_preloadedTrackId = null;
|
|
179
181
|
_nextTrackRequestId = 1;
|
|
182
|
+
_maxSubtitleBytes = MAX_SUBTITLE_BYTES;
|
|
183
|
+
_localFontIndex = null;
|
|
184
|
+
_pendingStreamingSizes = [];
|
|
185
|
+
_pendingStreamingBytes = 0;
|
|
180
186
|
_lastRenderWidth = 0;
|
|
181
187
|
_lastRenderHeight = 0;
|
|
182
188
|
_gpuBitmapImages = [];
|
|
@@ -211,6 +217,11 @@ export default class AkariSub extends EventTarget {
|
|
|
211
217
|
if (!options) {
|
|
212
218
|
throw this.destroy(new Error('No options provided'));
|
|
213
219
|
}
|
|
220
|
+
this._maxSubtitleBytes = resolveSubtitleLimit(options.maxSubtitleBytes);
|
|
221
|
+
if (options.subContent)
|
|
222
|
+
assertSubtitleBudget(options.subContent, this._maxSubtitleBytes);
|
|
223
|
+
if (options.encryptedSubContent)
|
|
224
|
+
assertEncryptedBudget(options.encryptedSubContent, this._maxSubtitleBytes);
|
|
214
225
|
for (const [index, font] of (options.fonts ?? []).entries()) {
|
|
215
226
|
if (typeof font !== 'string' && font.byteLength > AkariSub.MAX_FONT_BYTES) {
|
|
216
227
|
throw new Error(`Font ${index + 1} exceeds the 32 MiB per-font limit`);
|
|
@@ -381,6 +392,7 @@ export default class AkariSub extends EventTarget {
|
|
|
381
392
|
libassMemoryLimit: options.libassMemoryLimit ?? 128,
|
|
382
393
|
libassGlyphLimit: options.libassGlyphLimit ?? 2048,
|
|
383
394
|
useLocalFonts: typeof globalThis.queryLocalFonts !== 'undefined' && (options.useLocalFonts ?? true),
|
|
395
|
+
maxSubtitleBytes: this._maxSubtitleBytes,
|
|
384
396
|
useFontconfigProvider: options.useFontconfigProvider ?? true,
|
|
385
397
|
hasBitmapBug: AkariSub._hasBitmapBug
|
|
386
398
|
};
|
|
@@ -1092,6 +1104,7 @@ export default class AkariSub extends EventTarget {
|
|
|
1092
1104
|
}
|
|
1093
1105
|
/** Replace the current track with ASS/SSA text or bytes. */
|
|
1094
1106
|
setTrack(content) {
|
|
1107
|
+
assertSubtitleBudget(content, this._maxSubtitleBytes);
|
|
1095
1108
|
this._supersedePendingTrackActivation();
|
|
1096
1109
|
this._bumpRenderEpoch();
|
|
1097
1110
|
this.sendMessage('setTrack', { content }, AkariSub._getSubtitleTransfers(content));
|
|
@@ -1105,6 +1118,7 @@ export default class AkariSub extends EventTarget {
|
|
|
1105
1118
|
* materialized in the main thread.
|
|
1106
1119
|
*/
|
|
1107
1120
|
setEncryptedTrack(content) {
|
|
1121
|
+
assertEncryptedBudget(content, this._maxSubtitleBytes);
|
|
1108
1122
|
this._supersedePendingTrackActivation();
|
|
1109
1123
|
this._bumpRenderEpoch();
|
|
1110
1124
|
this.sendMessage('setEncryptedTrack', { content }, AkariSub._getSubtitleTransfers(undefined, content));
|
|
@@ -1125,6 +1139,10 @@ export default class AkariSub extends EventTarget {
|
|
|
1125
1139
|
*/
|
|
1126
1140
|
initStreamingTrack(options) {
|
|
1127
1141
|
const parsed = parseStreamingTrackOptions(options);
|
|
1142
|
+
if (parsed.header)
|
|
1143
|
+
assertSubtitleBudget(parsed.header, this._maxSubtitleBytes);
|
|
1144
|
+
this._pendingStreamingSizes = [];
|
|
1145
|
+
this._pendingStreamingBytes = 0;
|
|
1128
1146
|
this._supersedePendingTrackActivation();
|
|
1129
1147
|
this._bumpRenderEpoch();
|
|
1130
1148
|
this.sendMessage('initStreamingTrack', { options: parsed }, parsed.header ? AkariSub._getSubtitleTransfers(parsed.header) : undefined);
|
|
@@ -1137,6 +1155,8 @@ export default class AkariSub extends EventTarget {
|
|
|
1137
1155
|
* or HLS fragments converted to ASS.
|
|
1138
1156
|
*/
|
|
1139
1157
|
appendSubtitleData(content) {
|
|
1158
|
+
assertStreamingPacket(content);
|
|
1159
|
+
this._reserveStreaming(streamingPayloadBytes(content));
|
|
1140
1160
|
this._sendMutatingMessage('appendSubtitleData', { content }, AkariSub._getSubtitleTransfers(content));
|
|
1141
1161
|
}
|
|
1142
1162
|
/**
|
|
@@ -1145,10 +1165,14 @@ export default class AkariSub extends EventTarget {
|
|
|
1145
1165
|
* the source is a Matroska/WebM stream.
|
|
1146
1166
|
*/
|
|
1147
1167
|
appendSubtitleChunk(content, start, duration) {
|
|
1168
|
+
assertStreamingPacket(content);
|
|
1169
|
+
this._reserveStreaming(streamingPayloadBytes(content));
|
|
1148
1170
|
this._sendMutatingMessage('appendSubtitleChunk', { content, start, duration }, AkariSub._getSubtitleTransfers(content));
|
|
1149
1171
|
}
|
|
1150
1172
|
/** Append several Dialogue events in one worker message. */
|
|
1151
1173
|
appendEvents(events) {
|
|
1174
|
+
assertStreamingEventBatch(events);
|
|
1175
|
+
this._reserveStreaming(events.length * 256);
|
|
1152
1176
|
this._sendMutatingMessage('appendEvents', { events });
|
|
1153
1177
|
}
|
|
1154
1178
|
/** Drop every event and keep styles and script info. */
|
|
@@ -1176,6 +1200,10 @@ export default class AkariSub extends EventTarget {
|
|
|
1176
1200
|
*/
|
|
1177
1201
|
async preloadTrack(source) {
|
|
1178
1202
|
const parsed = parsePreloadTrackSource(source);
|
|
1203
|
+
if (parsed.kind === 'content')
|
|
1204
|
+
assertSubtitleBudget(parsed.content, this._maxSubtitleBytes);
|
|
1205
|
+
else if (parsed.kind === 'encrypted')
|
|
1206
|
+
assertEncryptedBudget(parsed.content, this._maxSubtitleBytes);
|
|
1179
1207
|
const ready = this._workerReady ||
|
|
1180
1208
|
(await Promise.race([this._loaded.then(() => true), this._destroyedSignal.then(() => false)]));
|
|
1181
1209
|
if (!ready || this._destroyed)
|
|
@@ -1442,12 +1470,28 @@ export default class AkariSub extends EventTarget {
|
|
|
1442
1470
|
const data = await this._fetchFromWorker({ target: 'getStyleCount' });
|
|
1443
1471
|
return data.count;
|
|
1444
1472
|
}
|
|
1473
|
+
/** One enumeration per renderer; retried only if it failed. @internal */
|
|
1474
|
+
_getLocalFontIndex() {
|
|
1475
|
+
this._localFontIndex ??= (async () => {
|
|
1476
|
+
const fontData = await globalThis.queryLocalFonts();
|
|
1477
|
+
const index = new Map();
|
|
1478
|
+
for (const obj of fontData ?? []) {
|
|
1479
|
+
const key = String(obj.fullName).toLowerCase();
|
|
1480
|
+
if (!index.has(key))
|
|
1481
|
+
index.set(key, obj);
|
|
1482
|
+
}
|
|
1483
|
+
return index;
|
|
1484
|
+
})().catch((error) => {
|
|
1485
|
+
this._localFontIndex = null;
|
|
1486
|
+
throw error;
|
|
1487
|
+
});
|
|
1488
|
+
return this._localFontIndex;
|
|
1489
|
+
}
|
|
1445
1490
|
/** @internal */
|
|
1446
1491
|
async _sendLocalFont(name) {
|
|
1447
1492
|
let success = false;
|
|
1448
1493
|
try {
|
|
1449
|
-
const
|
|
1450
|
-
const font = fontData?.find((obj) => obj.fullName.toLowerCase() === name);
|
|
1494
|
+
const font = (await this._getLocalFontIndex()).get(name);
|
|
1451
1495
|
if (font) {
|
|
1452
1496
|
const blob = await font.blob();
|
|
1453
1497
|
const buffer = await blob.arrayBuffer();
|
|
@@ -1969,6 +2013,23 @@ export default class AkariSub extends EventTarget {
|
|
|
1969
2013
|
this._clearPreparedFrames();
|
|
1970
2014
|
this._prepareForce = true;
|
|
1971
2015
|
}
|
|
2016
|
+
/**
|
|
2017
|
+
* Account for one unacknowledged append. Throws instead of queueing without
|
|
2018
|
+
* bound; callers should retry after the worker catches up.
|
|
2019
|
+
* @internal
|
|
2020
|
+
*/
|
|
2021
|
+
_reserveStreaming(bytes) {
|
|
2022
|
+
if (this._pendingStreamingSizes.length >= MAX_STREAM_PENDING_MESSAGES ||
|
|
2023
|
+
this._pendingStreamingBytes + bytes > MAX_STREAM_PENDING_BYTES) {
|
|
2024
|
+
throw new Error('Streaming backlog: the worker has not processed earlier appends yet');
|
|
2025
|
+
}
|
|
2026
|
+
this._pendingStreamingSizes.push(bytes);
|
|
2027
|
+
this._pendingStreamingBytes += bytes;
|
|
2028
|
+
}
|
|
2029
|
+
/** @internal */
|
|
2030
|
+
_streamingAck() {
|
|
2031
|
+
this._pendingStreamingBytes -= this._pendingStreamingSizes.shift() ?? 0;
|
|
2032
|
+
}
|
|
1972
2033
|
/** @internal */
|
|
1973
2034
|
_sendMutatingMessage(target, data = {}, transferable) {
|
|
1974
2035
|
this._bumpRenderEpoch();
|