@blockcast/mmt-wasm 0.3.0 → 0.4.0-main.1d3ea1cc8ff2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -529,6 +529,25 @@ let wasm_bindgen;
529
529
  set blocks_delivery_failed(arg0) {
530
530
  wasm.__wbg_set_fecstats_blocks_delivery_failed(this.__wbg_ptr, arg0);
531
531
  }
532
+ /**
533
+ * `iso-ssbg1-v1` held sources evicted, oldest arrival first, because the
534
+ * unplaced pool was at its `(interleave_depth + 1) * K` cap: no sweep
535
+ * (`cleanup_by_ss_start` / `retire_unplaced`) retired them first.
536
+ * @returns {bigint}
537
+ */
538
+ get unplaced_evicted() {
539
+ const ret = wasm.__wbg_get_fecstats_unplaced_evicted(this.__wbg_ptr);
540
+ return BigInt.asUintN(64, ret);
541
+ }
542
+ /**
543
+ * `iso-ssbg1-v1` held sources evicted, oldest arrival first, because the
544
+ * unplaced pool was at its `(interleave_depth + 1) * K` cap: no sweep
545
+ * (`cleanup_by_ss_start` / `retire_unplaced`) retired them first.
546
+ * @param {bigint} arg0
547
+ */
548
+ set unplaced_evicted(arg0) {
549
+ wasm.__wbg_set_fecstats_unplaced_evicted(this.__wbg_ptr, arg0);
550
+ }
532
551
  /**
533
552
  * Recovery rate as percentage (0-100)
534
553
  * Counts all blocks: complete + recovered + FEC-failed + delivery-failed
@@ -672,27 +691,15 @@ let wasm_bindgen;
672
691
  /**
673
692
  * Add a repair symbol per ISO 23008-1 §C.5.3.
674
693
  *
675
- * Repair carries (SS_Start, SSB_length, RS_ID).
676
- * SS_Start = SS_ID of first source in block = SBN * K.
677
- * SSB_length = the authored source-symbol count in this block (1..=K).
678
- * SBN = SS_Start / configured K.
679
- * Repair ESI = K + RS_ID.
680
- *
681
- * The decoder's configured K is the fixed RaptorQ geometry. A short
682
- * authored block (`SSB_length < K`) is the producer's K-symbol RaptorQ
683
- * block with ESIs `SSB_length..K` zero-filled and never transmitted
684
- * (fec-raptorq `InterleavedEncoder::force_complete`). The block records
685
- * `SSB_length`, completes once that many source symbols arrived, and
686
- * recovers from `SSB_length` received symbols by supplying the known
687
- * padding itself. A conflicting `SSB_length` for one block is rejected
688
- * without changing that block.
689
- *
690
- * Under `iso-ssbg1-v1` the block is `[SS_Start, SS_Start + SSB_length)`
691
- * with `1 <= SSB_length <= K` (K is only the maximum), its RaptorQ geometry
692
- * is K' = SSB_length with no padding, and repair ESI = SSB_length + RS_ID
693
- * (C.5.3). The first repair defines the block and claims every held source
694
- * in range. A conflicting SSB_length, or a range overlapping a different
695
- * known block, is refused without changing any block. Output is the K'*T
694
+ * Repair carries (SS_Start, SSB_length, RS_ID). The block is
695
+ * `[SS_Start, SS_Start + SSB_length)` with `1 <= SSB_length <= K` (the
696
+ * configured K is only the maximum), its RaptorQ geometry is
697
+ * K' = SSB_length with no padding, and repair ESI = SSB_length + RS_ID.
698
+ * The first repair defines the block and claims every held source in
699
+ * range. A conflicting SSB_length, a range overlapping a different known
700
+ * block, or a start more than `interleave_depth` blocks behind the last
701
+ * `cleanup_by_ss_start`'s `current` (`iso_blocks_behind_lower_bound`), is
702
+ * refused without changing any block. Output is the K'*T
696
703
  * concatenated ssbg_mode1 symbols: split by T and trim by the length field.
697
704
  * @param {number} ss_start
698
705
  * @param {number} ssb_length
@@ -721,13 +728,12 @@ let wasm_bindgen;
721
728
  * SS_ID is a flat 32-bit counter. An unconfigured decoder rejects the
722
729
  * packet.
723
730
  *
724
- * - `k-padded-v1`: derives SBN = floor(SS_ID / K), ESI = SS_ID % K and
725
- * zero-pads `data` to T.
726
- * - `iso-ssbg1-v1`: builds the C.3.3 ssbg_mode1 symbol
727
- * `u16be(len) || data || zero padding` (refusing `len + 2 > T`) and
728
- * places it at ESI = serial distance from the start of the known block
729
- * whose `[SS_Start, SS_Start + SSB_length)` contains SS_ID. A source
730
- * whose block no repair has defined yet is held by SS_ID until one does.
731
+ * Builds the C.3.3 ssbg_mode1 symbol `u16be(len) || data || zero padding`
732
+ * (refusing `len + 2 > T`) and places it at ESI = serial distance from the
733
+ * start of the known block whose `[SS_Start, SS_Start + SSB_length)`
734
+ * contains SS_ID. A source whose block no repair has defined yet is held
735
+ * by SS_ID until one does; at most `(interleave_depth + 1) * K` are held, and
736
+ * the oldest arrival is evicted first (`FecStats::unplaced_evicted`).
731
737
  *
732
738
  * # Arguments
733
739
  * * `ss_id` - Source symbol ID (32-bit monotonic counter)
@@ -758,6 +764,22 @@ let wasm_bindgen;
758
764
  reset_stats() {
759
765
  wasm.mmtfecdecoder_reset_stats(this.__wbg_ptr);
760
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
+ }
761
783
  /**
762
784
  * Get alignment (Al) parameter from OTI
763
785
  * @returns {number}
@@ -769,28 +791,6 @@ let wasm_bindgen;
769
791
  }
770
792
  return ret[0];
771
793
  }
772
- /**
773
- * `k-padded-v1` only: cleanup blocks more than `interleave_depth` blocks
774
- * behind `current_sbn`. Refused under `iso-ssbg1-v1`, which has no SBN
775
- * (use `cleanup_by_ss_start`).
776
- *
777
- * Blocks are ordered by RFC 1982 serial comparison of their first SS_ID
778
- * (`sbn * K mod 2^32`, ISO/IEC 23008-1 C.5.2; BLO-35597 iso:5). For a
779
- * stream that has not wrapped SS_ID that is exactly the old
780
- * `sbn < current_sbn - interleave_depth`; after the wrap it still retires
781
- * the pre-wrap blocks instead of keeping them forever.
782
- * @param {number} current_sbn
783
- * @returns {Uint32Array}
784
- */
785
- cleanup_by_sbn(current_sbn) {
786
- const ret = wasm.mmtfecdecoder_cleanup_by_sbn(this.__wbg_ptr, current_sbn);
787
- if (ret[3]) {
788
- throw takeFromExternrefTable0(ret[2]);
789
- }
790
- var v1 = getArrayU32FromWasm0(ret[0], ret[1]).slice();
791
- wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
792
- return v1;
793
- }
794
794
  /**
795
795
  * Get sub-blocks (N) parameter from OTI
796
796
  * @returns {number}
@@ -822,11 +822,11 @@ let wasm_bindgen;
822
822
  return ret[0];
823
823
  }
824
824
  /**
825
- * `iso-ssbg1-v1` only: retire the held source symbols that no repair can
826
- * place any more, by the same rule as `cleanup_by_ss_start`, without
827
- * retiring any block. For a caller that retires blocks itself, by their
828
- * deadlines (`cleanup_blocks_detailed`), and needs only this half. Returns
829
- * how many it retired.
825
+ * Retire the held source symbols that no repair can place any more, by
826
+ * the same rule as `cleanup_by_ss_start`, without retiring any block. For
827
+ * a caller that retires blocks itself, by their deadlines
828
+ * (`cleanup_blocks_detailed`), and needs only this half. Returns how many
829
+ * it retired.
830
830
  * @param {number} current
831
831
  * @returns {number}
832
832
  */
