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.
Files changed (98) hide show
  1. package/README.md +296 -49
  2. package/dist/index.d.ts +3 -3
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +3 -3
  5. package/dist/index.js.map +1 -1
  6. package/dist/integrations/hlsjs.d.ts +45 -0
  7. package/dist/integrations/hlsjs.d.ts.map +1 -0
  8. package/dist/integrations/hlsjs.js +121 -0
  9. package/dist/integrations/hlsjs.js.map +1 -0
  10. package/dist/integrations/index.d.ts +11 -0
  11. package/dist/integrations/index.d.ts.map +1 -0
  12. package/dist/integrations/index.js +11 -0
  13. package/dist/integrations/index.js.map +1 -0
  14. package/dist/integrations/react.d.ts +55 -0
  15. package/dist/integrations/react.d.ts.map +1 -0
  16. package/dist/integrations/react.js +133 -0
  17. package/dist/integrations/react.js.map +1 -0
  18. package/dist/integrations/shaka.d.ts +38 -0
  19. package/dist/integrations/shaka.d.ts.map +1 -0
  20. package/dist/integrations/shaka.js +71 -0
  21. package/dist/integrations/shaka.js.map +1 -0
  22. package/dist/integrations/shared.d.ts +41 -0
  23. package/dist/integrations/shared.d.ts.map +1 -0
  24. package/dist/integrations/shared.js +123 -0
  25. package/dist/integrations/shared.js.map +1 -0
  26. package/dist/integrations/videojs.d.ts +85 -0
  27. package/dist/integrations/videojs.d.ts.map +1 -0
  28. package/dist/integrations/videojs.js +111 -0
  29. package/dist/integrations/videojs.js.map +1 -0
  30. package/dist/ts/capabilities.d.ts +8 -0
  31. package/dist/ts/capabilities.d.ts.map +1 -0
  32. package/dist/ts/capabilities.js +105 -0
  33. package/dist/ts/capabilities.js.map +1 -0
  34. package/dist/ts/diagnostics.d.ts.map +1 -1
  35. package/dist/ts/diagnostics.js.map +1 -1
  36. package/dist/ts/frame-export.d.ts.map +1 -1
  37. package/dist/ts/frame-export.js +4 -4
  38. package/dist/ts/frame-export.js.map +1 -1
  39. package/dist/ts/parsers.d.ts +46 -8
  40. package/dist/ts/parsers.d.ts.map +1 -1
  41. package/dist/ts/parsers.js +305 -14
  42. package/dist/ts/parsers.js.map +1 -1
  43. package/dist/ts/range-loader.d.ts +31 -0
  44. package/dist/ts/range-loader.d.ts.map +1 -0
  45. package/dist/ts/range-loader.js +220 -0
  46. package/dist/ts/range-loader.js.map +1 -0
  47. package/dist/ts/renderers.d.ts +140 -8
  48. package/dist/ts/renderers.d.ts.map +1 -1
  49. package/dist/ts/renderers.js +1773 -287
  50. package/dist/ts/renderers.js.map +1 -1
  51. package/dist/ts/types.d.ts +210 -7
  52. package/dist/ts/types.d.ts.map +1 -1
  53. package/dist/ts/utils.d.ts.map +1 -1
  54. package/dist/ts/utils.js +98 -2
  55. package/dist/ts/utils.js.map +1 -1
  56. package/dist/ts/video-frame-scheduler.d.ts +35 -0
  57. package/dist/ts/video-frame-scheduler.d.ts.map +1 -0
  58. package/dist/ts/video-frame-scheduler.js +98 -0
  59. package/dist/ts/video-frame-scheduler.js.map +1 -0
  60. package/dist/ts/wasm.d.ts +2 -0
  61. package/dist/ts/wasm.d.ts.map +1 -1
  62. package/dist/ts/wasm.js +12 -0
  63. package/dist/ts/wasm.js.map +1 -1
  64. package/dist/ts/webgl2-renderer.d.ts +9 -0
  65. package/dist/ts/webgl2-renderer.d.ts.map +1 -1
  66. package/dist/ts/webgl2-renderer.js +34 -0
  67. package/dist/ts/webgl2-renderer.js.map +1 -1
  68. package/dist/ts/webgpu-renderer.d.ts +9 -0
  69. package/dist/ts/webgpu-renderer.d.ts.map +1 -1
  70. package/dist/ts/webgpu-renderer.js +70 -2
  71. package/dist/ts/webgpu-renderer.js.map +1 -1
  72. package/dist/ts/worker.d.ts +11 -0
  73. package/dist/ts/worker.d.ts.map +1 -1
  74. package/dist/ts/worker.js +620 -158
  75. package/dist/ts/worker.js.map +1 -1
  76. package/dist/wrapper.d.ts +6 -3
  77. package/dist/wrapper.d.ts.map +1 -1
  78. package/dist/wrapper.js +5 -2
  79. package/dist/wrapper.js.map +1 -1
  80. package/examples/README.md +38 -0
  81. package/examples/hlsjs/README.md +53 -0
  82. package/examples/react/README.md +60 -0
  83. package/examples/shaka/README.md +61 -0
  84. package/examples/videojs/README.md +55 -0
  85. package/package.json +66 -8
  86. package/pkg/README.md +296 -49
  87. package/pkg/libbitsub.d.ts +65 -1
  88. package/pkg/libbitsub.js +228 -3
  89. package/pkg/libbitsub_bg.wasm +0 -0
  90. package/pkg/libbitsub_bg.wasm.d.ts +28 -0
  91. package/pkg/package.json +4 -4
  92. package/src/integrations/hlsjs.ts +154 -0
  93. package/src/integrations/index.ts +36 -0
  94. package/src/integrations/react.tsx +176 -0
  95. package/src/integrations/shaka.ts +92 -0
  96. package/src/integrations/shared.ts +171 -0
  97. package/src/integrations/videojs.ts +200 -0
  98. package/src/wrapper.ts +34 -2
