@blockcast/mmt-wasm 0.4.0-main.f4ddf90d8686 → 0.4.0-main.f750d2a511b3
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 +1 -1
- package/pkg/mmt_wasm.d.ts +23 -7
- package/pkg/mmt_wasm.js +50 -6
- package/pkg/mmt_wasm_bg.wasm +0 -0
- package/pkg/mmt_wasm_bg.wasm.d.ts +6 -4
- package/pkg-no-modules/mmt_wasm.d.ts +23 -7
- package/pkg-no-modules/mmt_wasm.js +50 -6
- package/pkg-no-modules/mmt_wasm_bg.wasm +0 -0
- package/pkg-no-modules/mmt_wasm_bg.wasm.d.ts +6 -4
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blockcast/mmt-wasm",
|
|
3
|
-
"version": "0.4.0-main.
|
|
3
|
+
"version": "0.4.0-main.f750d2a511b3",
|
|
4
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
5
|
"main": "pkg/mmt_wasm.js",
|
|
6
6
|
"types": "pkg/mmt_wasm.d.ts",
|
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
|
*/
|
|
@@ -274,14 +280,18 @@ export class MmtFecEncoder {
|
|
|
274
280
|
*
|
|
275
281
|
* `block_profile` is the catalog `fec.blockProfile` (`"iso-ssbg1-v1"`);
|
|
276
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).
|
|
277
286
|
*/
|
|
278
|
-
constructor(k: number, symbol_size: number, block_profile: string);
|
|
287
|
+
constructor(k: number, symbol_size: number, block_profile: string, algorithm?: string | null);
|
|
279
288
|
/**
|
|
280
289
|
* The configured 12-byte OTI (RFC 6330 §3.3.2 Common FEC OTI).
|
|
281
290
|
*
|
|
282
291
|
* Publishers (BLO-8975 / BLO-8990 catalog-gen) emit this so the player's
|
|
283
292
|
* [`MmtFecDecoder::configure`] reconstructs identical block geometry. The
|
|
284
|
-
* 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.
|
|
285
295
|
*/
|
|
286
296
|
oti(): Uint8Array;
|
|
287
297
|
/**
|
|
@@ -296,6 +306,10 @@ export class MmtFecEncoder {
|
|
|
296
306
|
* Source symbols per block (K).
|
|
297
307
|
*/
|
|
298
308
|
readonly k: number;
|
|
309
|
+
/**
|
|
310
|
+
* The `fec.algorithm` token this encoder was built for.
|
|
311
|
+
*/
|
|
312
|
+
readonly algorithm: string;
|
|
299
313
|
}
|
|
300
314
|
|
|
301
315
|
/**
|
|
@@ -799,7 +813,6 @@ export interface InitOutput {
|
|
|
799
813
|
readonly __wbg_moqfecstatsjs_free: (a: number, b: number) => void;
|
|
800
814
|
readonly __wbg_reassembledmfujs_free: (a: number, b: number) => void;
|
|
801
815
|
readonly __wbg_recoveredset_free: (a: number, b: number) => void;
|
|
802
|
-
readonly __wbg_samplecombinerstatsjs_free: (a: number, b: number) => void;
|
|
803
816
|
readonly __wbg_set_fecstats_blocks_complete: (a: number, b: bigint) => void;
|
|
804
817
|
readonly __wbg_set_fecstats_blocks_delivery_failed: (a: number, b: bigint) => void;
|
|
805
818
|
readonly __wbg_set_fecstats_blocks_failed: (a: number, b: bigint) => void;
|
|
@@ -842,6 +855,7 @@ export interface InitOutput {
|
|
|
842
855
|
readonly mmtfecdecoder_configure: (a: number, b: number, c: number) => [number, number];
|
|
843
856
|
readonly mmtfecdecoder_configure_params: (a: number, b: number, c: number) => [number, number];
|
|
844
857
|
readonly mmtfecdecoder_flush: (a: number) => void;
|
|
858
|
+
readonly mmtfecdecoder_get_algorithm: (a: number) => [number, number];
|
|
845
859
|
readonly mmtfecdecoder_get_alignment: (a: number) => [number, number, number];
|
|
846
860
|
readonly mmtfecdecoder_get_block_profile: (a: number) => [number, number];
|
|
847
861
|
readonly mmtfecdecoder_get_interleave_depth: (a: number) => number;
|
|
@@ -850,14 +864,15 @@ export interface InitOutput {
|
|
|
850
864
|
readonly mmtfecdecoder_get_stats: (a: number) => number;
|
|
851
865
|
readonly mmtfecdecoder_get_sub_blocks: (a: number) => [number, number, number];
|
|
852
866
|
readonly mmtfecdecoder_get_symbol_size: (a: number) => [number, number, number];
|
|
853
|
-
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];
|
|
854
868
|
readonly mmtfecdecoder_pending_blocks: (a: number) => number;
|
|
855
869
|
readonly mmtfecdecoder_reset_stats: (a: number) => void;
|
|
856
870
|
readonly mmtfecdecoder_retire_unplaced: (a: number, b: number) => [number, number, number];
|
|
871
|
+
readonly mmtfecencoder_algorithm: (a: number) => [number, number];
|
|
857
872
|
readonly mmtfecencoder_block_profile: (a: number) => [number, number];
|
|
858
873
|
readonly mmtfecencoder_encode_repair: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
859
874
|
readonly mmtfecencoder_k: (a: number) => number;
|
|
860
|
-
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];
|
|
861
876
|
readonly mmtfecencoder_oti: (a: number) => [number, number];
|
|
862
877
|
readonly mmtfecencoder_symbol_size: (a: number) => number;
|
|
863
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];
|
|
@@ -932,6 +947,7 @@ export interface InitOutput {
|
|
|
932
947
|
readonly reassembledmfujs_sample_number: (a: number) => number;
|
|
933
948
|
readonly reassembledmfujs_stream_identity: (a: number) => number;
|
|
934
949
|
readonly reassembledmfujs_timestamp: (a: number) => number;
|
|
950
|
+
readonly recoveredset_fec_set_index: (a: number) => number;
|
|
935
951
|
readonly recoveredset_payload: (a: number) => [number, number];
|
|
936
952
|
readonly recoveredset_slot: (a: number) => bigint;
|
|
937
953
|
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];
|
|
@@ -948,7 +964,6 @@ export interface InitOutput {
|
|
|
948
964
|
readonly moqfecstatsjs_blocksComplete: (a: number) => number;
|
|
949
965
|
readonly moqfecstatsjs_blocksIncomplete: (a: number) => number;
|
|
950
966
|
readonly moqfecstatsjs_totalSymbolsReceived: (a: number) => number;
|
|
951
|
-
readonly recoveredset_fec_set_index: (a: number) => number;
|
|
952
967
|
readonly shredreassembler_pending_fec_sets: (a: number) => number;
|
|
953
968
|
readonly __wbg_get_reassemblerstatsjs_ambiguous_fallback_fragments: (a: number) => bigint;
|
|
954
969
|
readonly __wbg_get_reassemblerstatsjs_duplicate_fragments: (a: number) => bigint;
|
|
@@ -963,6 +978,7 @@ export interface InitOutput {
|
|
|
963
978
|
readonly __wbg_get_samplecombinerstatsjs_passthrough_samples: (a: number) => bigint;
|
|
964
979
|
readonly __wbg_get_samplecombinerstatsjs_timed_out_samples: (a: number) => bigint;
|
|
965
980
|
readonly __wbg_reassemblerstatsjs_free: (a: number, b: number) => void;
|
|
981
|
+
readonly __wbg_samplecombinerstatsjs_free: (a: number, b: number) => void;
|
|
966
982
|
readonly __wbg_set_reassemblerstatsjs_ambiguous_fallback_fragments: (a: number, b: bigint) => void;
|
|
967
983
|
readonly __wbg_set_reassemblerstatsjs_duplicate_fragments: (a: number, b: bigint) => void;
|
|
968
984
|
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
|
}
|
|
@@ -1094,14 +1115,20 @@ export class MmtFecEncoder {
|
|
|
1094
1115
|
*
|
|
1095
1116
|
* `block_profile` is the catalog `fec.blockProfile` (`"iso-ssbg1-v1"`);
|
|
1096
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).
|
|
1097
1121
|
* @param {number} k
|
|
1098
1122
|
* @param {number} symbol_size
|
|
1099
1123
|
* @param {string} block_profile
|
|
1124
|
+
* @param {string | null} [algorithm]
|
|
1100
1125
|
*/
|
|
1101
|
-
constructor(k, symbol_size, block_profile) {
|
|
1126
|
+
constructor(k, symbol_size, block_profile, algorithm) {
|
|
1102
1127
|
const ptr0 = passStringToWasm0(block_profile, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
1103
1128
|
const len0 = WASM_VECTOR_LEN;
|
|
1104
|
-
|
|
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);
|
|
1105
1132
|
if (ret[2]) {
|
|
1106
1133
|
throw takeFromExternrefTable0(ret[1]);
|
|
1107
1134
|
}
|
|
@@ -1114,7 +1141,8 @@ export class MmtFecEncoder {
|
|
|
1114
1141
|
*
|
|
1115
1142
|
* Publishers (BLO-8975 / BLO-8990 catalog-gen) emit this so the player's
|
|
1116
1143
|
* [`MmtFecDecoder::configure`] reconstructs identical block geometry. The
|
|
1117
|
-
* 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.
|
|
1118
1146
|
* @returns {Uint8Array}
|
|
1119
1147
|
*/
|
|
1120
1148
|
oti() {
|
|
@@ -1123,6 +1151,22 @@ export class MmtFecEncoder {
|
|
|
1123
1151
|
wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
|
|
1124
1152
|
return v1;
|
|
1125
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
|
+
}
|
|
1126
1170
|
}
|
|
1127
1171
|
if (Symbol.dispose) MmtFecEncoder.prototype[Symbol.dispose] = MmtFecEncoder.prototype.free;
|
|
1128
1172
|
|
|
@@ -2313,7 +2357,7 @@ export class RecoveredSet {
|
|
|
2313
2357
|
* @returns {number}
|
|
2314
2358
|
*/
|
|
2315
2359
|
get fec_set_index() {
|
|
2316
|
-
const ret = wasm.
|
|
2360
|
+
const ret = wasm.recoveredset_fec_set_index(this.__wbg_ptr);
|
|
2317
2361
|
return ret >>> 0;
|
|
2318
2362
|
}
|
|
2319
2363
|
/**
|
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;
|
|
@@ -67,6 +66,7 @@ export const mmtfecdecoder_cleanup_by_ss_start: (a: number, b: number) => [numbe
|
|
|
67
66
|
export const mmtfecdecoder_configure: (a: number, b: number, c: number) => [number, number];
|
|
68
67
|
export const mmtfecdecoder_configure_params: (a: number, b: number, c: number) => [number, number];
|
|
69
68
|
export const mmtfecdecoder_flush: (a: number) => void;
|
|
69
|
+
export const mmtfecdecoder_get_algorithm: (a: number) => [number, number];
|
|
70
70
|
export const mmtfecdecoder_get_alignment: (a: number) => [number, number, number];
|
|
71
71
|
export const mmtfecdecoder_get_block_profile: (a: number) => [number, number];
|
|
72
72
|
export const mmtfecdecoder_get_interleave_depth: (a: number) => number;
|
|
@@ -75,14 +75,15 @@ export const mmtfecdecoder_get_source_blocks: (a: number) => [number, number, nu
|
|
|
75
75
|
export const mmtfecdecoder_get_stats: (a: number) => number;
|
|
76
76
|
export const mmtfecdecoder_get_sub_blocks: (a: number) => [number, number, number];
|
|
77
77
|
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];
|
|
78
|
+
export const mmtfecdecoder_new: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
|
|
79
79
|
export const mmtfecdecoder_pending_blocks: (a: number) => number;
|
|
80
80
|
export const mmtfecdecoder_reset_stats: (a: number) => void;
|
|
81
81
|
export const mmtfecdecoder_retire_unplaced: (a: number, b: number) => [number, number, number];
|
|
82
|
+
export const mmtfecencoder_algorithm: (a: number) => [number, number];
|
|
82
83
|
export const mmtfecencoder_block_profile: (a: number) => [number, number];
|
|
83
84
|
export const mmtfecencoder_encode_repair: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
84
85
|
export const mmtfecencoder_k: (a: number) => number;
|
|
85
|
-
export const mmtfecencoder_new: (a: number, b: number, c: number, d: number) => [number, number, number];
|
|
86
|
+
export const mmtfecencoder_new: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
|
|
86
87
|
export const mmtfecencoder_oti: (a: number) => [number, number];
|
|
87
88
|
export const mmtfecencoder_symbol_size: (a: number) => number;
|
|
88
89
|
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 +158,7 @@ export const reassembledmfujs_repaired_packet_sequence_numbers: (a: number) => [
|
|
|
157
158
|
export const reassembledmfujs_sample_number: (a: number) => number;
|
|
158
159
|
export const reassembledmfujs_stream_identity: (a: number) => number;
|
|
159
160
|
export const reassembledmfujs_timestamp: (a: number) => number;
|
|
161
|
+
export const recoveredset_fec_set_index: (a: number) => number;
|
|
160
162
|
export const recoveredset_payload: (a: number) => [number, number];
|
|
161
163
|
export const recoveredset_slot: (a: number) => bigint;
|
|
162
164
|
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];
|
|
@@ -173,7 +175,6 @@ 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;
|
|
@@ -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
|
*/
|
|
@@ -275,14 +281,18 @@ declare namespace wasm_bindgen {
|
|
|
275
281
|
*
|
|
276
282
|
* `block_profile` is the catalog `fec.blockProfile` (`"iso-ssbg1-v1"`);
|
|
277
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).
|
|
278
287
|
*/
|
|
279
|
-
constructor(k: number, symbol_size: number, block_profile: string);
|
|
288
|
+
constructor(k: number, symbol_size: number, block_profile: string, algorithm?: string | null);
|
|
280
289
|
/**
|
|
281
290
|
* The configured 12-byte OTI (RFC 6330 §3.3.2 Common FEC OTI).
|
|
282
291
|
*
|
|
283
292
|
* Publishers (BLO-8975 / BLO-8990 catalog-gen) emit this so the player's
|
|
284
293
|
* [`MmtFecDecoder::configure`] reconstructs identical block geometry. The
|
|
285
|
-
* 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.
|
|
286
296
|
*/
|
|
287
297
|
oti(): Uint8Array;
|
|
288
298
|
/**
|
|
@@ -297,6 +307,10 @@ declare namespace wasm_bindgen {
|
|
|
297
307
|
* Source symbols per block (K).
|
|
298
308
|
*/
|
|
299
309
|
readonly k: number;
|
|
310
|
+
/**
|
|
311
|
+
* The `fec.algorithm` token this encoder was built for.
|
|
312
|
+
*/
|
|
313
|
+
readonly algorithm: string;
|
|
300
314
|
}
|
|
301
315
|
|
|
302
316
|
/**
|
|
@@ -802,7 +816,6 @@ declare interface InitOutput {
|
|
|
802
816
|
readonly __wbg_moqfecstatsjs_free: (a: number, b: number) => void;
|
|
803
817
|
readonly __wbg_reassembledmfujs_free: (a: number, b: number) => void;
|
|
804
818
|
readonly __wbg_recoveredset_free: (a: number, b: number) => void;
|
|
805
|
-
readonly __wbg_samplecombinerstatsjs_free: (a: number, b: number) => void;
|
|
806
819
|
readonly __wbg_set_fecstats_blocks_complete: (a: number, b: bigint) => void;
|
|
807
820
|
readonly __wbg_set_fecstats_blocks_delivery_failed: (a: number, b: bigint) => void;
|
|
808
821
|
readonly __wbg_set_fecstats_blocks_failed: (a: number, b: bigint) => void;
|
|
@@ -845,6 +858,7 @@ declare interface InitOutput {
|
|
|
845
858
|
readonly mmtfecdecoder_configure: (a: number, b: number, c: number) => [number, number];
|
|
846
859
|
readonly mmtfecdecoder_configure_params: (a: number, b: number, c: number) => [number, number];
|
|
847
860
|
readonly mmtfecdecoder_flush: (a: number) => void;
|
|
861
|
+
readonly mmtfecdecoder_get_algorithm: (a: number) => [number, number];
|
|
848
862
|
readonly mmtfecdecoder_get_alignment: (a: number) => [number, number, number];
|
|
849
863
|
readonly mmtfecdecoder_get_block_profile: (a: number) => [number, number];
|
|
850
864
|
readonly mmtfecdecoder_get_interleave_depth: (a: number) => number;
|
|
@@ -853,14 +867,15 @@ declare interface InitOutput {
|
|
|
853
867
|
readonly mmtfecdecoder_get_stats: (a: number) => number;
|
|
854
868
|
readonly mmtfecdecoder_get_sub_blocks: (a: number) => [number, number, number];
|
|
855
869
|
readonly mmtfecdecoder_get_symbol_size: (a: number) => [number, number, number];
|
|
856
|
-
readonly mmtfecdecoder_new: (a: number, b: number, c: number) => [number, number, number];
|
|
870
|
+
readonly mmtfecdecoder_new: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
|
|
857
871
|
readonly mmtfecdecoder_pending_blocks: (a: number) => number;
|
|
858
872
|
readonly mmtfecdecoder_reset_stats: (a: number) => void;
|
|
859
873
|
readonly mmtfecdecoder_retire_unplaced: (a: number, b: number) => [number, number, number];
|
|
874
|
+
readonly mmtfecencoder_algorithm: (a: number) => [number, number];
|
|
860
875
|
readonly mmtfecencoder_block_profile: (a: number) => [number, number];
|
|
861
876
|
readonly mmtfecencoder_encode_repair: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
862
877
|
readonly mmtfecencoder_k: (a: number) => number;
|
|
863
|
-
readonly mmtfecencoder_new: (a: number, b: number, c: number, d: number) => [number, number, number];
|
|
878
|
+
readonly mmtfecencoder_new: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
|
|
864
879
|
readonly mmtfecencoder_oti: (a: number) => [number, number];
|
|
865
880
|
readonly mmtfecencoder_symbol_size: (a: number) => number;
|
|
866
881
|
readonly mmtpacketizer_build_mfu: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number, number];
|
|
@@ -935,6 +950,7 @@ declare interface InitOutput {
|
|
|
935
950
|
readonly reassembledmfujs_sample_number: (a: number) => number;
|
|
936
951
|
readonly reassembledmfujs_stream_identity: (a: number) => number;
|
|
937
952
|
readonly reassembledmfujs_timestamp: (a: number) => number;
|
|
953
|
+
readonly recoveredset_fec_set_index: (a: number) => number;
|
|
938
954
|
readonly recoveredset_payload: (a: number) => [number, number];
|
|
939
955
|
readonly recoveredset_slot: (a: number) => bigint;
|
|
940
956
|
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];
|
|
@@ -951,7 +967,6 @@ declare interface InitOutput {
|
|
|
951
967
|
readonly moqfecstatsjs_blocksComplete: (a: number) => number;
|
|
952
968
|
readonly moqfecstatsjs_blocksIncomplete: (a: number) => number;
|
|
953
969
|
readonly moqfecstatsjs_totalSymbolsReceived: (a: number) => number;
|
|
954
|
-
readonly recoveredset_fec_set_index: (a: number) => number;
|
|
955
970
|
readonly shredreassembler_pending_fec_sets: (a: number) => number;
|
|
956
971
|
readonly __wbg_get_reassemblerstatsjs_ambiguous_fallback_fragments: (a: number) => bigint;
|
|
957
972
|
readonly __wbg_get_reassemblerstatsjs_duplicate_fragments: (a: number) => bigint;
|
|
@@ -966,6 +981,7 @@ declare interface InitOutput {
|
|
|
966
981
|
readonly __wbg_get_samplecombinerstatsjs_passthrough_samples: (a: number) => bigint;
|
|
967
982
|
readonly __wbg_get_samplecombinerstatsjs_timed_out_samples: (a: number) => bigint;
|
|
968
983
|
readonly __wbg_reassemblerstatsjs_free: (a: number, b: number) => void;
|
|
984
|
+
readonly __wbg_samplecombinerstatsjs_free: (a: number, b: number) => void;
|
|
969
985
|
readonly __wbg_set_reassemblerstatsjs_ambiguous_fallback_fragments: (a: number, b: bigint) => void;
|
|
970
986
|
readonly __wbg_set_reassemblerstatsjs_duplicate_fragments: (a: number, b: bigint) => void;
|
|
971
987
|
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
|
}
|
|
@@ -1097,14 +1118,20 @@ let wasm_bindgen;
|
|
|
1097
1118
|
*
|
|
1098
1119
|
* `block_profile` is the catalog `fec.blockProfile` (`"iso-ssbg1-v1"`);
|
|
1099
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).
|
|
1100
1124
|
* @param {number} k
|
|
1101
1125
|
* @param {number} symbol_size
|
|
1102
1126
|
* @param {string} block_profile
|
|
1127
|
+
* @param {string | null} [algorithm]
|
|
1103
1128
|
*/
|
|
1104
|
-
constructor(k, symbol_size, block_profile) {
|
|
1129
|
+
constructor(k, symbol_size, block_profile, algorithm) {
|
|
1105
1130
|
const ptr0 = passStringToWasm0(block_profile, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
1106
1131
|
const len0 = WASM_VECTOR_LEN;
|
|
1107
|
-
|
|
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);
|
|
1108
1135
|
if (ret[2]) {
|
|
1109
1136
|
throw takeFromExternrefTable0(ret[1]);
|
|
1110
1137
|
}
|
|
@@ -1117,7 +1144,8 @@ let wasm_bindgen;
|
|
|
1117
1144
|
*
|
|
1118
1145
|
* Publishers (BLO-8975 / BLO-8990 catalog-gen) emit this so the player's
|
|
1119
1146
|
* [`MmtFecDecoder::configure`] reconstructs identical block geometry. The
|
|
1120
|
-
* 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.
|
|
1121
1149
|
* @returns {Uint8Array}
|
|
1122
1150
|
*/
|
|
1123
1151
|
oti() {
|
|
@@ -1126,6 +1154,22 @@ let wasm_bindgen;
|
|
|
1126
1154
|
wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
|
|
1127
1155
|
return v1;
|
|
1128
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
|
+
}
|
|
1129
1173
|
}
|
|
1130
1174
|
if (Symbol.dispose) MmtFecEncoder.prototype[Symbol.dispose] = MmtFecEncoder.prototype.free;
|
|
1131
1175
|
__exports.MmtFecEncoder = MmtFecEncoder;
|
|
@@ -2328,7 +2372,7 @@ let wasm_bindgen;
|
|
|
2328
2372
|
* @returns {number}
|
|
2329
2373
|
*/
|
|
2330
2374
|
get fec_set_index() {
|
|
2331
|
-
const ret = wasm.
|
|
2375
|
+
const ret = wasm.recoveredset_fec_set_index(this.__wbg_ptr);
|
|
2332
2376
|
return ret >>> 0;
|
|
2333
2377
|
}
|
|
2334
2378
|
/**
|
|
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;
|
|
@@ -67,6 +66,7 @@ export const mmtfecdecoder_cleanup_by_ss_start: (a: number, b: number) => [numbe
|
|
|
67
66
|
export const mmtfecdecoder_configure: (a: number, b: number, c: number) => [number, number];
|
|
68
67
|
export const mmtfecdecoder_configure_params: (a: number, b: number, c: number) => [number, number];
|
|
69
68
|
export const mmtfecdecoder_flush: (a: number) => void;
|
|
69
|
+
export const mmtfecdecoder_get_algorithm: (a: number) => [number, number];
|
|
70
70
|
export const mmtfecdecoder_get_alignment: (a: number) => [number, number, number];
|
|
71
71
|
export const mmtfecdecoder_get_block_profile: (a: number) => [number, number];
|
|
72
72
|
export const mmtfecdecoder_get_interleave_depth: (a: number) => number;
|
|
@@ -75,14 +75,15 @@ export const mmtfecdecoder_get_source_blocks: (a: number) => [number, number, nu
|
|
|
75
75
|
export const mmtfecdecoder_get_stats: (a: number) => number;
|
|
76
76
|
export const mmtfecdecoder_get_sub_blocks: (a: number) => [number, number, number];
|
|
77
77
|
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];
|
|
78
|
+
export const mmtfecdecoder_new: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
|
|
79
79
|
export const mmtfecdecoder_pending_blocks: (a: number) => number;
|
|
80
80
|
export const mmtfecdecoder_reset_stats: (a: number) => void;
|
|
81
81
|
export const mmtfecdecoder_retire_unplaced: (a: number, b: number) => [number, number, number];
|
|
82
|
+
export const mmtfecencoder_algorithm: (a: number) => [number, number];
|
|
82
83
|
export const mmtfecencoder_block_profile: (a: number) => [number, number];
|
|
83
84
|
export const mmtfecencoder_encode_repair: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
84
85
|
export const mmtfecencoder_k: (a: number) => number;
|
|
85
|
-
export const mmtfecencoder_new: (a: number, b: number, c: number, d: number) => [number, number, number];
|
|
86
|
+
export const mmtfecencoder_new: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
|
|
86
87
|
export const mmtfecencoder_oti: (a: number) => [number, number];
|
|
87
88
|
export const mmtfecencoder_symbol_size: (a: number) => number;
|
|
88
89
|
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 +158,7 @@ export const reassembledmfujs_repaired_packet_sequence_numbers: (a: number) => [
|
|
|
157
158
|
export const reassembledmfujs_sample_number: (a: number) => number;
|
|
158
159
|
export const reassembledmfujs_stream_identity: (a: number) => number;
|
|
159
160
|
export const reassembledmfujs_timestamp: (a: number) => number;
|
|
161
|
+
export const recoveredset_fec_set_index: (a: number) => number;
|
|
160
162
|
export const recoveredset_payload: (a: number) => [number, number];
|
|
161
163
|
export const recoveredset_slot: (a: number) => bigint;
|
|
162
164
|
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];
|
|
@@ -173,7 +175,6 @@ 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;
|