@blockcast/mmt-wasm 0.3.0 → 0.4.0-main.1d3ea1cc8ff2
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/package.json +38 -38
- package/pkg/mmt_wasm.d.ts +77 -83
- package/pkg/mmt_wasm.js +126 -107
- package/pkg/mmt_wasm_bg.wasm +0 -0
- package/pkg/mmt_wasm_bg.wasm.d.ts +10 -7
- package/pkg-no-modules/mmt_wasm.d.ts +77 -83
- package/pkg-no-modules/mmt_wasm.js +126 -107
- package/pkg-no-modules/mmt_wasm_bg.wasm +0 -0
- package/pkg-no-modules/mmt_wasm_bg.wasm.d.ts +10 -7
package/package.json
CHANGED
|
@@ -1,40 +1,40 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
2
|
+
"name": "@blockcast/mmt-wasm",
|
|
3
|
+
"version": "0.4.0-main.1d3ea1cc8ff2",
|
|
4
|
+
"description": "wasm-bindgen builds of the libmmt Rust core (RaptorQ FEC, MMTP MFU reassembly): `pkg` for ESM bundlers and `pkg-no-modules` as a global script for Closure-compiled pages",
|
|
5
|
+
"main": "pkg/mmt_wasm.js",
|
|
6
|
+
"types": "pkg/mmt_wasm.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"types": "./pkg/mmt_wasm.d.ts",
|
|
10
|
+
"import": "./pkg/mmt_wasm.js"
|
|
11
|
+
},
|
|
12
|
+
"./mmt_wasm_bg.wasm": "./pkg/mmt_wasm_bg.wasm",
|
|
13
|
+
"./no-modules": {
|
|
14
|
+
"types": "./pkg-no-modules/mmt_wasm.d.ts",
|
|
15
|
+
"default": "./pkg-no-modules/mmt_wasm.js"
|
|
16
|
+
},
|
|
17
|
+
"./no-modules/mmt_wasm_bg.wasm": "./pkg-no-modules/mmt_wasm_bg.wasm",
|
|
18
|
+
"./package.json": "./package.json"
|
|
19
|
+
},
|
|
20
|
+
"files": [
|
|
21
|
+
"pkg",
|
|
22
|
+
"pkg-no-modules"
|
|
23
|
+
],
|
|
24
|
+
"scripts": {
|
|
25
|
+
"build": "make -C ../.. mmt-wasm",
|
|
26
|
+
"test": "node build-contract.test.mjs"
|
|
27
|
+
},
|
|
28
|
+
"keywords": [
|
|
29
|
+
"mmt",
|
|
30
|
+
"mmtp",
|
|
31
|
+
"raptorq",
|
|
32
|
+
"wasm"
|
|
33
|
+
],
|
|
34
|
+
"license": "Apache-2.0",
|
|
35
|
+
"repository": {
|
|
36
|
+
"type": "git",
|
|
37
|
+
"url": "https://github.com/Blockcast/libmmt.git",
|
|
38
|
+
"directory": "packages/mmt-wasm"
|
|
39
|
+
}
|
|
40
40
|
}
|
package/pkg/mmt_wasm.d.ts
CHANGED
|
@@ -45,6 +45,12 @@ export class FecStats {
|
|
|
45
45
|
* Blocks that expired with fewer than K symbols (delivery issue, not FEC issue)
|
|
46
46
|
*/
|
|
47
47
|
blocks_delivery_failed: bigint;
|
|
48
|
+
/**
|
|
49
|
+
* `iso-ssbg1-v1` held sources evicted, oldest arrival first, because the
|
|
50
|
+
* unplaced pool was at its `(interleave_depth + 1) * K` cap: no sweep
|
|
51
|
+
* (`cleanup_by_ss_start` / `retire_unplaced`) retired them first.
|
|
52
|
+
*/
|
|
53
|
+
unplaced_evicted: bigint;
|
|
48
54
|
}
|
|
49
55
|
|
|
50
56
|
export class MfuFragmentJs {
|
|
@@ -100,27 +106,15 @@ export class MmtFecDecoder {
|
|
|
100
106
|
/**
|
|
101
107
|
* Add a repair symbol per ISO 23008-1 §C.5.3.
|
|
102
108
|
*
|
|
103
|
-
* Repair carries (SS_Start, SSB_length, RS_ID).
|
|
104
|
-
* SS_Start
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
*
|
|
112
|
-
* (fec-raptorq `InterleavedEncoder::force_complete`). The block records
|
|
113
|
-
* `SSB_length`, completes once that many source symbols arrived, and
|
|
114
|
-
* recovers from `SSB_length` received symbols by supplying the known
|
|
115
|
-
* padding itself. A conflicting `SSB_length` for one block is rejected
|
|
116
|
-
* without changing that block.
|
|
117
|
-
*
|
|
118
|
-
* Under `iso-ssbg1-v1` the block is `[SS_Start, SS_Start + SSB_length)`
|
|
119
|
-
* with `1 <= SSB_length <= K` (K is only the maximum), its RaptorQ geometry
|
|
120
|
-
* is K' = SSB_length with no padding, and repair ESI = SSB_length + RS_ID
|
|
121
|
-
* (C.5.3). The first repair defines the block and claims every held source
|
|
122
|
-
* in range. A conflicting SSB_length, or a range overlapping a different
|
|
123
|
-
* known block, is refused without changing any block. Output is the K'*T
|
|
109
|
+
* Repair carries (SS_Start, SSB_length, RS_ID). The block is
|
|
110
|
+
* `[SS_Start, SS_Start + SSB_length)` with `1 <= SSB_length <= K` (the
|
|
111
|
+
* configured K is only the maximum), its RaptorQ geometry is
|
|
112
|
+
* K' = SSB_length with no padding, and repair ESI = SSB_length + RS_ID.
|
|
113
|
+
* The first repair defines the block and claims every held source in
|
|
114
|
+
* range. A conflicting SSB_length, a range overlapping a different known
|
|
115
|
+
* block, or a start more than `interleave_depth` blocks behind the last
|
|
116
|
+
* `cleanup_by_ss_start`'s `current` (`iso_blocks_behind_lower_bound`), is
|
|
117
|
+
* refused without changing any block. Output is the K'*T
|
|
124
118
|
* concatenated ssbg_mode1 symbols: split by T and trim by the length field.
|
|
125
119
|
*/
|
|
126
120
|
add_repair(ss_start: number, ssb_length: number, rs_id: number, data: Uint8Array, timestamp: number): Uint8Array | undefined;
|
|
@@ -130,13 +124,12 @@ export class MmtFecDecoder {
|
|
|
130
124
|
* SS_ID is a flat 32-bit counter. An unconfigured decoder rejects the
|
|
131
125
|
* packet.
|
|
132
126
|
*
|
|
133
|
-
*
|
|
134
|
-
*
|
|
135
|
-
*
|
|
136
|
-
*
|
|
137
|
-
*
|
|
138
|
-
*
|
|
139
|
-
* whose block no repair has defined yet is held by SS_ID until one does.
|
|
127
|
+
* Builds the C.3.3 ssbg_mode1 symbol `u16be(len) || data || zero padding`
|
|
128
|
+
* (refusing `len + 2 > T`) and places it at ESI = serial distance from the
|
|
129
|
+
* start of the known block whose `[SS_Start, SS_Start + SSB_length)`
|
|
130
|
+
* contains SS_ID. A source whose block no repair has defined yet is held
|
|
131
|
+
* by SS_ID until one does; at most `(interleave_depth + 1) * K` are held, and
|
|
132
|
+
* the oldest arrival is evicted first (`FecStats::unplaced_evicted`).
|
|
140
133
|
*
|
|
141
134
|
* # Arguments
|
|
142
135
|
* * `ss_id` - Source symbol ID (32-bit monotonic counter)
|
|
@@ -149,21 +142,13 @@ export class MmtFecDecoder {
|
|
|
149
142
|
*/
|
|
150
143
|
reset_stats(): void;
|
|
151
144
|
/**
|
|
152
|
-
*
|
|
145
|
+
* The `fec.algorithm` token this decoder was built for.
|
|
153
146
|
*/
|
|
154
|
-
|
|
147
|
+
get_algorithm(): string;
|
|
155
148
|
/**
|
|
156
|
-
*
|
|
157
|
-
* behind `current_sbn`. Refused under `iso-ssbg1-v1`, which has no SBN
|
|
158
|
-
* (use `cleanup_by_ss_start`).
|
|
159
|
-
*
|
|
160
|
-
* Blocks are ordered by RFC 1982 serial comparison of their first SS_ID
|
|
161
|
-
* (`sbn * K mod 2^32`, ISO/IEC 23008-1 C.5.2; BLO-35597 iso:5). For a
|
|
162
|
-
* stream that has not wrapped SS_ID that is exactly the old
|
|
163
|
-
* `sbn < current_sbn - interleave_depth`; after the wrap it still retires
|
|
164
|
-
* the pre-wrap blocks instead of keeping them forever.
|
|
149
|
+
* Get alignment (Al) parameter from OTI
|
|
165
150
|
*/
|
|
166
|
-
|
|
151
|
+
get_alignment(): number;
|
|
167
152
|
/**
|
|
168
153
|
* Get sub-blocks (N) parameter from OTI
|
|
169
154
|
*/
|
|
@@ -177,11 +162,11 @@ export class MmtFecDecoder {
|
|
|
177
162
|
*/
|
|
178
163
|
get_symbol_size(): number;
|
|
179
164
|
/**
|
|
180
|
-
*
|
|
181
|
-
*
|
|
182
|
-
*
|
|
183
|
-
*
|
|
184
|
-
*
|
|
165
|
+
* Retire the held source symbols that no repair can place any more, by
|
|
166
|
+
* the same rule as `cleanup_by_ss_start`, without retiring any block. For
|
|
167
|
+
* a caller that retires blocks itself, by their deadlines
|
|
168
|
+
* (`cleanup_blocks_detailed`), and needs only this half. Returns how many
|
|
169
|
+
* it retired.
|
|
185
170
|
*/
|
|
186
171
|
retire_unplaced(current: number): number;
|
|
187
172
|
/**
|
|
@@ -201,11 +186,11 @@ export class MmtFecDecoder {
|
|
|
201
186
|
*/
|
|
202
187
|
get_source_blocks(): number;
|
|
203
188
|
/**
|
|
204
|
-
*
|
|
205
|
-
*
|
|
206
|
-
*
|
|
207
|
-
*
|
|
208
|
-
*
|
|
189
|
+
* Retire every block, and every held source symbol, lying more than
|
|
190
|
+
* `interleave_depth` blocks behind SS_ID `current`, the newest SS_ID the
|
|
191
|
+
* caller has seen (no block start or held source follows it). A block
|
|
192
|
+
* start or held source that `current` has moved at least half the SS_ID
|
|
193
|
+
* space past no longer precedes it and is retired too
|
|
209
194
|
* (`iso_past_horizon`).
|
|
210
195
|
*
|
|
211
196
|
* Blocks have no SBN under ssbg_mode1, so distance is measured on the
|
|
@@ -221,23 +206,25 @@ export class MmtFecDecoder {
|
|
|
221
206
|
*/
|
|
222
207
|
get_interleave_depth(): number;
|
|
223
208
|
/**
|
|
224
|
-
* Finalize only the source blocks whose host-owned deadlines fired
|
|
225
|
-
*
|
|
209
|
+
* Finalize only the source blocks whose host-owned deadlines fired,
|
|
210
|
+
* named by their SS_Starts.
|
|
226
211
|
*
|
|
227
212
|
* The JavaScript FEC manager owns per-block repair grace. A timeout for one
|
|
228
213
|
* block must therefore not run the decoder's global age scan and evict a
|
|
229
214
|
* peer block that is still waiting for fetched repair.
|
|
230
215
|
*/
|
|
231
|
-
cleanup_blocks_detailed(
|
|
216
|
+
cleanup_blocks_detailed(ss_starts: Uint32Array): void;
|
|
232
217
|
/**
|
|
233
218
|
* Create a new FEC decoder
|
|
234
219
|
*
|
|
235
220
|
* # Arguments
|
|
236
221
|
* * `interleave_depth` - Explicit positive number of interleaved blocks.
|
|
237
|
-
* * `block_profile` - Catalog `fec.blockProfile`: `"
|
|
238
|
-
*
|
|
222
|
+
* * `block_profile` - Catalog `fec.blockProfile`: `"iso-ssbg1-v1"`.
|
|
223
|
+
* Required; any other value is refused.
|
|
224
|
+
* * `algorithm` - Catalog `fec.algorithm`: `"raptorq"` (the default when
|
|
225
|
+
* omitted) or `"reed-solomon"`; any other value is refused.
|
|
239
226
|
*/
|
|
240
|
-
constructor(interleave_depth: number, block_profile: string);
|
|
227
|
+
constructor(interleave_depth: number, block_profile: string, algorithm?: string | null);
|
|
241
228
|
/**
|
|
242
229
|
* Flush all pending decoder state while preserving configuration.
|
|
243
230
|
*/
|
|
@@ -250,7 +237,8 @@ export class MmtFecDecoder {
|
|
|
250
237
|
* Configure FEC from 12-byte OTI
|
|
251
238
|
*
|
|
252
239
|
* # Arguments
|
|
253
|
-
* * `oti` - 12-byte
|
|
240
|
+
* * `oti` - 12-byte RFC 6330 Common FEC OTI: decoder geometry per
|
|
241
|
+
* draft-fec-01 Section 4.2 (Z = 1, N = 1, Al = 8)
|
|
254
242
|
*/
|
|
255
243
|
configure(oti: Uint8Array): void;
|
|
256
244
|
/**
|
|
@@ -270,41 +258,40 @@ export class MmtFecEncoder {
|
|
|
270
258
|
* `[SS_Start:4][RSB_length:3][RS_ID:3][SSB_length:3][symbol: T]`.
|
|
271
259
|
* Callers split on that stride; `entry i` is at `i * (13 + T)`.
|
|
272
260
|
*
|
|
273
|
-
* `
|
|
274
|
-
*
|
|
275
|
-
*
|
|
276
|
-
*
|
|
277
|
-
*
|
|
278
|
-
* `iso-ssbg1-v1`: `block` is the SS_Start (the block's first SS_ID) and
|
|
279
|
-
* `source_block` is the block's K' ssbg_mode1 symbols (`1 <= K' <= K`,
|
|
280
|
-
* `len % T == 0`, each a well-formed C.3.3 symbol). RaptorQ runs over K'
|
|
281
|
-
* symbols (F = K'*T) and `SSB_length = K'`.
|
|
261
|
+
* `ss_start` is the block's first SS_ID and `source_block` is the
|
|
262
|
+
* block's K' ssbg_mode1 symbols (`1 <= K' <= K`, `len % T == 0`, each a
|
|
263
|
+
* well-formed C.3.3 symbol). RaptorQ runs over K' symbols (F = K'*T) and
|
|
264
|
+
* `SSB_length = K'`.
|
|
282
265
|
*
|
|
283
266
|
* # Arguments
|
|
284
|
-
* * `
|
|
267
|
+
* * `ss_start` - SS_Start: the block's first SS_ID.
|
|
285
268
|
* * `source_block` - The block's source symbols, as described above.
|
|
286
269
|
* * `repair_count` - Number of repair symbols (P) to generate.
|
|
287
270
|
*/
|
|
288
|
-
encode_repair(
|
|
271
|
+
encode_repair(ss_start: number, source_block: Uint8Array, repair_count: number): Uint8Array;
|
|
289
272
|
/**
|
|
290
273
|
* Create an encoder for a fixed `(K, symbol_size)` block geometry.
|
|
291
274
|
*
|
|
292
275
|
* Builds the OTI as `ObjectTransmissionInformation::new(K*T, T, 1, 1, 8)`
|
|
293
|
-
* (single source block, single sub-block, byte alignment) —
|
|
294
|
-
*
|
|
295
|
-
*
|
|
276
|
+
* (single source block, single sub-block, byte alignment) — the geometry
|
|
277
|
+
* [`MmtFecDecoder::configure`] reads back. K is the maximum SSB_length;
|
|
278
|
+
* each block is encoded over its own K' symbols (see
|
|
279
|
+
* [`MmtFecEncoder::encode_repair`]).
|
|
280
|
+
*
|
|
281
|
+
* `block_profile` is the catalog `fec.blockProfile` (`"iso-ssbg1-v1"`);
|
|
282
|
+
* any other value is refused.
|
|
296
283
|
*
|
|
297
|
-
* `
|
|
298
|
-
* `"
|
|
299
|
-
* is the maximum SSB_length.
|
|
284
|
+
* `algorithm` is the catalog `fec.algorithm`: `"raptorq"` (the default
|
|
285
|
+
* when omitted) or `"reed-solomon"` (K + P <= 255 per block).
|
|
300
286
|
*/
|
|
301
|
-
constructor(k: number, symbol_size: number, block_profile: string);
|
|
287
|
+
constructor(k: number, symbol_size: number, block_profile: string, algorithm?: string | null);
|
|
302
288
|
/**
|
|
303
289
|
* The configured 12-byte OTI (RFC 6330 §3.3.2 Common FEC OTI).
|
|
304
290
|
*
|
|
305
291
|
* Publishers (BLO-8975 / BLO-8990 catalog-gen) emit this so the player's
|
|
306
292
|
* [`MmtFecDecoder::configure`] reconstructs identical block geometry. The
|
|
307
|
-
* bytes round-trip exactly through `OtiParams::from_bytes`.
|
|
293
|
+
* bytes round-trip exactly through `OtiParams::from_bytes`. Empty under
|
|
294
|
+
* `reed-solomon`, which has no OTI.
|
|
308
295
|
*/
|
|
309
296
|
oti(): Uint8Array;
|
|
310
297
|
/**
|
|
@@ -319,6 +306,10 @@ export class MmtFecEncoder {
|
|
|
319
306
|
* Source symbols per block (K).
|
|
320
307
|
*/
|
|
321
308
|
readonly k: number;
|
|
309
|
+
/**
|
|
310
|
+
* The `fec.algorithm` token this encoder was built for.
|
|
311
|
+
*/
|
|
312
|
+
readonly algorithm: string;
|
|
322
313
|
}
|
|
323
314
|
|
|
324
315
|
/**
|
|
@@ -808,7 +799,7 @@ export interface InitOutput {
|
|
|
808
799
|
readonly __wbg_get_fecstats_bytes_recovered: (a: number) => bigint;
|
|
809
800
|
readonly __wbg_get_fecstats_repair_packets: (a: number) => bigint;
|
|
810
801
|
readonly __wbg_get_fecstats_source_packets: (a: number) => bigint;
|
|
811
|
-
readonly
|
|
802
|
+
readonly __wbg_get_fecstats_unplaced_evicted: (a: number) => bigint;
|
|
812
803
|
readonly __wbg_mfufragmentjs_free: (a: number, b: number) => void;
|
|
813
804
|
readonly __wbg_mmtfecdecoder_free: (a: number, b: number) => void;
|
|
814
805
|
readonly __wbg_mmtfecencoder_free: (a: number, b: number) => void;
|
|
@@ -821,9 +812,7 @@ export interface InitOutput {
|
|
|
821
812
|
readonly __wbg_moqfecencoder_free: (a: number, b: number) => void;
|
|
822
813
|
readonly __wbg_moqfecstatsjs_free: (a: number, b: number) => void;
|
|
823
814
|
readonly __wbg_reassembledmfujs_free: (a: number, b: number) => void;
|
|
824
|
-
readonly __wbg_reassemblerstatsjs_free: (a: number, b: number) => void;
|
|
825
815
|
readonly __wbg_recoveredset_free: (a: number, b: number) => void;
|
|
826
|
-
readonly __wbg_samplecombinerstatsjs_free: (a: number, b: number) => void;
|
|
827
816
|
readonly __wbg_set_fecstats_blocks_complete: (a: number, b: bigint) => void;
|
|
828
817
|
readonly __wbg_set_fecstats_blocks_delivery_failed: (a: number, b: bigint) => void;
|
|
829
818
|
readonly __wbg_set_fecstats_blocks_failed: (a: number, b: bigint) => void;
|
|
@@ -831,7 +820,7 @@ export interface InitOutput {
|
|
|
831
820
|
readonly __wbg_set_fecstats_bytes_recovered: (a: number, b: bigint) => void;
|
|
832
821
|
readonly __wbg_set_fecstats_repair_packets: (a: number, b: bigint) => void;
|
|
833
822
|
readonly __wbg_set_fecstats_source_packets: (a: number, b: bigint) => void;
|
|
834
|
-
readonly
|
|
823
|
+
readonly __wbg_set_fecstats_unplaced_evicted: (a: number, b: bigint) => void;
|
|
835
824
|
readonly __wbg_shredfecbuffer_free: (a: number, b: number) => void;
|
|
836
825
|
readonly __wbg_shredreassembler_free: (a: number, b: number) => void;
|
|
837
826
|
readonly annexb_access_unit_is_keyframe: (a: number, b: number, c: number, d: number) => [number, number, number];
|
|
@@ -862,11 +851,11 @@ export interface InitOutput {
|
|
|
862
851
|
readonly mmtfecdecoder_add_repair: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number];
|
|
863
852
|
readonly mmtfecdecoder_add_source: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
864
853
|
readonly mmtfecdecoder_cleanup_blocks_detailed: (a: number, b: number, c: number) => void;
|
|
865
|
-
readonly mmtfecdecoder_cleanup_by_sbn: (a: number, b: number) => [number, number, number, number];
|
|
866
854
|
readonly mmtfecdecoder_cleanup_by_ss_start: (a: number, b: number) => [number, number, number, number];
|
|
867
855
|
readonly mmtfecdecoder_configure: (a: number, b: number, c: number) => [number, number];
|
|
868
856
|
readonly mmtfecdecoder_configure_params: (a: number, b: number, c: number) => [number, number];
|
|
869
857
|
readonly mmtfecdecoder_flush: (a: number) => void;
|
|
858
|
+
readonly mmtfecdecoder_get_algorithm: (a: number) => [number, number];
|
|
870
859
|
readonly mmtfecdecoder_get_alignment: (a: number) => [number, number, number];
|
|
871
860
|
readonly mmtfecdecoder_get_block_profile: (a: number) => [number, number];
|
|
872
861
|
readonly mmtfecdecoder_get_interleave_depth: (a: number) => number;
|
|
@@ -875,14 +864,15 @@ export interface InitOutput {
|
|
|
875
864
|
readonly mmtfecdecoder_get_stats: (a: number) => number;
|
|
876
865
|
readonly mmtfecdecoder_get_sub_blocks: (a: number) => [number, number, number];
|
|
877
866
|
readonly mmtfecdecoder_get_symbol_size: (a: number) => [number, number, number];
|
|
878
|
-
readonly mmtfecdecoder_new: (a: number, b: number, c: number) => [number, number, number];
|
|
867
|
+
readonly mmtfecdecoder_new: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
|
|
879
868
|
readonly mmtfecdecoder_pending_blocks: (a: number) => number;
|
|
880
869
|
readonly mmtfecdecoder_reset_stats: (a: number) => void;
|
|
881
870
|
readonly mmtfecdecoder_retire_unplaced: (a: number, b: number) => [number, number, number];
|
|
871
|
+
readonly mmtfecencoder_algorithm: (a: number) => [number, number];
|
|
882
872
|
readonly mmtfecencoder_block_profile: (a: number) => [number, number];
|
|
883
873
|
readonly mmtfecencoder_encode_repair: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
884
874
|
readonly mmtfecencoder_k: (a: number) => number;
|
|
885
|
-
readonly mmtfecencoder_new: (a: number, b: number, c: number, d: number) => [number, number, number];
|
|
875
|
+
readonly mmtfecencoder_new: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
|
|
886
876
|
readonly mmtfecencoder_oti: (a: number) => [number, number];
|
|
887
877
|
readonly mmtfecencoder_symbol_size: (a: number) => number;
|
|
888
878
|
readonly mmtpacketizer_build_mfu: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number, number];
|
|
@@ -975,6 +965,7 @@ export interface InitOutput {
|
|
|
975
965
|
readonly moqfecstatsjs_blocksIncomplete: (a: number) => number;
|
|
976
966
|
readonly moqfecstatsjs_totalSymbolsReceived: (a: number) => number;
|
|
977
967
|
readonly shredreassembler_pending_fec_sets: (a: number) => number;
|
|
968
|
+
readonly __wbg_get_reassemblerstatsjs_ambiguous_fallback_fragments: (a: number) => bigint;
|
|
978
969
|
readonly __wbg_get_reassemblerstatsjs_duplicate_fragments: (a: number) => bigint;
|
|
979
970
|
readonly __wbg_get_reassemblerstatsjs_evicted_data_units: (a: number) => bigint;
|
|
980
971
|
readonly __wbg_get_reassemblerstatsjs_evicted_memory_limit: (a: number) => bigint;
|
|
@@ -986,6 +977,9 @@ export interface InitOutput {
|
|
|
986
977
|
readonly __wbg_get_samplecombinerstatsjs_evicted_samples: (a: number) => bigint;
|
|
987
978
|
readonly __wbg_get_samplecombinerstatsjs_passthrough_samples: (a: number) => bigint;
|
|
988
979
|
readonly __wbg_get_samplecombinerstatsjs_timed_out_samples: (a: number) => bigint;
|
|
980
|
+
readonly __wbg_reassemblerstatsjs_free: (a: number, b: number) => void;
|
|
981
|
+
readonly __wbg_samplecombinerstatsjs_free: (a: number, b: number) => void;
|
|
982
|
+
readonly __wbg_set_reassemblerstatsjs_ambiguous_fallback_fragments: (a: number, b: bigint) => void;
|
|
989
983
|
readonly __wbg_set_reassemblerstatsjs_duplicate_fragments: (a: number, b: bigint) => void;
|
|
990
984
|
readonly __wbg_set_reassemblerstatsjs_evicted_data_units: (a: number, b: bigint) => void;
|
|
991
985
|
readonly __wbg_set_reassemblerstatsjs_evicted_memory_limit: (a: number, b: bigint) => void;
|