@@ -1,6 +1,33 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
3
 
4
+ /**
5
+ * DVB subtitle parser and renderer exposed to JavaScript.
6
+ */
7
+ export class DvbParser {
8
+ free(): void;
9
+ [Symbol.dispose](): void;
10
+ clearCache(): void;
11
+ feed(data: Uint8Array): number;
12
+ findIndexAtTimestamp(time_ms: number): number;
13
+ finishFeed(): number;
14
+ getCueCompositionCount(index: number): number;
15
+ getCueEndTime(index: number): number;
16
+ getCuePageState(index: number): number;
17
+ getCueStartTime(index: number): number;
18
+ getEndTimestamps(): Float64Array;
19
+ getTimestamps(): Float64Array;
20
+ constructor();
21
+ parse(data: Uint8Array): number;
22
+ renderAtIndex(index: number): SubtitleFrame | undefined;
23
+ reset(): void;
24
+ readonly count: number;
25
+ readonly lastRenderIssue: string;
26
+ readonly pendingLen: number;
27
+ readonly screenHeight: number;
28
+ readonly screenWidth: number;
29
+ }
30
+
4
31
  /**
5
32
  * PGS subtitle parser and renderer exposed to JavaScript.
6
33
  */
@@ -8,7 +35,9 @@ export class PgsParser {
8
35
  free(): void;
9
36
  [Symbol.dispose](): void;
10
37
  clearCache(): void;
38
+ feed(data: Uint8Array): number;
11
39
  findIndexAtTimestamp(time_ms: number): number;
40
+ finishFeed(): number;
12
41
  getCueCompositionCount(index: number): number;
13
42
  getCueCompositionState(index: number): number;
14
43
  getCueEndTime(index: number): number;
@@ -18,8 +47,10 @@ export class PgsParser {
18
47
  constructor();
19
48
  parse(data: Uint8Array): number;
20
49
  renderAtIndex(index: number): SubtitleFrame | undefined;
50
+ reset(): void;
21
51
  readonly count: number;
22
52
  readonly lastRenderIssue: string;
53
+ readonly pendingLen: number;
23
54
  readonly screenHeight: number;
24
55
  readonly screenWidth: number;
25
56
  }
@@ -61,6 +92,7 @@ export class SubtitleComposition {
61
92
  export enum SubtitleFormat {
62
93
  Pgs = 0,
63
94
  VobSub = 1,
95
+ Dvb = 2,
64
96
  }
65
97
 
66
98
  /**
@@ -77,7 +109,7 @@ export class SubtitleFrame {
77
109
  }
78
110
 
79
111
  /**
80
- * Unified subtitle renderer for both PGS and VobSub formats.
112
+ * Unified subtitle renderer for PGS, VobSub, and DVB formats.
81
113
  */
82
114
  export class SubtitleRenderer {
83
115
  free(): void;
@@ -89,6 +121,7 @@ export class SubtitleRenderer {
89
121
  getCueEndTime(index: number): number;
90
122
  getCueStartTime(index: number): number;
91
123
  getTimestamps(): Float64Array;
124
+ loadDvb(data: Uint8Array): number;
92
125
  loadPgs(data: Uint8Array): number;
93
126
  loadVobSub(idx_content: string, sub_data: Uint8Array): void;
94
127
  loadVobSubMks(mks_data: Uint8Array): void;
@@ -128,6 +161,7 @@ export class VobSubFrame {
128
161
  export class VobSubParser {
129
162
  free(): void;
130
163
  [Symbol.dispose](): void;
164
+ attachSubData(sub_data: Uint8Array): void;
131
165
  clearCache(): void;
132
166
  dispose(): void;
133
167
  findIndexAtTimestamp(time_ms: number): number;
@@ -137,6 +171,7 @@ export class VobSubParser {
137
171
  getCueStartTime(index: number): number;
138
172
  getTimestamps(): Float64Array;
139
173
  loadFromData(idx_content: string, sub_data: Uint8Array): void;
174
+ loadFromIdx(idx_content: string): void;
140
175
  loadFromMks(mks_data: Uint8Array): void;
141
176
  loadFromSubOnly(sub_data: Uint8Array): void;
142
177
  constructor();
@@ -147,6 +182,7 @@ export class VobSubParser {
147
182
  readonly count: number;
148
183
  readonly debandEnabled: boolean;
149
184
  readonly hasIdxMetadata: boolean;
185
+ readonly hasSubData: boolean;
150
186
  readonly language: string;
151
187
  readonly lastRenderIssue: string;
152
188
  readonly screenHeight: number;
@@ -163,6 +199,7 @@ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembl
163
199
 
164
200
  export interface InitOutput {
165
201
  readonly memory: WebAssembly.Memory;
202
+ readonly __wbg_dvbparser_free: (a: number, b: number) => void;
166
203
  readonly __wbg_pgsparser_free: (a: number, b: number) => void;
167
204
  readonly __wbg_renderresult_free: (a: number, b: number) => void;
168
205
  readonly __wbg_subtitlecomposition_free: (a: number, b: number) => void;
@@ -170,10 +207,31 @@ export interface InitOutput {
170
207
  readonly __wbg_subtitlerenderer_free: (a: number, b: number) => void;
171
208
  readonly __wbg_vobsubframe_free: (a: number, b: number) => void;
172
209
  readonly __wbg_vobsubparser_free: (a: number, b: number) => void;
210
+ readonly dvbparser_clearCache: (a: number) => void;
211
+ readonly dvbparser_count: (a: number) => number;
212
+ readonly dvbparser_feed: (a: number, b: number, c: number) => number;
213
+ readonly dvbparser_findIndexAtTimestamp: (a: number, b: number) => number;
214
+ readonly dvbparser_finishFeed: (a: number) => number;
215
+ readonly dvbparser_getCueCompositionCount: (a: number, b: number) => number;
216
+ readonly dvbparser_getCueEndTime: (a: number, b: number) => number;
217
+ readonly dvbparser_getCuePageState: (a: number, b: number) => number;
218
+ readonly dvbparser_getCueStartTime: (a: number, b: number) => number;
219
+ readonly dvbparser_getEndTimestamps: (a: number) => any;
220
+ readonly dvbparser_getTimestamps: (a: number) => any;
221
+ readonly dvbparser_lastRenderIssue: (a: number) => [number, number];
222
+ readonly dvbparser_new: () => number;
223
+ readonly dvbparser_parse: (a: number, b: number, c: number) => number;
224
+ readonly dvbparser_pendingLen: (a: number) => number;
225
+ readonly dvbparser_renderAtIndex: (a: number, b: number) => number;
226
+ readonly dvbparser_reset: (a: number) => void;
227
+ readonly dvbparser_screenHeight: (a: number) => number;
228
+ readonly dvbparser_screenWidth: (a: number) => number;
173
229
  readonly init: () => void;
174
230
  readonly pgsparser_clearCache: (a: number) => void;
175
231
  readonly pgsparser_count: (a: number) => number;
232
+ readonly pgsparser_feed: (a: number, b: number, c: number) => number;
176
233
  readonly pgsparser_findIndexAtTimestamp: (a: number, b: number) => number;
234
+ readonly pgsparser_finishFeed: (a: number) => number;
177
235
  readonly pgsparser_getCueCompositionCount: (a: number, b: number) => number;
178
236
  readonly pgsparser_getCueCompositionState: (a: number, b: number) => number;
179
237
  readonly pgsparser_getCueEndTime: (a: number, b: number) => number;
@@ -183,7 +241,9 @@ export interface InitOutput {
183
241
  readonly pgsparser_lastRenderIssue: (a: number) => [number, number];
184
242
  readonly pgsparser_new: () => number;
185
243
  readonly pgsparser_parse: (a: number, b: number, c: number) => number;
244
+ readonly pgsparser_pendingLen: (a: number) => number;
186
245
  readonly pgsparser_renderAtIndex: (a: number, b: number) => number;
246
+ readonly pgsparser_reset: (a: number) => void;
187
247
  readonly pgsparser_screenHeight: (a: number) => number;
188
248
  readonly pgsparser_screenWidth: (a: number) => number;
189
249
  readonly renderresult_compositionCount: (a: number) => number;
@@ -215,6 +275,7 @@ export interface InitOutput {
215
275
  readonly subtitlerenderer_hasIdxMetadata: (a: number) => number;
216
276
  readonly subtitlerenderer_language: (a: number) => [number, number];
217
277
  readonly subtitlerenderer_lastRenderIssue: (a: number) => [number, number];
278
+ readonly subtitlerenderer_loadDvb: (a: number, b: number, c: number) => number;
218
279
  readonly subtitlerenderer_loadPgs: (a: number, b: number, c: number) => number;
219
280
  readonly subtitlerenderer_loadVobSub: (a: number, b: number, c: number, d: number, e: number) => void;
220
281
  readonly subtitlerenderer_loadVobSubMks: (a: number, b: number, c: number) => [number, number];
@@ -232,6 +293,7 @@ export interface InitOutput {
232
293
  readonly vobsubframe_width: (a: number) => number;
233
294
  readonly vobsubframe_x: (a: number) => number;
234
295
  readonly vobsubframe_y: (a: number) => number;
296
+ readonly vobsubparser_attachSubData: (a: number, b: number, c: number) => void;
235
297
  readonly vobsubparser_clearCache: (a: number) => void;
236
298
  readonly vobsubparser_count: (a: number) => number;
237
299
  readonly vobsubparser_debandEnabled: (a: number) => number;
@@ -243,9 +305,11 @@ export interface InitOutput {
243
305
  readonly vobsubparser_getCueStartTime: (a: number, b: number) => number;
244
306
  readonly vobsubparser_getTimestamps: (a: number) => any;
245
307
  readonly vobsubparser_hasIdxMetadata: (a: number) => number;
308
+ readonly vobsubparser_hasSubData: (a: number) => number;
246
309
  readonly vobsubparser_language: (a: number) => [number, number];
247
310
  readonly vobsubparser_lastRenderIssue: (a: number) => [number, number];
248
311
  readonly vobsubparser_loadFromData: (a: number, b: number, c: number, d: number, e: number) => void;
312
+ readonly vobsubparser_loadFromIdx: (a: number, b: number, c: number) => void;
249
313
  readonly vobsubparser_loadFromMks: (a: number, b: number, c: number) => [number, number];
250
314
  readonly vobsubparser_loadFromSubOnly: (a: number, b: number, c: number) => void;
251
315
  readonly vobsubparser_new: () => number;
package/pkg/libbitsub.js CHANGED
@@ -1,5 +1,166 @@
1
1
  /* @ts-self-types="./libbitsub.d.ts" */
2
2
 
3
+ /**
4
+ * DVB subtitle parser and renderer exposed to JavaScript.
5
+ */
6
+ export class DvbParser {
7
+ __destroy_into_raw() {
8
+ const ptr = this.__wbg_ptr;
9
+ this.__wbg_ptr = 0;
10
+ DvbParserFinalization.unregister(this);
11
+ return ptr;
12
+ }
13
+ free() {
14
+ const ptr = this.__destroy_into_raw();
15
+ wasm.__wbg_dvbparser_free(ptr, 0);
16
+ }
17
+ clearCache() {
18
+ wasm.dvbparser_clearCache(this.__wbg_ptr);
19
+ }
20
+ /**
21
+ * @returns {number}
22
+ */
23
+ get count() {
24
+ const ret = wasm.dvbparser_count(this.__wbg_ptr);
25
+ return ret >>> 0;
26
+ }
27
+ /**
28
+ * @param {Uint8Array} data
29
+ * @returns {number}
30
+ */
31
+ feed(data) {
32
+ const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_malloc);
33
+ const len0 = WASM_VECTOR_LEN;
34
+ const ret = wasm.dvbparser_feed(this.__wbg_ptr, ptr0, len0);
35
+ return ret >>> 0;
36
+ }
37
+ /**
38
+ * @param {number} time_ms
39
+ * @returns {number}
40
+ */
41
+ findIndexAtTimestamp(time_ms) {
42
+ const ret = wasm.dvbparser_findIndexAtTimestamp(this.__wbg_ptr, time_ms);
43
+ return ret;
44
+ }
45
+ /**
46
+ * @returns {number}
47
+ */
48
+ finishFeed() {
49
+ const ret = wasm.dvbparser_finishFeed(this.__wbg_ptr);
50
+ return ret >>> 0;
51
+ }
52
+ /**
53
+ * @param {number} index
54
+ * @returns {number}
55
+ */
56
+ getCueCompositionCount(index) {
57
+ const ret = wasm.dvbparser_getCueCompositionCount(this.__wbg_ptr, index);
58
+ return ret >>> 0;
59
+ }
60
+ /**
61
+ * @param {number} index
62
+ * @returns {number}
63
+ */
64
+ getCueEndTime(index) {
65
+ const ret = wasm.dvbparser_getCueEndTime(this.__wbg_ptr, index);
66
+ return ret;
67
+ }
68
+ /**
69
+ * @param {number} index
70
+ * @returns {number}
71
+ */
72
+ getCuePageState(index) {
73
+ const ret = wasm.dvbparser_getCuePageState(this.__wbg_ptr, index);
74
+ return ret;
75
+ }
76
+ /**
77
+ * @param {number} index
78
+ * @returns {number}
79
+ */
80
+ getCueStartTime(index) {
81
+ const ret = wasm.dvbparser_getCueStartTime(this.__wbg_ptr, index);
82
+ return ret;
83
+ }
84
+ /**
85
+ * @returns {Float64Array}
86
+ */
87
+ getEndTimestamps() {
88
+ const ret = wasm.dvbparser_getEndTimestamps(this.__wbg_ptr);
89
+ return ret;
90
+ }
91
+ /**
92
+ * @returns {Float64Array}
93
+ */
94
+ getTimestamps() {
95
+ const ret = wasm.dvbparser_getTimestamps(this.__wbg_ptr);
96
+ return ret;
97
+ }
98
+ /**
99
+ * @returns {string}
100
+ */
101
+ get lastRenderIssue() {
102
+ let deferred1_0;
103
+ let deferred1_1;
104
+ try {
105
+ const ret = wasm.dvbparser_lastRenderIssue(this.__wbg_ptr);
106
+ deferred1_0 = ret[0];
107
+ deferred1_1 = ret[1];
108
+ return getStringFromWasm0(ret[0], ret[1]);
109
+ } finally {
110
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
111
+ }
112
+ }
113
+ constructor() {
114
+ const ret = wasm.dvbparser_new();
115
+ this.__wbg_ptr = ret;
116
+ DvbParserFinalization.register(this, this.__wbg_ptr, this);
117
+ return this;
118
+ }
119
+ /**
120
+ * @param {Uint8Array} data
121
+ * @returns {number}
122
+ */
123
+ parse(data) {
124
+ const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_malloc);
125
+ const len0 = WASM_VECTOR_LEN;
126
+ const ret = wasm.dvbparser_parse(this.__wbg_ptr, ptr0, len0);
127
+ return ret >>> 0;
128
+ }
129
+ /**
130
+ * @returns {number}
131
+ */
132
+ get pendingLen() {
133
+ const ret = wasm.dvbparser_pendingLen(this.__wbg_ptr);
134
+ return ret >>> 0;
135
+ }
136
+ /**
137
+ * @param {number} index
138
+ * @returns {SubtitleFrame | undefined}
139
+ */
140
+ renderAtIndex(index) {
141
+ const ret = wasm.dvbparser_renderAtIndex(this.__wbg_ptr, index);
142
+ return ret === 0 ? undefined : SubtitleFrame.__wrap(ret);
143
+ }
144
+ reset() {
145
+ wasm.dvbparser_reset(this.__wbg_ptr);
146
+ }
147
+ /**
148
+ * @returns {number}
149
+ */
150
+ get screenHeight() {
151
+ const ret = wasm.dvbparser_screenHeight(this.__wbg_ptr);
152
+ return ret;
153
+ }
154
+ /**
155
+ * @returns {number}
156
+ */
157
+ get screenWidth() {
158
+ const ret = wasm.dvbparser_screenWidth(this.__wbg_ptr);
159
+ return ret;
160
+ }
161
+ }
162
+ if (Symbol.dispose) DvbParser.prototype[Symbol.dispose] = DvbParser.prototype.free;
163
+
3
164
  /**
4
165
  * PGS subtitle parser and renderer exposed to JavaScript.
5
166
  */
@@ -24,6 +185,16 @@ export class PgsParser {
24
185
  const ret = wasm.pgsparser_count(this.__wbg_ptr);
25
186
  return ret >>> 0;
26
187
  }
188
+ /**
189
+ * @param {Uint8Array} data
190
+ * @returns {number}
191
+ */
192
+ feed(data) {
193
+ const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_malloc);
194
+ const len0 = WASM_VECTOR_LEN;
195
+ const ret = wasm.pgsparser_feed(this.__wbg_ptr, ptr0, len0);
196
+ return ret >>> 0;
197
+ }
27
198
  /**
28
199
  * @param {number} time_ms
29
200
  * @returns {number}
@@ -32,6 +203,13 @@ export class PgsParser {
32
203
  const ret = wasm.pgsparser_findIndexAtTimestamp(this.__wbg_ptr, time_ms);
33
204
  return ret;
34
205
  }
206
+ /**
207
+ * @returns {number}
208
+ */
209
+ finishFeed() {
210
+ const ret = wasm.pgsparser_finishFeed(this.__wbg_ptr);
211
+ return ret >>> 0;
212
+ }
35
213
  /**
36
214
  * @param {number} index
37
215
  * @returns {number}
@@ -110,6 +288,13 @@ export class PgsParser {
110
288
  const ret = wasm.pgsparser_parse(this.__wbg_ptr, ptr0, len0);
111
289
  return ret >>> 0;
112
290
  }
291
+ /**
292
+ * @returns {number}
293
+ */
294
+ get pendingLen() {
295
+ const ret = wasm.pgsparser_pendingLen(this.__wbg_ptr);
296
+ return ret >>> 0;
297
+ }
113
298
  /**
114
299
  * @param {number} index
115
300
  * @returns {SubtitleFrame | undefined}
@@ -118,6 +303,9 @@ export class PgsParser {
118
303
  const ret = wasm.pgsparser_renderAtIndex(this.__wbg_ptr, index);
119
304
  return ret === 0 ? undefined : SubtitleFrame.__wrap(ret);
120
305
  }
306
+ reset() {
307
+ wasm.pgsparser_reset(this.__wbg_ptr);
308
+ }
121
309
  /**
122
310
  * @returns {number}
123
311
  */
@@ -279,11 +467,12 @@ if (Symbol.dispose) SubtitleComposition.prototype[Symbol.dispose] = SubtitleComp
279
467
 
280
468
  /**
281
469
  * Subtitle format type.
282
- * @enum {0 | 1}
470
+ * @enum {0 | 1 | 2}
283
471
  */
284
472
  export const SubtitleFormat = Object.freeze({
285
473
  Pgs: 0, "0": "Pgs",
286
474
  VobSub: 1, "1": "VobSub",
475
+ Dvb: 2, "2": "Dvb",
287
476
  });
288
477
 
289
478
  /**
@@ -339,7 +528,7 @@ export class SubtitleFrame {
339
528
  if (Symbol.dispose) SubtitleFrame.prototype[Symbol.dispose] = SubtitleFrame.prototype.free;
340
529
 
341
530
  /**
342
- * Unified subtitle renderer for both PGS and VobSub formats.
531
+ * Unified subtitle renderer for PGS, VobSub, and DVB formats.
343
532
  */
344
533
  export class SubtitleRenderer {
345
534
  __destroy_into_raw() {
@@ -378,7 +567,7 @@ export class SubtitleRenderer {
378
567
  */
379
568
  get format() {
380
569
  const ret = wasm.subtitlerenderer_format(this.__wbg_ptr);
381
- return ret === 2 ? undefined : ret;
570
+ return ret === 3 ? undefined : ret;
382
571
  }
383
572
  /**
384
573
  * @param {number} index
@@ -448,6 +637,16 @@ export class SubtitleRenderer {
448
637
  wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
449
638
  }
450
639
  }
640
+ /**
641
+ * @param {Uint8Array} data
642
+ * @returns {number}
643
+ */
644
+ loadDvb(data) {
645
+ const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_malloc);
646
+ const len0 = WASM_VECTOR_LEN;
647
+ const ret = wasm.subtitlerenderer_loadDvb(this.__wbg_ptr, ptr0, len0);
648
+ return ret >>> 0;
649
+ }
451
650
  /**
452
651
  * @param {Uint8Array} data
453
652
  * @returns {number}
@@ -628,6 +827,14 @@ export class VobSubParser {
628
827
  const ptr = this.__destroy_into_raw();
629
828
  wasm.__wbg_vobsubparser_free(ptr, 0);
630
829
  }
830
+ /**
831
+ * @param {Uint8Array} sub_data
832
+ */
833
+ attachSubData(sub_data) {
834
+ const ptr0 = passArray8ToWasm0(sub_data, wasm.__wbindgen_malloc);
835
+ const len0 = WASM_VECTOR_LEN;
836
+ wasm.vobsubparser_attachSubData(this.__wbg_ptr, ptr0, len0);
837
+ }
631
838
  clearCache() {
632
839
  wasm.vobsubparser_clearCache(this.__wbg_ptr);
633
840
  }
@@ -702,6 +909,13 @@ export class VobSubParser {
702
909
  const ret = wasm.vobsubparser_hasIdxMetadata(this.__wbg_ptr);
703
910
  return ret !== 0;
704
911
  }
912
+ /**
913
+ * @returns {boolean}
914
+ */
915
+ get hasSubData() {
916
+ const ret = wasm.vobsubparser_hasSubData(this.__wbg_ptr);
917
+ return ret !== 0;
918
+ }
705
919
  /**
706
920
  * @returns {string}
707
921
  */
@@ -743,6 +957,14 @@ export class VobSubParser {
743
957
  const len1 = WASM_VECTOR_LEN;
744
958
  wasm.vobsubparser_loadFromData(this.__wbg_ptr, ptr0, len0, ptr1, len1);
745
959
  }
960
+ /**
961
+ * @param {string} idx_content
962
+ */
963
+ loadFromIdx(idx_content) {
964
+ const ptr0 = passStringToWasm0(idx_content, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
965
+ const len0 = WASM_VECTOR_LEN;
966
+ wasm.vobsubparser_loadFromIdx(this.__wbg_ptr, ptr0, len0);
967
+ }
746
968
  /**
747
969
  * @param {Uint8Array} mks_data
748
970
  */
@@ -896,6 +1118,9 @@ function __wbg_get_imports() {
896
1118
  };
897
1119
  }
898
1120
 
1121
+ const DvbParserFinalization = (typeof FinalizationRegistry === 'undefined')
1122
+ ? { register: () => {}, unregister: () => {} }
1123
+ : new FinalizationRegistry(ptr => wasm.__wbg_dvbparser_free(ptr, 1));
899
1124
  const PgsParserFinalization = (typeof FinalizationRegistry === 'undefined')
900
1125
  ? { register: () => {}, unregister: () => {} }
901
1126
  : new FinalizationRegistry(ptr => wasm.__wbg_pgsparser_free(ptr, 1));
Binary file
@@ -1,6 +1,7 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
3
  export const memory: WebAssembly.Memory;
4
+ export const __wbg_dvbparser_free: (a: number, b: number) => void;
4
5
  export const __wbg_pgsparser_free: (a: number, b: number) => void;
5
6
  export const __wbg_renderresult_free: (a: number, b: number) => void;
6
7
  export const __wbg_subtitlecomposition_free: (a: number, b: number) => void;
@@ -8,10 +9,31 @@ export const __wbg_subtitleframe_free: (a: number, b: number) => void;
8
9
  export const __wbg_subtitlerenderer_free: (a: number, b: number) => void;
9
10
  export const __wbg_vobsubframe_free: (a: number, b: number) => void;
10
11
  export const __wbg_vobsubparser_free: (a: number, b: number) => void;
12
+ export const dvbparser_clearCache: (a: number) => void;
13
+ export const dvbparser_count: (a: number) => number;
14
+ export const dvbparser_feed: (a: number, b: number, c: number) => number;
15
+ export const dvbparser_findIndexAtTimestamp: (a: number, b: number) => number;
16
+ export const dvbparser_finishFeed: (a: number) => number;
17
+ export const dvbparser_getCueCompositionCount: (a: number, b: number) => number;
18
+ export const dvbparser_getCueEndTime: (a: number, b: number) => number;
19
+ export const dvbparser_getCuePageState: (a: number, b: number) => number;
20
+ export const dvbparser_getCueStartTime: (a: number, b: number) => number;
21
+ export const dvbparser_getEndTimestamps: (a: number) => any;
22
+ export const dvbparser_getTimestamps: (a: number) => any;
23
+ export const dvbparser_lastRenderIssue: (a: number) => [number, number];
24
+ export const dvbparser_new: () => number;
25
+ export const dvbparser_parse: (a: number, b: number, c: number) => number;
26
+ export const dvbparser_pendingLen: (a: number) => number;
27
+ export const dvbparser_renderAtIndex: (a: number, b: number) => number;
28
+ export const dvbparser_reset: (a: number) => void;
29
+ export const dvbparser_screenHeight: (a: number) => number;
30
+ export const dvbparser_screenWidth: (a: number) => number;
11
31
  export const init: () => void;
12
32
  export const pgsparser_clearCache: (a: number) => void;
13
33
  export const pgsparser_count: (a: number) => number;
34
+ export const pgsparser_feed: (a: number, b: number, c: number) => number;
14
35
  export const pgsparser_findIndexAtTimestamp: (a: number, b: number) => number;
36
+ export const pgsparser_finishFeed: (a: number) => number;
15
37
  export const pgsparser_getCueCompositionCount: (a: number, b: number) => number;
16
38
  export const pgsparser_getCueCompositionState: (a: number, b: number) => number;
17
39
  export const pgsparser_getCueEndTime: (a: number, b: number) => number;
@@ -21,7 +43,9 @@ export const pgsparser_getTimestamps: (a: number) => any;
21
43
  export const pgsparser_lastRenderIssue: (a: number) => [number, number];
22
44
  export const pgsparser_new: () => number;
23
45
  export const pgsparser_parse: (a: number, b: number, c: number) => number;
46
+ export const pgsparser_pendingLen: (a: number) => number;
24
47
  export const pgsparser_renderAtIndex: (a: number, b: number) => number;
48
+ export const pgsparser_reset: (a: number) => void;
25
49
  export const pgsparser_screenHeight: (a: number) => number;
26
50
  export const pgsparser_screenWidth: (a: number) => number;
27
51
  export const renderresult_compositionCount: (a: number) => number;
@@ -53,6 +77,7 @@ export const subtitlerenderer_getTimestamps: (a: number) => any;
53
77
  export const subtitlerenderer_hasIdxMetadata: (a: number) => number;
54
78
  export const subtitlerenderer_language: (a: number) => [number, number];
55
79
  export const subtitlerenderer_lastRenderIssue: (a: number) => [number, number];
80
+ export const subtitlerenderer_loadDvb: (a: number, b: number, c: number) => number;
56
81
  export const subtitlerenderer_loadPgs: (a: number, b: number, c: number) => number;
57
82
  export const subtitlerenderer_loadVobSub: (a: number, b: number, c: number, d: number, e: number) => void;
58
83
  export const subtitlerenderer_loadVobSubMks: (a: number, b: number, c: number) => [number, number];
@@ -70,6 +95,7 @@ export const vobsubframe_screenWidth: (a: number) => number;
70
95
  export const vobsubframe_width: (a: number) => number;
71
96
  export const vobsubframe_x: (a: number) => number;
72
97
  export const vobsubframe_y: (a: number) => number;
98
+ export const vobsubparser_attachSubData: (a: number, b: number, c: number) => void;
73
99
  export const vobsubparser_clearCache: (a: number) => void;
74
100
  export const vobsubparser_count: (a: number) => number;
75
101
  export const vobsubparser_debandEnabled: (a: number) => number;
@@ -81,9 +107,11 @@ export const vobsubparser_getCueFilePosition: (a: number, b: number) => number;
81
107
  export const vobsubparser_getCueStartTime: (a: number, b: number) => number;
82
108
  export const vobsubparser_getTimestamps: (a: number) => any;
83
109
  export const vobsubparser_hasIdxMetadata: (a: number) => number;
110
+ export const vobsubparser_hasSubData: (a: number) => number;
84
111
  export const vobsubparser_language: (a: number) => [number, number];
85
112
  export const vobsubparser_lastRenderIssue: (a: number) => [number, number];
86
113
  export const vobsubparser_loadFromData: (a: number, b: number, c: number, d: number, e: number) => void;
114
+ export const vobsubparser_loadFromIdx: (a: number, b: number, c: number) => void;
87
115
  export const vobsubparser_loadFromMks: (a: number, b: number, c: number) => [number, number];
88
116
  export const vobsubparser_loadFromSubOnly: (a: number, b: number, c: number) => void;
89
117
  export const vobsubparser_new: () => number;
package/pkg/package.json CHANGED
@@ -4,8 +4,8 @@
4
4
  "collaborators": [
5
5
  "altqx"
6
6
  ],
7
- "description": "High-performance WASM renderer for graphical subtitles (PGS and VobSub)",
8
- "version": "1.10.2",
7
+ "description": "High-performance WASM renderer for graphical subtitles (PGS, VobSub, and DVB)",
8
+ "version": "1.12.0",
9
9
  "license": "MIT",
10
10
  "repository": {
11
11
  "type": "git",
@@ -24,8 +24,8 @@
24
24
  "keywords": [
25
25
  "pgs",
26
26
  "vobsub",
27
+ "dvb",
27
28
  "subtitle",
28
- "wasm",
29
- "rendering"
29
+ "wasm"
30
30
  ]
31
31
  }