libbitsub 1.8.2 → 1.10.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.
Files changed (42) hide show
  1. package/README.md +187 -9
  2. package/dist/index.d.ts +2 -2
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +2 -2
  5. package/dist/index.js.map +1 -1
  6. package/dist/ts/diagnostics.d.ts +35 -0
  7. package/dist/ts/diagnostics.d.ts.map +1 -0
  8. package/dist/ts/diagnostics.js +102 -0
  9. package/dist/ts/diagnostics.js.map +1 -0
  10. package/dist/ts/frame-export.d.ts +6 -0
  11. package/dist/ts/frame-export.d.ts.map +1 -0
  12. package/dist/ts/frame-export.js +235 -0
  13. package/dist/ts/frame-export.js.map +1 -0
  14. package/dist/ts/parsers.d.ts +44 -4
  15. package/dist/ts/parsers.d.ts.map +1 -1
  16. package/dist/ts/parsers.js +272 -67
  17. package/dist/ts/parsers.js.map +1 -1
  18. package/dist/ts/renderers.d.ts +19 -2
  19. package/dist/ts/renderers.d.ts.map +1 -1
  20. package/dist/ts/renderers.js +180 -40
  21. package/dist/ts/renderers.js.map +1 -1
  22. package/dist/ts/types.d.ts +112 -1
  23. package/dist/ts/types.d.ts.map +1 -1
  24. package/dist/ts/utils.d.ts +2 -2
  25. package/dist/ts/utils.d.ts.map +1 -1
  26. package/dist/ts/utils.js +26 -11
  27. package/dist/ts/utils.js.map +1 -1
  28. package/dist/ts/worker.d.ts.map +1 -1
  29. package/dist/ts/worker.js +32 -14
  30. package/dist/ts/worker.js.map +1 -1
  31. package/dist/wrapper.d.ts +4 -2
  32. package/dist/wrapper.d.ts.map +1 -1
  33. package/dist/wrapper.js +4 -1
  34. package/dist/wrapper.js.map +1 -1
  35. package/package.json +1 -1
  36. package/pkg/README.md +187 -9
  37. package/pkg/libbitsub.d.ts +15 -0
  38. package/pkg/libbitsub.js +48 -7
  39. package/pkg/libbitsub_bg.wasm +0 -0
  40. package/pkg/libbitsub_bg.wasm.d.ts +3 -0
  41. package/pkg/package.json +1 -1
  42. package/src/wrapper.ts +20 -1