@@ -880,11 +880,11 @@ let wasm_bindgen;
880
880
  return ret[0];
881
881
  }
882
882
  /**
883
- * `iso-ssbg1-v1` only: retire every block, and every held source symbol,
884
- * lying more than `interleave_depth` blocks behind SS_ID `current`, the
885
- * newest SS_ID the caller has seen (no block start or held source follows
886
- * it). A block start or held source that `current` has moved at least
887
- * half the SS_ID space past no longer precedes it and is retired too
883
+ * Retire every block, and every held source symbol, lying more than
884
+ * `interleave_depth` blocks behind SS_ID `current`, the newest SS_ID the
885
+ * caller has seen (no block start or held source follows it). A block
886
+ * start or held source that `current` has moved at least half the SS_ID
887
+ * space past no longer precedes it and is retired too
888
888
  * (`iso_past_horizon`).
889
889
  *
890
890
  * Blocks have no SBN under ssbg_mode1, so distance is measured on the
@@ -914,16 +914,16 @@ let wasm_bindgen;
914
914
  return ret >>> 0;
915
915
  }
916
916
  /**
917
- * Finalize only the source blocks whose host-owned deadlines fired.
918
- * Keys are SBNs under `k-padded-v1` and SS_Starts under `iso-ssbg1-v1`.
917
+ * Finalize only the source blocks whose host-owned deadlines fired,
918
+ * named by their SS_Starts.
919
919
  *
920
920
  * The JavaScript FEC manager owns per-block repair grace. A timeout for one
921
921
  * block must therefore not run the decoder's global age scan and evict a
922
922
  * peer block that is still waiting for fetched repair.
923
- * @param {Uint32Array} sbns
923
+ * @param {Uint32Array} ss_starts
924
924
  */
