node-av 6.1.1 → 6.2.0-beta.10

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.
Files changed (94) hide show
  1. package/README.md +29 -0
  2. package/dist/api/audio-frame-buffer.d.ts +73 -1
  3. package/dist/api/audio-frame-buffer.js +127 -1
  4. package/dist/api/audio-frame-buffer.js.map +1 -1
  5. package/dist/api/bitstream-filter.d.ts +82 -4
  6. package/dist/api/bitstream-filter.js +197 -100
  7. package/dist/api/bitstream-filter.js.map +1 -1
  8. package/dist/api/decoder.d.ts +5 -0
  9. package/dist/api/decoder.js +12 -5
  10. package/dist/api/decoder.js.map +1 -1
  11. package/dist/api/demuxer.d.ts +10 -1
  12. package/dist/api/demuxer.js +114 -31
  13. package/dist/api/demuxer.js.map +1 -1
  14. package/dist/api/encoder-pool.d.ts +43 -1
  15. package/dist/api/encoder-pool.js +113 -9
  16. package/dist/api/encoder-pool.js.map +1 -1
  17. package/dist/api/encoder.d.ts +2 -0
  18. package/dist/api/encoder.js +105 -41
  19. package/dist/api/encoder.js.map +1 -1
  20. package/dist/api/filter-complex.d.ts +16 -10
  21. package/dist/api/filter-complex.js +129 -81
  22. package/dist/api/filter-complex.js.map +1 -1
  23. package/dist/api/filter-presets.d.ts +15 -1
  24. package/dist/api/filter-presets.js +23 -5
  25. package/dist/api/filter-presets.js.map +1 -1
  26. package/dist/api/filter.js +15 -6
  27. package/dist/api/filter.js.map +1 -1
  28. package/dist/api/fmp4-stream.d.ts +211 -4
  29. package/dist/api/fmp4-stream.js +550 -84
  30. package/dist/api/fmp4-stream.js.map +1 -1
  31. package/dist/api/hardware.js +4 -3
  32. package/dist/api/hardware.js.map +1 -1
  33. package/dist/api/index.d.ts +1 -0
  34. package/dist/api/index.js.map +1 -1
  35. package/dist/api/io-stream.js +61 -5
  36. package/dist/api/io-stream.js.map +1 -1
  37. package/dist/api/muxer.d.ts +13 -0
  38. package/dist/api/muxer.js +82 -19
  39. package/dist/api/muxer.js.map +1 -1
  40. package/dist/api/pipeline.d.ts +122 -0
  41. package/dist/api/pipeline.js +25 -7
  42. package/dist/api/pipeline.js.map +1 -1
  43. package/dist/api/rtp-stream.d.ts +146 -1
  44. package/dist/api/rtp-stream.js +533 -125
  45. package/dist/api/rtp-stream.js.map +1 -1
  46. package/dist/api/scaler.d.ts +102 -16
  47. package/dist/api/scaler.js +316 -106
  48. package/dist/api/scaler.js.map +1 -1
  49. package/dist/api/types.d.ts +17 -0
  50. package/dist/api/types.js +2 -0
  51. package/dist/api/types.js.map +1 -0
  52. package/dist/api/utilities/async-queue.d.ts +3 -0
  53. package/dist/api/utilities/async-queue.js +8 -0
  54. package/dist/api/utilities/async-queue.js.map +1 -1
  55. package/dist/api/webrtc-stream.d.ts +17 -10
  56. package/dist/api/webrtc-stream.js +117 -24
  57. package/dist/api/webrtc-stream.js.map +1 -1
  58. package/dist/api/whisper.d.ts +2 -0
  59. package/dist/api/whisper.js +63 -23
  60. package/dist/api/whisper.js.map +1 -1
  61. package/dist/ffmpeg/install.js +115 -29
  62. package/dist/ffmpeg/install.js.map +1 -1
  63. package/dist/lib/binding.d.ts +1 -0
  64. package/dist/lib/binding.js.map +1 -1
  65. package/dist/lib/codec-context.d.ts +0 -2
  66. package/dist/lib/codec-context.js +4 -22
  67. package/dist/lib/codec-context.js.map +1 -1
  68. package/dist/lib/filter-context.d.ts +0 -1
  69. package/dist/lib/filter-context.js +2 -11
  70. package/dist/lib/filter-context.js.map +1 -1
  71. package/dist/lib/format-context.d.ts +45 -4
  72. package/dist/lib/format-context.js +50 -16
  73. package/dist/lib/format-context.js.map +1 -1
  74. package/dist/lib/frame.d.ts +12 -12
  75. package/dist/lib/frame.js +13 -20
  76. package/dist/lib/frame.js.map +1 -1
  77. package/dist/lib/hardware-frames-context.d.ts +0 -1
  78. package/dist/lib/hardware-frames-context.js +2 -8
  79. package/dist/lib/hardware-frames-context.js.map +1 -1
  80. package/dist/lib/native-types.d.ts +2 -2
  81. package/dist/lib/option.d.ts +26 -0
  82. package/dist/lib/option.js +42 -18
  83. package/dist/lib/option.js.map +1 -1
  84. package/dist/lib/packet.d.ts +7 -1
  85. package/dist/lib/packet.js +9 -2
  86. package/dist/lib/packet.js.map +1 -1
  87. package/dist/lib/stream.d.ts +3 -4
  88. package/dist/lib/stream.js +17 -24
  89. package/dist/lib/stream.js.map +1 -1
  90. package/dist/webrtc/index.d.ts +1 -0
  91. package/dist/webrtc/index.js.map +1 -1
  92. package/install/check.js +26 -63
  93. package/package.json +36 -19
  94. package/build_mac_local.sh +0 -69