@@ -57,6 +57,10 @@ export class PgsParser {
57
57
  * Get the number of display sets.
58
58
  */
59
59
  readonly count: number;
60
+ /**
61
+ * Get the last non-fatal render issue for diagnostics.
62
+ */
63
+ readonly lastRenderIssue: string;
60
64
  /**
61
65
  * Get the presentation height for this subtitle track.
62
66
  */
@@ -231,6 +235,10 @@ export class SubtitleRenderer {
231
235
  * Get the VobSub language code if available.
232
236
  */
233
237
  readonly language: string;
238
+ /**
239
+ * Get the last non-fatal render issue for diagnostics.
240
+ */
241
+ readonly lastRenderIssue: string;
234
242
  /**
235
243
  * Get the presentation height for the loaded subtitle track.
236
244
  */
@@ -351,6 +359,10 @@ export class VobSubParser {
351
359
  * Get the declared language code from IDX metadata.
352
360
  */
353
361
  readonly language: string;
362
+ /**
363
+ * Get the last non-fatal render issue for diagnostics.
364
+ */
365
+ readonly lastRenderIssue: string;
354
366
  /**
355
367
  * Get the presentation height for this subtitle track.
356
368
  */
@@ -390,6 +402,7 @@ export interface InitOutput {
390
402
  readonly pgsparser_getCuePaletteId: (a: number, b: number) => number;
391
403
  readonly pgsparser_getCueStartTime: (a: number, b: number) => number;
392
404
  readonly pgsparser_getTimestamps: (a: number) => any;
405
+ readonly pgsparser_lastRenderIssue: (a: number) => [number, number];
393
406
  readonly pgsparser_new: () => number;
394
407
  readonly pgsparser_parse: (a: number, b: number, c: number) => number;
395
408
  readonly pgsparser_renderAtIndex: (a: number, b: number) => number;
@@ -420,6 +433,7 @@ export interface InitOutput {
420
433
  readonly subtitlerenderer_getTimestamps: (a: number) => any;
421
434
  readonly subtitlerenderer_hasIdxMetadata: (a: number) => number;
422
435
  readonly subtitlerenderer_language: (a: number) => [number, number];
436
+ readonly subtitlerenderer_lastRenderIssue: (a: number) => [number, number];
423
437
  readonly subtitlerenderer_loadPgs: (a: number, b: number, c: number) => number;
424
438
  readonly subtitlerenderer_loadVobSub: (a: number, b: number, c: number, d: number, e: number) => void;
425
439
  readonly subtitlerenderer_loadVobSubMks: (a: number, b: number, c: number) => [number, number];
@@ -449,6 +463,7 @@ export interface InitOutput {
449
463
  readonly vobsubparser_getTimestamps: (a: number) => any;
450
464
  readonly vobsubparser_hasIdxMetadata: (a: number) => number;
451
465
  readonly vobsubparser_language: (a: number) => [number, number];
466
+ readonly vobsubparser_lastRenderIssue: (a: number) => [number, number];
452
467
  readonly vobsubparser_loadFromData: (a: number, b: number, c: number, d: number, e: number) => void;
453
468
  readonly vobsubparser_loadFromMks: (a: number, b: number, c: number) => [number, number];
454
469
  readonly vobsubparser_loadFromSubOnly: (a: number, b: number, c: number) => void;
package/pkg/libbitsub.js CHANGED
@@ -90,6 +90,22 @@ export class PgsParser {
90
90
  const ret = wasm.pgsparser_getTimestamps(this.__wbg_ptr);
91
91
  return ret;
92
92
  }
93
+ /**
94
+ * Get the last non-fatal render issue for diagnostics.
95
+ * @returns {string}
96
+ */
97
+ get lastRenderIssue() {
98
+ let deferred1_0;
99
+ let deferred1_1;
100
+ try {
101
+ const ret = wasm.pgsparser_lastRenderIssue(this.__wbg_ptr);
102
+ deferred1_0 = ret[0];
103
+ deferred1_1 = ret[1];
104
+ return getStringFromWasm0(ret[0], ret[1]);
105
+ } finally {
106
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
107
+ }
108
+ }
93
109
  /**
94
110
  * Create a new PGS parser.
95
111
  */
@@ -471,6 +487,22 @@ export class SubtitleRenderer {
471
487
  wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
472
488
  }
473
489
  }
490
+ /**
491
+ * Get the last non-fatal render issue for diagnostics.
492
+ * @returns {string}
493
+ */
494
+ get lastRenderIssue() {
495
+ let deferred1_0;
496
+ let deferred1_1;
497
+ try {
498
+ const ret = wasm.subtitlerenderer_lastRenderIssue(this.__wbg_ptr);
499
+ deferred1_0 = ret[0];
500
+ deferred1_1 = ret[1];
501
+ return getStringFromWasm0(ret[0], ret[1]);
502
+ } finally {
503
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
504
+ }
505
+ }
474
506
  /**
475
507
  * Load PGS subtitle data.
476
508
  * @param {Uint8Array} data
@@ -772,6 +804,22 @@ export class VobSubParser {
772
804
  wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
773
805
  }
774
806
  }
807
+ /**
808
+ * Get the last non-fatal render issue for diagnostics.
809
+ * @returns {string}
810
+ */
811
+ get lastRenderIssue() {
812
+ let deferred1_0;
813
+ let deferred1_1;
814
+ try {
815
+ const ret = wasm.vobsubparser_lastRenderIssue(this.__wbg_ptr);
816
+ deferred1_0 = ret[0];
817
+ deferred1_1 = ret[1];
818
+ return getStringFromWasm0(ret[0], ret[1]);
819
+ } finally {
820
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
821
+ }
822
+ }
775
823
  /**
776
824
  * Load VobSub from IDX content and SUB data.
777
825
  * @param {string} idx_content
@@ -902,10 +950,6 @@ function __wbg_get_imports() {
902
950
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
903
951
  }
904
952
  },
905
- __wbg_length_9f1775224cf1d815: function(arg0) {
906
- const ret = arg0.length;
907
- return ret;
908
- },
909
953
  __wbg_new_227d7c05414eb861: function() {
910
954
  const ret = new Error();
911
955
  return ret;
@@ -922,9 +966,6 @@ function __wbg_get_imports() {
922
966
  const ret = new Uint8Array(arg0 >>> 0);
923
967
  return ret;
924
968
  },
925
- __wbg_prototypesetcall_a6b02eb00b0f4ce2: function(arg0, arg1, arg2) {
926
- Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2);
927
- },
928
969
  __wbg_set_index_805dd976c110cd28: function(arg0, arg1, arg2) {
929
970
  arg0[arg1 >>> 0] = arg2;
930
971
  },
Binary file
@@ -17,6 +17,7 @@ export const pgsparser_getCueEndTime: (a: number, b: number) => number;
17
17
  export const pgsparser_getCuePaletteId: (a: number, b: number) => number;
18
18
  export const pgsparser_getCueStartTime: (a: number, b: number) => number;
19
19
  export const pgsparser_getTimestamps: (a: number) => any;
20
+ export const pgsparser_lastRenderIssue: (a: number) => [number, number];
20
21
  export const pgsparser_new: () => number;
21
22
  export const pgsparser_parse: (a: number, b: number, c: number) => number;
22
23
  export const pgsparser_renderAtIndex: (a: number, b: number) => number;
@@ -47,6 +48,7 @@ export const subtitlerenderer_getCueStartTime: (a: number, b: number) => number;
47
48
  export const subtitlerenderer_getTimestamps: (a: number) => any;
48
49
  export const subtitlerenderer_hasIdxMetadata: (a: number) => number;
49
50
  export const subtitlerenderer_language: (a: number) => [number, number];
51
+ export const subtitlerenderer_lastRenderIssue: (a: number) => [number, number];
50
52
  export const subtitlerenderer_loadPgs: (a: number, b: number, c: number) => number;
51
53
  export const subtitlerenderer_loadVobSub: (a: number, b: number, c: number, d: number, e: number) => void;
52
54
  export const subtitlerenderer_loadVobSubMks: (a: number, b: number, c: number) => [number, number];
@@ -76,6 +78,7 @@ export const vobsubparser_getCueStartTime: (a: number, b: number) => number;
76
78
  export const vobsubparser_getTimestamps: (a: number) => any;
77
79
  export const vobsubparser_hasIdxMetadata: (a: number) => number;
78
80
  export const vobsubparser_language: (a: number) => [number, number];
81
+ export const vobsubparser_lastRenderIssue: (a: number) => [number, number];
79
82
  export const vobsubparser_loadFromData: (a: number, b: number, c: number, d: number, e: number) => void;
80
83
  export const vobsubparser_loadFromMks: (a: number, b: number, c: number) => [number, number];
81
84
  export const vobsubparser_loadFromSubOnly: (a: number, b: number, c: number) => void;
package/pkg/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "altqx"
6
6
  ],
7
7
  "description": "High-performance WASM renderer for graphical subtitles (PGS and VobSub)",
8
- "version": "1.8.2",
8
+ "version": "1.10.0",
9
9
  "license": "MIT",
10
10
  "repository": {
11
11
  "type": "git",
package/src/wrapper.ts CHANGED
@@ -7,14 +7,28 @@
7
7
  export type {
8
8
  AutoSubtitleSource,
9
9
  AutoVideoSubtitleOptions,
10
+ OpenedSubtitles,
10
11
  SubtitleAspectMode,
12
+ SubtitleCacheStats,
13
+ SubtitleFrameCanvasOptions,
14
+ SubtitleFrameCanvasTarget,
15
+ SubtitleFrameCropMode,
16
+ SubtitleFrameRenderOptions,
17
+ SubtitleRenderedFrameData,
11
18
  SubtitleCueBounds,
12
19
  SubtitleCueMetadata,
13
20
  SubtitleData,
21
+ SubtitleDiagnosticDetailValue,
22
+ SubtitleDiagnosticErrorCode,
23
+ SubtitleDiagnosticErrorLike,
24
+ SubtitleDiagnosticsOptions,
25
+ SubtitleDiagnosticWarning,
26
+ SubtitleDiagnosticWarningCode,
14
27
  SubtitleCompositionData,
15
28
  SubtitleDisplaySettings,
16
29
  SubtitleFormatName,
17
30
  SubtitleHorizontalAlign,
31
+ SubtitleLastRenderInfo,
18
32
  SubtitleParserMetadata,
19
33
  SubtitleRendererBackend,
20
34
  SubtitleRendererEvent,
@@ -26,6 +40,8 @@ export type {
26
40
  VobSubFrame
27
41
  } from './ts/types'
28
42
 
43
+ export { SubtitleDiagnosticError, createSubtitleDiagnosticError, normalizeSubtitleError } from './ts/diagnostics'
44
+
29
45
  // Re-export WASM management
30
46
  export { initWasm, isWasmInitialized } from './ts/wasm'
31
47
 
@@ -33,7 +49,10 @@ export { initWasm, isWasmInitialized } from './ts/wasm'
33
49
  export { isWebGPUSupported } from './ts/webgpu-renderer'
34
50
 
35
51
  // Re-export parsers
36
- export { PgsParser, VobSubParserLowLevel, UnifiedSubtitleParser } from './ts/parsers'
52
+ export { PgsParser, VobSubParserLowLevel, UnifiedSubtitleParser, openSubtitles } from './ts/parsers'
53
+
54
+ // Re-export frame export helpers
55
+ export { renderFrameData, toBlob, toCanvas, toImageBitmap } from './ts/frame-export'
37
56
 
38
57
  // Re-export renderers
39
58
  export { PgsRenderer, VobSubRenderer, createAutoSubtitleRenderer, type SubtitleRendererStats } from './ts/renderers'