@blockcast/mmt-wasm 0.3.0 → 0.4.0-main.248efb07e294
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +38 -38
- package/pkg/mmt_wasm.d.ts +77 -83
- package/pkg/mmt_wasm.js +126 -107
- package/pkg/mmt_wasm_bg.wasm +0 -0
- package/pkg/mmt_wasm_bg.wasm.d.ts +10 -7
- package/pkg-no-modules/mmt_wasm.d.ts +77 -83
- package/pkg-no-modules/mmt_wasm.js +126 -107
- package/pkg-no-modules/mmt_wasm_bg.wasm +0 -0
- package/pkg-no-modules/mmt_wasm_bg.wasm.d.ts +10 -7
package/pkg/mmt_wasm.js
CHANGED
|
@@ -529,6 +529,25 @@ export class FecStats {
|
|
|
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
|
|
@@ -670,27 +689,15 @@ export class MmtFecDecoder {
|
|
|
670
689
|
/**
|
|
671
690
|
* Add a repair symbol per ISO 23008-1 §C.5.3.
|
|
672
691
|
*
|
|
673
|
-
* Repair carries (SS_Start, SSB_length, RS_ID).
|
|
674
|
-
* SS_Start
|
|
675
|
-
*
|
|
676
|
-
*
|
|
677
|
-
*
|
|
678
|
-
*
|
|
679
|
-
*
|
|
680
|
-
*
|
|
681
|
-
*
|
|
682
|
-
* (fec-raptorq `InterleavedEncoder::force_complete`). The block records
|
|
683
|
-
* `SSB_length`, completes once that many source symbols arrived, and
|
|
684
|
-
* recovers from `SSB_length` received symbols by supplying the known
|
|
685
|
-
* padding itself. A conflicting `SSB_length` for one block is rejected
|
|
686
|
-
* without changing that block.
|
|
687
|
-
*
|
|
688
|
-
* Under `iso-ssbg1-v1` the block is `[SS_Start, SS_Start + SSB_length)`
|
|
689
|
-
* with `1 <= SSB_length <= K` (K is only the maximum), its RaptorQ geometry
|
|
690
|
-
* is K' = SSB_length with no padding, and repair ESI = SSB_length + RS_ID
|
|
691
|
-
* (C.5.3). The first repair defines the block and claims every held source
|
|
692
|
-
* in range. A conflicting SSB_length, or a range overlapping a different
|
|
693
|
-
* known block, is refused without changing any block. Output is the K'*T
|
|
692
|
+
* Repair carries (SS_Start, SSB_length, RS_ID). The block is
|
|
693
|
+
* `[SS_Start, SS_Start + SSB_length)` with `1 <= SSB_length <= K` (the
|
|
694
|
+
* configured K is only the maximum), its RaptorQ geometry is
|
|
695
|
+
* K' = SSB_length with no padding, and repair ESI = SSB_length + RS_ID.
|
|
696
|
+
* The first repair defines the block and claims every held source in
|
|
697
|
+
* range. A conflicting SSB_length, a range overlapping a different known
|
|
698
|
+
* block, or a start more than `interleave_depth` blocks behind the last
|
|
699
|
+
* `cleanup_by_ss_start`'s `current` (`iso_blocks_behind_lower_bound`), is
|
|
700
|
+
* refused without changing any block. Output is the K'*T
|
|
694
701
|
* concatenated ssbg_mode1 symbols: split by T and trim by the length field.
|
|
695
702
|
* @param {number} ss_start
|
|
696
703
|
* @param {number} ssb_length
|
|
@@ -719,13 +726,12 @@ export class MmtFecDecoder {
|
|
|
719
726
|
* SS_ID is a flat 32-bit counter. An unconfigured decoder rejects the
|
|
720
727
|
* packet.
|
|
721
728
|
*
|
|
722
|
-
*
|
|
723
|
-
*
|
|
724
|
-
*
|
|
725
|
-
*
|
|
726
|
-
*
|
|
727
|
-
*
|
|
728
|
-
* whose block no repair has defined yet is held by SS_ID until one does.
|
|
729
|
+
* Builds the C.3.3 ssbg_mode1 symbol `u16be(len) || data || zero padding`
|
|
730
|
+
* (refusing `len + 2 > T`) and places it at ESI = serial distance from the
|
|
731
|
+
* start of the known block whose `[SS_Start, SS_Start + SSB_length)`
|
|
732
|
+
* contains SS_ID. A source whose block no repair has defined yet is held
|
|
733
|
+
* by SS_ID until one does; at most `(interleave_depth + 1) * K` are held, and
|
|
734
|
+
* the oldest arrival is evicted first (`FecStats::unplaced_evicted`).
|
|
729
735
|
*
|
|
730
736
|
* # Arguments
|
|
731
737
|
* * `ss_id` - Source symbol ID (32-bit monotonic counter)
|
|
@@ -756,6 +762,22 @@ export class MmtFecDecoder {
|
|
|
756
762
|
reset_stats() {
|
|
757
763
|
wasm.mmtfecdecoder_reset_stats(this.__wbg_ptr);
|
|
758
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
|
+
}
|
|
759
781
|
/**
|
|
760
782
|
* Get alignment (Al) parameter from OTI
|
|
761
783
|
* @returns {number}
|
|
@@ -767,28 +789,6 @@ export class MmtFecDecoder {
|
|
|
767
789
|
}
|
|
768
790
|
return ret[0];
|
|
769
791
|
}
|
|
770
|
-
/**
|
|
771
|
-
* `k-padded-v1` only: cleanup blocks more than `interleave_depth` blocks
|
|
772
|
-
* behind `current_sbn`. Refused under `iso-ssbg1-v1`, which has no SBN
|
|
773
|
-
* (use `cleanup_by_ss_start`).
|
|
774
|
-
*
|
|
775
|
-
* Blocks are ordered by RFC 1982 serial comparison of their first SS_ID
|
|
776
|
-
* (`sbn * K mod 2^32`, ISO/IEC 23008-1 C.5.2; BLO-35597 iso:5). For a
|
|
777
|
-
* stream that has not wrapped SS_ID that is exactly the old
|
|
778
|
-
* `sbn < current_sbn - interleave_depth`; after the wrap it still retires
|
|
779
|
-
* the pre-wrap blocks instead of keeping them forever.
|
|
780
|
-
* @param {number} current_sbn
|
|
781
|
-
* @returns {Uint32Array}
|
|
782
|
-
*/
|
|
783
|
-
cleanup_by_sbn(current_sbn) {
|
|
784
|
-
const ret = wasm.mmtfecdecoder_cleanup_by_sbn(this.__wbg_ptr, current_sbn);
|
|
785
|
-
if (ret[3]) {
|
|
786
|
-
throw takeFromExternrefTable0(ret[2]);
|
|
787
|
-
}
|
|
788
|
-
var v1 = getArrayU32FromWasm0(ret[0], ret[1]).slice();
|
|
789
|
-
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
|
|
790
|
-
return v1;
|
|
791
|
-
}
|
|
792
792
|
/**
|
|
793
793
|
* Get sub-blocks (N) parameter from OTI
|
|
794
794
|
* @returns {number}
|
|
@@ -820,11 +820,11 @@ export class MmtFecDecoder {
|
|
|
820
820
|
return ret[0];
|
|
821
821
|
}
|
|
822
822
|
/**
|
|
823
|
-
*
|
|
824
|
-
*
|
|
825
|
-
*
|
|
826
|
-
*
|
|
827
|
-
*
|
|
823
|
+
* Retire the held source symbols that no repair can place any more, by
|
|
824
|
+
* the same rule as `cleanup_by_ss_start`, without retiring any block. For
|
|
825
|
+
* a caller that retires blocks itself, by their deadlines
|
|
826
|
+
* (`cleanup_blocks_detailed`), and needs only this half. Returns how many
|
|
827
|
+
* it retired.
|
|
828
828
|
* @param {number} current
|
|
829
829
|
* @returns {number}
|
|
830
830
|
*/
|
|
@@ -878,11 +878,11 @@ export class MmtFecDecoder {
|
|
|
878
878
|
return ret[0];
|
|
879
879
|
}
|
|
880
880
|
/**
|
|
881
|
-
*
|
|
882
|
-
*
|
|
883
|
-
*
|
|
884
|
-
*
|
|
885
|
-
*
|
|
881
|
+
* Retire every block, and every held source symbol, lying more than
|
|
882
|
+
* `interleave_depth` blocks behind SS_ID `current`, the newest SS_ID the
|
|
883
|
+
* caller has seen (no block start or held source follows it). A block
|
|
884
|
+
* start or held source that `current` has moved at least half the SS_ID
|
|
885
|
+
* space past no longer precedes it and is retired too
|
|
886
886
|
* (`iso_past_horizon`).
|
|
887
887
|
*
|
|
888
888
|
* Blocks have no SBN under ssbg_mode1, so distance is measured on the
|
|
@@ -912,16 +912,16 @@ export class MmtFecDecoder {
|
|
|
912
912
|
return ret >>> 0;
|
|
913
913
|
}
|
|
914
914
|
/**
|
|
915
|
-
* Finalize only the source blocks whose host-owned deadlines fired
|
|
916
|
-
*
|
|
915
|
+
* Finalize only the source blocks whose host-owned deadlines fired,
|
|
916
|
+
* named by their SS_Starts.
|
|
917
917
|
*
|
|
918
918
|
* The JavaScript FEC manager owns per-block repair grace. A timeout for one
|
|
919
919
|
* block must therefore not run the decoder's global age scan and evict a
|
|
920
920
|
* peer block that is still waiting for fetched repair.
|
|
921
|
-
* @param {Uint32Array}
|
|
921
|
+
* @param {Uint32Array} ss_starts
|
|
922
922
|
*/
|
|
923
|
-
cleanup_blocks_detailed(
|
|
924
|
-
const ptr0 = passArray32ToWasm0(
|
|
923
|
+
cleanup_blocks_detailed(ss_starts) {
|
|
924
|
+
const ptr0 = passArray32ToWasm0(ss_starts, wasm.__wbindgen_malloc);
|
|
925
925
|
const len0 = WASM_VECTOR_LEN;
|
|
926
926
|
wasm.mmtfecdecoder_cleanup_blocks_detailed(this.__wbg_ptr, ptr0, len0);
|
|
927
927
|
}
|
|
@@ -930,15 +930,20 @@ export class MmtFecDecoder {
|
|
|
930
930
|
*
|
|
931
931
|
* # Arguments
|
|
932
932
|
* * `interleave_depth` - Explicit positive number of interleaved blocks.
|
|
933
|
-
* * `block_profile` - Catalog `fec.blockProfile`: `"
|
|
934
|
-
*
|
|
933
|
+
* * `block_profile` - Catalog `fec.blockProfile`: `"iso-ssbg1-v1"`.
|
|
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.
|
|
935
937
|
* @param {number} interleave_depth
|
|
936
938
|
* @param {string} block_profile
|
|
939
|
+
* @param {string | null} [algorithm]
|
|
937
940
|
*/
|
|
938
|
-
constructor(interleave_depth, block_profile) {
|
|
941
|
+
constructor(interleave_depth, block_profile, algorithm) {
|
|
939
942
|
const ptr0 = passStringToWasm0(block_profile, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
940
943
|
const len0 = WASM_VECTOR_LEN;
|
|
941
|
-
|
|
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);
|
|
942
947
|
if (ret[2]) {
|
|
943
948
|
throw takeFromExternrefTable0(ret[1]);
|
|
944
949
|
}
|
|
@@ -967,7 +972,8 @@ export class MmtFecDecoder {
|
|
|
967
972
|
* Configure FEC from 12-byte OTI
|
|
968
973
|
*
|
|
969
974
|
* # Arguments
|
|
970
|
-
* * `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)
|
|
971
977
|
* @param {Uint8Array} oti
|
|
972
978
|
*/
|
|
973
979
|
configure(oti) {
|
|
@@ -1011,21 +1017,16 @@ if (Symbol.dispose) MmtFecDecoder.prototype[Symbol.dispose] = MmtFecDecoder.prot
|
|
|
1011
1017
|
* [SS_Start:4][RSB_length:3][RS_ID:3][SSB_length:3][repair symbol: T]
|
|
1012
1018
|
* ```
|
|
1013
1019
|
*
|
|
1014
|
-
* with, for
|
|
1015
|
-
*
|
|
1016
|
-
*
|
|
1020
|
+
* with, for an `iso-ssbg1-v1` block of K' ssbg_mode1 source symbols
|
|
1021
|
+
* (ISO/IEC 23008-1 C.3.3, C.5.2, C.5.3):
|
|
1022
|
+
* - `SS_Start = ` the block's first SS_ID (SS_IDs are consecutive, 32-bit)
|
|
1017
1023
|
* - `RSB_length = P` (repair count for this block)
|
|
1018
|
-
* - `RS_ID = i` (0-based repair index) ⇒ RaptorQ ESI = `K + i`
|
|
1019
|
-
* - `SSB_length
|
|
1020
|
-
*
|
|
1021
|
-
* OTI (Z=1, N=1, Al=8) is delivered out-of-band via the catalog / AL-FEC
|
|
1022
|
-
* signaling message — see [`MmtFecEncoder::oti`] — never per-packet.
|
|
1024
|
+
* - `RS_ID = i` (0-based repair index) ⇒ RaptorQ ESI = `K' + i`
|
|
1025
|
+
* - `SSB_length = K'` (`1..=K`; the configured K is only the maximum)
|
|
1023
1026
|
*
|
|
1024
|
-
*
|
|
1025
|
-
*
|
|
1026
|
-
*
|
|
1027
|
-
* block is K' symbols with no padding (F = K'*T), and RS_ID `i` is ESI
|
|
1028
|
-
* `K' + i`.
|
|
1027
|
+
* The RaptorQ block is K' symbols with no padding (F = K'*T). The configured
|
|
1028
|
+
* OTI (F = K*T, Z=1, N=1, Al=8) is delivered out-of-band via the catalog /
|
|
1029
|
+
* AL-FEC signaling message — see [`MmtFecEncoder::oti`] — never per-packet.
|
|
1029
1030
|
*/
|
|
1030
1031
|
export class MmtFecEncoder {
|
|
1031
1032
|
__destroy_into_raw() {
|
|
@@ -1070,29 +1071,24 @@ export class MmtFecEncoder {
|
|
|
1070
1071
|
* `[SS_Start:4][RSB_length:3][RS_ID:3][SSB_length:3][symbol: T]`.
|
|
1071
1072
|
* Callers split on that stride; `entry i` is at `i * (13 + T)`.
|
|
1072
1073
|
*
|
|
1073
|
-
* `
|
|
1074
|
-
*
|
|
1075
|
-
*
|
|
1076
|
-
*
|
|
1077
|
-
*
|
|
1078
|
-
* `iso-ssbg1-v1`: `block` is the SS_Start (the block's first SS_ID) and
|
|
1079
|
-
* `source_block` is the block's K' ssbg_mode1 symbols (`1 <= K' <= K`,
|
|
1080
|
-
* `len % T == 0`, each a well-formed C.3.3 symbol). RaptorQ runs over K'
|
|
1081
|
-
* symbols (F = K'*T) and `SSB_length = K'`.
|
|
1074
|
+
* `ss_start` is the block's first SS_ID and `source_block` is the
|
|
1075
|
+
* block's K' ssbg_mode1 symbols (`1 <= K' <= K`, `len % T == 0`, each a
|
|
1076
|
+
* well-formed C.3.3 symbol). RaptorQ runs over K' symbols (F = K'*T) and
|
|
1077
|
+
* `SSB_length = K'`.
|
|
1082
1078
|
*
|
|
1083
1079
|
* # Arguments
|
|
1084
|
-
* * `
|
|
1080
|
+
* * `ss_start` - SS_Start: the block's first SS_ID.
|
|
1085
1081
|
* * `source_block` - The block's source symbols, as described above.
|
|
1086
1082
|
* * `repair_count` - Number of repair symbols (P) to generate.
|
|
1087
|
-
* @param {number}
|
|
1083
|
+
* @param {number} ss_start
|
|
1088
1084
|
* @param {Uint8Array} source_block
|
|
1089
1085
|
* @param {number} repair_count
|
|
1090
1086
|
* @returns {Uint8Array}
|
|
1091
1087
|
*/
|
|
1092
|
-
encode_repair(
|
|
1088
|
+
encode_repair(ss_start, source_block, repair_count) {
|
|
1093
1089
|
const ptr0 = passArray8ToWasm0(source_block, wasm.__wbindgen_malloc);
|
|
1094
1090
|
const len0 = WASM_VECTOR_LEN;
|
|
1095
|
-
const ret = wasm.mmtfecencoder_encode_repair(this.__wbg_ptr,
|
|
1091
|
+
const ret = wasm.mmtfecencoder_encode_repair(this.__wbg_ptr, ss_start, ptr0, len0, repair_count);
|
|
1096
1092
|
if (ret[3]) {
|
|
1097
1093
|
throw takeFromExternrefTable0(ret[2]);
|
|
1098
1094
|
}
|
|
@@ -1112,21 +1108,27 @@ export class MmtFecEncoder {
|
|
|
1112
1108
|
* Create an encoder for a fixed `(K, symbol_size)` block geometry.
|
|
1113
1109
|
*
|
|
1114
1110
|
* Builds the OTI as `ObjectTransmissionInformation::new(K*T, T, 1, 1, 8)`
|
|
1115
|
-
* (single source block, single sub-block, byte alignment) —
|
|
1116
|
-
*
|
|
1117
|
-
*
|
|
1111
|
+
* (single source block, single sub-block, byte alignment) — the geometry
|
|
1112
|
+
* [`MmtFecDecoder::configure`] reads back. K is the maximum SSB_length;
|
|
1113
|
+
* each block is encoded over its own K' symbols (see
|
|
1114
|
+
* [`MmtFecEncoder::encode_repair`]).
|
|
1115
|
+
*
|
|
1116
|
+
* `block_profile` is the catalog `fec.blockProfile` (`"iso-ssbg1-v1"`);
|
|
1117
|
+
* any other value is refused.
|
|
1118
1118
|
*
|
|
1119
|
-
* `
|
|
1120
|
-
* `"
|
|
1121
|
-
* is the maximum SSB_length.
|
|
1119
|
+
* `algorithm` is the catalog `fec.algorithm`: `"raptorq"` (the default
|
|
1120
|
+
* when omitted) or `"reed-solomon"` (K + P <= 255 per block).
|
|
1122
1121
|
* @param {number} k
|
|
1123
1122
|
* @param {number} symbol_size
|
|
1124
1123
|
* @param {string} block_profile
|
|
1124
|
+
* @param {string | null} [algorithm]
|
|
1125
1125
|
*/
|
|
1126
|
-
constructor(k, symbol_size, block_profile) {
|
|
1126
|
+
constructor(k, symbol_size, block_profile, algorithm) {
|
|
1127
1127
|
const ptr0 = passStringToWasm0(block_profile, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
1128
1128
|
const len0 = WASM_VECTOR_LEN;
|
|
1129
|
-
|
|
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);
|
|
1130
1132
|
if (ret[2]) {
|
|
1131
1133
|
throw takeFromExternrefTable0(ret[1]);
|
|
1132
1134
|
}
|
|
@@ -1139,7 +1141,8 @@ export class MmtFecEncoder {
|
|
|
1139
1141
|
*
|
|
1140
1142
|
* Publishers (BLO-8975 / BLO-8990 catalog-gen) emit this so the player's
|
|
1141
1143
|
* [`MmtFecDecoder::configure`] reconstructs identical block geometry. The
|
|
1142
|
-
* 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.
|
|
1143
1146
|
* @returns {Uint8Array}
|
|
1144
1147
|
*/
|
|
1145
1148
|
oti() {
|
|
@@ -1148,6 +1151,22 @@ export class MmtFecEncoder {
|
|
|
1148
1151
|
wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
|
|
1149
1152
|
return v1;
|
|
1150
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
|
+
}
|
|
1151
1170
|
}
|
|
1152
1171
|
if (Symbol.dispose) MmtFecEncoder.prototype[Symbol.dispose] = MmtFecEncoder.prototype.free;
|
|
1153
1172
|
|
|
@@ -2286,14 +2305,14 @@ export class ReassemblerStatsJs {
|
|
|
2286
2305
|
* @returns {bigint}
|
|
2287
2306
|
*/
|
|
2288
2307
|
get ambiguous_fallback_fragments() {
|
|
2289
|
-
const ret = wasm.
|
|
2308
|
+
const ret = wasm.__wbg_get_fecstats_unplaced_evicted(this.__wbg_ptr);
|
|
2290
2309
|
return BigInt.asUintN(64, ret);
|
|
2291
2310
|
}
|
|
2292
2311
|
/**
|
|
2293
2312
|
* @param {bigint} arg0
|
|
2294
2313
|
*/
|
|
2295
2314
|
set ambiguous_fallback_fragments(arg0) {
|
|
2296
|
-
wasm.
|
|
2315
|
+
wasm.__wbg_set_fecstats_unplaced_evicted(this.__wbg_ptr, arg0);
|
|
2297
2316
|
}
|
|
2298
2317
|
}
|
|
2299
2318
|
if (Symbol.dispose) ReassemblerStatsJs.prototype[Symbol.dispose] = ReassemblerStatsJs.prototype.free;
|
package/pkg/mmt_wasm_bg.wasm
CHANGED
|
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
|
|
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
|
|
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;
|