@blockcast/mmt-wasm 0.4.0 → 0.4.1-main.22841c1f0a2d
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 +32 -14
- package/pkg/mmt_wasm.js +80 -23
- package/pkg/mmt_wasm_bg.wasm +0 -0
- package/pkg/mmt_wasm_bg.wasm.d.ts +7 -5
- package/pkg/package.json +1 -1
- package/pkg-no-modules/mmt_wasm.d.ts +32 -14
- package/pkg-no-modules/mmt_wasm.js +81 -24
- package/pkg-no-modules/mmt_wasm_bg.wasm +0 -0
- package/pkg-no-modules/mmt_wasm_bg.wasm.d.ts +7 -5
- package/pkg-no-modules/package.json +1 -1
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.1-main.22841c1f0a2d",
|
|
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
|
@@ -141,6 +141,10 @@ export class MmtFecDecoder {
|
|
|
141
141
|
* Reset statistics
|
|
142
142
|
*/
|
|
143
143
|
reset_stats(): void;
|
|
144
|
+
/**
|
|
145
|
+
* The `fec.algorithm` token this decoder was built for.
|
|
146
|
+
*/
|
|
147
|
+
get_algorithm(): string;
|
|
144
148
|
/**
|
|
145
149
|
* Get alignment (Al) parameter from OTI
|
|
146
150
|
*/
|
|
@@ -217,8 +221,10 @@ export class MmtFecDecoder {
|
|
|
217
221
|
* * `interleave_depth` - Explicit positive number of interleaved blocks.
|
|
218
222
|
* * `block_profile` - Catalog `fec.blockProfile`: `"iso-ssbg1-v1"`.
|
|
219
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.
|
|
220
226
|
*/
|
|
221
|
-
constructor(interleave_depth: number, block_profile: string);
|
|
227
|
+
constructor(interleave_depth: number, block_profile: string, algorithm?: string | null);
|
|
222
228
|
/**
|
|
223
229
|
* Flush all pending decoder state while preserving configuration.
|
|
224
230
|
*/
|
|
@@ -231,7 +237,8 @@ export class MmtFecDecoder {
|
|
|
231
237
|
* Configure FEC from 12-byte OTI
|
|
232
238
|
*
|
|
233
239
|
* # Arguments
|
|
234
|
-
* * `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)
|
|
235
242
|
*/
|
|
236
243
|
configure(oti: Uint8Array): void;
|
|
237
244
|
/**
|
|
@@ -273,14 +280,18 @@ export class MmtFecEncoder {
|
|
|
273
280
|
*
|
|
274
281
|
* `block_profile` is the catalog `fec.blockProfile` (`"iso-ssbg1-v1"`);
|
|
275
282
|
* any other value is refused.
|
|
283
|
+
*
|
|
284
|
+
* `algorithm` is the catalog `fec.algorithm`: `"raptorq"` (the default
|
|
285
|
+
* when omitted) or `"reed-solomon"` (K + P <= 255 per block).
|
|
276
286
|
*/
|
|
277
|
-
constructor(k: number, symbol_size: number, block_profile: string);
|
|
287
|
+
constructor(k: number, symbol_size: number, block_profile: string, algorithm?: string | null);
|
|
278
288
|
/**
|
|
279
289
|
* The configured 12-byte OTI (RFC 6330 §3.3.2 Common FEC OTI).
|
|
280
290
|
*
|
|
281
291
|
* Publishers (BLO-8975 / BLO-8990 catalog-gen) emit this so the player's
|
|
282
292
|
* [`MmtFecDecoder::configure`] reconstructs identical block geometry. The
|
|
283
|
-
* 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.
|
|
284
295
|
*/
|
|
285
296
|
oti(): Uint8Array;
|
|
286
297
|
/**
|
|
@@ -295,6 +306,10 @@ export class MmtFecEncoder {
|
|
|
295
306
|
* Source symbols per block (K).
|
|
296
307
|
*/
|
|
297
308
|
readonly k: number;
|
|
309
|
+
/**
|
|
310
|
+
* The `fec.algorithm` token this encoder was built for.
|
|
311
|
+
*/
|
|
312
|
+
readonly algorithm: string;
|
|
298
313
|
}
|
|
299
314
|
|
|
300
315
|
/**
|
|
@@ -719,6 +734,12 @@ export class ShredReassembler {
|
|
|
719
734
|
*/
|
|
720
735
|
export function annexb_access_unit_is_keyframe(codec: string, access_unit: Uint8Array): boolean;
|
|
721
736
|
|
|
737
|
+
/**
|
|
738
|
+
* bc-provenance v2 datagram digest D (multicast-01 7.2.2, hash_alg 1): SHA-256
|
|
739
|
+
* over the AMBI pseudoheader and the whole UDP payload, trailer included.
|
|
740
|
+
*/
|
|
741
|
+
export function bc_provenance_v2_datagram_digest(source: string, group: string, port: number, stream_id: number, payload: Uint8Array): Uint8Array;
|
|
742
|
+
|
|
722
743
|
/**
|
|
723
744
|
* The RFC 6381 codec string of an HEVC stream derived from its SPS NAL unit
|
|
724
745
|
* (ISO/IEC 14496-15 Annex E.3), using the sample entry (`hev1`/`hvc1`) of
|
|
@@ -752,11 +773,6 @@ export function is_keyframe_nal(codec: string, nal: Uint8Array): boolean;
|
|
|
752
773
|
*/
|
|
753
774
|
export function moq_fec_contract_version(): string;
|
|
754
775
|
|
|
755
|
-
/**
|
|
756
|
-
* Hash one authenticated object on the browser main thread.
|
|
757
|
-
*/
|
|
758
|
-
export function source_auth_blake3(object: Uint8Array): Uint8Array;
|
|
759
|
-
|
|
760
776
|
/**
|
|
761
777
|
* Build one `iso-ssbg1-v1` source symbol (ISO/IEC 23008-1 C.3.3
|
|
762
778
|
* ssbg_mode1): `u16be(len) || packet || zero padding` to `symbol_size` bytes.
|
|
@@ -798,7 +814,6 @@ export interface InitOutput {
|
|
|
798
814
|
readonly __wbg_moqfecstatsjs_free: (a: number, b: number) => void;
|
|
799
815
|
readonly __wbg_reassembledmfujs_free: (a: number, b: number) => void;
|
|
800
816
|
readonly __wbg_recoveredset_free: (a: number, b: number) => void;
|
|
801
|
-
readonly __wbg_samplecombinerstatsjs_free: (a: number, b: number) => void;
|
|
802
817
|
readonly __wbg_set_fecstats_blocks_complete: (a: number, b: bigint) => void;
|
|
803
818
|
readonly __wbg_set_fecstats_blocks_delivery_failed: (a: number, b: bigint) => void;
|
|
804
819
|
readonly __wbg_set_fecstats_blocks_failed: (a: number, b: bigint) => void;
|
|
@@ -810,6 +825,7 @@ export interface InitOutput {
|
|
|
810
825
|
readonly __wbg_shredfecbuffer_free: (a: number, b: number) => void;
|
|
811
826
|
readonly __wbg_shredreassembler_free: (a: number, b: number) => void;
|
|
812
827
|
readonly annexb_access_unit_is_keyframe: (a: number, b: number, c: number, d: number) => [number, number, number];
|
|
828
|
+
readonly bc_provenance_v2_datagram_digest: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number, number];
|
|
813
829
|
readonly combinedsamplejs_attribution: (a: number) => number;
|
|
814
830
|
readonly combinedsamplejs_data: (a: number) => [number, number];
|
|
815
831
|
readonly combinedsamplejs_movie_fragment_sequence_number: (a: number) => number;
|
|
@@ -841,6 +857,7 @@ export interface InitOutput {
|
|
|
841
857
|
readonly mmtfecdecoder_configure: (a: number, b: number, c: number) => [number, number];
|
|
842
858
|
readonly mmtfecdecoder_configure_params: (a: number, b: number, c: number) => [number, number];
|
|
843
859
|
readonly mmtfecdecoder_flush: (a: number) => void;
|
|
860
|
+
readonly mmtfecdecoder_get_algorithm: (a: number) => [number, number];
|
|
844
861
|
readonly mmtfecdecoder_get_alignment: (a: number) => [number, number, number];
|
|
845
862
|
readonly mmtfecdecoder_get_block_profile: (a: number) => [number, number];
|
|
846
863
|
readonly mmtfecdecoder_get_interleave_depth: (a: number) => number;
|
|
@@ -849,14 +866,15 @@ export interface InitOutput {
|
|
|
849
866
|
readonly mmtfecdecoder_get_stats: (a: number) => number;
|
|
850
867
|
readonly mmtfecdecoder_get_sub_blocks: (a: number) => [number, number, number];
|
|
851
868
|
readonly mmtfecdecoder_get_symbol_size: (a: number) => [number, number, number];
|
|
852
|
-
readonly mmtfecdecoder_new: (a: number, b: number, c: number) => [number, number, number];
|
|
869
|
+
readonly mmtfecdecoder_new: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
|
|
853
870
|
readonly mmtfecdecoder_pending_blocks: (a: number) => number;
|
|
854
871
|
readonly mmtfecdecoder_reset_stats: (a: number) => void;
|
|
855
872
|
readonly mmtfecdecoder_retire_unplaced: (a: number, b: number) => [number, number, number];
|
|
873
|
+
readonly mmtfecencoder_algorithm: (a: number) => [number, number];
|
|
856
874
|
readonly mmtfecencoder_block_profile: (a: number) => [number, number];
|
|
857
875
|
readonly mmtfecencoder_encode_repair: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
858
876
|
readonly mmtfecencoder_k: (a: number) => number;
|
|
859
|
-
readonly mmtfecencoder_new: (a: number, b: number, c: number, d: number) => [number, number, number];
|
|
877
|
+
readonly mmtfecencoder_new: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
|
|
860
878
|
readonly mmtfecencoder_oti: (a: number) => [number, number];
|
|
861
879
|
readonly mmtfecencoder_symbol_size: (a: number) => number;
|
|
862
880
|
readonly mmtpacketizer_build_mfu: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number, number];
|
|
@@ -931,6 +949,7 @@ export interface InitOutput {
|
|
|
931
949
|
readonly reassembledmfujs_sample_number: (a: number) => number;
|
|
932
950
|
readonly reassembledmfujs_stream_identity: (a: number) => number;
|
|
933
951
|
readonly reassembledmfujs_timestamp: (a: number) => number;
|
|
952
|
+
readonly recoveredset_fec_set_index: (a: number) => number;
|
|
934
953
|
readonly recoveredset_payload: (a: number) => [number, number];
|
|
935
954
|
readonly recoveredset_slot: (a: number) => bigint;
|
|
936
955
|
readonly shredfecbuffer_add_shred: (a: number, b: bigint, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => [number, number];
|
|
@@ -940,14 +959,12 @@ export interface InitOutput {
|
|
|
940
959
|
readonly shredfecbuffer_try_recover_all_with_identity: (a: number, b: number) => number;
|
|
941
960
|
readonly shredreassembler_add_shred: (a: number, b: bigint, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
942
961
|
readonly shredreassembler_new: (a: bigint, b: number) => number;
|
|
943
|
-
readonly source_auth_blake3: (a: number, b: number) => [number, number];
|
|
944
962
|
readonly ssbg1_source_symbol: (a: number, b: number, c: number) => [number, number, number, number];
|
|
945
963
|
readonly video_sample_entry_from_codec_string: (a: number, b: number) => [number, number, number, number];
|
|
946
964
|
readonly moqencodedblock_p: (a: number) => number;
|
|
947
965
|
readonly moqfecstatsjs_blocksComplete: (a: number) => number;
|
|
948
966
|
readonly moqfecstatsjs_blocksIncomplete: (a: number) => number;
|
|
949
967
|
readonly moqfecstatsjs_totalSymbolsReceived: (a: number) => number;
|
|
950
|
-
readonly recoveredset_fec_set_index: (a: number) => number;
|
|
951
968
|
readonly shredreassembler_pending_fec_sets: (a: number) => number;
|
|
952
969
|
readonly __wbg_get_reassemblerstatsjs_ambiguous_fallback_fragments: (a: number) => bigint;
|
|
953
970
|
readonly __wbg_get_reassemblerstatsjs_duplicate_fragments: (a: number) => bigint;
|
|
@@ -962,6 +979,7 @@ export interface InitOutput {
|
|
|
962
979
|
readonly __wbg_get_samplecombinerstatsjs_passthrough_samples: (a: number) => bigint;
|
|
963
980
|
readonly __wbg_get_samplecombinerstatsjs_timed_out_samples: (a: number) => bigint;
|
|
964
981
|
readonly __wbg_reassemblerstatsjs_free: (a: number, b: number) => void;
|
|
982
|
+
readonly __wbg_samplecombinerstatsjs_free: (a: number, b: number) => void;
|
|
965
983
|
readonly __wbg_set_reassemblerstatsjs_ambiguous_fallback_fragments: (a: number, b: bigint) => void;
|
|
966
984
|
readonly __wbg_set_reassemblerstatsjs_duplicate_fragments: (a: number, b: bigint) => void;
|
|
967
985
|
readonly __wbg_set_reassemblerstatsjs_evicted_data_units: (a: number, b: bigint) => void;
|
package/pkg/mmt_wasm.js
CHANGED
|
@@ -762,6 +762,22 @@ export class MmtFecDecoder {
|
|
|
762
762
|
reset_stats() {
|
|
763
763
|
wasm.mmtfecdecoder_reset_stats(this.__wbg_ptr);
|
|
764
764
|
}
|
|
765
|
+
/**
|
|
766
|
+
* The `fec.algorithm` token this decoder was built for.
|
|
767
|
+
* @returns {string}
|
|
768
|
+
*/
|
|
769
|
+
get_algorithm() {
|
|
770
|
+
let deferred1_0;
|
|
771
|
+
let deferred1_1;
|
|
772
|
+
try {
|
|
773
|
+
const ret = wasm.mmtfecdecoder_get_algorithm(this.__wbg_ptr);
|
|
774
|
+
deferred1_0 = ret[0];
|
|
775
|
+
deferred1_1 = ret[1];
|
|
776
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
777
|
+
} finally {
|
|
778
|
+
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
779
|
+
}
|
|
780
|
+
}
|
|
765
781
|
/**
|
|
766
782
|
* Get alignment (Al) parameter from OTI
|
|
767
783
|
* @returns {number}
|
|
@@ -916,13 +932,18 @@ export class MmtFecDecoder {
|
|
|
916
932
|
* * `interleave_depth` - Explicit positive number of interleaved blocks.
|
|
917
933
|
* * `block_profile` - Catalog `fec.blockProfile`: `"iso-ssbg1-v1"`.
|
|
918
934
|
* Required; any other value is refused.
|
|
935
|
+
* * `algorithm` - Catalog `fec.algorithm`: `"raptorq"` (the default when
|
|
936
|
+
* omitted) or `"reed-solomon"`; any other value is refused.
|
|
919
937
|
* @param {number} interleave_depth
|
|
920
938
|
* @param {string} block_profile
|
|
939
|
+
* @param {string | null} [algorithm]
|
|
921
940
|
*/
|
|
922
|
-
constructor(interleave_depth, block_profile) {
|
|
941
|
+
constructor(interleave_depth, block_profile, algorithm) {
|
|
923
942
|
const ptr0 = passStringToWasm0(block_profile, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
924
943
|
const len0 = WASM_VECTOR_LEN;
|
|
925
|
-
|
|
944
|
+
var ptr1 = isLikeNone(algorithm) ? 0 : passStringToWasm0(algorithm, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
945
|
+
var len1 = WASM_VECTOR_LEN;
|
|
946
|
+
const ret = wasm.mmtfecdecoder_new(interleave_depth, ptr0, len0, ptr1, len1);
|
|
926
947
|
if (ret[2]) {
|
|
927
948
|
throw takeFromExternrefTable0(ret[1]);
|
|
928
949
|
}
|
|
@@ -951,7 +972,8 @@ export class MmtFecDecoder {
|
|
|
951
972
|
* Configure FEC from 12-byte OTI
|
|
952
973
|
*
|
|
953
974
|
* # Arguments
|
|
954
|
-
* * `oti` - 12-byte
|
|
975
|
+
* * `oti` - 12-byte RFC 6330 Common FEC OTI: decoder geometry per
|
|
976
|
+
* draft-fec-01 Section 4.2 (Z = 1, N = 1, Al = 8)
|
|
955
977
|
* @param {Uint8Array} oti
|
|
956
978
|
*/
|
|
957
979
|
configure(oti) {
|
|
@@ -1093,14 +1115,20 @@ export class MmtFecEncoder {
|
|
|
1093
1115
|
*
|
|
1094
1116
|
* `block_profile` is the catalog `fec.blockProfile` (`"iso-ssbg1-v1"`);
|
|
1095
1117
|
* any other value is refused.
|
|
1118
|
+
*
|
|
1119
|
+
* `algorithm` is the catalog `fec.algorithm`: `"raptorq"` (the default
|
|
1120
|
+
* when omitted) or `"reed-solomon"` (K + P <= 255 per block).
|
|
1096
1121
|
* @param {number} k
|
|
1097
1122
|
* @param {number} symbol_size
|
|
1098
1123
|
* @param {string} block_profile
|
|
1124
|
+
* @param {string | null} [algorithm]
|
|
1099
1125
|
*/
|
|
1100
|
-
constructor(k, symbol_size, block_profile) {
|
|
1126
|
+
constructor(k, symbol_size, block_profile, algorithm) {
|
|
1101
1127
|
const ptr0 = passStringToWasm0(block_profile, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
1102
1128
|
const len0 = WASM_VECTOR_LEN;
|
|
1103
|
-
|
|
1129
|
+
var ptr1 = isLikeNone(algorithm) ? 0 : passStringToWasm0(algorithm, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
1130
|
+
var len1 = WASM_VECTOR_LEN;
|
|
1131
|
+
const ret = wasm.mmtfecencoder_new(k, symbol_size, ptr0, len0, ptr1, len1);
|
|
1104
1132
|
if (ret[2]) {
|
|
1105
1133
|
throw takeFromExternrefTable0(ret[1]);
|
|
1106
1134
|
}
|
|
@@ -1113,7 +1141,8 @@ export class MmtFecEncoder {
|
|
|
1113
1141
|
*
|
|
1114
1142
|
* Publishers (BLO-8975 / BLO-8990 catalog-gen) emit this so the player's
|
|
1115
1143
|
* [`MmtFecDecoder::configure`] reconstructs identical block geometry. The
|
|
1116
|
-
* bytes round-trip exactly through `OtiParams::from_bytes`.
|
|
1144
|
+
* bytes round-trip exactly through `OtiParams::from_bytes`. Empty under
|
|
1145
|
+
* `reed-solomon`, which has no OTI.
|
|
1117
1146
|
* @returns {Uint8Array}
|
|
1118
1147
|
*/
|
|
1119
1148
|
oti() {
|
|
@@ -1122,6 +1151,22 @@ export class MmtFecEncoder {
|
|
|
1122
1151
|
wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
|
|
1123
1152
|
return v1;
|
|
1124
1153
|
}
|
|
1154
|
+
/**
|
|
1155
|
+
* The `fec.algorithm` token this encoder was built for.
|
|
1156
|
+
* @returns {string}
|
|
1157
|
+
*/
|
|
1158
|
+
get algorithm() {
|
|
1159
|
+
let deferred1_0;
|
|
1160
|
+
let deferred1_1;
|
|
1161
|
+
try {
|
|
1162
|
+
const ret = wasm.mmtfecencoder_algorithm(this.__wbg_ptr);
|
|
1163
|
+
deferred1_0 = ret[0];
|
|
1164
|
+
deferred1_1 = ret[1];
|
|
1165
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
1166
|
+
} finally {
|
|
1167
|
+
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
1168
|
+
}
|
|
1169
|
+
}
|
|
1125
1170
|
}
|
|
1126
1171
|
if (Symbol.dispose) MmtFecEncoder.prototype[Symbol.dispose] = MmtFecEncoder.prototype.free;
|
|
1127
1172
|
|
|
@@ -2312,7 +2357,7 @@ export class RecoveredSet {
|
|
|
2312
2357
|
* @returns {number}
|
|
2313
2358
|
*/
|
|
2314
2359
|
get fec_set_index() {
|
|
2315
|
-
const ret = wasm.
|
|
2360
|
+
const ret = wasm.recoveredset_fec_set_index(this.__wbg_ptr);
|
|
2316
2361
|
return ret >>> 0;
|
|
2317
2362
|
}
|
|
2318
2363
|
/**
|
|
@@ -2606,6 +2651,32 @@ export function annexb_access_unit_is_keyframe(codec, access_unit) {
|
|
|
2606
2651
|
return ret[0] !== 0;
|
|
2607
2652
|
}
|
|
2608
2653
|
|
|
2654
|
+
/**
|
|
2655
|
+
* bc-provenance v2 datagram digest D (multicast-01 7.2.2, hash_alg 1): SHA-256
|
|
2656
|
+
* over the AMBI pseudoheader and the whole UDP payload, trailer included.
|
|
2657
|
+
* @param {string} source
|
|
2658
|
+
* @param {string} group
|
|
2659
|
+
* @param {number} port
|
|
2660
|
+
* @param {number} stream_id
|
|
2661
|
+
* @param {Uint8Array} payload
|
|
2662
|
+
* @returns {Uint8Array}
|
|
2663
|
+
*/
|
|
2664
|
+
export function bc_provenance_v2_datagram_digest(source, group, port, stream_id, payload) {
|
|
2665
|
+
const ptr0 = passStringToWasm0(source, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
2666
|
+
const len0 = WASM_VECTOR_LEN;
|
|
2667
|
+
const ptr1 = passStringToWasm0(group, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
2668
|
+
const len1 = WASM_VECTOR_LEN;
|
|
2669
|
+
const ptr2 = passArray8ToWasm0(payload, wasm.__wbindgen_malloc);
|
|
2670
|
+
const len2 = WASM_VECTOR_LEN;
|
|
2671
|
+
const ret = wasm.bc_provenance_v2_datagram_digest(ptr0, len0, ptr1, len1, port, stream_id, ptr2, len2);
|
|
2672
|
+
if (ret[3]) {
|
|
2673
|
+
throw takeFromExternrefTable0(ret[2]);
|
|
2674
|
+
}
|
|
2675
|
+
var v4 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
|
|
2676
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
|
|
2677
|
+
return v4;
|
|
2678
|
+
}
|
|
2679
|
+
|
|
2609
2680
|
/**
|
|
2610
2681
|
* The RFC 6381 codec string of an HEVC stream derived from its SPS NAL unit
|
|
2611
2682
|
* (ISO/IEC 14496-15 Annex E.3), using the sample entry (`hev1`/`hvc1`) of
|
|
@@ -2705,20 +2776,6 @@ export function moq_fec_contract_version() {
|
|
|
2705
2776
|
}
|
|
2706
2777
|
}
|
|
2707
2778
|
|
|
2708
|
-
/**
|
|
2709
|
-
* Hash one authenticated object on the browser main thread.
|
|
2710
|
-
* @param {Uint8Array} object
|
|
2711
|
-
* @returns {Uint8Array}
|
|
2712
|
-
*/
|
|
2713
|
-
export function source_auth_blake3(object) {
|
|
2714
|
-
const ptr0 = passArray8ToWasm0(object, wasm.__wbindgen_malloc);
|
|
2715
|
-
const len0 = WASM_VECTOR_LEN;
|
|
2716
|
-
const ret = wasm.source_auth_blake3(ptr0, len0);
|
|
2717
|
-
var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
|
|
2718
|
-
wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
|
|
2719
|
-
return v2;
|
|
2720
|
-
}
|
|
2721
|
-
|
|
2722
2779
|
/**
|
|
2723
2780
|
* Build one `iso-ssbg1-v1` source symbol (ISO/IEC 23008-1 C.3.3
|
|
2724
2781
|
* ssbg_mode1): `u16be(len) || packet || zero padding` to `symbol_size` bytes.
|
|
@@ -2835,7 +2892,7 @@ function __wbg_get_imports() {
|
|
|
2835
2892
|
const ret = Reflect.get(arg0, arg1);
|
|
2836
2893
|
return ret;
|
|
2837
2894
|
}, arguments) };
|
|
2838
|
-
imports.wbg.
|
|
2895
|
+
imports.wbg.__wbg_log_7563548dc7f9a87c = function(arg0, arg1) {
|
|
2839
2896
|
console.log(getStringFromWasm0(arg0, arg1));
|
|
2840
2897
|
};
|
|
2841
2898
|
imports.wbg.__wbg_new_8a6f238a6ece86ea = function() {
|
|
@@ -2881,7 +2938,7 @@ function __wbg_get_imports() {
|
|
|
2881
2938
|
const ret = typeof window === 'undefined' ? null : window;
|
|
2882
2939
|
return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);
|
|
2883
2940
|
};
|
|
2884
|
-
imports.wbg.
|
|
2941
|
+
imports.wbg.__wbg_warn_512c4eda6739f9af = function(arg0, arg1) {
|
|
2885
2942
|
console.warn(getStringFromWasm0(arg0, arg1));
|
|
2886
2943
|
};
|
|
2887
2944
|
imports.wbg.__wbindgen_cast_2241b6af4c4b2941 = function(arg0, arg1) {
|
package/pkg/mmt_wasm_bg.wasm
CHANGED
|
Binary file
|
|
@@ -24,7 +24,6 @@ export const __wbg_moqfecencoder_free: (a: number, b: number) => void;
|
|
|
24
24
|
export const __wbg_moqfecstatsjs_free: (a: number, b: number) => void;
|
|
25
25
|
export const __wbg_reassembledmfujs_free: (a: number, b: number) => void;
|
|
26
26
|
export const __wbg_recoveredset_free: (a: number, b: number) => void;
|
|
27
|
-
export const __wbg_samplecombinerstatsjs_free: (a: number, b: number) => void;
|
|
28
27
|
export const __wbg_set_fecstats_blocks_complete: (a: number, b: bigint) => void;
|
|
29
28
|
export const __wbg_set_fecstats_blocks_delivery_failed: (a: number, b: bigint) => void;
|
|
30
29
|
export const __wbg_set_fecstats_blocks_failed: (a: number, b: bigint) => void;
|
|
@@ -36,6 +35,7 @@ export const __wbg_set_fecstats_unplaced_evicted: (a: number, b: bigint) => void
|
|
|
36
35
|
export const __wbg_shredfecbuffer_free: (a: number, b: number) => void;
|
|
37
36
|
export const __wbg_shredreassembler_free: (a: number, b: number) => void;
|
|
38
37
|
export const annexb_access_unit_is_keyframe: (a: number, b: number, c: number, d: number) => [number, number, number];
|
|
38
|
+
export const bc_provenance_v2_datagram_digest: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number, number];
|
|
39
39
|
export const combinedsamplejs_attribution: (a: number) => number;
|
|
40
40
|
export const combinedsamplejs_data: (a: number) => [number, number];
|
|
41
41
|
export const combinedsamplejs_movie_fragment_sequence_number: (a: number) => number;
|
|
@@ -67,6 +67,7 @@ export const mmtfecdecoder_cleanup_by_ss_start: (a: number, b: number) => [numbe
|
|
|
67
67
|
export const mmtfecdecoder_configure: (a: number, b: number, c: number) => [number, number];
|
|
68
68
|
export const mmtfecdecoder_configure_params: (a: number, b: number, c: number) => [number, number];
|
|
69
69
|
export const mmtfecdecoder_flush: (a: number) => void;
|
|
70
|
+
export const mmtfecdecoder_get_algorithm: (a: number) => [number, number];
|
|
70
71
|
export const mmtfecdecoder_get_alignment: (a: number) => [number, number, number];
|
|
71
72
|
export const mmtfecdecoder_get_block_profile: (a: number) => [number, number];
|
|
72
73
|
export const mmtfecdecoder_get_interleave_depth: (a: number) => number;
|
|
@@ -75,14 +76,15 @@ export const mmtfecdecoder_get_source_blocks: (a: number) => [number, number, nu
|
|
|
75
76
|
export const mmtfecdecoder_get_stats: (a: number) => number;
|
|
76
77
|
export const mmtfecdecoder_get_sub_blocks: (a: number) => [number, number, number];
|
|
77
78
|
export const mmtfecdecoder_get_symbol_size: (a: number) => [number, number, number];
|
|
78
|
-
export const mmtfecdecoder_new: (a: number, b: number, c: number) => [number, number, number];
|
|
79
|
+
export const mmtfecdecoder_new: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
|
|
79
80
|
export const mmtfecdecoder_pending_blocks: (a: number) => number;
|
|
80
81
|
export const mmtfecdecoder_reset_stats: (a: number) => void;
|
|
81
82
|
export const mmtfecdecoder_retire_unplaced: (a: number, b: number) => [number, number, number];
|
|
83
|
+
export const mmtfecencoder_algorithm: (a: number) => [number, number];
|
|
82
84
|
export const mmtfecencoder_block_profile: (a: number) => [number, number];
|
|
83
85
|
export const mmtfecencoder_encode_repair: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
84
86
|
export const mmtfecencoder_k: (a: number) => number;
|
|
85
|
-
export const mmtfecencoder_new: (a: number, b: number, c: number, d: number) => [number, number, number];
|
|
87
|
+
export const mmtfecencoder_new: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
|
|
86
88
|
export const mmtfecencoder_oti: (a: number) => [number, number];
|
|
87
89
|
export const mmtfecencoder_symbol_size: (a: number) => number;
|
|
88
90
|
export const mmtpacketizer_build_mfu: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number, number];
|
|
@@ -157,6 +159,7 @@ export const reassembledmfujs_repaired_packet_sequence_numbers: (a: number) => [
|
|
|
157
159
|
export const reassembledmfujs_sample_number: (a: number) => number;
|
|
158
160
|
export const reassembledmfujs_stream_identity: (a: number) => number;
|
|
159
161
|
export const reassembledmfujs_timestamp: (a: number) => number;
|
|
162
|
+
export const recoveredset_fec_set_index: (a: number) => number;
|
|
160
163
|
export const recoveredset_payload: (a: number) => [number, number];
|
|
161
164
|
export const recoveredset_slot: (a: number) => bigint;
|
|
162
165
|
export const shredfecbuffer_add_shred: (a: number, b: bigint, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => [number, number];
|
|
@@ -166,14 +169,12 @@ export const shredfecbuffer_try_recover_all: (a: number, b: number) => [number,
|
|
|
166
169
|
export const shredfecbuffer_try_recover_all_with_identity: (a: number, b: number) => number;
|
|
167
170
|
export const shredreassembler_add_shred: (a: number, b: bigint, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
168
171
|
export const shredreassembler_new: (a: bigint, b: number) => number;
|
|
169
|
-
export const source_auth_blake3: (a: number, b: number) => [number, number];
|
|
170
172
|
export const ssbg1_source_symbol: (a: number, b: number, c: number) => [number, number, number, number];
|
|
171
173
|
export const video_sample_entry_from_codec_string: (a: number, b: number) => [number, number, number, number];
|
|
172
174
|
export const moqencodedblock_p: (a: number) => number;
|
|
173
175
|
export const moqfecstatsjs_blocksComplete: (a: number) => number;
|
|
174
176
|
export const moqfecstatsjs_blocksIncomplete: (a: number) => number;
|
|
175
177
|
export const moqfecstatsjs_totalSymbolsReceived: (a: number) => number;
|
|
176
|
-
export const recoveredset_fec_set_index: (a: number) => number;
|
|
177
178
|
export const shredreassembler_pending_fec_sets: (a: number) => number;
|
|
178
179
|
export const __wbg_get_reassemblerstatsjs_ambiguous_fallback_fragments: (a: number) => bigint;
|
|
179
180
|
export const __wbg_get_reassemblerstatsjs_duplicate_fragments: (a: number) => bigint;
|
|
@@ -188,6 +189,7 @@ export const __wbg_get_samplecombinerstatsjs_evicted_samples: (a: number) => big
|
|
|
188
189
|
export const __wbg_get_samplecombinerstatsjs_passthrough_samples: (a: number) => bigint;
|
|
189
190
|
export const __wbg_get_samplecombinerstatsjs_timed_out_samples: (a: number) => bigint;
|
|
190
191
|
export const __wbg_reassemblerstatsjs_free: (a: number, b: number) => void;
|
|
192
|
+
export const __wbg_samplecombinerstatsjs_free: (a: number, b: number) => void;
|
|
191
193
|
export const __wbg_set_reassemblerstatsjs_ambiguous_fallback_fragments: (a: number, b: bigint) => void;
|
|
192
194
|
export const __wbg_set_reassemblerstatsjs_duplicate_fragments: (a: number, b: bigint) => void;
|
|
193
195
|
export const __wbg_set_reassemblerstatsjs_evicted_data_units: (a: number, b: bigint) => void;
|
package/pkg/package.json
CHANGED
|
@@ -142,6 +142,10 @@ declare namespace wasm_bindgen {
|
|
|
142
142
|
* Reset statistics
|
|
143
143
|
*/
|
|
144
144
|
reset_stats(): void;
|
|
145
|
+
/**
|
|
146
|
+
* The `fec.algorithm` token this decoder was built for.
|
|
147
|
+
*/
|
|
148
|
+
get_algorithm(): string;
|
|
145
149
|
/**
|
|
146
150
|
* Get alignment (Al) parameter from OTI
|
|
147
151
|
*/
|
|
@@ -218,8 +222,10 @@ declare namespace wasm_bindgen {
|
|
|
218
222
|
* * `interleave_depth` - Explicit positive number of interleaved blocks.
|
|
219
223
|
* * `block_profile` - Catalog `fec.blockProfile`: `"iso-ssbg1-v1"`.
|
|
220
224
|
* Required; any other value is refused.
|
|
225
|
+
* * `algorithm` - Catalog `fec.algorithm`: `"raptorq"` (the default when
|
|
226
|
+
* omitted) or `"reed-solomon"`; any other value is refused.
|
|
221
227
|
*/
|
|
222
|
-
constructor(interleave_depth: number, block_profile: string);
|
|
228
|
+
constructor(interleave_depth: number, block_profile: string, algorithm?: string | null);
|
|
223
229
|
/**
|
|
224
230
|
* Flush all pending decoder state while preserving configuration.
|
|
225
231
|
*/
|
|
@@ -232,7 +238,8 @@ declare namespace wasm_bindgen {
|
|
|
232
238
|
* Configure FEC from 12-byte OTI
|
|
233
239
|
*
|
|
234
240
|
* # Arguments
|
|
235
|
-
* * `oti` - 12-byte
|
|
241
|
+
* * `oti` - 12-byte RFC 6330 Common FEC OTI: decoder geometry per
|
|
242
|
+
* draft-fec-01 Section 4.2 (Z = 1, N = 1, Al = 8)
|
|
236
243
|
*/
|
|
237
244
|
configure(oti: Uint8Array): void;
|
|
238
245
|
/**
|
|
@@ -274,14 +281,18 @@ declare namespace wasm_bindgen {
|
|
|
274
281
|
*
|
|
275
282
|
* `block_profile` is the catalog `fec.blockProfile` (`"iso-ssbg1-v1"`);
|
|
276
283
|
* any other value is refused.
|
|
284
|
+
*
|
|
285
|
+
* `algorithm` is the catalog `fec.algorithm`: `"raptorq"` (the default
|
|
286
|
+
* when omitted) or `"reed-solomon"` (K + P <= 255 per block).
|
|
277
287
|
*/
|
|
278
|
-
constructor(k: number, symbol_size: number, block_profile: string);
|
|
288
|
+
constructor(k: number, symbol_size: number, block_profile: string, algorithm?: string | null);
|
|
279
289
|
/**
|
|
280
290
|
* The configured 12-byte OTI (RFC 6330 §3.3.2 Common FEC OTI).
|
|
281
291
|
*
|
|
282
292
|
* Publishers (BLO-8975 / BLO-8990 catalog-gen) emit this so the player's
|
|
283
293
|
* [`MmtFecDecoder::configure`] reconstructs identical block geometry. The
|
|
284
|
-
* bytes round-trip exactly through `OtiParams::from_bytes`.
|
|
294
|
+
* bytes round-trip exactly through `OtiParams::from_bytes`. Empty under
|
|
295
|
+
* `reed-solomon`, which has no OTI.
|
|
285
296
|
*/
|
|
286
297
|
oti(): Uint8Array;
|
|
287
298
|
/**
|
|
@@ -296,6 +307,10 @@ declare namespace wasm_bindgen {
|
|
|
296
307
|
* Source symbols per block (K).
|
|
297
308
|
*/
|
|
298
309
|
readonly k: number;
|
|
310
|
+
/**
|
|
311
|
+
* The `fec.algorithm` token this encoder was built for.
|
|
312
|
+
*/
|
|
313
|
+
readonly algorithm: string;
|
|
299
314
|
}
|
|
300
315
|
|
|
301
316
|
/**
|
|
@@ -720,6 +735,12 @@ declare namespace wasm_bindgen {
|
|
|
720
735
|
*/
|
|
721
736
|
export function annexb_access_unit_is_keyframe(codec: string, access_unit: Uint8Array): boolean;
|
|
722
737
|
|
|
738
|
+
/**
|
|
739
|
+
* bc-provenance v2 datagram digest D (multicast-01 7.2.2, hash_alg 1): SHA-256
|
|
740
|
+
* over the AMBI pseudoheader and the whole UDP payload, trailer included.
|
|
741
|
+
*/
|
|
742
|
+
export function bc_provenance_v2_datagram_digest(source: string, group: string, port: number, stream_id: number, payload: Uint8Array): Uint8Array;
|
|
743
|
+
|
|
723
744
|
/**
|
|
724
745
|
* The RFC 6381 codec string of an HEVC stream derived from its SPS NAL unit
|
|
725
746
|
* (ISO/IEC 14496-15 Annex E.3), using the sample entry (`hev1`/`hvc1`) of
|
|
@@ -753,11 +774,6 @@ declare namespace wasm_bindgen {
|
|
|
753
774
|
*/
|
|
754
775
|
export function moq_fec_contract_version(): string;
|
|
755
776
|
|
|
756
|
-
/**
|
|
757
|
-
* Hash one authenticated object on the browser main thread.
|
|
758
|
-
*/
|
|
759
|
-
export function source_auth_blake3(object: Uint8Array): Uint8Array;
|
|
760
|
-
|
|
761
777
|
/**
|
|
762
778
|
* Build one `iso-ssbg1-v1` source symbol (ISO/IEC 23008-1 C.3.3
|
|
763
779
|
* ssbg_mode1): `u16be(len) || packet || zero padding` to `symbol_size` bytes.
|
|
@@ -801,7 +817,6 @@ declare interface InitOutput {
|
|
|
801
817
|
readonly __wbg_moqfecstatsjs_free: (a: number, b: number) => void;
|
|
802
818
|
readonly __wbg_reassembledmfujs_free: (a: number, b: number) => void;
|
|
803
819
|
readonly __wbg_recoveredset_free: (a: number, b: number) => void;
|
|
804
|
-
readonly __wbg_samplecombinerstatsjs_free: (a: number, b: number) => void;
|
|
805
820
|
readonly __wbg_set_fecstats_blocks_complete: (a: number, b: bigint) => void;
|
|
806
821
|
readonly __wbg_set_fecstats_blocks_delivery_failed: (a: number, b: bigint) => void;
|
|
807
822
|
readonly __wbg_set_fecstats_blocks_failed: (a: number, b: bigint) => void;
|
|
@@ -813,6 +828,7 @@ declare interface InitOutput {
|
|
|
813
828
|
readonly __wbg_shredfecbuffer_free: (a: number, b: number) => void;
|
|
814
829
|
readonly __wbg_shredreassembler_free: (a: number, b: number) => void;
|
|
815
830
|
readonly annexb_access_unit_is_keyframe: (a: number, b: number, c: number, d: number) => [number, number, number];
|
|
831
|
+
readonly bc_provenance_v2_datagram_digest: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number, number];
|
|
816
832
|
readonly combinedsamplejs_attribution: (a: number) => number;
|
|
817
833
|
readonly combinedsamplejs_data: (a: number) => [number, number];
|
|
818
834
|
readonly combinedsamplejs_movie_fragment_sequence_number: (a: number) => number;
|
|
@@ -844,6 +860,7 @@ declare interface InitOutput {
|
|
|
844
860
|
readonly mmtfecdecoder_configure: (a: number, b: number, c: number) => [number, number];
|
|
845
861
|
readonly mmtfecdecoder_configure_params: (a: number, b: number, c: number) => [number, number];
|
|
846
862
|
readonly mmtfecdecoder_flush: (a: number) => void;
|
|
863
|
+
readonly mmtfecdecoder_get_algorithm: (a: number) => [number, number];
|
|
847
864
|
readonly mmtfecdecoder_get_alignment: (a: number) => [number, number, number];
|
|
848
865
|
readonly mmtfecdecoder_get_block_profile: (a: number) => [number, number];
|
|
849
866
|
readonly mmtfecdecoder_get_interleave_depth: (a: number) => number;
|
|
@@ -852,14 +869,15 @@ declare interface InitOutput {
|
|
|
852
869
|
readonly mmtfecdecoder_get_stats: (a: number) => number;
|
|
853
870
|
readonly mmtfecdecoder_get_sub_blocks: (a: number) => [number, number, number];
|
|
854
871
|
readonly mmtfecdecoder_get_symbol_size: (a: number) => [number, number, number];
|
|
855
|
-
readonly mmtfecdecoder_new: (a: number, b: number, c: number) => [number, number, number];
|
|
872
|
+
readonly mmtfecdecoder_new: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
|
|
856
873
|
readonly mmtfecdecoder_pending_blocks: (a: number) => number;
|
|
857
874
|
readonly mmtfecdecoder_reset_stats: (a: number) => void;
|
|
858
875
|
readonly mmtfecdecoder_retire_unplaced: (a: number, b: number) => [number, number, number];
|
|
876
|
+
readonly mmtfecencoder_algorithm: (a: number) => [number, number];
|
|
859
877
|
readonly mmtfecencoder_block_profile: (a: number) => [number, number];
|
|
860
878
|
readonly mmtfecencoder_encode_repair: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
861
879
|
readonly mmtfecencoder_k: (a: number) => number;
|
|
862
|
-
readonly mmtfecencoder_new: (a: number, b: number, c: number, d: number) => [number, number, number];
|
|
880
|
+
readonly mmtfecencoder_new: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
|
|
863
881
|
readonly mmtfecencoder_oti: (a: number) => [number, number];
|
|
864
882
|
readonly mmtfecencoder_symbol_size: (a: number) => number;
|
|
865
883
|
readonly mmtpacketizer_build_mfu: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number, number];
|
|
@@ -934,6 +952,7 @@ declare interface InitOutput {
|
|
|
934
952
|
readonly reassembledmfujs_sample_number: (a: number) => number;
|
|
935
953
|
readonly reassembledmfujs_stream_identity: (a: number) => number;
|
|
936
954
|
readonly reassembledmfujs_timestamp: (a: number) => number;
|
|
955
|
+
readonly recoveredset_fec_set_index: (a: number) => number;
|
|
937
956
|
readonly recoveredset_payload: (a: number) => [number, number];
|
|
938
957
|
readonly recoveredset_slot: (a: number) => bigint;
|
|
939
958
|
readonly shredfecbuffer_add_shred: (a: number, b: bigint, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => [number, number];
|
|
@@ -943,14 +962,12 @@ declare interface InitOutput {
|
|
|
943
962
|
readonly shredfecbuffer_try_recover_all_with_identity: (a: number, b: number) => number;
|
|
944
963
|
readonly shredreassembler_add_shred: (a: number, b: bigint, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
945
964
|
readonly shredreassembler_new: (a: bigint, b: number) => number;
|
|
946
|
-
readonly source_auth_blake3: (a: number, b: number) => [number, number];
|
|
947
965
|
readonly ssbg1_source_symbol: (a: number, b: number, c: number) => [number, number, number, number];
|
|
948
966
|
readonly video_sample_entry_from_codec_string: (a: number, b: number) => [number, number, number, number];
|
|
949
967
|
readonly moqencodedblock_p: (a: number) => number;
|
|
950
968
|
readonly moqfecstatsjs_blocksComplete: (a: number) => number;
|
|
951
969
|
readonly moqfecstatsjs_blocksIncomplete: (a: number) => number;
|
|
952
970
|
readonly moqfecstatsjs_totalSymbolsReceived: (a: number) => number;
|
|
953
|
-
readonly recoveredset_fec_set_index: (a: number) => number;
|
|
954
971
|
readonly shredreassembler_pending_fec_sets: (a: number) => number;
|
|
955
972
|
readonly __wbg_get_reassemblerstatsjs_ambiguous_fallback_fragments: (a: number) => bigint;
|
|
956
973
|
readonly __wbg_get_reassemblerstatsjs_duplicate_fragments: (a: number) => bigint;
|
|
@@ -965,6 +982,7 @@ declare interface InitOutput {
|
|
|
965
982
|
readonly __wbg_get_samplecombinerstatsjs_passthrough_samples: (a: number) => bigint;
|
|
966
983
|
readonly __wbg_get_samplecombinerstatsjs_timed_out_samples: (a: number) => bigint;
|
|
967
984
|
readonly __wbg_reassemblerstatsjs_free: (a: number, b: number) => void;
|
|
985
|
+
readonly __wbg_samplecombinerstatsjs_free: (a: number, b: number) => void;
|
|
968
986
|
readonly __wbg_set_reassemblerstatsjs_ambiguous_fallback_fragments: (a: number, b: bigint) => void;
|
|
969
987
|
readonly __wbg_set_reassemblerstatsjs_duplicate_fragments: (a: number, b: bigint) => void;
|
|
970
988
|
readonly __wbg_set_reassemblerstatsjs_evicted_data_units: (a: number, b: bigint) => void;
|
|
@@ -764,6 +764,22 @@ let wasm_bindgen;
|
|
|
764
764
|
reset_stats() {
|
|
765
765
|
wasm.mmtfecdecoder_reset_stats(this.__wbg_ptr);
|
|
766
766
|
}
|
|
767
|
+
/**
|
|
768
|
+
* The `fec.algorithm` token this decoder was built for.
|
|
769
|
+
* @returns {string}
|
|
770
|
+
*/
|
|
771
|
+
get_algorithm() {
|
|
772
|
+
let deferred1_0;
|
|
773
|
+
let deferred1_1;
|
|
774
|
+
try {
|
|
775
|
+
const ret = wasm.mmtfecdecoder_get_algorithm(this.__wbg_ptr);
|
|
776
|
+
deferred1_0 = ret[0];
|
|
777
|
+
deferred1_1 = ret[1];
|
|
778
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
779
|
+
} finally {
|
|
780
|
+
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
781
|
+
}
|
|
782
|
+
}
|
|
767
783
|
/**
|
|
768
784
|
* Get alignment (Al) parameter from OTI
|
|
769
785
|
* @returns {number}
|
|
@@ -918,13 +934,18 @@ let wasm_bindgen;
|
|
|
918
934
|
* * `interleave_depth` - Explicit positive number of interleaved blocks.
|
|
919
935
|
* * `block_profile` - Catalog `fec.blockProfile`: `"iso-ssbg1-v1"`.
|
|
920
936
|
* Required; any other value is refused.
|
|
937
|
+
* * `algorithm` - Catalog `fec.algorithm`: `"raptorq"` (the default when
|
|
938
|
+
* omitted) or `"reed-solomon"`; any other value is refused.
|
|
921
939
|
* @param {number} interleave_depth
|
|
922
940
|
* @param {string} block_profile
|
|
941
|
+
* @param {string | null} [algorithm]
|
|
923
942
|
*/
|
|
924
|
-
constructor(interleave_depth, block_profile) {
|
|
943
|
+
constructor(interleave_depth, block_profile, algorithm) {
|
|
925
944
|
const ptr0 = passStringToWasm0(block_profile, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
926
945
|
const len0 = WASM_VECTOR_LEN;
|
|
927
|
-
|
|
946
|
+
var ptr1 = isLikeNone(algorithm) ? 0 : passStringToWasm0(algorithm, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
947
|
+
var len1 = WASM_VECTOR_LEN;
|
|
948
|
+
const ret = wasm.mmtfecdecoder_new(interleave_depth, ptr0, len0, ptr1, len1);
|
|
928
949
|
if (ret[2]) {
|
|
929
950
|
throw takeFromExternrefTable0(ret[1]);
|
|
930
951
|
}
|
|
@@ -953,7 +974,8 @@ let wasm_bindgen;
|
|
|
953
974
|
* Configure FEC from 12-byte OTI
|
|
954
975
|
*
|
|
955
976
|
* # Arguments
|
|
956
|
-
* * `oti` - 12-byte
|
|
977
|
+
* * `oti` - 12-byte RFC 6330 Common FEC OTI: decoder geometry per
|
|
978
|
+
* draft-fec-01 Section 4.2 (Z = 1, N = 1, Al = 8)
|
|
957
979
|
* @param {Uint8Array} oti
|
|
958
980
|
*/
|
|
959
981
|
configure(oti) {
|
|
@@ -1096,14 +1118,20 @@ let wasm_bindgen;
|
|
|
1096
1118
|
*
|
|
1097
1119
|
* `block_profile` is the catalog `fec.blockProfile` (`"iso-ssbg1-v1"`);
|
|
1098
1120
|
* any other value is refused.
|
|
1121
|
+
*
|
|
1122
|
+
* `algorithm` is the catalog `fec.algorithm`: `"raptorq"` (the default
|
|
1123
|
+
* when omitted) or `"reed-solomon"` (K + P <= 255 per block).
|
|
1099
1124
|
* @param {number} k
|
|
1100
1125
|
* @param {number} symbol_size
|
|
1101
1126
|
* @param {string} block_profile
|
|
1127
|
+
* @param {string | null} [algorithm]
|
|
1102
1128
|
*/
|
|
1103
|
-
constructor(k, symbol_size, block_profile) {
|
|
1129
|
+
constructor(k, symbol_size, block_profile, algorithm) {
|
|
1104
1130
|
const ptr0 = passStringToWasm0(block_profile, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
1105
1131
|
const len0 = WASM_VECTOR_LEN;
|
|
1106
|
-
|
|
1132
|
+
var ptr1 = isLikeNone(algorithm) ? 0 : passStringToWasm0(algorithm, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
1133
|
+
var len1 = WASM_VECTOR_LEN;
|
|
1134
|
+
const ret = wasm.mmtfecencoder_new(k, symbol_size, ptr0, len0, ptr1, len1);
|
|
1107
1135
|
if (ret[2]) {
|
|
1108
1136
|
throw takeFromExternrefTable0(ret[1]);
|
|
1109
1137
|
}
|
|
@@ -1116,7 +1144,8 @@ let wasm_bindgen;
|
|
|
1116
1144
|
*
|
|
1117
1145
|
* Publishers (BLO-8975 / BLO-8990 catalog-gen) emit this so the player's
|
|
1118
1146
|
* [`MmtFecDecoder::configure`] reconstructs identical block geometry. The
|
|
1119
|
-
* bytes round-trip exactly through `OtiParams::from_bytes`.
|
|
1147
|
+
* bytes round-trip exactly through `OtiParams::from_bytes`. Empty under
|
|
1148
|
+
* `reed-solomon`, which has no OTI.
|
|
1120
1149
|
* @returns {Uint8Array}
|
|
1121
1150
|
*/
|
|
1122
1151
|
oti() {
|
|
@@ -1125,6 +1154,22 @@ let wasm_bindgen;
|
|
|
1125
1154
|
wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
|
|
1126
1155
|
return v1;
|
|
1127
1156
|
}
|
|
1157
|
+
/**
|
|
1158
|
+
* The `fec.algorithm` token this encoder was built for.
|
|
1159
|
+
* @returns {string}
|
|
1160
|
+
*/
|
|
1161
|
+
get algorithm() {
|
|
1162
|
+
let deferred1_0;
|
|
1163
|
+
let deferred1_1;
|
|
1164
|
+
try {
|
|
1165
|
+
const ret = wasm.mmtfecencoder_algorithm(this.__wbg_ptr);
|
|
1166
|
+
deferred1_0 = ret[0];
|
|
1167
|
+
deferred1_1 = ret[1];
|
|
1168
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
1169
|
+
} finally {
|
|
1170
|
+
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
1171
|
+
}
|
|
1172
|
+
}
|
|
1128
1173
|
}
|
|
1129
1174
|
if (Symbol.dispose) MmtFecEncoder.prototype[Symbol.dispose] = MmtFecEncoder.prototype.free;
|
|
1130
1175
|
__exports.MmtFecEncoder = MmtFecEncoder;
|
|
@@ -2327,7 +2372,7 @@ let wasm_bindgen;
|
|
|
2327
2372
|
* @returns {number}
|
|
2328
2373
|
*/
|
|
2329
2374
|
get fec_set_index() {
|
|
2330
|
-
const ret = wasm.
|
|
2375
|
+
const ret = wasm.recoveredset_fec_set_index(this.__wbg_ptr);
|
|
2331
2376
|
return ret >>> 0;
|
|
2332
2377
|
}
|
|
2333
2378
|
/**
|
|
@@ -2626,6 +2671,33 @@ let wasm_bindgen;
|
|
|
2626
2671
|
}
|
|
2627
2672
|
__exports.annexb_access_unit_is_keyframe = annexb_access_unit_is_keyframe;
|
|
2628
2673
|
|
|
2674
|
+
/**
|
|
2675
|
+
* bc-provenance v2 datagram digest D (multicast-01 7.2.2, hash_alg 1): SHA-256
|
|
2676
|
+
* over the AMBI pseudoheader and the whole UDP payload, trailer included.
|
|
2677
|
+
* @param {string} source
|
|
2678
|
+
* @param {string} group
|
|
2679
|
+
* @param {number} port
|
|
2680
|
+
* @param {number} stream_id
|
|
2681
|
+
* @param {Uint8Array} payload
|
|
2682
|
+
* @returns {Uint8Array}
|
|
2683
|
+
*/
|
|
2684
|
+
function bc_provenance_v2_datagram_digest(source, group, port, stream_id, payload) {
|
|
2685
|
+
const ptr0 = passStringToWasm0(source, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
2686
|
+
const len0 = WASM_VECTOR_LEN;
|
|
2687
|
+
const ptr1 = passStringToWasm0(group, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
2688
|
+
const len1 = WASM_VECTOR_LEN;
|
|
2689
|
+
const ptr2 = passArray8ToWasm0(payload, wasm.__wbindgen_malloc);
|
|
2690
|
+
const len2 = WASM_VECTOR_LEN;
|
|
2691
|
+
const ret = wasm.bc_provenance_v2_datagram_digest(ptr0, len0, ptr1, len1, port, stream_id, ptr2, len2);
|
|
2692
|
+
if (ret[3]) {
|
|
2693
|
+
throw takeFromExternrefTable0(ret[2]);
|
|
2694
|
+
}
|
|
2695
|
+
var v4 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
|
|
2696
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
|
|
2697
|
+
return v4;
|
|
2698
|
+
}
|
|
2699
|
+
__exports.bc_provenance_v2_datagram_digest = bc_provenance_v2_datagram_digest;
|
|
2700
|
+
|
|
2629
2701
|
/**
|
|
2630
2702
|
* The RFC 6381 codec string of an HEVC stream derived from its SPS NAL unit
|
|
2631
2703
|
* (ISO/IEC 14496-15 Annex E.3), using the sample entry (`hev1`/`hvc1`) of
|
|
@@ -2730,21 +2802,6 @@ let wasm_bindgen;
|
|
|
2730
2802
|
}
|
|
2731
2803
|
__exports.moq_fec_contract_version = moq_fec_contract_version;
|
|
2732
2804
|
|
|
2733
|
-
/**
|
|
2734
|
-
* Hash one authenticated object on the browser main thread.
|
|
2735
|
-
* @param {Uint8Array} object
|
|
2736
|
-
* @returns {Uint8Array}
|
|
2737
|
-
*/
|
|
2738
|
-
function source_auth_blake3(object) {
|
|
2739
|
-
const ptr0 = passArray8ToWasm0(object, wasm.__wbindgen_malloc);
|
|
2740
|
-
const len0 = WASM_VECTOR_LEN;
|
|
2741
|
-
const ret = wasm.source_auth_blake3(ptr0, len0);
|
|
2742
|
-
var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
|
|
2743
|
-
wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
|
|
2744
|
-
return v2;
|
|
2745
|
-
}
|
|
2746
|
-
__exports.source_auth_blake3 = source_auth_blake3;
|
|
2747
|
-
|
|
2748
2805
|
/**
|
|
2749
2806
|
* Build one `iso-ssbg1-v1` source symbol (ISO/IEC 23008-1 C.3.3
|
|
2750
2807
|
* ssbg_mode1): `u16be(len) || packet || zero padding` to `symbol_size` bytes.
|
|
@@ -2863,7 +2920,7 @@ let wasm_bindgen;
|
|
|
2863
2920
|
const ret = Reflect.get(arg0, arg1);
|
|
2864
2921
|
return ret;
|
|
2865
2922
|
}, arguments) };
|
|
2866
|
-
imports.wbg.
|
|
2923
|
+
imports.wbg.__wbg_log_7563548dc7f9a87c = function(arg0, arg1) {
|
|
2867
2924
|
console.log(getStringFromWasm0(arg0, arg1));
|
|
2868
2925
|
};
|
|
2869
2926
|
imports.wbg.__wbg_new_8a6f238a6ece86ea = function() {
|
|
@@ -2909,7 +2966,7 @@ let wasm_bindgen;
|
|
|
2909
2966
|
const ret = typeof window === 'undefined' ? null : window;
|
|
2910
2967
|
return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);
|
|
2911
2968
|
};
|
|
2912
|
-
imports.wbg.
|
|
2969
|
+
imports.wbg.__wbg_warn_512c4eda6739f9af = function(arg0, arg1) {
|
|
2913
2970
|
console.warn(getStringFromWasm0(arg0, arg1));
|
|
2914
2971
|
};
|
|
2915
2972
|
imports.wbg.__wbindgen_cast_2241b6af4c4b2941 = function(arg0, arg1) {
|
|
Binary file
|
|
@@ -24,7 +24,6 @@ export const __wbg_moqfecencoder_free: (a: number, b: number) => void;
|
|
|
24
24
|
export const __wbg_moqfecstatsjs_free: (a: number, b: number) => void;
|
|
25
25
|
export const __wbg_reassembledmfujs_free: (a: number, b: number) => void;
|
|
26
26
|
export const __wbg_recoveredset_free: (a: number, b: number) => void;
|
|
27
|
-
export const __wbg_samplecombinerstatsjs_free: (a: number, b: number) => void;
|
|
28
27
|
export const __wbg_set_fecstats_blocks_complete: (a: number, b: bigint) => void;
|
|
29
28
|
export const __wbg_set_fecstats_blocks_delivery_failed: (a: number, b: bigint) => void;
|
|
30
29
|
export const __wbg_set_fecstats_blocks_failed: (a: number, b: bigint) => void;
|
|
@@ -36,6 +35,7 @@ export const __wbg_set_fecstats_unplaced_evicted: (a: number, b: bigint) => void
|
|
|
36
35
|
export const __wbg_shredfecbuffer_free: (a: number, b: number) => void;
|
|
37
36
|
export const __wbg_shredreassembler_free: (a: number, b: number) => void;
|
|
38
37
|
export const annexb_access_unit_is_keyframe: (a: number, b: number, c: number, d: number) => [number, number, number];
|
|
38
|
+
export const bc_provenance_v2_datagram_digest: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number, number];
|
|
39
39
|
export const combinedsamplejs_attribution: (a: number) => number;
|
|
40
40
|
export const combinedsamplejs_data: (a: number) => [number, number];
|
|
41
41
|
export const combinedsamplejs_movie_fragment_sequence_number: (a: number) => number;
|
|
@@ -67,6 +67,7 @@ export const mmtfecdecoder_cleanup_by_ss_start: (a: number, b: number) => [numbe
|
|
|
67
67
|
export const mmtfecdecoder_configure: (a: number, b: number, c: number) => [number, number];
|
|
68
68
|
export const mmtfecdecoder_configure_params: (a: number, b: number, c: number) => [number, number];
|
|
69
69
|
export const mmtfecdecoder_flush: (a: number) => void;
|
|
70
|
+
export const mmtfecdecoder_get_algorithm: (a: number) => [number, number];
|
|
70
71
|
export const mmtfecdecoder_get_alignment: (a: number) => [number, number, number];
|
|
71
72
|
export const mmtfecdecoder_get_block_profile: (a: number) => [number, number];
|
|
72
73
|
export const mmtfecdecoder_get_interleave_depth: (a: number) => number;
|
|
@@ -75,14 +76,15 @@ export const mmtfecdecoder_get_source_blocks: (a: number) => [number, number, nu
|
|
|
75
76
|
export const mmtfecdecoder_get_stats: (a: number) => number;
|
|
76
77
|
export const mmtfecdecoder_get_sub_blocks: (a: number) => [number, number, number];
|
|
77
78
|
export const mmtfecdecoder_get_symbol_size: (a: number) => [number, number, number];
|
|
78
|
-
export const mmtfecdecoder_new: (a: number, b: number, c: number) => [number, number, number];
|
|
79
|
+
export const mmtfecdecoder_new: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
|
|
79
80
|
export const mmtfecdecoder_pending_blocks: (a: number) => number;
|
|
80
81
|
export const mmtfecdecoder_reset_stats: (a: number) => void;
|
|
81
82
|
export const mmtfecdecoder_retire_unplaced: (a: number, b: number) => [number, number, number];
|
|
83
|
+
export const mmtfecencoder_algorithm: (a: number) => [number, number];
|
|
82
84
|
export const mmtfecencoder_block_profile: (a: number) => [number, number];
|
|
83
85
|
export const mmtfecencoder_encode_repair: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
84
86
|
export const mmtfecencoder_k: (a: number) => number;
|
|
85
|
-
export const mmtfecencoder_new: (a: number, b: number, c: number, d: number) => [number, number, number];
|
|
87
|
+
export const mmtfecencoder_new: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
|
|
86
88
|
export const mmtfecencoder_oti: (a: number) => [number, number];
|
|
87
89
|
export const mmtfecencoder_symbol_size: (a: number) => number;
|
|
88
90
|
export const mmtpacketizer_build_mfu: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number, number];
|
|
@@ -157,6 +159,7 @@ export const reassembledmfujs_repaired_packet_sequence_numbers: (a: number) => [
|
|
|
157
159
|
export const reassembledmfujs_sample_number: (a: number) => number;
|
|
158
160
|
export const reassembledmfujs_stream_identity: (a: number) => number;
|
|
159
161
|
export const reassembledmfujs_timestamp: (a: number) => number;
|
|
162
|
+
export const recoveredset_fec_set_index: (a: number) => number;
|
|
160
163
|
export const recoveredset_payload: (a: number) => [number, number];
|
|
161
164
|
export const recoveredset_slot: (a: number) => bigint;
|
|
162
165
|
export const shredfecbuffer_add_shred: (a: number, b: bigint, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => [number, number];
|
|
@@ -166,14 +169,12 @@ export const shredfecbuffer_try_recover_all: (a: number, b: number) => [number,
|
|
|
166
169
|
export const shredfecbuffer_try_recover_all_with_identity: (a: number, b: number) => number;
|
|
167
170
|
export const shredreassembler_add_shred: (a: number, b: bigint, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
168
171
|
export const shredreassembler_new: (a: bigint, b: number) => number;
|
|
169
|
-
export const source_auth_blake3: (a: number, b: number) => [number, number];
|
|
170
172
|
export const ssbg1_source_symbol: (a: number, b: number, c: number) => [number, number, number, number];
|
|
171
173
|
export const video_sample_entry_from_codec_string: (a: number, b: number) => [number, number, number, number];
|
|
172
174
|
export const moqencodedblock_p: (a: number) => number;
|
|
173
175
|
export const moqfecstatsjs_blocksComplete: (a: number) => number;
|
|
174
176
|
export const moqfecstatsjs_blocksIncomplete: (a: number) => number;
|
|
175
177
|
export const moqfecstatsjs_totalSymbolsReceived: (a: number) => number;
|
|
176
|
-
export const recoveredset_fec_set_index: (a: number) => number;
|
|
177
178
|
export const shredreassembler_pending_fec_sets: (a: number) => number;
|
|
178
179
|
export const __wbg_get_reassemblerstatsjs_ambiguous_fallback_fragments: (a: number) => bigint;
|
|
179
180
|
export const __wbg_get_reassemblerstatsjs_duplicate_fragments: (a: number) => bigint;
|
|
@@ -188,6 +189,7 @@ export const __wbg_get_samplecombinerstatsjs_evicted_samples: (a: number) => big
|
|
|
188
189
|
export const __wbg_get_samplecombinerstatsjs_passthrough_samples: (a: number) => bigint;
|
|
189
190
|
export const __wbg_get_samplecombinerstatsjs_timed_out_samples: (a: number) => bigint;
|
|
190
191
|
export const __wbg_reassemblerstatsjs_free: (a: number, b: number) => void;
|
|
192
|
+
export const __wbg_samplecombinerstatsjs_free: (a: number, b: number) => void;
|
|
191
193
|
export const __wbg_set_reassemblerstatsjs_ambiguous_fallback_fragments: (a: number, b: bigint) => void;
|
|
192
194
|
export const __wbg_set_reassemblerstatsjs_duplicate_fragments: (a: number, b: bigint) => void;
|
|
193
195
|
export const __wbg_set_reassemblerstatsjs_evicted_data_units: (a: number, b: bigint) => void;
|