@blockcast/mmt-container 2.2.0-main.efb4fa4521af → 2.2.0-main.fb5c7dfbe2de
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/README.md +29 -17
- package/dist/browser-runtime.js +1336 -302
- package/dist/browser-runtime.js.map +3 -3
- package/dist/catalog-fec-params.d.ts +17 -1
- package/dist/catalog-fec-params.d.ts.map +1 -1
- package/dist/catalog-fec-params.js +15 -0
- package/dist/catalog-fec-params.js.map +2 -2
- package/dist/cmcd-producer.d.ts +60 -47
- package/dist/cmcd-producer.d.ts.map +1 -1
- package/dist/cmcd-producer.js +138 -109
- package/dist/cmcd-producer.js.map +2 -2
- package/dist/delivery-catalog.js +26 -16
- package/dist/delivery-catalog.js.map +2 -2
- package/dist/delta-fallback-config.js.map +1 -1
- package/dist/fec-manager.d.ts +70 -12
- package/dist/fec-manager.d.ts.map +1 -1
- package/dist/fec-manager.js +403 -58
- package/dist/fec-manager.js.map +2 -2
- package/dist/fec-worker-setup.d.ts +1 -1
- package/dist/fec-worker-setup.js +1 -1
- package/dist/fec-worker-setup.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +2 -2
- package/dist/iso-block-locator.d.ts +48 -13
- package/dist/iso-block-locator.d.ts.map +1 -1
- package/dist/iso-block-locator.js +97 -25
- package/dist/iso-block-locator.js.map +2 -2
- package/dist/iso-bmff-timing.d.ts +10 -1
- package/dist/iso-bmff-timing.d.ts.map +1 -1
- package/dist/iso-bmff-timing.js +36 -2
- package/dist/iso-bmff-timing.js.map +2 -2
- package/dist/media-router.js.map +1 -1
- package/dist/mmtp-container-parser.d.ts +79 -10
- package/dist/mmtp-container-parser.d.ts.map +1 -1
- package/dist/mmtp-container-parser.js +207 -26
- package/dist/mmtp-container-parser.js.map +2 -2
- package/dist/mmtp-container-parser.no-modules.js +209 -29
- package/dist/mmtp-container-parser.no-modules.js.map +2 -2
- package/dist/mmtp-decode-pipeline.js +206 -26
- package/dist/mmtp-decode-pipeline.js.map +2 -2
- package/dist/mmtp-router.d.ts +34 -8
- package/dist/mmtp-router.d.ts.map +1 -1
- package/dist/mmtp-router.js +555 -79
- package/dist/mmtp-router.js.map +2 -2
- package/dist/multicast-manager.d.ts +13 -3
- package/dist/multicast-manager.d.ts.map +1 -1
- package/dist/multicast-manager.js +980 -146
- package/dist/multicast-manager.js.map +2 -2
- package/dist/multicast-transport.js +28 -18
- package/dist/multicast-transport.js.map +2 -2
- package/dist/no-modules.js +206 -26
- package/dist/no-modules.js.map +2 -2
- package/dist/repair-fetch.d.ts +36 -8
- package/dist/repair-fetch.d.ts.map +1 -1
- package/dist/repair-fetch.js +285 -26
- package/dist/repair-fetch.js.map +3 -3
- package/dist/repair-layer-subscriptions.d.ts +6 -2
- package/dist/repair-layer-subscriptions.d.ts.map +1 -1
- package/dist/repair-layer-subscriptions.js +6 -3
- package/dist/repair-layer-subscriptions.js.map +2 -2
- package/dist/track-session.d.ts +1 -1
- package/dist/track-session.d.ts.map +1 -1
- package/dist/track-session.js +1 -0
- package/dist/track-session.js.map +2 -2
- package/dist/wasm-mmtp-container-parser.js +206 -26
- package/dist/wasm-mmtp-container-parser.js.map +2 -2
- package/package.json +8 -5
- package/src/catalog-fec-params.ts +36 -1
- package/src/cmcd-producer.ts +189 -179
- package/src/fec-manager.ts +433 -32
- package/src/fec-worker-setup.ts +2 -2
- package/src/index.ts +9 -2
- package/src/iso-block-locator.ts +133 -31
- package/src/iso-bmff-timing.ts +40 -1
- package/src/mmtp-container-parser.ts +306 -29
- package/src/mmtp-router.ts +548 -38
- package/src/multicast-manager.ts +44 -6
- package/src/repair-fetch.ts +363 -49
- package/src/repair-layer-subscriptions.ts +13 -5
- package/src/track-session.ts +4 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mmtp-container-parser.d.ts","sourceRoot":"","sources":["../src/mmtp-container-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,UAAU,EAChB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAEL,kBAAkB,EAElB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAE5B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAEL,kBAAkB,EAIlB,KAAK,mBAAmB,EACzB,MAAM,sBAAsB,CAAA;AAO7B,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,4BAA4B,CAAA;AAMnC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAIzD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,GAAG,OAAO,CAAA;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wEAAwE;IACxE,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;8CAE0C;IAC1C,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B;mFAC+E;IAC/E,gBAAgB,CAAC,EAAE,mBAAmB,CAAA;IACtC,iFAAiF;IACjF,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B;+CAC2C;IAC3C,WAAW,CAAC,EAAE,qBAAqB,CAAA;IACnC;;;gFAG4E;IAC5E,YAAY,CAAC,EAAE,SAAS,CAAA;IACxB,8EAA8E;IAC9E,cAAc,CAAC,EAAE,cAAc,CAAA;CAChC;AAED;;uEAEuE;AACvE,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,gFAAgF;IAChF,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,uFAAuF;IACvF,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IACrC,yDAAyD;IACzD,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,4DAA4D;IAC5D,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;IAC3B,0EAA0E;IAC1E,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAA;CACnC;AAED,MAAM,WAAW,SAAS;IACxB,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAA;IACjB,+DAA+D;IAC/D,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,uDAAuD;IACvD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,wDAAwD;IACxD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gFAAgF;IAChF,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CAAA;IACnC,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,8EAA8E;IAC9E,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAA;IAChC,4DAA4D;IAC5D,6BAA6B,CAAC,EAAE,MAAM,EAAE,CAAA;IACxC,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,gFAAgF;IAChF,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,2BAA2B,CAAC,EAAE,MAAM,CAAA;IACpC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,4EAA4E;IAC5E,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,wEAAwE;IACxE,MAAM,CAAC,EAAE,cAAc,CAAA;IACvB;;;;;;;;OAQG;IACH,kBAAkB,CAAC,EAAE,sBAAsB,CAAA;IAC3C;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;OAIG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAA;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,iBAAiB,EAAE,MAAM,CAAA;IACzB,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,2BAA2B,CAAC,EAAE,MAAM,CAAA;IACpC,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,6DAA6D;IAC7D,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC3D;;;;;;;OAOG;IACH,YAAY,CACV,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,GAClB,SAAS,MAAM,EAAE,GAAG,IAAI,CAAA;IAC3B;;;;;OAKG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAChE,qEAAqE;IACrE,MAAM,CACJ,MAAM,EAAE;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAE,EAC7C,KAAK,EAAE;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAE,EAC5C,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,aAAa,EAAE,OAAO,GACrB,gBAAgB,CAAA;IACnB,yDAAyD;IACzD,UAAU,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,CAAA;IACpD;;;;OAIG;IACH,KAAK,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAA;IAClD,qEAAqE;IACrE,KAAK,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CACnF;AAED,6EAA6E;AAC7E,MAAM,WAAW,qBAAqB;IACpC,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAA;IACf,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,CAAA;IAChB,+EAA+E;IAC/E,SAAS,EAAE,MAAM,CAAA;IACjB;;;;;OAKG;IACH,OAAO,EAAE,MAAM,CAAA;IACf,gFAAgF;IAChF,sBAAsB,EAAE,MAAM,CAAA;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,4BAA4B,EAAE,MAAM,CAAA;IACpC,gCAAgC,EAAE,MAAM,CAAA;IACxC,YAAY,EAAE,MAAM,CAAA;IACpB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,oBAAoB,EAAE,MAAM,CAAA;IAC5B,eAAe,EAAE,MAAM,CAAA;IACvB,uBAAuB,EAAE,MAAM,CAAA;IAC/B,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,2BAA2B;IAC1C,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,OAAO,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,2BAA2B,CAAC,EAAE,MAAM,CAAA;IACpC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,2BAA2B,GAAG,IAAI,CAAA;IAC/C,eAAe,EAAE,2BAA2B,GAAG,IAAI,CAAA;IACnD,IAAI,EAAE,2BAA2B,EAAE,CAAA;IACnC,IAAI,EAAE,2BAA2B,EAAE,CAAA;IACnC,SAAS,EAAE,2BAA2B,EAAE,CAAA;CACzC;AAED,MAAM,MAAM,gBAAgB,GACxB;IACE,IAAI,EAAE,QAAQ,GAAG,WAAW,CAAA;IAC5B,MAAM,EAAE,UAAU,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;CACnB,GACD;IACE,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;IACzB,MAAM,EAAE,UAAU,CAAA;IAClB,IAAI,EAAE,UAAU,CAAA;IAChB,iBAAiB,EAAE,MAAM,CAAA;IACzB,sBAAsB,EAAE,MAAM,CAAA;IAC9B,eAAe,EAAE,MAAM,CAAA;CACxB,GACD;IACE,IAAI,EAAE,SAAS,CAAA;IACf,MAAM,EAAE,UAAU,CAAA;IAClB,iBAAiB,EAAE,MAAM,CAAA;IACzB,sBAAsB,EAAE,MAAM,CAAA;IAC9B,eAAe,EAAE,MAAM,CAAA;CACxB,GACD;IACE,IAAI,EAAE,UAAU,CAAA;IAChB,MAAM,EAAE,UAAU,CAAA;IAClB,iBAAiB,EAAE,MAAM,CAAA;IACzB,sBAAsB,EAAE,MAAM,CAAA;IAC9B,eAAe,EAAE,MAAM,CAAA;IACvB,KAAK,EAAE;QACL;;;;;WAKG;QACH,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;QAC7D,OAAO,EAAE,MAAM,CAAA;KAChB,CAAA;CACF,GACD;IACE,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,EAAE,UAAU,CAAA;IAClB,IAAI,EAAE,UAAU,CAAA;IAChB,IAAI,EAAE,SAAS,CAAA;IACf,iBAAiB,EAAE,MAAM,CAAA;IACzB,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAEL;;;;;;;;;GASG;AACH,MAAM,MAAM,kBAAkB;AAC5B,+EAA+E;AAC7E,UAAU,GACV,qBAAqB,GACrB,oBAAoB;AACtB,0EAA0E;GACxE,aAAa,GACb,+BAA+B,GAC/B,uBAAuB;AACzB,oEAAoE;GAClE,qBAAqB,GACrB,mCAAmC,GACnC,sBAAsB;AACxB,4EAA4E;GAC1E,yBAAyB,GACzB,uBAAuB,GACvB,iBAAiB,GACjB,mBAAmB,GACnB,uBAAuB,GACvB,2BAA2B,GAC3B,yBAAyB,GACzB,mBAAmB,GACnB,4BAA4B,GAC5B,0BAA0B,GAC1B,wBAAwB;AAC1B;;;;;;;GAOG;GACD,yBAAyB,GACzB,wBAAwB;AAC1B;2EAC2E;GACzE,4BAA4B,GAC5B,iCAAiC;AACnC;oCACoC;GAClC,OAAO,CAAA;AAEX;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAC1B,gBAAgB,CAAC,MAAM,CAAC,GACxB,QAAQ,kBAAkB,EAAE,CAAA;AAEhC;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,mBAAmB;IAClC,mEAAmE;IACnE,UAAU,EAAE,MAAM,CAAA;IAClB;;;;;;;;OAQG;IACH,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAA;IACrD;;;;OAIG;IACH,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAA;CAC9D;AAED,KAAK,aAAa,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,KAAK,IAAI,CAAA;AAChE,KAAK,YAAY,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;AAe3F,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAElF;AAED;;;;;;;;;;;;;;;gEAegE;AAChE,KAAK,oBAAoB,GAAG,CAC1B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,UAAU,KAClB,IAAI,CAAA;AAET,MAAM,WAAW,kBAAkB;IACjC,wFAAwF;IACxF,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,6DAA6D;IAC7D,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,cAAc,CAAA;IACvB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,sBAAsB,CAAA;IAC3C,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAqlBD,qBAAa,mBAAmB;;gBA+HlB,MAAM,CAAC,EAAE,gBAAgB;IA0ErC;;;;;4EAKwE;IACxE,IAAI,WAAW,IAAI,qBAAqB,CAEvC;IAED;;;;;;;OAOG;IACH,IAAI,mBAAmB,IAAI,QAAQ,CAAC,mBAAmB,CAAC,CAUvD;IAED;;;;;;;;OAQG;IACH,IAAI,iBAAiB,IAAI,QAAQ,CAAC,qBAAqB,CAAC,CAQvD;IAED,IAAI,YAAY,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAI7C;IAED;;;;OAIG;IACH,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,GAAG,IAAI;IAcpD;;;;OAIG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,IAAI,GAAG,IAAI;IAQvC,qDAAqD;IACrD,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI3F,2EAA2E;IAC3E,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAIjG,2DAA2D;IAC3D,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI;IAOlE;;;OAGG;IACH,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI;IAIvE;;;OAGG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIrC;;;;;OAKG;IACH,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAG,oBAAoB,GAAG,IAAI;IAkBhG;;;;;;;OAOG;IACH,IAAI,SAAS,IAAI,QAAQ,CAAC,mBAAmB,CAAC,CAM7C;IAED;;;;;;OAMG;IACH,IAAI,eAAe,IAAI,kBAAkB,GAAG,IAAI,CAE/C;IAED;mFAC+E;IAC/E,IAAI,oBAAoB,IAAI,MAAM,CAEjC;IAED;;;;;OAKG;IACH,IAAI,uBAAuB,IAAI,MAAM,CAEpC;IAED,8DAA8D;IAC9D,IAAI,4BAA4B,IAAI,MAAM,CAEzC;IA6BD,IAAI,kBAAkB,IAAI,aAAa,CAAC,4BAA4B,CAAC,CAMpE;IAED;;;;;;OAMG;IACH,eAAe,IAAI,IAAI;IAcvB;;;;;OAKG;IACH,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,UAAU,GAAG,IAAI;IAIhF;;;;;;OAMG;IACH,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,gBAAgB,GAAG,IAAI;IA2BtF,gFAAgF;IAChF,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,gBAAgB,GAAG,IAAI;IAI/E;;;;;OAKG;IACH,UAAU,CACR,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,gBAAgB,EACxB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,gBAAgB,GAAG,IAAI;IA0X1B,MAAM,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI;IAI9B,OAAO,CAAC,EAAE,EAAE,aAAa,GAAG,IAAI;IAIhC;;;;;;;;;;;;6DAYyD;IACzD,cAAc,CAAC,EAAE,EAAE,oBAAoB,GAAG,IAAI;IAI9C,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,GAAG,IAAI;IAIvD,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAsBjD,6EAA6E;IAC7E,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI;IAoB5D;;;;;;;;;;OAUG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI;IA4BxE,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAKxC,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI;IAStD,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAW1C;;iEAE6D;IAC7D,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAwBnD;;;;;;OAMG;IACH,wBAAwB,CACtB,QAAQ,EAAE,MAAM,EAChB,iBAAiB,EAAE,MAAM,EACzB,2BAA2B,EAAE,MAAM,GAAG,SAAS,EAC/C,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,gBAAgB,CAAC,EAAE,MAAM,GACxB,cAAc,GAAG,IAAI;IA4CxB;iFAC6E;IAC7E,KAAK,IAAI,IAAI;IAMb,OAAO,IAAI,IAAI;IAsLf,kFAAkF;IAClF,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAY;IAWlD,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,SAAK,GAAG,OAAO;CAgF3E"}
|
|
1
|
+
{"version":3,"file":"mmtp-container-parser.d.ts","sourceRoot":"","sources":["../src/mmtp-container-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -4851,9 +4851,21 @@ var IsoBmffTimingResolver = class {
|
|
|
4851
4851
|
}
|
|
4852
4852
|
#track = null;
|
|
4853
4853
|
#fragments = /* @__PURE__ */ new Map();
|
|
4854
|
+
/** First sample of each pending fragment, kept in `#delivered` with its sample count. */
|
|
4855
|
+
#firstSamples = /* @__PURE__ */ new Map();
|
|
4856
|
+
/**
|
|
4857
|
+
* First sample and sample count of the newest fragments whose every slot was
|
|
4858
|
+
* cleared. Abandonment counts: `releaseSample` clears a slot too, which
|
|
4859
|
+
* matches the combiner, since it retires an abandoned sample as well.
|
|
4860
|
+
*/
|
|
4861
|
+
#delivered = /* @__PURE__ */ new Map();
|
|
4854
4862
|
#pendingSamples = 0;
|
|
4855
4863
|
#evictedSamples = 0;
|
|
4856
4864
|
#lastMovieFragmentRejection = null;
|
|
4865
|
+
/** True once an FT=0 has bound the track that FT=1 timing is read against. */
|
|
4866
|
+
get initialized() {
|
|
4867
|
+
return this.#track !== null;
|
|
4868
|
+
}
|
|
4857
4869
|
get pendingSampleCount() {
|
|
4858
4870
|
return this.#pendingSamples;
|
|
4859
4871
|
}
|
|
@@ -4877,7 +4889,14 @@ var IsoBmffTimingResolver = class {
|
|
|
4877
4889
|
this.#track = timing;
|
|
4878
4890
|
return true;
|
|
4879
4891
|
}
|
|
4880
|
-
|
|
4892
|
+
/**
|
|
4893
|
+
* `recovered` marks an FEC-recovered copy. A recovered block hands back
|
|
4894
|
+
* every FT=1 it holds, the received ones included, so a recovered copy of a
|
|
4895
|
+
* fragment whose samples are all done is a duplicate: admitting it again
|
|
4896
|
+
* would charge stale timing and could displace the live MPU's. A source
|
|
4897
|
+
* copy is still admitted again (a rendition switch re-arms timing that way).
|
|
4898
|
+
*/
|
|
4899
|
+
addMovieFragment(mpuSequenceNumber, data, additionalSampleLimit = this.maxPendingSamples, recovered = false) {
|
|
4881
4900
|
this.#lastMovieFragmentRejection = null;
|
|
4882
4901
|
if (!Number.isInteger(additionalSampleLimit) || additionalSampleLimit < 0) {
|
|
4883
4902
|
this.#lastMovieFragmentRejection = "invalid";
|
|
@@ -4903,6 +4922,8 @@ var IsoBmffTimingResolver = class {
|
|
|
4903
4922
|
(sample, index) => sample !== null && sameSample(sample, parsed.samples[index])
|
|
4904
4923
|
);
|
|
4905
4924
|
}
|
|
4925
|
+
const delivered = recovered ? this.#delivered.get(key) : void 0;
|
|
4926
|
+
if (delivered && delivered.sampleCount === parsed.samples.length && sameSample(delivered.first, parsed.samples[0])) return true;
|
|
4906
4927
|
let freed = 0;
|
|
4907
4928
|
while (this.#fragments.size > 0 && (this.#pendingSamples + parsed.samples.length > this.maxPendingSamples || parsed.samples.length - freed > additionalSampleLimit)) {
|
|
4908
4929
|
freed += this.#evictOldestFragment();
|
|
@@ -4916,6 +4937,7 @@ var IsoBmffTimingResolver = class {
|
|
|
4916
4937
|
return false;
|
|
4917
4938
|
}
|
|
4918
4939
|
this.#fragments.set(key, [...parsed.samples]);
|
|
4940
|
+
this.#firstSamples.set(key, parsed.samples[0]);
|
|
4919
4941
|
this.#pendingSamples += parsed.samples.length;
|
|
4920
4942
|
return true;
|
|
4921
4943
|
}
|
|
@@ -4973,6 +4995,7 @@ var IsoBmffTimingResolver = class {
|
|
|
4973
4995
|
let live = 0;
|
|
4974
4996
|
for (const sample of samples) if (sample !== null) live++;
|
|
4975
4997
|
this.#fragments.delete(oldest);
|
|
4998
|
+
this.#firstSamples.delete(oldest);
|
|
4976
4999
|
this.#pendingSamples -= live;
|
|
4977
5000
|
this.#evictedSamples += live;
|
|
4978
5001
|
return live;
|
|
@@ -4988,12 +5011,23 @@ var IsoBmffTimingResolver = class {
|
|
|
4988
5011
|
if (!samples || !samples[index]) return false;
|
|
4989
5012
|
samples[index] = null;
|
|
4990
5013
|
this.#pendingSamples--;
|
|
4991
|
-
if (samples.every((value) => value === null))
|
|
5014
|
+
if (samples.every((value) => value === null)) {
|
|
5015
|
+
this.#fragments.delete(key);
|
|
5016
|
+
const first = this.#firstSamples.get(key);
|
|
5017
|
+
this.#firstSamples.delete(key);
|
|
5018
|
+
this.#delivered.delete(key);
|
|
5019
|
+
this.#delivered.set(key, { first, sampleCount: samples.length });
|
|
5020
|
+
if (this.#delivered.size > this.maxPendingSamples) {
|
|
5021
|
+
this.#delivered.delete(this.#delivered.keys().next().value);
|
|
5022
|
+
}
|
|
5023
|
+
}
|
|
4992
5024
|
return true;
|
|
4993
5025
|
}
|
|
4994
5026
|
reset() {
|
|
4995
5027
|
this.#track = null;
|
|
4996
5028
|
this.#fragments.clear();
|
|
5029
|
+
this.#firstSamples.clear();
|
|
5030
|
+
this.#delivered.clear();
|
|
4997
5031
|
this.#pendingSamples = 0;
|
|
4998
5032
|
}
|
|
4999
5033
|
};
|
|
@@ -5163,6 +5197,9 @@ function authoredGap(before, after) {
|
|
|
5163
5197
|
function ssIdAfter(a, b) {
|
|
5164
5198
|
return (a - b | 0) > 0;
|
|
5165
5199
|
}
|
|
5200
|
+
function holdsRebuilt(stream) {
|
|
5201
|
+
return stream.buf.some(({ meta }) => meta.fecSbnFirst !== void 0);
|
|
5202
|
+
}
|
|
5166
5203
|
var FecReleaseSequencer = class {
|
|
5167
5204
|
#streams = /* @__PURE__ */ new Map();
|
|
5168
5205
|
#gate;
|
|
@@ -5225,6 +5262,7 @@ var FecReleaseSequencer = class {
|
|
|
5225
5262
|
stream.lastSbn = void 0;
|
|
5226
5263
|
stream.discontinuity = false;
|
|
5227
5264
|
stream.rapSsId = void 0;
|
|
5265
|
+
stream.sourced = false;
|
|
5228
5266
|
}
|
|
5229
5267
|
if (stream.last !== null && compareFrameOrder(frame, stream.last) <= 0) {
|
|
5230
5268
|
this.#recordStat("droppedStale");
|
|
@@ -5251,6 +5289,7 @@ var FecReleaseSequencer = class {
|
|
|
5251
5289
|
if (compareFrameOrder(stream.buf[mid], frame) < 0) lo = mid + 1;
|
|
5252
5290
|
else hi = mid;
|
|
5253
5291
|
}
|
|
5292
|
+
if (stream.buf[lo]?.passed === true) frame.passed = true;
|
|
5254
5293
|
stream.buf.splice(lo, 0, frame);
|
|
5255
5294
|
this.#drainUnlessDeferred(stream);
|
|
5256
5295
|
}
|
|
@@ -5286,6 +5325,41 @@ var FecReleaseSequencer = class {
|
|
|
5286
5325
|
}
|
|
5287
5326
|
return false;
|
|
5288
5327
|
}
|
|
5328
|
+
/**
|
|
5329
|
+
* These streams' sink is being replaced by one that has seen no source
|
|
5330
|
+
* frame yet. First, from a stream that holds a frame the overlay rebuilt,
|
|
5331
|
+
* release to the sink being replaced the frames the unanchored path had
|
|
5332
|
+
* already released to it (#cursorPassed): there they waited in its queue,
|
|
5333
|
+
* which its replacement flushes. A stream that holds none is not drained:
|
|
5334
|
+
* it holds nothing the anchor kept back, and a drain would still force out
|
|
5335
|
+
* a frame held past the hold limit, which before the anchor waited for the
|
|
5336
|
+
* next push. Then treat the streams as unsourced until a source frame is
|
|
5337
|
+
* released.
|
|
5338
|
+
*/
|
|
5339
|
+
unsource(packetId, catalogTrackName) {
|
|
5340
|
+
for (const stream of this.#streams.values()) {
|
|
5341
|
+
if (stream.packetId === packetId && (catalogTrackName === void 0 || stream.catalogTrackName === catalogTrackName)) {
|
|
5342
|
+
if (stream.draining === 0 && holdsRebuilt(stream)) {
|
|
5343
|
+
if (this.#deferDepth > 0) this.#deferredStreams.add(stream);
|
|
5344
|
+
else this.#drain(stream, true);
|
|
5345
|
+
}
|
|
5346
|
+
stream.sourced = false;
|
|
5347
|
+
}
|
|
5348
|
+
}
|
|
5349
|
+
}
|
|
5350
|
+
/**
|
|
5351
|
+
* Whether a stream of `packetId` holds a frame the keyframe overlay rebuilt
|
|
5352
|
+
* (FrameMeta.fecSbnFirst). Without `catalogTrackName`, every stream of the
|
|
5353
|
+
* packetId.
|
|
5354
|
+
*/
|
|
5355
|
+
holdsRebuilt(packetId, catalogTrackName) {
|
|
5356
|
+
for (const stream of this.#streams.values()) {
|
|
5357
|
+
if (stream.packetId !== packetId) continue;
|
|
5358
|
+
if (catalogTrackName !== void 0 && stream.catalogTrackName !== catalogTrackName) continue;
|
|
5359
|
+
if (holdsRebuilt(stream)) return true;
|
|
5360
|
+
}
|
|
5361
|
+
return false;
|
|
5362
|
+
}
|
|
5289
5363
|
/** Re-evaluate held gaps after FEC state changed. */
|
|
5290
5364
|
poke(streamKey) {
|
|
5291
5365
|
if (streamKey !== void 0) {
|
|
@@ -5377,16 +5451,32 @@ var FecReleaseSequencer = class {
|
|
|
5377
5451
|
last: null,
|
|
5378
5452
|
lastSbn: void 0,
|
|
5379
5453
|
discontinuity: false,
|
|
5380
|
-
rapSsId: void 0
|
|
5454
|
+
rapSsId: void 0,
|
|
5455
|
+
sourced: false,
|
|
5456
|
+
draining: 0
|
|
5381
5457
|
};
|
|
5382
5458
|
this.#streams.set(streamKey, stream);
|
|
5383
5459
|
}
|
|
5384
5460
|
return stream;
|
|
5385
5461
|
}
|
|
5386
|
-
#
|
|
5462
|
+
/** `asUnanchored`: release overlay-rebuilt frames when unanchored did (#cursorPassed). */
|
|
5463
|
+
#drain(stream, asUnanchored = false) {
|
|
5464
|
+
stream.draining++;
|
|
5465
|
+
try {
|
|
5466
|
+
this.#drainLoop(stream, asUnanchored);
|
|
5467
|
+
} finally {
|
|
5468
|
+
stream.draining--;
|
|
5469
|
+
}
|
|
5470
|
+
}
|
|
5471
|
+
#drainLoop(stream, asUnanchored) {
|
|
5387
5472
|
while (stream.buf.length > 0 && stream.last !== null) {
|
|
5388
5473
|
const head = stream.buf[0];
|
|
5389
5474
|
const last = stream.last;
|
|
5475
|
+
if (compareFrameOrder(head, last) <= 0) {
|
|
5476
|
+
stream.buf.shift();
|
|
5477
|
+
this.#release(stream, head, void 0);
|
|
5478
|
+
continue;
|
|
5479
|
+
}
|
|
5390
5480
|
if (stream.discontinuity) {
|
|
5391
5481
|
stream.discontinuity = false;
|
|
5392
5482
|
stream.buf.shift();
|
|
@@ -5400,9 +5490,10 @@ var FecReleaseSequencer = class {
|
|
|
5400
5490
|
}
|
|
5401
5491
|
const headSbn = head.meta.fecSbn;
|
|
5402
5492
|
const from = stream.lastSbn ?? headSbn;
|
|
5403
|
-
const to = headSbn ?? stream.lastSbn;
|
|
5493
|
+
const to = head.meta.fecSbnFirst ?? headSbn ?? stream.lastSbn;
|
|
5404
5494
|
let lost = [];
|
|
5405
5495
|
const unanchored = from === void 0 && to === void 0;
|
|
5496
|
+
let unresolved = false;
|
|
5406
5497
|
if (from !== void 0 && to !== void 0) {
|
|
5407
5498
|
const resolved = this.#gate.resolvedLoss(
|
|
5408
5499
|
stream.packetId,
|
|
@@ -5411,7 +5502,8 @@ var FecReleaseSequencer = class {
|
|
|
5411
5502
|
Math.max(from, to),
|
|
5412
5503
|
from
|
|
5413
5504
|
);
|
|
5414
|
-
|
|
5505
|
+
unresolved = resolved === null;
|
|
5506
|
+
if (unresolved && !this.#cursorPassed(stream, asUnanchored)) {
|
|
5415
5507
|
const heldMs = performance.now() - head.arrivedAtMs;
|
|
5416
5508
|
if (heldMs <= this.#gate.holdLimitMs(stream.packetId, stream.catalogTrackName)) return;
|
|
5417
5509
|
this.#recordStat("forcedWindowFlushes");
|
|
@@ -5419,22 +5511,56 @@ var FecReleaseSequencer = class {
|
|
|
5419
5511
|
this.#release(stream, head, this.#gate.decide(last, head, [], true));
|
|
5420
5512
|
continue;
|
|
5421
5513
|
}
|
|
5422
|
-
lost = resolved;
|
|
5514
|
+
lost = resolved ?? [];
|
|
5423
5515
|
}
|
|
5424
5516
|
stream.buf.shift();
|
|
5425
5517
|
this.#release(
|
|
5426
5518
|
stream,
|
|
5427
5519
|
head,
|
|
5428
|
-
lost.length > 0 || unanchored || authoredGap(last.meta, head.meta) ? this.#gate.decide(last, head, lost, false) : void 0
|
|
5520
|
+
lost.length > 0 || unanchored || unresolved || authoredGap(last.meta, head.meta) ? this.#gate.decide(last, head, lost, false) : void 0
|
|
5429
5521
|
);
|
|
5430
5522
|
}
|
|
5431
5523
|
}
|
|
5524
|
+
/**
|
|
5525
|
+
* An overlay-rebuilt frame (fecSbnFirst) waits no longer than the BLO-53342
|
|
5526
|
+
* source cursor holds it unanchored, and neither does a later frame behind
|
|
5527
|
+
* it. Unanchored, a frame that waits on no block (fecSbnFirst set, or no
|
|
5528
|
+
* fecSbn) left the gate once every frame ahead of it had: mark it `passed`,
|
|
5529
|
+
* like each frame that arrived in front of it since (stale there). The head
|
|
5530
|
+
* then goes, decided as it would be unanchored, once a frame the base path
|
|
5531
|
+
* delivered (a source frame, or one base FEC recovered) is buffered after a
|
|
5532
|
+
* marked one: the base path has passed that one, so a frame still missing
|
|
5533
|
+
* before it can only come from a repair. It also goes while no source frame
|
|
5534
|
+
* has been released, when the direct path shows a recovered frame at once.
|
|
5535
|
+
* And it goes at once while a staged switch decides on when frames arrive
|
|
5536
|
+
* (FecReleaseGate.releaseUnanchored), and when unsource releases into a
|
|
5537
|
+
* sink being replaced: unanchored, it had already reached the sink.
|
|
5538
|
+
* The scan also writes: the `passed` marks it sets stay on the frames,
|
|
5539
|
+
* and push marks a frame it inserts in front of a marked one from them.
|
|
5540
|
+
*/
|
|
5541
|
+
#cursorPassed(stream, asUnanchored) {
|
|
5542
|
+
let at = -1;
|
|
5543
|
+
for (let i = 0; i < stream.buf.length; i++) {
|
|
5544
|
+
const frame = stream.buf[i];
|
|
5545
|
+
if (frame.meta.fecSbnFirst !== void 0 || frame.meta.fecSbn === void 0) {
|
|
5546
|
+
frame.passed = true;
|
|
5547
|
+
if (at < 0) at = i;
|
|
5548
|
+
} else if (frame.passed !== true) break;
|
|
5549
|
+
}
|
|
5550
|
+
if (at < 0) return false;
|
|
5551
|
+
return asUnanchored || !stream.sourced || this.#gate.releaseUnanchored?.(stream.packetId, stream.catalogTrackName) === true || stream.buf.some(({ meta }, i) => i > at && meta.fecSbnFirst === void 0 && (meta.recovered !== true || meta.fecSbn !== void 0));
|
|
5552
|
+
}
|
|
5432
5553
|
#release(stream, frame, decision) {
|
|
5554
|
+
const stale = stream.last !== null && compareFrameOrder(frame, stream.last) <= 0;
|
|
5555
|
+
if (stale) this.#recordStat("droppedStale");
|
|
5433
5556
|
if (decision) frame.meta.gapBefore = decision;
|
|
5434
5557
|
stream.last = frame;
|
|
5435
|
-
if (frame.meta.fecSbn !== void 0
|
|
5558
|
+
if (frame.meta.fecSbn !== void 0 && (frame.meta.fecSbnFirst === void 0 || stream.lastSbn !== void 0)) {
|
|
5559
|
+
stream.lastSbn = frame.meta.fecSbn;
|
|
5560
|
+
}
|
|
5561
|
+
if (frame.meta.recovered !== true) stream.sourced = true;
|
|
5436
5562
|
this.#gate.onReleased?.(frame.data, frame.meta);
|
|
5437
|
-
this.#emit(frame.data, frame.meta);
|
|
5563
|
+
if (!stale) this.#emit(frame.data, frame.meta);
|
|
5438
5564
|
}
|
|
5439
5565
|
};
|
|
5440
5566
|
var FMPU_BOX_TYPES = /* @__PURE__ */ new Set(["ftyp", "moov", "moof"]);
|
|
@@ -5475,6 +5601,12 @@ var MmtpContainerParser = class _MmtpContainerParser {
|
|
|
5475
5601
|
this.#reclaimedTimingSamples = 0;
|
|
5476
5602
|
this.#evictedTimingSamples = 0;
|
|
5477
5603
|
this.#rejectedMovieFragments = 0;
|
|
5604
|
+
this.#recoveredHeadsAwaitingTiming = {
|
|
5605
|
+
held: 0,
|
|
5606
|
+
expired: 0,
|
|
5607
|
+
discarded: 0,
|
|
5608
|
+
superseded: 0
|
|
5609
|
+
};
|
|
5478
5610
|
this.#sequencers = /* @__PURE__ */ new Map();
|
|
5479
5611
|
this.#fecGate = null;
|
|
5480
5612
|
this.#fecSequencer = null;
|
|
@@ -5583,6 +5715,7 @@ var MmtpContainerParser = class _MmtpContainerParser {
|
|
|
5583
5715
|
#reclaimedTimingSamples;
|
|
5584
5716
|
#evictedTimingSamples;
|
|
5585
5717
|
#rejectedMovieFragments;
|
|
5718
|
+
#recoveredHeadsAwaitingTiming;
|
|
5586
5719
|
#sequencers;
|
|
5587
5720
|
#fecGate;
|
|
5588
5721
|
#fecSequencer;
|
|
@@ -5688,11 +5821,12 @@ var MmtpContainerParser = class _MmtpContainerParser {
|
|
|
5688
5821
|
/**
|
|
5689
5822
|
* Typed view of the ISO-BMFF timing-sample budget.
|
|
5690
5823
|
*
|
|
5691
|
-
*
|
|
5692
|
-
*
|
|
5693
|
-
*
|
|
5694
|
-
*
|
|
5695
|
-
*
|
|
5824
|
+
* Each stream admits timing against its own window of `capacity` slots
|
|
5825
|
+
* (BLO-52085). A stream at capacity displaces its own oldest timing to
|
|
5826
|
+
* admit the moof in hand, and `evicted` counts the slots so displaced:
|
|
5827
|
+
* timing a stream declared and never delivered shows up there. `pending`
|
|
5828
|
+
* sums every stream, so it can exceed `capacity`. Per repo policy this is
|
|
5829
|
+
* a producer-owned counter -- never infer budget state by parsing logs.
|
|
5696
5830
|
*/
|
|
5697
5831
|
get timingBudgetStats() {
|
|
5698
5832
|
return {
|
|
@@ -5703,6 +5837,14 @@ var MmtpContainerParser = class _MmtpContainerParser {
|
|
|
5703
5837
|
rejectedMovieFragments: this.#rejectedMovieFragments
|
|
5704
5838
|
};
|
|
5705
5839
|
}
|
|
5840
|
+
/** Recovered heads parked for FT=1 timing (BLO-53369). Survives dispose(). */
|
|
5841
|
+
get recoveredHeadsAwaitingTiming() {
|
|
5842
|
+
let pending = 0;
|
|
5843
|
+
for (const { awaitingTiming } of this.#timingStreams.values()) {
|
|
5844
|
+
for (const head of awaitingTiming) if (head.options?.recovered) pending++;
|
|
5845
|
+
}
|
|
5846
|
+
return { ...this.#recoveredHeadsAwaitingTiming, pending };
|
|
5847
|
+
}
|
|
5706
5848
|
get reorderStats() {
|
|
5707
5849
|
let bufferedFrames = this.#fecSequencer?.buffered ?? 0;
|
|
5708
5850
|
for (const { sequencer } of this.#sequencers.values()) bufferedFrames += sequencer.buffered;
|
|
@@ -5744,6 +5886,14 @@ var MmtpContainerParser = class _MmtpContainerParser {
|
|
|
5744
5886
|
fecReleaseRapAbove(packetId, catalogTrackName, ssId) {
|
|
5745
5887
|
return this.#fecSequencer?.rapAbove(packetId, catalogTrackName, ssId) ?? false;
|
|
5746
5888
|
}
|
|
5889
|
+
/** See FecReleaseSequencer.unsource. */
|
|
5890
|
+
unsourceFecRelease(packetId, catalogTrackName) {
|
|
5891
|
+
this.#fecSequencer?.unsource(packetId, catalogTrackName);
|
|
5892
|
+
}
|
|
5893
|
+
/** See FecReleaseSequencer.holdsRebuilt. */
|
|
5894
|
+
fecReleaseHoldsRebuilt(packetId, catalogTrackName) {
|
|
5895
|
+
return this.#fecSequencer?.holdsRebuilt(packetId, catalogTrackName) ?? false;
|
|
5896
|
+
}
|
|
5747
5897
|
/** Re-evaluate held gaps after FEC block state changed. */
|
|
5748
5898
|
pokeFecRelease(packetId, catalogTrackName) {
|
|
5749
5899
|
if (!this.#fecSequencer) return;
|
|
@@ -5876,7 +6026,7 @@ var MmtpContainerParser = class _MmtpContainerParser {
|
|
|
5876
6026
|
const now = Date.now();
|
|
5877
6027
|
for (const { awaitingTiming } of this.#timingStreams.values()) {
|
|
5878
6028
|
while (awaitingTiming.length > 0 && now - awaitingTiming[0].arrivedAt > timeoutMs) {
|
|
5879
|
-
awaitingTiming.shift();
|
|
6029
|
+
this.#leaveAwaitingTiming(awaitingTiming.shift(), "expired");
|
|
5880
6030
|
}
|
|
5881
6031
|
}
|
|
5882
6032
|
}
|
|
@@ -5994,11 +6144,16 @@ var MmtpContainerParser = class _MmtpContainerParser {
|
|
|
5994
6144
|
if (mpu.fragmentationIndicator !== 0 || mpu.fragmentCounter !== 0)
|
|
5995
6145
|
return this.#drop("fragment-unexpected-fragmentation");
|
|
5996
6146
|
const resolver2 = this.#timingResolver(streamKey, info.packetId, false);
|
|
5997
|
-
if (!resolver2) return this.#drop("fragment-no-resolver");
|
|
6147
|
+
if (!resolver2?.initialized) return this.#drop("fragment-no-resolver");
|
|
5998
6148
|
const pendingBefore = resolver2.pendingSampleCount;
|
|
5999
6149
|
const evictedBefore = resolver2.evictedSampleCount;
|
|
6000
|
-
const remaining = this.#maxPendingTimingSamples -
|
|
6001
|
-
const admitted = resolver2.addMovieFragment(
|
|
6150
|
+
const remaining = this.#maxPendingTimingSamples - resolver2.pendingSampleCount;
|
|
6151
|
+
const admitted = resolver2.addMovieFragment(
|
|
6152
|
+
mpu.mpuSequenceNumber,
|
|
6153
|
+
data,
|
|
6154
|
+
remaining,
|
|
6155
|
+
options?.recovered === true
|
|
6156
|
+
);
|
|
6002
6157
|
this.#pendingTimingSamples += resolver2.pendingSampleCount - pendingBefore;
|
|
6003
6158
|
this.#evictedTimingSamples += resolver2.evictedSampleCount - evictedBefore;
|
|
6004
6159
|
if (!admitted) {
|
|
@@ -6018,7 +6173,7 @@ var MmtpContainerParser = class _MmtpContainerParser {
|
|
|
6018
6173
|
};
|
|
6019
6174
|
}
|
|
6020
6175
|
if (fragmentType !== 2) return this.#drop("unknown-fragment-type");
|
|
6021
|
-
const resolver = this.#timingResolver(streamKey, info.packetId,
|
|
6176
|
+
const resolver = this.#timingResolver(streamKey, info.packetId, true);
|
|
6022
6177
|
if (!resolver) return this.#drop("mfu-no-resolver");
|
|
6023
6178
|
if (!Number.isSafeInteger(data.byteLength) || data.byteLength <= 0)
|
|
6024
6179
|
return this.#drop("mfu-empty-payload");
|
|
@@ -6039,6 +6194,7 @@ var MmtpContainerParser = class _MmtpContainerParser {
|
|
|
6039
6194
|
mpuSequenceNumber: mpu.mpuSequenceNumber,
|
|
6040
6195
|
movieFragmentSequenceNumber: mfuDuHeader.movieFragmentSequenceNumber,
|
|
6041
6196
|
sampleNumber: mfuDuHeader.sampleNumber,
|
|
6197
|
+
sequenceNumber: info.sequenceNumber,
|
|
6042
6198
|
arrivedAt: Date.now()
|
|
6043
6199
|
});
|
|
6044
6200
|
return this.#drop("mfu-sample-timing-missing");
|
|
@@ -6064,7 +6220,8 @@ var MmtpContainerParser = class _MmtpContainerParser {
|
|
|
6064
6220
|
info,
|
|
6065
6221
|
resolver,
|
|
6066
6222
|
options?.recovered === true,
|
|
6067
|
-
options?.fecSbn
|
|
6223
|
+
options?.fecSbn,
|
|
6224
|
+
options?.fecSbnFirst
|
|
6068
6225
|
);
|
|
6069
6226
|
if (deferred.record === void 0) this.#countDeferredOutcome(deferred.reason);
|
|
6070
6227
|
}
|
|
@@ -6157,7 +6314,8 @@ var MmtpContainerParser = class _MmtpContainerParser {
|
|
|
6157
6314
|
info,
|
|
6158
6315
|
resolver,
|
|
6159
6316
|
options?.recovered === true,
|
|
6160
|
-
options?.fecSbn
|
|
6317
|
+
options?.fecSbn,
|
|
6318
|
+
options?.fecSbnFirst
|
|
6161
6319
|
);
|
|
6162
6320
|
if (outcome.record !== void 0) return outcome.record;
|
|
6163
6321
|
return this.#drop(outcome.reason);
|
|
@@ -6177,7 +6335,7 @@ var MmtpContainerParser = class _MmtpContainerParser {
|
|
|
6177
6335
|
* attribution exists to keep readable. Leaving the choice at the call site
|
|
6178
6336
|
* is what keeps both true.
|
|
6179
6337
|
*/
|
|
6180
|
-
#emitCombinedSample(combined, info, resolver, recovered, fecSbn) {
|
|
6338
|
+
#emitCombinedSample(combined, info, resolver, recovered, fecSbn, fecSbnFirst) {
|
|
6181
6339
|
const timing = resolver.sampleTiming(
|
|
6182
6340
|
combined.mpuSequenceNumber,
|
|
6183
6341
|
combined.movieFragmentSequenceNumber,
|
|
@@ -6194,6 +6352,7 @@ var MmtpContainerParser = class _MmtpContainerParser {
|
|
|
6194
6352
|
);
|
|
6195
6353
|
if (!meta) return { reason: "combined-meta-build-failed" };
|
|
6196
6354
|
if (fecSbn !== void 0) meta.fecSbn = fecSbn;
|
|
6355
|
+
if (fecSbnFirst !== void 0) meta.fecSbnFirst = fecSbnFirst;
|
|
6197
6356
|
if (!resolver.consumeSample(
|
|
6198
6357
|
combined.mpuSequenceNumber,
|
|
6199
6358
|
combined.movieFragmentSequenceNumber,
|
|
@@ -6362,6 +6521,10 @@ var MmtpContainerParser = class _MmtpContainerParser {
|
|
|
6362
6521
|
}
|
|
6363
6522
|
this.#emitFrame(data, meta);
|
|
6364
6523
|
}
|
|
6524
|
+
/** Whether FT=1 metadata already names this sample, without claiming it. */
|
|
6525
|
+
hasAuthoredTimingFor(packetId, mpuSequenceNumber, movieFragmentSequenceNumber, sampleNumber, catalogTrackName) {
|
|
6526
|
+
return this.#timingResolver(this.#streamKey(packetId, catalogTrackName), packetId, false)?.sampleTiming(mpuSequenceNumber, movieFragmentSequenceNumber, sampleNumber) != null;
|
|
6527
|
+
}
|
|
6365
6528
|
/**
|
|
6366
6529
|
* Claim and return the authored timing for a recovered sample. Recovery does
|
|
6367
6530
|
* not pass through the ordinary `feed()` completion path, so it must retire
|
|
@@ -6423,6 +6586,9 @@ var MmtpContainerParser = class _MmtpContainerParser {
|
|
|
6423
6586
|
for (const { sequencer } of this.#sequencers.values()) sequencer.discard();
|
|
6424
6587
|
this.#sequencers.clear();
|
|
6425
6588
|
this.#fecSequencer?.discard();
|
|
6589
|
+
for (const { awaitingTiming } of this.#timingStreams.values()) {
|
|
6590
|
+
for (const head of awaitingTiming) this.#leaveAwaitingTiming(head, "discarded");
|
|
6591
|
+
}
|
|
6426
6592
|
this.#timingStreams.clear();
|
|
6427
6593
|
this.#pendingTimingSamples = 0;
|
|
6428
6594
|
this.#reliableMoqStartupGate.clear();
|
|
@@ -6441,10 +6607,23 @@ var MmtpContainerParser = class _MmtpContainerParser {
|
|
|
6441
6607
|
return resolver;
|
|
6442
6608
|
}
|
|
6443
6609
|
#awaitTiming(streamKey, head) {
|
|
6444
|
-
const
|
|
6445
|
-
if (!
|
|
6610
|
+
const state = this.#timingStreams.get(streamKey);
|
|
6611
|
+
if (!state) return;
|
|
6612
|
+
if (!head.options?.recovered) {
|
|
6613
|
+
const kept = state.awaitingTiming.filter((queued) => !queued.options?.recovered || queued.sequenceNumber !== head.sequenceNumber);
|
|
6614
|
+
this.#recoveredHeadsAwaitingTiming.superseded += state.awaitingTiming.length - kept.length;
|
|
6615
|
+
state.awaitingTiming = kept;
|
|
6616
|
+
}
|
|
6617
|
+
const awaitingTiming = state.awaitingTiming;
|
|
6446
6618
|
awaitingTiming.push(head);
|
|
6447
|
-
if (
|
|
6619
|
+
if (head.options?.recovered) this.#recoveredHeadsAwaitingTiming.held++;
|
|
6620
|
+
if (awaitingTiming.length > MAX_AWAITING_TIMING_HEADS) {
|
|
6621
|
+
this.#leaveAwaitingTiming(awaitingTiming.shift(), "expired");
|
|
6622
|
+
}
|
|
6623
|
+
}
|
|
6624
|
+
/** Count a recovered head leaving the queue other than by replay or its source copy. */
|
|
6625
|
+
#leaveAwaitingTiming(head, outcome) {
|
|
6626
|
+
if (head.options?.recovered) this.#recoveredHeadsAwaitingTiming[outcome]++;
|
|
6448
6627
|
}
|
|
6449
6628
|
/**
|
|
6450
6629
|
* Feed again the heads whose timing the FT=1 just admitted declares. That
|
|
@@ -6472,6 +6651,7 @@ var MmtpContainerParser = class _MmtpContainerParser {
|
|
|
6472
6651
|
const state = this.#timingStreams.get(streamKey);
|
|
6473
6652
|
if (!state) return;
|
|
6474
6653
|
this.#timingStreams.delete(streamKey);
|
|
6654
|
+
for (const head of state.awaitingTiming) this.#leaveAwaitingTiming(head, "discarded");
|
|
6475
6655
|
this.#pendingTimingSamples -= state.resolver.pendingSampleCount;
|
|
6476
6656
|
if (this.#pendingTimingSamples < 0) {
|
|
6477
6657
|
throw new Error("[MmtpContainerParser] pending timing sample accounting underflow");
|
|
@@ -6703,6 +6883,7 @@ function findAnnexBStart(data, offset) {
|
|
|
6703
6883
|
}
|
|
6704
6884
|
export {
|
|
6705
6885
|
MmtpContainerParser,
|
|
6886
|
+
authoredAdjacent,
|
|
6706
6887
|
isMfuKeyframeMetadata
|
|
6707
6888
|
};
|
|
6708
6889
|
//# sourceMappingURL=mmtp-container-parser.js.map
|