925
- cleanup_blocks_detailed(sbns) {
926
- const ptr0 = passArray32ToWasm0(sbns, wasm.__wbindgen_malloc);
925
+ cleanup_blocks_detailed(ss_starts) {
926
+ const ptr0 = passArray32ToWasm0(ss_starts, wasm.__wbindgen_malloc);
927
927
  const len0 = WASM_VECTOR_LEN;
928
928
  wasm.mmtfecdecoder_cleanup_blocks_detailed(this.__wbg_ptr, ptr0, len0);
929
929
  }
@@ -932,15 +932,20 @@ let wasm_bindgen;
932
932
  *
933
933
  * # Arguments
934
934
  * * `interleave_depth` - Explicit positive number of interleaved blocks.
935
- * * `block_profile` - Catalog `fec.blockProfile`: `"k-padded-v1"` or
936
- * `"iso-ssbg1-v1"`. Required; any other value is refused.
935
+ * * `block_profile` - Catalog `fec.blockProfile`: `"iso-ssbg1-v1"`.
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.
937
939
  * @param {number} interleave_depth
938
940
  * @param {string} block_profile
941
+ * @param {string | null} [algorithm]
939
942
  */
940
- constructor(interleave_depth, block_profile) {
943
+ constructor(interleave_depth, block_profile, algorithm) {
941
944
  const ptr0 = passStringToWasm0(block_profile, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
942
945
  const len0 = WASM_VECTOR_LEN;
943
- const ret = wasm.mmtfecdecoder_new(interleave_depth, ptr0, len0);
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);
944
949
  if (ret[2]) {
945
950
  throw takeFromExternrefTable0(ret[1]);
946
951
  }
@@ -969,7 +974,8 @@ let wasm_bindgen;
969
974
  * Configure FEC from 12-byte OTI
970
975
  *
971
976
  * # Arguments
972
- * * `oti` - 12-byte Object Transmission Information from S-TSID fecOTI
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)
973
979
  * @param {Uint8Array} oti
974
980
  */
975
981
  configure(oti) {
@@ -1014,21 +1020,16 @@ let wasm_bindgen;
1014
1020
  * [SS_Start:4][RSB_length:3][RS_ID:3][SSB_length:3][repair symbol: T]
1015
1021
  * ```
1016
1022
  *
1017
- * with, for a block with Source Block Number `sbn` and `K` source symbols:
1018
- * - `SS_Start = sbn * K` (32-bit) — first SS_ID of the block. The decoder
1019
- * derives `SBN = SS_Start / K`, so this MUST be `sbn * K`.
1023
+ * with, for an `iso-ssbg1-v1` block of K' ssbg_mode1 source symbols
1024
+ * (ISO/IEC 23008-1 C.3.3, C.5.2, C.5.3):
1025
+ * - `SS_Start = ` the block's first SS_ID (SS_IDs are consecutive, 32-bit)
1020
1026
  * - `RSB_length = P` (repair count for this block)
1021
- * - `RS_ID = i` (0-based repair index) ⇒ RaptorQ ESI = `K + i`
1022
- * - `SSB_length <= K` (authored source symbols in this block)
1023
- *
1024
- * OTI (Z=1, N=1, Al=8) is delivered out-of-band via the catalog / AL-FEC
1025
- * signaling message — see [`MmtFecEncoder::oti`] — never per-packet.
1027
+ * - `RS_ID = i` (0-based repair index) ⇒ RaptorQ ESI = `K' + i`
1028
+ * - `SSB_length = K'` (`1..=K`; the configured K is only the maximum)
1026
1029
  *
1027
- * That framing is the `k-padded-v1` profile. Under `iso-ssbg1-v1` the same
1028
- * fields carry ISO/IEC 23008-1 C.5.3 semantics: `SS_Start` is the first SS_ID
1029
- * of a block of consecutive SS_IDs, `SSB_length = K'` (`1..=K`), the RaptorQ
1030
- * block is K' symbols with no padding (F = K'*T), and RS_ID `i` is ESI
1031
- * `K' + i`.
1030
+ * The RaptorQ block is K' symbols with no padding (F = K'*T). The configured
1031
+ * OTI (F = K*T, Z=1, N=1, Al=8) is delivered out-of-band via the catalog /
1032
+ * AL-FEC signaling message — see [`MmtFecEncoder::oti`] — never per-packet.
1032
1033
  */
1033
1034
  class MmtFecEncoder {
1034
1035
  __destroy_into_raw() {
@@ -1073,29 +1074,24 @@ let wasm_bindgen;
1073
1074
  * `[SS_Start:4][RSB_length:3][RS_ID:3][SSB_length:3][symbol: T]`.
1074
1075
  * Callers split on that stride; `entry i` is at `i * (13 + T)`.
1075
1076
  *
1076
- * `k-padded-v1`: `block` is the Source Block Number and `source_block`
1077
- * MUST be exactly `K * symbol_size` bytes — the caller pads the final
1078
- * (short) block with zeros, mirroring `InterleavedEncoder` and the FFmpeg
1079
- * path. `SS_Start = block * K` (wrapping), `SSB_length = K`.
1080
- *
1081
- * `iso-ssbg1-v1`: `block` is the SS_Start (the block's first SS_ID) and
1082
- * `source_block` is the block's K' ssbg_mode1 symbols (`1 <= K' <= K`,
1083
- * `len % T == 0`, each a well-formed C.3.3 symbol). RaptorQ runs over K'
1084
- * symbols (F = K'*T) and `SSB_length = K'`.
1077
+ * `ss_start` is the block's first SS_ID and `source_block` is the
1078
+ * block's K' ssbg_mode1 symbols (`1 <= K' <= K`, `len % T == 0`, each a
1079
+ * well-formed C.3.3 symbol). RaptorQ runs over K' symbols (F = K'*T) and
1080
+ * `SSB_length = K'`.
1085
1081
  *
1086
1082
  * # Arguments
1087
- * * `block` - SBN (`k-padded-v1`) or SS_Start (`iso-ssbg1-v1`).
1083
+ * * `ss_start` - SS_Start: the block's first SS_ID.
1088
1084
  * * `source_block` - The block's source symbols, as described above.
1089
1085
  * * `repair_count` - Number of repair symbols (P) to generate.
1090
- * @param {number} block
1086
+ * @param {number} ss_start
1091
1087
  * @param {Uint8Array} source_block
1092
1088
  * @param {number} repair_count
1093
1089
  * @returns {Uint8Array}
1094
1090
  */
1095
- encode_repair(block, source_block, repair_count) {
1091
+ encode_repair(ss_start, source_block, repair_count) {
1096
1092
  const ptr0 = passArray8ToWasm0(source_block, wasm.__wbindgen_malloc);
1097
1093
  const len0 = WASM_VECTOR_LEN;
1098
- const ret = wasm.mmtfecencoder_encode_repair(this.__wbg_ptr, block, ptr0, len0, repair_count);
1094
+ const ret = wasm.mmtfecencoder_encode_repair(this.__wbg_ptr, ss_start, ptr0, len0, repair_count);
1099
1095
  if (ret[3]) {
1100
1096
  throw takeFromExternrefTable0(ret[2]);
1101
1097
  }
@@ -1115,21 +1111,27 @@ let wasm_bindgen;
1115
1111
  * Create an encoder for a fixed `(K, symbol_size)` block geometry.
1116
1112
  *
1117
1113
  * Builds the OTI as `ObjectTransmissionInformation::new(K*T, T, 1, 1, 8)`
1118
- * (single source block, single sub-block, byte alignment) — matching the
1119
- * decoder's recovery model in [`FecBlock::try_decode`] — and pre-computes
1120
- * the shared `SourceBlockEncodingPlan` so per-block encoding is cheap.
1114
+ * (single source block, single sub-block, byte alignment) — the geometry
1115
+ * [`MmtFecDecoder::configure`] reads back. K is the maximum SSB_length;
1116
+ * each block is encoded over its own K' symbols (see
1117
+ * [`MmtFecEncoder::encode_repair`]).
1118
+ *
1119
+ * `block_profile` is the catalog `fec.blockProfile` (`"iso-ssbg1-v1"`);
1120
+ * any other value is refused.
1121
1121
  *
1122
- * `block_profile` is the catalog `fec.blockProfile` (`"k-padded-v1"` or
1123
- * `"iso-ssbg1-v1"`); any other value is refused. Under `iso-ssbg1-v1`, K
1124
- * is the maximum SSB_length.
1122
+ * `algorithm` is the catalog `fec.algorithm`: `"raptorq"` (the default
1123
+ * when omitted) or `"reed-solomon"` (K + P <= 255 per block).
1125
1124
  * @param {number} k
1126
1125
  * @param {number} symbol_size
1127
1126
  * @param {string} block_profile
1127
+ * @param {string | null} [algorithm]
1128
1128
  */
1129
- constructor(k, symbol_size, block_profile) {
1129
+ constructor(k, symbol_size, block_profile, algorithm) {
1130
1130
  const ptr0 = passStringToWasm0(block_profile, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
1131
1131
  const len0 = WASM_VECTOR_LEN;
1132
- const ret = wasm.mmtfecencoder_new(k, symbol_size, ptr0, len0);
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);
1133
1135
  if (ret[2]) {
1134
1136
  throw takeFromExternrefTable0(ret[1]);
1135
1137
  }
@@ -1142,7 +1144,8 @@ let wasm_bindgen;
1142
1144
  *
1143
1145
  * Publishers (BLO-8975 / BLO-8990 catalog-gen) emit this so the player's
1144
1146
  * [`MmtFecDecoder::configure`] reconstructs identical block geometry. The
1145
- * 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.
1146
1149
  * @returns {Uint8Array}
1147
1150
  */
1148
1151
  oti() {
@@ -1151,6 +1154,22 @@ let wasm_bindgen;
1151
1154
  wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
1152
1155
  return v1;
1153
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
+ }
1154
1173
  }
1155
1174
  if (Symbol.dispose) MmtFecEncoder.prototype[Symbol.dispose] = MmtFecEncoder.prototype.free;
1156
1175
  __exports.MmtFecEncoder = MmtFecEncoder;
@@ -2300,14 +2319,14 @@ let wasm_bindgen;
2300
2319
  * @returns {bigint}
2301
2320
  */
2302
2321
  get ambiguous_fallback_fragments() {
2303
- const ret = wasm.__wbg_get_reassemblerstatsjs_ambiguous_fallback_fragments(this.__wbg_ptr);
2322
+ const ret = wasm.__wbg_get_fecstats_unplaced_evicted(this.__wbg_ptr);
2304
2323
  return BigInt.asUintN(64, ret);
2305
2324
  }
2306
2325
  /**
2307
2326
  * @param {bigint} arg0
2308
2327
  */
2309
2328
  set ambiguous_fallback_fragments(arg0) {
2310
- wasm.__wbg_set_reassemblerstatsjs_ambiguous_fallback_fragments(this.__wbg_ptr, arg0);
2329
+ wasm.__wbg_set_fecstats_unplaced_evicted(this.__wbg_ptr, arg0);
2311
2330
  }
2312
2331
  }
2313
2332
  if (Symbol.dispose) ReassemblerStatsJs.prototype[Symbol.dispose] = ReassemblerStatsJs.prototype.free;
Binary file
@@ -10,7 +10,7 @@ export const __wbg_get_fecstats_blocks_recovered: (a: number) => bigint;
10
10
  export const __wbg_get_fecstats_bytes_recovered: (a: number) => bigint;
11
11
  export const __wbg_get_fecstats_repair_packets: (a: number) => bigint;
12
12
  export const __wbg_get_fecstats_source_packets: (a: number) => bigint;
13
- export const __wbg_get_reassemblerstatsjs_ambiguous_fallback_fragments: (a: number) => bigint;
13
+ export const __wbg_get_fecstats_unplaced_evicted: (a: number) => bigint;
14
14
  export const __wbg_mfufragmentjs_free: (a: number, b: number) => void;
15
15
  export const __wbg_mmtfecdecoder_free: (a: number, b: number) => void;
16
16
  export const __wbg_mmtfecencoder_free: (a: number, b: number) => void;
@@ -23,9 +23,7 @@ export const __wbg_moqfecdecoder_free: (a: number, b: number) => void;
23
23
  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
- export const __wbg_reassemblerstatsjs_free: (a: number, b: number) => void;
27
26
  export const __wbg_recoveredset_free: (a: number, b: number) => void;
28
- export const __wbg_samplecombinerstatsjs_free: (a: number, b: number) => void;
29
27
  export const __wbg_set_fecstats_blocks_complete: (a: number, b: bigint) => void;
30
28
  export const __wbg_set_fecstats_blocks_delivery_failed: (a: number, b: bigint) => void;
31
29
  export const __wbg_set_fecstats_blocks_failed: (a: number, b: bigint) => void;
@@ -33,7 +31,7 @@ export const __wbg_set_fecstats_blocks_recovered: (a: number, b: bigint) => void
33
31
  export const __wbg_set_fecstats_bytes_recovered: (a: number, b: bigint) => void;
34
32
  export const __wbg_set_fecstats_repair_packets: (a: number, b: bigint) => void;
35
33
  export const __wbg_set_fecstats_source_packets: (a: number, b: bigint) => void;
36
- export const __wbg_set_reassemblerstatsjs_ambiguous_fallback_fragments: (a: number, b: bigint) => void;
34
+ export const __wbg_set_fecstats_unplaced_evicted: (a: number, b: bigint) => void;
37
35
  export const __wbg_shredfecbuffer_free: (a: number, b: number) => void;
38
36
  export const __wbg_shredreassembler_free: (a: number, b: number) => void;
39
37
  export const annexb_access_unit_is_keyframe: (a: number, b: number, c: number, d: number) => [number, number, number];
@@ -64,11 +62,11 @@ export const mfufragmentjs_with_sample_identity: (a: number, b: number, c: numbe
64
62
  export const mmtfecdecoder_add_repair: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number];
65
63
  export const mmtfecdecoder_add_source: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
66
64
  export const mmtfecdecoder_cleanup_blocks_detailed: (a: number, b: number, c: number) => void;
67
- export const mmtfecdecoder_cleanup_by_sbn: (a: number, b: number) => [number, number, number, number];
68
65
  export const mmtfecdecoder_cleanup_by_ss_start: (a: number, b: number) => [number, number, number, number];
69
66
  export const mmtfecdecoder_configure: (a: number, b: number, c: number) => [number, number];
70
67
  export const mmtfecdecoder_configure_params: (a: number, b: number, c: number) => [number, number];
71
68
  export const mmtfecdecoder_flush: (a: number) => void;
69
+ export const mmtfecdecoder_get_algorithm: (a: number) => [number, number];
72
70
  export const mmtfecdecoder_get_alignment: (a: number) => [number, number, number];
73
71
  export const mmtfecdecoder_get_block_profile: (a: number) => [number, number];
74
72
  export const mmtfecdecoder_get_interleave_depth: (a: number) => number;
@@ -77,14 +75,15 @@ export const mmtfecdecoder_get_source_blocks: (a: number) => [number, number, nu
77
75
  export const mmtfecdecoder_get_stats: (a: number) => number;
78
76
  export const mmtfecdecoder_get_sub_blocks: (a: number) => [number, number, number];
79
77
  export const mmtfecdecoder_get_symbol_size: (a: number) => [number, number, number];
80
- 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];
81
79
  export const mmtfecdecoder_pending_blocks: (a: number) => number;
82
80
  export const mmtfecdecoder_reset_stats: (a: number) => void;
83
81
  export const mmtfecdecoder_retire_unplaced: (a: number, b: number) => [number, number, number];
82
+ export const mmtfecencoder_algorithm: (a: number) => [number, number];
84
83
  export const mmtfecencoder_block_profile: (a: number) => [number, number];
85
84
  export const mmtfecencoder_encode_repair: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
86
85
  export const mmtfecencoder_k: (a: number) => number;
87
- 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];
88
87
  export const mmtfecencoder_oti: (a: number) => [number, number];
89
88
  export const mmtfecencoder_symbol_size: (a: number) => number;
90
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];
@@ -177,6 +176,7 @@ export const moqfecstatsjs_blocksComplete: (a: number) => number;
177
176
  export const moqfecstatsjs_blocksIncomplete: (a: number) => number;
178
177
  export const moqfecstatsjs_totalSymbolsReceived: (a: number) => number;
179
178
  export const shredreassembler_pending_fec_sets: (a: number) => number;
179
+ export const __wbg_get_reassemblerstatsjs_ambiguous_fallback_fragments: (a: number) => bigint;
180
180
  export const __wbg_get_reassemblerstatsjs_duplicate_fragments: (a: number) => bigint;
181
181
  export const __wbg_get_reassemblerstatsjs_evicted_data_units: (a: number) => bigint;
182
182
  export const __wbg_get_reassemblerstatsjs_evicted_memory_limit: (a: number) => bigint;
@@ -188,6 +188,9 @@ export const __wbg_get_samplecombinerstatsjs_combined_samples: (a: number) => bi
188
188
  export const __wbg_get_samplecombinerstatsjs_evicted_samples: (a: number) => bigint;
189
189
  export const __wbg_get_samplecombinerstatsjs_passthrough_samples: (a: number) => bigint;
190
190
  export const __wbg_get_samplecombinerstatsjs_timed_out_samples: (a: number) => bigint;
191
+ export const __wbg_reassemblerstatsjs_free: (a: number, b: number) => void;
192
+ export const __wbg_samplecombinerstatsjs_free: (a: number, b: number) => void;
193
+ export const __wbg_set_reassemblerstatsjs_ambiguous_fallback_fragments: (a: number, b: bigint) => void;
191
194
  export const __wbg_set_reassemblerstatsjs_duplicate_fragments: (a: number, b: bigint) => void;
192
195
  export const __wbg_set_reassemblerstatsjs_evicted_data_units: (a: number, b: bigint) => void;
193
196
  export const __wbg_set_reassemblerstatsjs_evicted_memory_limit: (a: number, b: bigint) => void;