@@ -1 +1 @@
1
- {"version":3,"file":"scaler.js","sourceRoot":"","sources":["../../src/api/scaler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scaler.js","sourceRoot":"","sources":["../../src/api/scaler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,YAAY,GACb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAmFxC,MAAM,gBAAgB,GAA6C;IACjE,GAAG,EAAE,gBAAgB;IACrB,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,eAAe;IACrB,OAAO,EAAE,kBAAkB;CAC5B,CAAC;AA4DF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,OAAO,MAAM;IACT,MAAM,CAAe;IACrB,UAAU,CAAgB;IAC1B,UAAU,GAAG,IAAI,KAAK,EAAE,CAAC;IACzB,QAAQ,CAA0B;IAClC,KAAK,CAAW;IAChB,YAAY,CAAS;IACrB,MAAM,GAAG,IAAI,GAAG,EAAwB,CAAC;IACzC,QAAQ,CAAwC;IAChD,OAAO,CAAsC;IAC7C,QAAQ,GAAG,KAAK,CAAC;IAEzB;;;;;;;;;OASG;IACH,YAAY,UAAyB,EAAE;QACrC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,YAAY,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;QAC/C,IAAI,CAAC,MAAM,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,KAAK,CAAC,QAAQ,CAAC,KAAY,EAAE,UAAwB,EAAE;QACrD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC;YACtB,2EAA2E;YAC3E,yEAAyE;YACzE,iCAAiC;YACjC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC;gBAC9F,IAAI,CAAC;oBACH,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACxB,CAAC;wBAAS,CAAC;oBACT,GAAG,CAAC,IAAI,EAAE,CAAC;gBACb,CAAC;YACH,CAAC;YACD,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAChD,IAAI,CAAC;gBACH,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAC/C,CAAC;oBAAS,CAAC;gBACT,EAAE,CAAC,IAAI,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,YAAY,CAAC,KAAY,EAAE,UAAwB,EAAE;QACnD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC;YACtB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC;gBAC5F,IAAI,CAAC;oBACH,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACxB,CAAC;wBAAS,CAAC;oBACT,GAAG,CAAC,IAAI,EAAE,CAAC;gBACb,CAAC;YACH,CAAC;YACD,MAAM,EAAE,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;YAC9C,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC;YACnE,CAAC;oBAAS,CAAC;gBACT,EAAE,CAAC,IAAI,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,KAAK,CAAC,MAAM,CAAC,KAAY,EAAE,UAAuB,EAAE;QAClD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QACtC,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACrG,IAAI,CAAC;YACH,8EAA8E;YAC9E,4BAA4B;YAC5B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC7F,IAAI,CAAC;gBACH,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBACpC,OAAO,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC9C,CAAC;oBAAS,CAAC;gBACT,GAAG,CAAC,IAAI,EAAE,CAAC;YACb,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,UAAU,EAAE,IAAI,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,UAAU,CAAC,KAAY,EAAE,UAAuB,EAAE;QAChD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QACtC,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACnG,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,IAAI,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC3F,IAAI,CAAC;gBACH,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBACpC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC5C,CAAC;oBAAS,CAAC;gBACT,GAAG,CAAC,IAAI,EAAE,CAAC;YACb,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,UAAU,EAAE,IAAI,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,KAAK,CAAC,KAAK,CAAC,KAAY,EAAE,UAAsB,EAAE;QAChD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;QACvC,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACrG,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC1F,IAAI,CAAC;gBACH,OAAO,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7C,CAAC;oBAAS,CAAC;gBACT,GAAG,CAAC,IAAI,EAAE,CAAC;YACb,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,UAAU,EAAE,IAAI,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,SAAS,CAAC,KAAY,EAAE,UAAsB,EAAE;QAC9C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;QACvC,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACnG,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,IAAI,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACxF,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC3C,CAAC;oBAAS,CAAC;gBACT,GAAG,CAAC,IAAI,EAAE,CAAC;YACb,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,UAAU,EAAE,IAAI,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK;QACH,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAErB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAE5B,6EAA6E;QAC7E,0EAA0E;QAC1E,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACzC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAEpB,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAE1B,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACK,KAAK,CAAC,kBAAkB,CAAC,KAAY;QAC3C,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACpD,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,GAAG,CAAC,IAAI,EAAE,CAAC;QACb,CAAC;QACD,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,mCAAmC,CAAC,CAAC;QACnE,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;;;;;;OAUG;IACK,sBAAsB,CAAC,KAAY;QACzC,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,MAAM,GAAG,GAAG,KAAK,CAAC,uBAAuB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAClD,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,GAAG,CAAC,IAAI,EAAE,CAAC;QACb,CAAC;QACD,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,mCAAmC,CAAC,CAAC;QACnE,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACK,KAAK,CAAC,aAAa,CAAC,KAAY,EAAE,OAAqB;QAC7D,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1F,CAAC;IAED;;;;;;;;;;OAUG;IACK,aAAa;QACnB,IAAI,CAAC,UAAU,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACK,KAAK,CAAC,OAAO,CAAC,KAAY,EAAE,IAA4B,EAAE,MAAgC,EAAE,MAAyB;QAC3H,4EAA4E;QAC5E,4EAA4E;QAC5E,oDAAoD;QACpD,SAAS,CAAC;YACR,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAC9C,CAAC;YAED,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAC3D,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;YAE3B,yEAAyE;YACzE,4DAA4D;YAC5D,KAAK,CAAC,IAAI,EAAE,CAAC;YACb,IAAI,CAAC;gBACH,0EAA0E;gBAC1E,wEAAwE;gBACxE,uCAAuC;gBACvC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;oBAC1C,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;wBAClB,OAAO,IAAI,CAAC,CAAC,qDAAqD;oBACpE,CAAC;oBACD,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;oBAC9B,IAAI,CAAC;wBACH,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;wBAClC,IAAI,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;wBAC5C,IAAI,CAAC,CAAC,QAAQ,YAAY,KAAK,CAAC,EAAE,CAAC;4BACjC,4EAA4E;4BAC5E,2EAA2E;4BAC3E,yEAAyE;4BACzE,yEAAyE;4BACzE,kEAAkE;4BAClE,MAAM,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;4BAC3B,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;4BACxC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;wBAC9B,CAAC;wBACD,IAAI,CAAC,CAAC,QAAQ,YAAY,KAAK,CAAC,EAAE,CAAC;4BACjC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;wBACtD,CAAC;wBACD,OAAO,QAAQ,CAAC;oBAClB,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,qEAAqE;wBACrE,oDAAoD;wBACpD,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;wBAC5B,MAAM,KAAK,CAAC;oBACd,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,IAAI,GAAG,EAAE,CAAC;oBACR,OAAO,GAAG,CAAC;gBACb,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACK,WAAW,CAAC,KAAY,EAAE,IAA4B,EAAE,MAAgC,EAAE,MAAyB;QACzH,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC3D,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;QAE3B,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC;YACH,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACrC,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC,EAAE,CAAC;gBAC5B,0EAA0E;gBAC1E,iDAAiD;gBACjD,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACzB,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBACjC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC9B,CAAC;YACD,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACtD,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC5B,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,gBAAgB,CAAC,KAAY,EAAE,GAAkB;QACvD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACzJ,IAAI,CAAC;YACH,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,GAAG,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YAC/B,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC,EAAE,CAAC;gBAC5B,MAAM,CAAC,SAAS,EAAE,CAAC;gBACnB,GAAG,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YAC7B,CAAC;YACD,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACtD,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACK,YAAY,CAAC,KAAY,EAAE,IAA4B,EAAE,MAAgC,EAAE,MAAyB;QAC1H,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QAC/B,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;QAChG,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,EAAE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;QAC3C,MAAM,KAAK,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;QAE3B,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YACtH,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,OAAO,KAAK,WAAW,KAAK,YAAY,KAAK,0BAA0B,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,QAAQ,CAAC,CAAC;QAC7J,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,EAAE,KAAK,IAAI,KAAK,CAAC;QACpC,MAAM,IAAI,GAAG,MAAM,EAAE,MAAM,IAAI,KAAK,CAAC;QAErC,+EAA+E;QAC/E,iFAAiF;QACjF,8EAA8E;QAC9E,qEAAqE;QACrE,MAAM,WAAW,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,QAAS,CAAC,UAAU,KAAK,uBAAuB,CAAC;QACnF,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAClC,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;QAE7I,MAAM,UAAU,GAAe,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAEnF,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,4EAA4E;YAC5E,uEAAuE;YACvE,sEAAsE;YACtE,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC7I,KAAK,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YACzJ,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,oBAAoB;YACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACjF,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACK,YAAY,CAAC,GAAkB,EAAE,KAAY;QACnD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;QAEnE,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC;QAC1B,MAAM,UAAU,GAAG,GAAG,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC;QAC7H,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;QACzB,MAAM,WAAW,GAAG,WAAW,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;QAEvH,IAAI,UAAU,IAAI,CAAC,WAAW,IAAI,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC;YAChD,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACvI,KAAK,CAAC,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAChG,CAAC;aAAM,IAAI,WAAW,EAAE,CAAC;YACvB,8EAA8E;YAC9E,gFAAgF;YAChF,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7D,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9D,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACzD,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACzD,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QAC3E,CAAC;QAED,KAAK,CAAC,OAAO,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;IACrF,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,UAAU,CAAC,GAAW,EAAE,KAAmB;QACjD,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED;;;;;;;;;OASG;IACK,WAAW,CAAC,KAAmB;QACrC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;QACrB,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACrB,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,YAAY,CAAC,KAAmB;QACtC,KAAK,CAAC,IAAI,EAAE,CAAC;QACb,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACtC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,CAAC;IACH,CAAC;IAED;;;;;;;;;;;OAWG;IACK,gBAAgB,CAAC,KAAY,EAAE,OAAe;QACpD,KAAK,CAAC,UAAU,GAAG,gBAAgB,CAAC;QACpC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAChF,KAAK,CAAC,OAAO,GAAG,MAAM,GAAG,YAAY,CAAC;IACxC,CAAC;IAED;;;;;;OAMG;IACK,WAAW;QACjB,IAAI,CAAC,QAAQ,KAAK,IAAI,WAAW,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC,CAAC;QACjH,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;;;;OAMG;IACK,UAAU;QAChB,IAAI,CAAC,OAAO,KAAK,IAAI,WAAW,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACjF,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACK,UAAU,CAAC,IAAa,EAAE,IAAY,EAAE,IAAY,EAAE,MAAyB,EAAE,IAAgB,EAAE,WAAoB;QAC7H,IAAI,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACjE,IAAI,WAAW,EAAE,CAAC;YAChB,uEAAuE;YACvE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;QACnF,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9D,CAAC;QACD,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAChC,IAAI,IAAI,EAAE,CAAC;YACT,8EAA8E;YAC9E,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAChF,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAED;;;;;;;;OAQG;IACK,QAAQ,CAAC,GAAW,EAAE,KAAmB;QAC/C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAC/C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,MAAM;YACR,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC3B,IAAI,OAAO,EAAE,CAAC;gBACZ,qEAAqE;gBACrE,4BAA4B;gBAC5B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,CAAC,MAAM,CAAC,OAAO,CAAC;QACd,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;CACF"}
@@ -0,0 +1,17 @@
1
+ import type { Frame } from '../lib/frame.js';
2
+ /**
3
+ * Pre-composited frame sources for the streaming classes (`RTPStream`,
4
+ * `WebRTCStream`, {@link FMP4Stream}).
5
+ *
6
+ * Use this instead of a URL/`Demuxer` to stream already-decoded/filtered frames
7
+ * (e.g. a picture-in-picture composite from `FilterComplexAPI`). Provide a
8
+ * `video` and/or `audio` async iterable of frames; each is encoded and sent to
9
+ * the output. There is no input codec, so the frames are always encoded (no
10
+ * passthrough).
11
+ */
12
+ export interface MediaFrameSource {
13
+ /** Video frame source (encoded to the class's video target codec). */
14
+ video?: AsyncIterable<Frame | null>;
15
+ /** Audio frame source (encoded to the class's audio target codec). */
16
+ audio?: AsyncIterable<Frame | null>;
17
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":""}
@@ -64,6 +64,9 @@ export declare class AsyncQueue<T> {
64
64
  * Sends an item to the queue.
65
65
  *
66
66
  * If the queue is full, this method blocks (awaits) until space is available.
67
+ * If the queue was closed cleanly, the item is not enqueued but is passed to
68
+ * the disposeItem callback (if any) so owned native resources don't leak on
69
+ * teardown races.
67
70
  * If the queue was closed with an error, throws that error.
68
71
  *
69
72
  * @param item Item to send
@@ -82,6 +82,9 @@ export class AsyncQueue {
82
82
  * Sends an item to the queue.
83
83
  *
84
84
  * If the queue is full, this method blocks (awaits) until space is available.
85
+ * If the queue was closed cleanly, the item is not enqueued but is passed to
86
+ * the disposeItem callback (if any) so owned native resources don't leak on
87
+ * teardown races.
85
88
  * If the queue was closed with an error, throws that error.
86
89
  *
87
90
  * @param item Item to send
@@ -101,6 +104,9 @@ export class AsyncQueue {
101
104
  throw this.error;
102
105
  }
103
106
  if (this.closed) {
107
+ // Queue ownership was offered but can't be taken - dispose instead of
108
+ // silently dropping, or the item leaks when the consumer already left.
109
+ this.disposeItem?.(item);
104
110
  return;
105
111
  }
106
112
  // Block if queue full
@@ -112,6 +118,8 @@ export class AsyncQueue {
112
118
  }
113
119
  }
114
120
  if (this.closed) {
121
+ // Closed while waiting for space - same as above
122
+ this.disposeItem?.(item);
115
123
  return;
116
124
  }
117
125
  this.queue.push(item);
@@ -1 +1 @@
1
- {"version":3,"file":"async-queue.js","sourceRoot":"","sources":["../../../src/api/utilities/async-queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"async-queue.js","sourceRoot":"","sources":["../../../src/api/utilities/async-queue.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { RTCRtpCodecParameters } from 'werift';
2
2
  import type { AVCodecID } from '../constants/index.js';
3
3
  import type { Demuxer } from './demuxer.js';
4
4
  import type { RTPStreamOptions } from './rtp-stream.js';
5
+ import type { MediaFrameSource } from './types.js';
5
6
  /**
6
7
  * Codec information for WebRTC streaming.
7
8
  *
@@ -112,6 +113,8 @@ export declare class WebRTCStream {
112
113
  private audioTrack;
113
114
  private options;
114
115
  private pendingIceCandidates;
116
+ private frameSource?;
117
+ private stopping;
115
118
  /**
116
119
  * @param options - Session configuration options
117
120
  *
@@ -151,29 +154,31 @@ export declare class WebRTCStream {
151
154
  * });
152
155
  * ```
153
156
  */
154
- static create(input: string | Demuxer, options?: WebRTCStreamOptions): WebRTCStream;
157
+ static create(input: string | Demuxer | MediaFrameSource, options?: WebRTCStreamOptions): WebRTCStream;
155
158
  /**
156
- * Start streaming media to WebRTC peer connection.
159
+ * Start streaming media to the WebRTC peer connection.
157
160
  *
158
161
  * Begins the media processing pipeline, reading packets from input,
159
- * transcoding if necessary, and sending RTP packets to media tracks.
160
- * Note: The stream is automatically started by {@link setOffer}, so calling
161
- * this method explicitly is optional. This method is provided for cases where
162
- * you need explicit control over when streaming begins.
162
+ * transcoding if necessary, and sending RTP packets to the media tracks.
163
+ * {@link setOffer} calls this automatically after negotiating, so calling it
164
+ * explicitly is optional. It is idempotent - a useful pattern for demuxer
165
+ * inputs is calling `start()` *before* `setOffer()` so the input is open and
166
+ * its actual codecs are advertised in the answer.
163
167
  *
164
- * @returns Promise that resolves when streaming completes
168
+ * @returns Promise that resolves once streaming has started (runs in the background)
165
169
  *
166
170
  * @throws {FFmpegError} If transcoding or muxing fails
167
171
  *
168
172
  * @example
169
173
  * ```typescript
170
- * const session = await WebRTCStream.create('input.mp4');
171
- * session.onIceCandidate = (c) => sendToRemote(c);
174
+ * const session = WebRTCStream.create('rtsp://camera.local/stream');
172
175
  *
176
+ * await session.start(); // open input so getCodecs() sees the real codecs
173
177
  * const answer = await session.setOffer(remoteOffer);
174
178
  * sendToRemote(answer);
175
- * // Stream is already started by setOffer
176
179
  * ```
180
+ *
181
+ * @see {@link setOffer} Which starts the stream automatically after negotiation
177
182
  */
178
183
  start(): Promise<void>;
179
184
  /**
@@ -220,6 +225,8 @@ export declare class WebRTCStream {
220
225
  * processes the remote SDP offer, and generates a local SDP answer.
221
226
  * Also configures ICE candidate handling via `onIceCandidate` callback in options.
222
227
  * Must be called before {@link start}.
228
+ * Calling it again renegotiates: the previous peer connection is closed and
229
+ * replaced by a new one built from the new offer, while streaming continues.
223
230
  *
224
231
  * @param offerSdp - SDP offer string from remote WebRTC peer
225
232
  *
@@ -1,6 +1,6 @@
1
1
  import { MediaStreamTrack, RTCIceCandidate, RTCPeerConnection, RTCRtpCodecParameters, RTCSessionDescription } from 'werift';
2
2
  import { AV_CODEC_ID_AV1, AV_CODEC_ID_H264, AV_CODEC_ID_HEVC, AV_CODEC_ID_OPUS, AV_CODEC_ID_PCM_ALAW, AV_CODEC_ID_PCM_MULAW, AV_CODEC_ID_VP8, AV_CODEC_ID_VP9, } from '../constants/constants.js';
3
- import { RTPStream } from './rtp-stream.js';
3
+ import { isMediaFrameSource, RTPStream } from './rtp-stream.js';
4
4
  /**
5
5
  * Complete WebRTC session management with werift integration.
6
6
  *
@@ -69,6 +69,8 @@ export class WebRTCStream {
69
69
  audioTrack = null;
70
70
  options;
71
71
  pendingIceCandidates = [];
72
+ frameSource;
73
+ stopping = false;
72
74
  /**
73
75
  * @param options - Session configuration options
74
76
  *
@@ -117,6 +119,11 @@ export class WebRTCStream {
117
119
  */
118
120
  static create(input, options = {}) {
119
121
  const session = new WebRTCStream(options);
122
+ // Remember a frame source so negotiation can advertise the encoder's target
123
+ // codecs (there's no input stream to read a codec from).
124
+ if (isMediaFrameSource(input)) {
125
+ session.frameSource = input;
126
+ }
120
127
  // Create stream with WebRTC-specific codec support
121
128
  session.stream = RTPStream.create(input, {
122
129
  video: options.video,
@@ -138,27 +145,29 @@ export class WebRTCStream {
138
145
  return session;
139
146
  }
140
147
  /**
141
- * Start streaming media to WebRTC peer connection.
148
+ * Start streaming media to the WebRTC peer connection.
142
149
  *
143
150
  * Begins the media processing pipeline, reading packets from input,
144
- * transcoding if necessary, and sending RTP packets to media tracks.
145
- * Note: The stream is automatically started by {@link setOffer}, so calling
146
- * this method explicitly is optional. This method is provided for cases where
147
- * you need explicit control over when streaming begins.
151
+ * transcoding if necessary, and sending RTP packets to the media tracks.
152
+ * {@link setOffer} calls this automatically after negotiating, so calling it
153
+ * explicitly is optional. It is idempotent - a useful pattern for demuxer
154
+ * inputs is calling `start()` *before* `setOffer()` so the input is open and
155
+ * its actual codecs are advertised in the answer.
148
156
  *
149
- * @returns Promise that resolves when streaming completes
157
+ * @returns Promise that resolves once streaming has started (runs in the background)
150
158
  *
151
159
  * @throws {FFmpegError} If transcoding or muxing fails
152
160
  *
153
161
  * @example
154
162
  * ```typescript
155
- * const session = await WebRTCStream.create('input.mp4');
156
- * session.onIceCandidate = (c) => sendToRemote(c);
163
+ * const session = WebRTCStream.create('rtsp://camera.local/stream');
157
164
  *
165
+ * await session.start(); // open input so getCodecs() sees the real codecs
158
166
  * const answer = await session.setOffer(remoteOffer);
159
167
  * sendToRemote(answer);
160
- * // Stream is already started by setOffer
161
168
  * ```
169
+ *
170
+ * @see {@link setOffer} Which starts the stream automatically after negotiation
162
171
  */
163
172
  async start() {
164
173
  await this.stream.start();
@@ -180,12 +189,26 @@ export class WebRTCStream {
180
189
  * ```
181
190
  */
182
191
  async stop() {
183
- await this.stream.stop();
184
- this.pc?.close();
185
- this.videoTrack = null;
186
- this.audioTrack = null;
187
- this.pc = null;
188
- this.pendingIceCandidates = [];
192
+ if (this.stopping) {
193
+ return;
194
+ }
195
+ this.stopping = true;
196
+ try {
197
+ await this.stream.stop();
198
+ try {
199
+ await this.pc?.close();
200
+ }
201
+ catch {
202
+ // Peer connection may already be closed.
203
+ }
204
+ this.videoTrack = null;
205
+ this.audioTrack = null;
206
+ this.pc = null;
207
+ this.pendingIceCandidates = [];
208
+ }
209
+ finally {
210
+ this.stopping = false;
211
+ }
189
212
  }
190
213
  /**
191
214
  * Get detected codec information.
@@ -207,6 +230,15 @@ export class WebRTCStream {
207
230
  * ```
208
231
  */
209
232
  getCodecs() {
233
+ // Frame source: no input stream - advertise the encoder's target codecs
234
+ // (RTPStream's frame path encodes video to H264 and audio to OPUS), gated on
235
+ // which frame streams are present.
236
+ if (this.frameSource) {
237
+ return {
238
+ video: this.frameSource.video ? this.getVideoCodecConfig(AV_CODEC_ID_H264) : undefined,
239
+ audio: this.frameSource.audio ? this.getAudioCodecConfig(AV_CODEC_ID_OPUS) : undefined,
240
+ };
241
+ }
210
242
  const input = this.stream.getInput();
211
243
  if (!input) {
212
244
  return {
@@ -239,6 +271,8 @@ export class WebRTCStream {
239
271
  * processes the remote SDP offer, and generates a local SDP answer.
240
272
  * Also configures ICE candidate handling via `onIceCandidate` callback in options.
241
273
  * Must be called before {@link start}.
274
+ * Calling it again renegotiates: the previous peer connection is closed and
275
+ * replaced by a new one built from the new offer, while streaming continues.
242
276
  *
243
277
  * @param offerSdp - SDP offer string from remote WebRTC peer
244
278
  *
@@ -262,6 +296,23 @@ export class WebRTCStream {
262
296
  * ```
263
297
  */
264
298
  async setOffer(offerSdp) {
299
+ // Renegotiation: dispose any previous peer connection first. Left alive, its
300
+ // connectionstatechange handler would later report 'failed'/'closed' and tear
301
+ // down the new session via stop(). Buffered candidates belong to the old ICE
302
+ // session, so drop them too.
303
+ if (this.pc) {
304
+ const oldPc = this.pc;
305
+ this.pc = null;
306
+ this.videoTrack = null;
307
+ this.audioTrack = null;
308
+ this.pendingIceCandidates = [];
309
+ try {
310
+ await oldPc.close();
311
+ }
312
+ catch {
313
+ // Old connection may already be gone - proceed with the new one.
314
+ }
315
+ }
265
316
  const codecs = this.getCodecs();
266
317
  const videoConfig = codecs.video ?? {
267
318
  mimeType: 'video/H264',
@@ -289,22 +340,44 @@ export class WebRTCStream {
289
340
  }),
290
341
  ],
291
342
  };
292
- this.pc = new RTCPeerConnection({
343
+ const pc = new RTCPeerConnection({
293
344
  codecs: codecParams,
294
345
  iceServers: this.options.iceServers,
295
346
  });
347
+ this.pc = pc;
348
+ // Tear down when the peer goes away. werift verifies ICE consent (RFC 7675)
349
+ // and reports 'failed' once the browser disconnects (tab closed/reloaded) -
350
+ // without this, the pipeline would keep encoding into the void forever.
351
+ pc.connectionStateChange.subscribe((state) => {
352
+ // Ignore stale events from a connection that was replaced by a newer
353
+ // setOffer() - they must not tear down the current session.
354
+ if (this.pc !== pc) {
355
+ return;
356
+ }
357
+ if ((state === 'failed' || state === 'closed') && !this.stopping) {
358
+ this.stop().catch(() => {
359
+ // Best-effort teardown - errors already surface via onClose(error).
360
+ });
361
+ }
362
+ });
296
363
  // Setup ICE candidate handling
297
- this.pc.onIceCandidate.subscribe((candidate) => {
364
+ pc.onIceCandidate.subscribe((candidate) => {
298
365
  if (candidate?.candidate && this.options.onIceCandidate) {
299
366
  this.options.onIceCandidate(candidate.candidate);
300
367
  }
301
368
  });
302
369
  // Setup tracks
303
- this.pc.onRemoteTransceiverAdded.subscribe(async (transceiver) => {
370
+ pc.onRemoteTransceiverAdded.subscribe(async (transceiver) => {
304
371
  if (transceiver.kind === 'video') {
305
372
  this.videoTrack = new MediaStreamTrack({ kind: 'video' });
306
373
  transceiver.sender.replaceTrack(this.videoTrack);
307
374
  transceiver.setDirection('sendonly');
375
+ // Answer PLI feedback with a fresh keyframe - a receiver that connected
376
+ // after the stream started (or lost packets) can't decode until the next
377
+ // IDR, and it asks for one via RTCP PLI.
378
+ transceiver.sender.onPictureLossIndication.subscribe(() => {
379
+ this.stream.requestVideoKeyframe();
380
+ });
308
381
  }
309
382
  else if (transceiver.kind === 'audio' && this.audioTrack === null) {
310
383
  this.audioTrack = new MediaStreamTrack({ kind: 'audio' });
@@ -331,17 +404,37 @@ export class WebRTCStream {
331
404
  }
332
405
  });
333
406
  // Set remote description and create answer
334
- await this.pc.setRemoteDescription(new RTCSessionDescription(offerSdp, 'offer'));
335
- const answer = await this.pc.createAnswer();
336
- this.pc.setLocalDescription(answer);
407
+ await pc.setRemoteDescription(new RTCSessionDescription(offerSdp, 'offer'));
408
+ // The sender transmits with the FIRST negotiated codec, and browsers offer
409
+ // several H264 variants (packetization-mode=1 and =0). FFmpeg's RTP payloader
410
+ // fragments large NALs (FU-A), which is invalid under packetization-mode=0 -
411
+ // if that entry happened to be first, the receiver would silently discard
412
+ // every fragmented (key)frame. Prefer a packetization-mode=1 H264 entry.
413
+ for (const transceiver of pc.getTransceivers()) {
414
+ if (transceiver.kind !== 'video') {
415
+ continue;
416
+ }
417
+ transceiver.codecs = [...transceiver.codecs].sort((a, b) => {
418
+ const score = (codec) => codec.mimeType.toLowerCase() === 'video/h264' && !(codec.parameters ?? '').includes('packetization-mode=1') ? 1 : 0;
419
+ return score(a) - score(b);
420
+ });
421
+ }
422
+ const answer = await pc.createAnswer();
423
+ // Must be awaited: localDescription is only complete afterwards, and an
424
+ // un-awaited rejection would otherwise be unhandled.
425
+ await pc.setLocalDescription(answer);
337
426
  // Apply any buffered ICE candidates now that remote description is set
338
427
  if (this.pendingIceCandidates.length > 0) {
339
428
  for (const candidate of this.pendingIceCandidates) {
340
- this.pc.addIceCandidate(new RTCIceCandidate({ candidate }));
429
+ pc.addIceCandidate(new RTCIceCandidate({ candidate }));
341
430
  }
342
431
  this.pendingIceCandidates = [];
343
432
  }
344
- return this.pc.localDescription?.sdp ?? '';
433
+ // Start streaming - negotiation is done and the tracks exist, so the caller
434
+ // doesn't have to sequence start() themselves. Idempotent: calling start()
435
+ // before setOffer() (e.g. to have the input open for codec detection) is fine.
436
+ await this.start();
437
+ return pc.localDescription?.sdp ?? '';
345
438
  }
346
439
  /**
347
440
  * Add ICE candidate from remote peer.
@@ -1 +1 @@
1
- {"version":3,"file":"webrtc-stream.js","sourceRoot":"","sources":["../../src/api/webrtc-stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webrtc-stream.js","sourceRoot":"","sources":["../../src/api/webrtc-stream.ts"],"names":[],"mappings":"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"}
@@ -245,6 +245,8 @@ export declare class WhisperTranscriber implements Disposable {
245
245
  * Reads metadata directly from frame metadata tags (lavfi.whisper.text, lavfi.whisper.duration).
246
246
  *
247
247
  * The generator continues until the input stream ends or close() is called.
248
+ * When the input ends, the filter is flushed so audio still buffered in the
249
+ * whisper queue is transcribed before the generator finishes.
248
250
  * Always use with `for await...of` to properly handle async iteration.
249
251
  *
250
252
  * @param frames - Audio frames (from Decoder.frames()) or single frame to transcribe
@@ -50,6 +50,7 @@ var __disposeResources = (this && this.__disposeResources) || (function (Suppres
50
50
  var e = new Error(message);
51
51
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
52
52
  });
53
+ import { AV_NOPTS_VALUE } from '../constants/constants.js';
53
54
  import { FilterPreset } from './filter-presets.js';
54
55
  import { FilterAPI } from './filter.js';
55
56
  import { WhisperDownloader } from './utilities/whisper-model.js';
@@ -205,6 +206,8 @@ export class WhisperTranscriber {
205
206
  * Reads metadata directly from frame metadata tags (lavfi.whisper.text, lavfi.whisper.duration).
206
207
  *
207
208
  * The generator continues until the input stream ends or close() is called.
209
+ * When the input ends, the filter is flushed so audio still buffered in the
210
+ * whisper queue is transcribed before the generator finishes.
208
211
  * Always use with `for await...of` to properly handle async iteration.
209
212
  *
210
213
  * @param frames - Audio frames (from Decoder.frames()) or single frame to transcribe
@@ -271,11 +274,36 @@ export class WhisperTranscriber {
271
274
  allowReinit: true,
272
275
  dropOnChange: false,
273
276
  }), false);
274
- // Track cumulative time for start/end timestamps
275
- let cumulativeTime = 0; // in milliseconds
276
- const filterGenerator = filter.frames(frames);
277
+ // Fallback clock for frames without usable timestamps (in milliseconds)
278
+ let fallbackEnd = 0;
279
+ const toSegment = (frame) => {
280
+ const metadata = frame.getMetadata();
281
+ const text = metadata.get('lavfi.whisper.text');
282
+ const durationStr = metadata.get('lavfi.whisper.duration');
283
+ if (!text?.trim()) {
284
+ return null;
285
+ }
286
+ // Parse duration (in seconds)
287
+ const duration = durationStr ? parseFloat(durationStr) * 1000 : 0;
288
+ // The whisper filter attaches its result to the frame that triggered the
289
+ // transcription, so that frame's timestamp marks (approximately) the end
290
+ // of the transcribed chunk. Deriving start/end from the frame PTS keeps
291
+ // segments aligned with the actual audio position; a counter that only
292
+ // advances on chunks that produced text would silently swallow every
293
+ // silent span and drift (e.g. a 60s intro would put the first segment
294
+ // at start 0).
295
+ const tb = frame.timeBase;
296
+ const frameTime = frame.pts !== AV_NOPTS_VALUE && tb.den !== 0 ? (Number(frame.pts) * 1000 * tb.num) / tb.den : null;
297
+ const end = frameTime ?? fallbackEnd + duration;
298
+ fallbackEnd = end;
299
+ return {
300
+ start: Math.max(0, end - duration),
301
+ end,
302
+ text: text.trim(),
303
+ };
304
+ };
277
305
  // Decode and process frames through filter
278
- for await (const frame_1 of filterGenerator) {
306
+ for await (const frame_1 of filter.frames(frames)) {
279
307
  const env_2 = { stack: [], error: void 0, hasError: false };
280
308
  try {
281
309
  const frame = __addDisposableResource(env_2, frame_1, false);
@@ -285,23 +313,9 @@ export class WhisperTranscriber {
285
313
  if (!frame?.isAudio()) {
286
314
  continue;
287
315
  }
288
- // Get frame metadata
289
- const metadata = frame.getMetadata();
290
- const text = metadata.get('lavfi.whisper.text');
291
- const durationStr = metadata.get('lavfi.whisper.duration');
292
- if (text?.trim()) {
293
- // Parse duration (in seconds)
294
- const duration = durationStr ? parseFloat(durationStr) * 1000 : 0;
295
- // Yield transcribed segment
296
- yield {
297
- start: cumulativeTime,
298
- end: cumulativeTime + duration,
299
- text: text.trim(),
300
- };
301
- // Update cumulative time
302
- if (duration > 0) {
303
- cumulativeTime += duration;
304
- }
316
+ const segment = toSegment(frame);
317
+ if (segment) {
318
+ yield segment;
305
319
  }
306
320
  }
307
321
  catch (e_1) {
@@ -312,9 +326,35 @@ export class WhisperTranscriber {
312
326
  __disposeResources(env_2);
313
327
  }
314
328
  }
329
+ // Inputs that end without a trailing null never flush the filter, and the
330
+ // whisper queue (up to `queue` seconds of buffered audio) would be
331
+ // destroyed with it. Drain explicitly; after an upstream EOF this second
332
+ // flush is a no-op.
333
+ if (!this.isClosed) {
334
+ for await (const frame_2 of filter.flushFrames()) {
335
+ const env_3 = { stack: [], error: void 0, hasError: false };
336
+ try {
337
+ const frame = __addDisposableResource(env_3, frame_2, false);
338
+ if (!frame.isAudio()) {
339
+ continue;
340
+ }
341
+ const segment = toSegment(frame);
342
+ if (segment) {
343
+ yield segment;
344
+ }
345
+ }
346
+ catch (e_2) {
347
+ env_3.error = e_2;
348
+ env_3.hasError = true;
349
+ }
350
+ finally {
351
+ __disposeResources(env_3);
352
+ }
353
+ }
354
+ }
315
355
  }
316
- catch (e_2) {
317
- env_1.error = e_2;
356
+ catch (e_3) {
357
+ env_1.error = e_3;
318
358
  env_1.hasError = true;
319
359
  }
320
360
  finally {