libbitsub 1.0.0 → 1.1.1
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/LICENSE +235 -674
- package/README.md +82 -0
- package/dist/ts/renderers.js.map +1 -1
- package/dist/ts/utils.d.ts.map +1 -1
- package/dist/ts/utils.js +4 -3
- package/dist/ts/utils.js.map +1 -1
- package/package.json +2 -2
- package/pkg/LICENSE +235 -674
- package/pkg/README.md +82 -0
- package/pkg/libbitsub_bg.wasm +0 -0
- package/pkg/package.json +2 -2
package/pkg/README.md
CHANGED
|
@@ -168,6 +168,60 @@ renderer.resetDisplaySettings()
|
|
|
168
168
|
- Positive values move down (e.g., `10` moves down by 10% of height)
|
|
169
169
|
- Range: `-50` to `50`
|
|
170
170
|
|
|
171
|
+
### Performance Statistics
|
|
172
|
+
|
|
173
|
+
Both `PgsRenderer` and `VobSubRenderer` provide real-time performance metrics:
|
|
174
|
+
|
|
175
|
+
```typescript
|
|
176
|
+
// Get performance statistics
|
|
177
|
+
const stats = renderer.getStats()
|
|
178
|
+
console.log(stats)
|
|
179
|
+
// Output:
|
|
180
|
+
// {
|
|
181
|
+
// framesRendered: 120,
|
|
182
|
+
// framesDropped: 2,
|
|
183
|
+
// avgRenderTime: 1.45,
|
|
184
|
+
// maxRenderTime: 8.32,
|
|
185
|
+
// minRenderTime: 0.12,
|
|
186
|
+
// lastRenderTime: 1.23,
|
|
187
|
+
// renderFps: 60,
|
|
188
|
+
// usingWorker: true,
|
|
189
|
+
// cachedFrames: 5,
|
|
190
|
+
// pendingRenders: 0,
|
|
191
|
+
// totalEntries: 847,
|
|
192
|
+
// currentIndex: 42
|
|
193
|
+
// }
|
|
194
|
+
|
|
195
|
+
// Example: Display stats in a debug overlay
|
|
196
|
+
setInterval(() => {
|
|
197
|
+
const stats = renderer.getStats()
|
|
198
|
+
debugOverlay.textContent = `
|
|
199
|
+
FPS: ${stats.renderFps}
|
|
200
|
+
Frames: ${stats.framesRendered} (dropped: ${stats.framesDropped})
|
|
201
|
+
Avg render: ${stats.avgRenderTime}ms
|
|
202
|
+
Worker: ${stats.usingWorker ? 'Yes' : 'No'}
|
|
203
|
+
Cache: ${stats.cachedFrames} frames
|
|
204
|
+
`
|
|
205
|
+
}, 1000)
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
**Stats Reference:**
|
|
209
|
+
|
|
210
|
+
| Property | Type | Description |
|
|
211
|
+
|----------|------|-------------|
|
|
212
|
+
| `framesRendered` | number | Total frames rendered since initialization |
|
|
213
|
+
| `framesDropped` | number | Frames dropped due to slow rendering (>16.67ms) |
|
|
214
|
+
| `avgRenderTime` | number | Average render time in milliseconds (rolling 60-sample window) |
|
|
215
|
+
| `maxRenderTime` | number | Maximum render time in milliseconds |
|
|
216
|
+
| `minRenderTime` | number | Minimum render time in milliseconds |
|
|
217
|
+
| `lastRenderTime` | number | Most recent render time in milliseconds |
|
|
218
|
+
| `renderFps` | number | Current renders per second (based on last 1 second) |
|
|
219
|
+
| `usingWorker` | boolean | Whether rendering is using Web Worker (off-main-thread) |
|
|
220
|
+
| `cachedFrames` | number | Number of decoded frames currently cached |
|
|
221
|
+
| `pendingRenders` | number | Number of frames currently being decoded asynchronously |
|
|
222
|
+
| `totalEntries` | number | Total subtitle entries/display sets in the loaded file |
|
|
223
|
+
| `currentIndex` | number | Index of the currently displayed subtitle |
|
|
224
|
+
|
|
171
225
|
## Low-Level API (Programmatic Use)
|
|
172
226
|
|
|
173
227
|
For more control over rendering, use the low-level parsers directly.
|
|
@@ -267,6 +321,7 @@ parser.dispose()
|
|
|
267
321
|
- `getDisplaySettings(): SubtitleDisplaySettings` - Get current display settings
|
|
268
322
|
- `setDisplaySettings(settings: Partial<SubtitleDisplaySettings>): void` - Update display settings
|
|
269
323
|
- `resetDisplaySettings(): void` - Reset display settings to defaults
|
|
324
|
+
- `getStats(): SubtitleRendererStats` - Get performance statistics
|
|
270
325
|
- `dispose(): void` - Clean up all resources
|
|
271
326
|
|
|
272
327
|
#### `VobSubRenderer`
|
|
@@ -275,6 +330,7 @@ parser.dispose()
|
|
|
275
330
|
- `getDisplaySettings(): SubtitleDisplaySettings` - Get current display settings
|
|
276
331
|
- `setDisplaySettings(settings: Partial<SubtitleDisplaySettings>): void` - Update display settings
|
|
277
332
|
- `resetDisplaySettings(): void` - Reset display settings to defaults
|
|
333
|
+
- `getStats(): SubtitleRendererStats` - Get performance statistics
|
|
278
334
|
- `dispose(): void` - Clean up all resources
|
|
279
335
|
|
|
280
336
|
### Low-Level (Programmatic)
|
|
@@ -338,6 +394,25 @@ interface SubtitleDisplaySettings {
|
|
|
338
394
|
}
|
|
339
395
|
```
|
|
340
396
|
|
|
397
|
+
#### `SubtitleRendererStats`
|
|
398
|
+
|
|
399
|
+
```typescript
|
|
400
|
+
interface SubtitleRendererStats {
|
|
401
|
+
framesRendered: number // Total frames rendered since initialization
|
|
402
|
+
framesDropped: number // Frames dropped due to slow rendering
|
|
403
|
+
avgRenderTime: number // Average render time in milliseconds
|
|
404
|
+
maxRenderTime: number // Maximum render time in milliseconds
|
|
405
|
+
minRenderTime: number // Minimum render time in milliseconds
|
|
406
|
+
lastRenderTime: number // Last render time in milliseconds
|
|
407
|
+
renderFps: number // Current FPS (renders per second)
|
|
408
|
+
usingWorker: boolean // Whether rendering is using web worker
|
|
409
|
+
cachedFrames: number // Number of cached frames
|
|
410
|
+
pendingRenders: number // Number of pending renders
|
|
411
|
+
totalEntries: number // Total subtitle entries/display sets
|
|
412
|
+
currentIndex: number // Current subtitle index being displayed
|
|
413
|
+
}
|
|
414
|
+
```
|
|
415
|
+
|
|
341
416
|
#### `SubtitleData`
|
|
342
417
|
|
|
343
418
|
```typescript
|
|
@@ -353,3 +428,10 @@ interface SubtitleCompositionData {
|
|
|
353
428
|
y: number // Y position
|
|
354
429
|
}
|
|
355
430
|
```
|
|
431
|
+
|
|
432
|
+
## License
|
|
433
|
+
|
|
434
|
+
Licensed under either of
|
|
435
|
+
|
|
436
|
+
- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or http://apache.org/licenses/LICENSE-2.0)
|
|
437
|
+
- MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
|
package/pkg/libbitsub_bg.wasm
CHANGED
|
Binary file
|
package/pkg/package.json
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
"altqx"
|
|
6
6
|
],
|
|
7
7
|
"description": "High-performance WASM renderer for graphical subtitles (PGS and VobSub)",
|
|
8
|
-
"version": "1.
|
|
9
|
-
"license": "
|
|
8
|
+
"version": "1.1.1",
|
|
9
|
+
"license": "MIT OR Apache-2.0",
|
|
10
10
|
"repository": {
|
|
11
11
|
"type": "git",
|
|
12
12
|
"url": "https://github.com/altqx/libbitsub"
|