node-av 1.0.3 → 1.2.0

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 (162) hide show
  1. package/README.md +56 -41
  2. package/dist/api/bitstream-filter.d.ts +180 -123
  3. package/dist/api/bitstream-filter.js +182 -126
  4. package/dist/api/bitstream-filter.js.map +1 -1
  5. package/dist/api/decoder.d.ts +286 -130
  6. package/dist/api/decoder.js +321 -159
  7. package/dist/api/decoder.js.map +1 -1
  8. package/dist/api/encoder.d.ts +254 -158
  9. package/dist/api/encoder.js +326 -298
  10. package/dist/api/encoder.js.map +1 -1
  11. package/dist/api/filter-presets.d.ts +912 -0
  12. package/dist/api/filter-presets.js +1407 -0
  13. package/dist/api/filter-presets.js.map +1 -0
  14. package/dist/api/filter.d.ts +280 -284
  15. package/dist/api/filter.js +435 -509
  16. package/dist/api/filter.js.map +1 -1
  17. package/dist/api/hardware.d.ts +226 -159
  18. package/dist/api/hardware.js +405 -287
  19. package/dist/api/hardware.js.map +1 -1
  20. package/dist/api/index.d.ts +3 -2
  21. package/dist/api/index.js +1 -0
  22. package/dist/api/index.js.map +1 -1
  23. package/dist/api/io-stream.d.ts +65 -61
  24. package/dist/api/io-stream.js +45 -47
  25. package/dist/api/io-stream.js.map +1 -1
  26. package/dist/api/media-input.d.ts +244 -141
  27. package/dist/api/media-input.js +207 -104
  28. package/dist/api/media-input.js.map +1 -1
  29. package/dist/api/media-output.d.ts +206 -128
  30. package/dist/api/media-output.js +212 -129
  31. package/dist/api/media-output.js.map +1 -1
  32. package/dist/api/pipeline.d.ts +168 -38
  33. package/dist/api/pipeline.js +238 -14
  34. package/dist/api/pipeline.js.map +1 -1
  35. package/dist/api/types.d.ts +22 -182
  36. package/dist/api/utilities/audio-sample.d.ts +1 -1
  37. package/dist/api/utilities/image.d.ts +1 -1
  38. package/dist/api/utilities/media-type.d.ts +1 -1
  39. package/dist/api/utilities/pixel-format.d.ts +1 -1
  40. package/dist/api/utilities/sample-format.d.ts +1 -1
  41. package/dist/api/utilities/timestamp.d.ts +1 -1
  42. package/dist/api/utils.d.ts +1 -2
  43. package/dist/api/utils.js +9 -0
  44. package/dist/api/utils.js.map +1 -1
  45. package/dist/{lib → constants}/channel-layouts.d.ts +1 -1
  46. package/dist/constants/channel-layouts.js.map +1 -0
  47. package/dist/{lib → constants}/constants.d.ts +19 -4
  48. package/dist/{lib → constants}/constants.js +15 -1
  49. package/dist/constants/constants.js.map +1 -0
  50. package/dist/constants/decoders.d.ts +609 -0
  51. package/dist/constants/decoders.js +617 -0
  52. package/dist/constants/decoders.js.map +1 -0
  53. package/dist/constants/encoders.d.ts +285 -0
  54. package/dist/constants/encoders.js +298 -0
  55. package/dist/constants/encoders.js.map +1 -0
  56. package/dist/constants/index.d.ts +4 -0
  57. package/dist/constants/index.js +5 -0
  58. package/dist/constants/index.js.map +1 -0
  59. package/dist/index.d.ts +1 -0
  60. package/dist/index.js +2 -0
  61. package/dist/index.js.map +1 -1
  62. package/dist/lib/audio-fifo.d.ts +128 -171
  63. package/dist/lib/audio-fifo.js +130 -173
  64. package/dist/lib/audio-fifo.js.map +1 -1
  65. package/dist/lib/binding.d.ts +7 -5
  66. package/dist/lib/binding.js +5 -0
  67. package/dist/lib/binding.js.map +1 -1
  68. package/dist/lib/bitstream-filter-context.d.ts +139 -184
  69. package/dist/lib/bitstream-filter-context.js +139 -188
  70. package/dist/lib/bitstream-filter-context.js.map +1 -1
  71. package/dist/lib/bitstream-filter.d.ts +69 -55
  72. package/dist/lib/bitstream-filter.js +68 -54
  73. package/dist/lib/bitstream-filter.js.map +1 -1
  74. package/dist/lib/codec-context.d.ts +317 -381
  75. package/dist/lib/codec-context.js +316 -381
  76. package/dist/lib/codec-context.js.map +1 -1
  77. package/dist/lib/codec-parameters.d.ts +161 -171
  78. package/dist/lib/codec-parameters.js +162 -172
  79. package/dist/lib/codec-parameters.js.map +1 -1
  80. package/dist/lib/codec-parser.d.ts +92 -105
  81. package/dist/lib/codec-parser.js +92 -103
  82. package/dist/lib/codec-parser.js.map +1 -1
  83. package/dist/lib/codec.d.ts +328 -217
  84. package/dist/lib/codec.js +392 -218
  85. package/dist/lib/codec.js.map +1 -1
  86. package/dist/lib/dictionary.d.ts +150 -204
  87. package/dist/lib/dictionary.js +159 -213
  88. package/dist/lib/dictionary.js.map +1 -1
  89. package/dist/lib/error.d.ts +97 -131
  90. package/dist/lib/error.js +98 -128
  91. package/dist/lib/error.js.map +1 -1
  92. package/dist/lib/filter-context.d.ts +317 -194
  93. package/dist/lib/filter-context.js +335 -200
  94. package/dist/lib/filter-context.js.map +1 -1
  95. package/dist/lib/filter-graph.d.ts +252 -293
  96. package/dist/lib/filter-graph.js +253 -294
  97. package/dist/lib/filter-graph.js.map +1 -1
  98. package/dist/lib/filter-inout.d.ts +87 -95
  99. package/dist/lib/filter-inout.js +87 -95
  100. package/dist/lib/filter-inout.js.map +1 -1
  101. package/dist/lib/filter.d.ts +93 -111
  102. package/dist/lib/filter.js +94 -112
  103. package/dist/lib/filter.js.map +1 -1
  104. package/dist/lib/format-context.d.ts +321 -429
  105. package/dist/lib/format-context.js +314 -386
  106. package/dist/lib/format-context.js.map +1 -1
  107. package/dist/lib/frame.d.ts +263 -406
  108. package/dist/lib/frame.js +263 -408
  109. package/dist/lib/frame.js.map +1 -1
  110. package/dist/lib/hardware-device-context.d.ts +150 -204
  111. package/dist/lib/hardware-device-context.js +149 -203
  112. package/dist/lib/hardware-device-context.js.map +1 -1
  113. package/dist/lib/hardware-frames-context.d.ts +171 -181
  114. package/dist/lib/hardware-frames-context.js +171 -181
  115. package/dist/lib/hardware-frames-context.js.map +1 -1
  116. package/dist/lib/index.d.ts +2 -3
  117. package/dist/lib/index.js +2 -5
  118. package/dist/lib/index.js.map +1 -1
  119. package/dist/lib/input-format.d.ts +90 -118
  120. package/dist/lib/input-format.js +89 -117
  121. package/dist/lib/input-format.js.map +1 -1
  122. package/dist/lib/io-context.d.ts +210 -242
  123. package/dist/lib/io-context.js +221 -253
  124. package/dist/lib/io-context.js.map +1 -1
  125. package/dist/lib/log.d.ts +86 -120
  126. package/dist/lib/log.js +85 -122
  127. package/dist/lib/log.js.map +1 -1
  128. package/dist/lib/native-types.d.ts +127 -112
  129. package/dist/lib/native-types.js +9 -0
  130. package/dist/lib/native-types.js.map +1 -1
  131. package/dist/lib/option.d.ts +285 -242
  132. package/dist/lib/option.js +310 -250
  133. package/dist/lib/option.js.map +1 -1
  134. package/dist/lib/output-format.d.ts +78 -102
  135. package/dist/lib/output-format.js +77 -101
  136. package/dist/lib/output-format.js.map +1 -1
  137. package/dist/lib/packet.d.ts +173 -241
  138. package/dist/lib/packet.js +172 -241
  139. package/dist/lib/packet.js.map +1 -1
  140. package/dist/lib/rational.d.ts +0 -2
  141. package/dist/lib/rational.js +0 -2
  142. package/dist/lib/rational.js.map +1 -1
  143. package/dist/lib/software-resample-context.d.ts +242 -326
  144. package/dist/lib/software-resample-context.js +242 -326
  145. package/dist/lib/software-resample-context.js.map +1 -1
  146. package/dist/lib/software-scale-context.d.ts +130 -174
  147. package/dist/lib/software-scale-context.js +132 -176
  148. package/dist/lib/software-scale-context.js.map +1 -1
  149. package/dist/lib/stream.d.ts +88 -198
  150. package/dist/lib/stream.js +87 -197
  151. package/dist/lib/stream.js.map +1 -1
  152. package/dist/lib/types.d.ts +1 -1
  153. package/dist/lib/utilities.d.ts +372 -181
  154. package/dist/lib/utilities.js +373 -182
  155. package/dist/lib/utilities.js.map +1 -1
  156. package/install/check.js +0 -1
  157. package/package.json +32 -24
  158. package/release_notes.md +43 -13
  159. package/CHANGELOG.md +0 -8
  160. package/dist/lib/channel-layouts.js.map +0 -1
  161. package/dist/lib/constants.js.map +0 -1
  162. /package/dist/{lib → constants}/channel-layouts.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"filter.js","sourceRoot":"","sources":["../../src/api/filter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,WAAW,EACX,sBAAsB,EACtB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,KAAK,EACL,MAAM,IAAI,cAAc,EACxB,WAAW,IAAI,mBAAmB,EAClC,WAAW,IAAI,mBAAmB,EAClC,MAAM,GACP,MAAM,iBAAiB,CAAC;AAoCzB;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,OAAO,SAAS;IACZ,KAAK,CAAsB;IAC3B,YAAY,GAAiC,IAAI,CAAC;IAClD,aAAa,GAAiC,IAAI,CAAC;IACnD,MAAM,CAAe;IACrB,SAAS,CAAc;IACvB,WAAW,GAAG,KAAK,CAAC;IACpB,aAAa,GAAG,KAAK,CAAC,CAAC,yCAAyC;IAChE,QAAQ,CAA0B,CAAC,uCAAuC;IAC1E,WAAW,CAAmD,CAAC,mBAAmB;IAE1F;;;;;;;;;OASG;IACH,YAAoB,MAAoB,EAAE,QAAiC;QACzE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC;QACnF,IAAI,CAAC,KAAK,GAAG,IAAI,mBAAmB,EAAE,CAAC;IACzC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,WAAmB,EAAE,KAA0B,EAAE,UAAyB,EAAE;QAC9F,IAAI,MAAoB,CAAC;QAEzB,IAAI,KAAK,YAAY,MAAM,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,KAAK,kBAAkB,EAAE,CAAC;gBACpD,MAAM,GAAG;oBACP,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK;oBAC3B,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM;oBAC7B,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAuB;oBACnD,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,SAAS,EAAE,KAAK,CAAC,UAAU;oBAC3B,iBAAiB,EAAE,KAAK,CAAC,QAAQ,CAAC,iBAAiB;iBACpD,CAAC;YACJ,CAAC;iBAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,KAAK,kBAAkB,EAAE,CAAC;gBAC3D,MAAM,GAAG;oBACP,IAAI,EAAE,OAAO;oBACb,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU;oBACrC,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAwB;oBACrD,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI;oBAChD,QAAQ,EAAE,KAAK,CAAC,QAAQ;iBACzB,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC3B,MAAM,GAAG;oBACP,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;iBAC3C,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG;oBACP,IAAI,EAAE,OAAO;oBACb,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,aAAa,EAAE,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE;oBAC7G,QAAQ,EAAE,KAAK,CAAC,QAAQ;iBACzB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEvD,yEAAyE;QACzE,wEAAwE;QACxE,oEAAoE;QACpE,MAAM,WAAW,GAAG,WAAW;aAC5B,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,oDAAoD;YACpD,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAChD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACjC,CAAC,CAAC;aACD,MAAM,CAAC,OAAO,CAAC,CAAC;QAEnB,qEAAqE;QACrE,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;QACxE,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QACpE,iCAAiC;QACjC,IAAI,0BAA0B,GAAG,KAAK,CAAC;QACvC,IAAI,mBAAmB,GAAG,KAAK,CAAC;QAEhC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,IAAI,CAAC,UAAU;gBAAE,SAAS;YAE1B,MAAM,cAAc,GAAG,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YAC5D,IAAI,cAAc,EAAE,CAAC;gBACnB,sCAAsC;gBACtC,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC1D,mBAAmB,GAAG,IAAI,CAAC;oBAC3B,6DAA6D;oBAC7D,IAAI,UAAU,KAAK,UAAU,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;wBAC7D,0BAA0B,GAAG,IAAI,CAAC;oBACpC,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,0EAA0E;QAC1E,MAAM,CAAC,aAAa,GAAG,aAAa,IAAI,CAAC,0BAA0B,IAAI,CAAC,WAAW,CAAC,CAAC;QAErF,wDAAwD;QACxD,IAAI,mBAAmB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,wDAAwD,GAAG,yCAAyC,CAAC,CAAC;QACxH,CAAC;QAED,yCAAyC;QACzC,4FAA4F;QAC5F,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,CAAC;YACvF,qBAAqB;YACrB,IAAI,OAAO,CAAC,QAAQ,EAAE,aAAa,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC/D,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;YACtD,CAAC;YACD,MAAM,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC9C,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,oFAAoF;YACpF,MAAM,CAAC,WAAW,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;QAChD,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,KAAK,CAAC,OAAO,CAAC,KAAY;QACxB,mCAAmC;QACnC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1C,oDAAoD;YACpD,IAAI,IAAI,CAAC,QAAQ,EAAE,aAAa,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACjE,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;gBACtD,iEAAiE;gBACjE,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACvB,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC;gBACnE,CAAC;gBACD,wBAAwB;gBACxB,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBAC9E,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;gBAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YAC1B,CAAC;iBAAM,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;YACxF,CAAC;iBAAM,CAAC;gBACN,+DAA+D;gBAC/D,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBAC9E,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;gBAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QAED,uBAAuB;QACvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAChE,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;QAElE,4BAA4B;QAC5B,MAAM,WAAW,GAAG,IAAI,KAAK,EAAE,CAAC;QAChC,WAAW,CAAC,KAAK,EAAE,CAAC;QAEpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAExE,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YAChB,OAAO,WAAW,CAAC;QACrB,CAAC;aAAM,IAAI,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,CAAC;YAClD,kBAAkB;YAClB,WAAW,CAAC,IAAI,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,IAAI,EAAE,CAAC;YACnB,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE,iCAAiC,CAAC,CAAC;YACpE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,eAAe,CAAC,MAAe;QACnC,MAAM,YAAY,GAAY,EAAE,CAAC;QAEjC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACzC,IAAI,MAAM,EAAE,CAAC;gBACX,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5B,CAAC;YAED,8BAA8B;YAC9B,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;gBACxC,IAAI,CAAC,UAAU;oBAAE,MAAM;gBACvB,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;QAC1B,KAAK,CAAC,KAAK,EAAE,CAAC;QAEd,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAE/D,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACf,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,EAAE,CAAC;YACb,IAAI,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,CAAC,IAAI,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,CAAC;gBAC5E,OAAO,IAAI,CAAC;YACd,CAAC;YACD,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,qCAAqC,CAAC,CAAC;YACrE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,CAAC;YACjD,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,CAAC,CAAC,WAAW;QAChB,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QAED,oBAAoB;QACpB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAEnB,6BAA6B;QAC7B,IAAI,KAAK,CAAC;QACV,OAAO,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;YAC/C,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,KAAK,CAAC,CAAC,MAAM,CAAC,MAA6B;QACzC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,sBAAsB;gBACtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACzC,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,MAAM,CAAC;gBACf,CAAC;gBAED,4BAA4B;gBAC5B,OAAO,IAAI,EAAE,CAAC;oBACZ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;oBACtC,IAAI,CAAC,QAAQ;wBAAE,MAAM;oBACrB,MAAM,QAAQ,CAAC;gBACjB,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,wCAAwC;gBACxC,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,CAAC;QACH,CAAC;QAED,iCAAiC;QACjC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACvC,IAAI,CAAC,SAAS;gBAAE,MAAM;YACtB,MAAM,SAAS,CAAC;QAClB,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,mBAAmB;QACjB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC;IACvF,CAAC;IAED;;;;OAIG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;;;;;;;;;OAWG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,UAAU,CAAC,WAAmB,EAAE,OAAsB;QAClE,iBAAiB;QACjB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAEnB,sBAAsB;QACtB,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;QACzC,CAAC;QAED,2BAA2B;QAC3B,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACjD,CAAC;QAED,uBAAuB;QACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,qBAAqB;QACrB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,2BAA2B;QAC3B,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;QAEzC,oEAAoE;QACpE,IAAI,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YACnC,IAAI,OAAO,EAAE,CAAC;gBACZ,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;oBAChC,qDAAqD;oBACrD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;oBAChC,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC5D,6CAA6C;wBAC7C,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;oBACtD,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,sBAAsB;QACtB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACtC,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,kCAAkC,CAAC,CAAC;QAElE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACK,kBAAkB;QACxB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QACvE,MAAM,YAAY,GAAG,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,mBAAmB,CAAC,CAAC;QACpD,CAAC;QAED,qDAAqD;QACrD,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QAE5E,IAAI,WAAW,EAAE,CAAC;YAChB,8DAA8D;YAC9D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YAC/D,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACtD,CAAC;YAED,iEAAiE;YACjE,MAAM,WAAW,GAAG,IAAI,CAAC,MAA2B,CAAC;YACrD,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAAC;gBACnD,KAAK,EAAE,WAAW,CAAC,KAAK;gBACxB,MAAM,EAAE,WAAW,CAAC,MAAM;gBAC1B,MAAM,EAAE,WAAW,CAAC,WAAW;gBAC/B,QAAQ,EAAE,WAAW,CAAC,QAAQ;gBAC9B,SAAS,EAAE,WAAW,CAAC,SAAS;gBAChC,iBAAiB,EAAE,WAAW,CAAC,iBAAiB;gBAChD,WAAW,EAAE,WAAW,CAAC,WAAW;aACrC,CAAC,CAAC;YACH,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,qEAAqE,CAAC,CAAC;YAErG,6CAA6C;YAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,oCAAoC,CAAC,CAAC;QAC1E,CAAC;aAAM,CAAC;YACN,kDAAkD;YAClD,IAAI,IAAY,CAAC;YACjB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACjC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;gBACxB,IAAI,GAAG,cAAc,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,YAAY,GAAG,CAAC,WAAW,cAAc,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;gBAE5H,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;oBAClB,IAAI,IAAI,eAAe,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;gBAClE,CAAC;gBAED,IAAI,GAAG,CAAC,iBAAiB,EAAE,CAAC;oBAC1B,IAAI,IAAI,iBAAiB,GAAG,CAAC,iBAAiB,CAAC,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC;gBACpF,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;gBACxB,wCAAwC;gBACxC,MAAM,aAAa,GAAG,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBAC3D,+DAA+D;gBAC/D,MAAM,aAAa,GAAG,GAAG,CAAC,aAAa,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;gBACzF,IAAI,GAAG,eAAe,GAAG,CAAC,UAAU,eAAe,aAAa,mBAAmB,aAAa,cAAc,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;YACvJ,CAAC;YAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACtE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,gBAAgB;QACtB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC;QAC/E,MAAM,UAAU,GAAG,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,mBAAmB,CAAC,CAAC;QACpD,CAAC;QAED,sDAAsD;QACtD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,sBAAsB,CAAC,WAAmB;QAChD,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,qCAAqC;QACrC,IAAI,CAAC,WAAW,IAAI,WAAW,KAAK,MAAM,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;YACtE,qCAAqC;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;YAC7D,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,+BAA+B,CAAC,CAAC;YAC/D,OAAO;QACT,CAAC;QAED,wCAAwC;QACxC,MAAM,OAAO,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC1C,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QACpB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QAEnB,MAAM,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAC;QACzC,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;QACpB,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;QACtC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAElB,yBAAyB;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9D,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,oCAAoC,CAAC,CAAC;QAEpE,kCAAkC;QAClC,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,EAAE,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,WAAW,CAAC,MAAc,EAAE,GAAW,EAAE,GAAW,EAAE,KAAuB;QAC3E,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAE/D,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;QACpE,CAAC;QAED,OAAQ,MAAc,CAAC,QAAQ,CAAC;IAClC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,YAAY,CAAC,MAAc,EAAE,GAAW,EAAE,GAAW,EAAE,EAAU,EAAE,KAAuB;QACxF,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QACjE,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,gCAAgC,CAAC,CAAC;IAClE,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,CAAC,MAAM,CAAC,OAAO,CAAC;QACd,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;CACF;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,aAAa;IACxB;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,KAAa,EAAE,MAAc,EAAE,KAAc;QACxD,MAAM,IAAI,GAAG,SAAS,KAAK,IAAI,MAAM,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,KAAa,EAAE,MAAc,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;QACrD,OAAO,QAAQ,KAAK,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,GAAW;QACpB,OAAO,OAAO,GAAG,EAAE,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,WAAmC;QAC/C,MAAM,UAAU,GAAG,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC,CAAC;QAC/G,OAAO,UAAU,UAAU,EAAE,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,KAAa;QACzB,OAAO,UAAU,KAAK,SAAS,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK;QACV,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK;QACV,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,IAAkB,EAAE,KAAa,EAAE,QAAgB;QAC7D,OAAO,UAAU,IAAI,OAAO,KAAK,MAAM,QAAQ,EAAE,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;QACzB,OAAO,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,MAAc;QAC1B,OAAO,UAAU,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,OAAO,CAAC,YAAqC,EAAE,UAAmB,EAAE,aAAsB;QAC/F,MAAM,UAAU,GAAG,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,CAAC;QACjH,IAAI,MAAM,GAAG,uBAAuB,UAAU,EAAE,CAAC;QACjD,IAAI,UAAU;YAAE,MAAM,IAAI,iBAAiB,UAAU,EAAE,CAAC;QACxD,IAAI,aAAa;YAAE,MAAM,IAAI,oBAAoB,aAAa,EAAE,CAAC;QACjE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,MAAc;QAC1B,OAAO,UAAU,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,IAAkB,EAAE,KAAa,EAAE,QAAgB;QAC9D,OAAO,WAAW,IAAI,OAAO,KAAK,MAAM,QAAQ,EAAE,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,WAA6C,SAAS;QAC5E,OAAO,eAAe,MAAM,aAAa,QAAQ,EAAE,CAAC;IACtD,CAAC;CACF"}
1
+ {"version":3,"file":"filter.js","sourceRoot":"","sources":["../../src/api/filter.ts"],"names":[],"mappings":"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"}
@@ -1,64 +1,58 @@
1
+ import { Codec, HardwareDeviceContext } from '../lib/index.js';
2
+ import { HardwareFilterPresets } from './filter-presets.js';
3
+ import type { AVCodecID, AVHWDeviceType, AVPixelFormat } from '../constants/index.js';
4
+ import type { BaseCodecName, HardwareOptions } from './types.js';
1
5
  /**
2
- * HardwareContext - High-level Hardware Acceleration API
6
+ * High-level hardware acceleration management.
3
7
  *
4
- * Provides simplified access to hardware acceleration features.
5
- * Automatically detects and configures hardware devices for encoding/decoding.
6
- *
7
- * Wraps the low-level HardwareDeviceContext and HardwareFramesContext.
8
- * Manages lifecycle of hardware resources with automatic cleanup.
9
- *
10
- * @module api/hardware
11
- */
12
- import { HardwareDeviceContext, HardwareFramesContext } from '../lib/index.js';
13
- import type { AVCodecID, AVHWDeviceType, AVPixelFormat } from '../lib/index.js';
14
- import type { HardwareOptions } from './types.js';
15
- /**
16
- * HardwareContext - Simplified hardware acceleration management.
17
- *
18
- * Provides automatic detection and configuration of hardware acceleration.
19
- * Manages device contexts and frame contexts for hardware encoding/decoding.
20
- *
21
- * Supports various hardware types including VideoToolbox (macOS), CUDA,
22
- * VAAPI (Linux), D3D11VA/D3D12VA (Windows), and more.
8
+ * Provides automatic detection and configuration of hardware acceleration for media processing.
9
+ * Manages device contexts for GPU-accelerated encoding and decoding operations.
10
+ * Supports various hardware types including VideoToolbox, CUDA, VAAPI, D3D11VA, and more.
11
+ * Essential for high-performance video processing with reduced CPU usage.
23
12
  *
24
13
  * @example
25
14
  * ```typescript
26
15
  * import { HardwareContext } from 'node-av/api';
16
+ * import { AV_HWDEVICE_TYPE_CUDA } from 'node-av/constants';
27
17
  *
28
18
  * // Auto-detect best available hardware
29
- * const hw = await HardwareContext.auto();
19
+ * const hw = HardwareContext.auto();
30
20
  * if (hw) {
31
- * console.log(`Using hardware: ${hw.deviceType}`);
32
- * decoder.hwDeviceCtx = hw.deviceContext;
21
+ * console.log(`Using hardware: ${hw.deviceTypeName}`);
22
+ * const decoder = await Decoder.create(stream, { hardware: hw });
33
23
  * }
24
+ * ```
34
25
  *
35
- * // Use specific hardware
36
- * const cuda = await HardwareContext.create(AV_HWDEVICE_TYPE_CUDA);
37
- * encoder.hwDeviceCtx = cuda.deviceContext;
38
- *
39
- * // Clean up when done
40
- * hw?.dispose();
26
+ * @example
27
+ * ```typescript
28
+ * // Use specific hardware type
29
+ * const cuda = HardwareContext.create(AV_HWDEVICE_TYPE_CUDA);
30
+ * const encoder = await Encoder.create('h264_nvenc', streamInfo, {
31
+ * hardware: cuda
32
+ * });
41
33
  * cuda.dispose();
42
34
  * ```
35
+ *
36
+ * @see {@link Decoder} For hardware-accelerated decoding
37
+ * @see {@link Encoder} For hardware-accelerated encoding
38
+ * @see {@link HardwareFilterPresets} For hardware filter operations
43
39
  */
44
40
  export declare class HardwareContext implements Disposable {
41
+ /**
42
+ * Hardware-specific filter presets for this device.
43
+ * Provides convenient filter builders for hardware-accelerated operations.
44
+ */
45
+ readonly filterPresets: HardwareFilterPresets;
45
46
  private _deviceContext;
46
- private _framesContext?;
47
47
  private _deviceType;
48
- private _deviceName?;
48
+ private _deviceTypeName;
49
49
  private _devicePixelFormat;
50
50
  private _isDisposed;
51
- private waitingComponents;
52
51
  /**
53
- * Create a new HardwareContext instance.
54
- *
55
- * Private constructor - use HardwareContext.create() or HardwareContext.auto() to create instances.
56
- *
57
- * Stores the device context and type for later use.
58
- *
59
52
  * @param deviceContext - Initialized hardware device context
60
- * @param deviceType - Hardware device type
61
- * @param deviceName - Optional device name/identifier
53
+ * @param deviceType - Hardware device type enum
54
+ * @param deviceTypeName - Human-readable device type name
55
+ * @internal
62
56
  */
63
57
  private constructor();
64
58
  /**
@@ -66,54 +60,77 @@ export declare class HardwareContext implements Disposable {
66
60
  *
67
61
  * Tries hardware types in order of preference based on platform.
68
62
  * Returns null if no hardware acceleration is available.
69
- *
70
- * Platform-specific preferences:
71
- * - macOS: VideoToolbox
72
- * - Windows: D3D12VA, D3D11VA, DXVA2, QSV, CUDA
73
- * - Linux: VAAPI, VDPAU, CUDA, Vulkan, DRM
63
+ * Platform-specific preference order ensures optimal performance.
74
64
  *
75
65
  * @param options - Optional hardware configuration
76
- *
77
- * @returns Promise resolving to HardwareContext or null
66
+ * @returns Hardware context or null if unavailable
78
67
  *
79
68
  * @example
80
69
  * ```typescript
81
- * const hw = await HardwareContext.auto();
70
+ * const hw = HardwareContext.auto();
82
71
  * if (hw) {
83
72
  * console.log(`Auto-detected: ${hw.deviceTypeName}`);
73
+ * // Use for decoder/encoder
84
74
  * }
85
75
  * ```
76
+ *
77
+ * @example
78
+ * ```typescript
79
+ * // With specific device
80
+ * const hw = HardwareContext.auto({
81
+ * deviceName: '/dev/dri/renderD128'
82
+ * });
83
+ * ```
84
+ *
85
+ * @see {@link create} For specific hardware type
86
+ * @see {@link listAvailable} To check available types
86
87
  */
87
- static auto(options?: HardwareOptions): Promise<HardwareContext | null>;
88
+ static auto(options?: HardwareOptions): HardwareContext | null;
88
89
  /**
89
90
  * Create a hardware context for a specific device type.
90
91
  *
91
- * Creates and initializes a hardware device context using FFmpeg's
92
- * av_hwdevice_ctx_create() internally.
92
+ * Creates and initializes a hardware device context.
93
+ * Throws if the device type is not supported or initialization fails.
93
94
  *
94
- * @param device - Device type name (e.g., AV_HWDEVICE_TYPE_CUDA, AV_HWDEVICE_TYPE_VAAPI, AV_HWDEVICE_TYPE_VIDEOTOOLBOX)
95
- * @param deviceName - Optional device name/index
95
+ * Direct mapping to av_hwdevice_ctx_create().
96
+ *
97
+ * @param deviceType - Hardware device type from AVHWDeviceType
98
+ * @param device - Optional device specifier (e.g., GPU index, device path)
96
99
  * @param options - Optional device initialization options
100
+ * @returns Initialized hardware context
97
101
  *
98
- * @returns Promise resolving to HardwareContext
102
+ * @throws {Error} If device type unsupported or initialization fails
99
103
  *
100
- * @throws {Error} If device type is not supported or initialization fails
104
+ * @example
105
+ * ```typescript
106
+ * import { AV_HWDEVICE_TYPE_CUDA } from 'node-av/constants';
107
+ *
108
+ * // CUDA with specific GPU
109
+ * const cuda = HardwareContext.create(AV_HWDEVICE_TYPE_CUDA, '0');
110
+ * ```
101
111
  *
102
112
  * @example
103
113
  * ```typescript
104
- * // Create CUDA context
105
- * const cuda = await HardwareContext.create(AV_HWDEVICE_TYPE_CUDA, '0');
114
+ * import { AV_HWDEVICE_TYPE_VAAPI } from 'node-av/constants';
106
115
  *
107
- * // Create VAAPI context
108
- * const vaapi = await HardwareContext.create(AV_HWDEVICE_TYPE_VAAPI, '/dev/dri/renderD128');
116
+ * // VAAPI with render device
117
+ * const vaapi = HardwareContext.create(
118
+ * AV_HWDEVICE_TYPE_VAAPI,
119
+ * '/dev/dri/renderD128'
120
+ * );
109
121
  * ```
122
+ *
123
+ * @see {@link auto} For automatic detection
124
+ * @see {@link HardwareDeviceContext} For low-level API
110
125
  */
111
- static create(device: AVHWDeviceType, deviceName?: string, options?: Record<string, string>): Promise<HardwareContext>;
126
+ static create(deviceType: AVHWDeviceType, device?: string, options?: Record<string, string>): HardwareContext;
112
127
  /**
113
128
  * List all available hardware device types.
114
129
  *
115
- * Uses av_hwdevice_iterate_types() internally to enumerate
116
- * all hardware types supported by the FFmpeg build.
130
+ * Enumerates all hardware types supported by the FFmpeg build.
131
+ * Useful for checking hardware capabilities at runtime.
132
+ *
133
+ * Direct mapping to av_hwdevice_iterate_types().
117
134
  *
118
135
  * @returns Array of available device type names
119
136
  *
@@ -121,198 +138,248 @@ export declare class HardwareContext implements Disposable {
121
138
  * ```typescript
122
139
  * const available = HardwareContext.listAvailable();
123
140
  * console.log('Available hardware:', available.join(', '));
141
+ * // Output: "cuda, vaapi, videotoolbox"
124
142
  * ```
143
+ *
144
+ * @see {@link auto} For automatic selection
125
145
  */
126
146
  static listAvailable(): string[];
127
147
  /**
128
148
  * Get the hardware device context.
129
149
  *
130
- * This can be assigned to CodecContext.hwDeviceCtx for hardware acceleration.
150
+ * Used internally by encoders and decoders for hardware acceleration.
151
+ * Can be assigned to CodecContext.hwDeviceCtx.
131
152
  *
132
- * @returns Hardware device context
153
+ * @example
154
+ * ```typescript
155
+ * codecContext.hwDeviceCtx = hw.deviceContext;
156
+ * ```
133
157
  */
134
158
  get deviceContext(): HardwareDeviceContext;
135
- /**
136
- * Get the hardware frames context.
137
- *
138
- * Created on-demand when needed for frame allocation.
139
- *
140
- * @returns Hardware frames context or undefined
141
- */
142
- get framesContext(): HardwareFramesContext | undefined;
143
- /**
144
- * Set the hardware frames context.
145
- *
146
- * First component to set it "wins" - subsequent sets are ignored.
147
- * This is typically called by the decoder after decoding the first frame,
148
- * allowing other components (encoder, filters) to share the same frames context.
149
- *
150
- * @param framesContext - The hardware frames context to set
151
- */
152
- set framesContext(framesContext: HardwareFramesContext | undefined);
153
159
  /**
154
160
  * Get the device type enum value.
155
161
  *
156
- * @returns AVHWDeviceType enum value
162
+ * @example
163
+ * ```typescript
164
+ * if (hw.deviceType === AV_HWDEVICE_TYPE_CUDA) {
165
+ * console.log('Using NVIDIA GPU');
166
+ * }
167
+ * ```
157
168
  */
158
169
  get deviceType(): AVHWDeviceType;
159
170
  /**
160
171
  * Get the hardware device type name.
161
172
  *
162
- * Uses FFmpeg's native av_hwdevice_get_type_name() function.
173
+ * Human-readable device type string.
163
174
  *
164
- * @returns Device type name as string (e.g., 'cuda', 'videotoolbox')
175
+ * @example
176
+ * ```typescript
177
+ * console.log(`Hardware type: ${hw.deviceTypeName}`);
178
+ * // Output: "cuda" or "videotoolbox" etc.
179
+ * ```
165
180
  */
166
181
  get deviceTypeName(): string;
167
- /**
168
- * Get the device name/identifier.
169
- *
170
- * @returns Device name or undefined
171
- */
172
- get deviceName(): string | undefined;
173
182
  /**
174
183
  * Get the device pixel format.
175
184
  *
176
- * @returns Device pixel format
185
+ * Hardware-specific pixel format for frame allocation.
186
+ *
187
+ * @example
188
+ * ```typescript
189
+ * frame.format = hw.devicePixelFormat;
190
+ * ```
177
191
  */
178
192
  get devicePixelFormat(): AVPixelFormat;
179
193
  /**
180
194
  * Check if this hardware context has been disposed.
181
195
  *
182
- * @returns True if disposed
196
+ * @example
197
+ * ```typescript
198
+ * if (!hw.isDisposed) {
199
+ * hw.dispose();
200
+ * }
201
+ * ```
183
202
  */
184
203
  get isDisposed(): boolean;
185
204
  /**
186
- * Create or ensure a frames context exists for this hardware device.
187
- *
188
- * If a frames context already exists with different dimensions, throws an error.
189
- * This is used for raw/generated frames that need hardware processing.
205
+ * Check if this hardware type supports a specific codec.
190
206
  *
191
- * @param width - Frame width
192
- * @param height - Frame height
193
- * @param swFormat - Software pixel format (default: AV_PIX_FMT_NV12)
194
- * @param initialPoolSize - Initial frame pool size (default: 20)
207
+ * Queries FFmpeg's codec configurations to verify hardware support.
208
+ * Checks both decoder and encoder support based on parameters.
195
209
  *
196
- * @returns HardwareFramesContext - Either existing or newly created
210
+ * Direct mapping to avcodec_get_hw_config().
197
211
  *
198
- * @throws {Error} If frames context exists with incompatible dimensions
212
+ * @param codecId - Codec ID from AVCodecID enum
213
+ * @param isEncoder - Check for encoder support (default: decoder)
214
+ * @returns true if codec is supported
199
215
  *
200
216
  * @example
201
217
  * ```typescript
202
- * // For raw frames
203
- * hw.ensureFramesContext(1920, 1080, AV_PIX_FMT_YUV420P);
218
+ * import { AV_CODEC_ID_H264 } from 'node-av/constants';
219
+ *
220
+ * if (hw.supportsCodec(AV_CODEC_ID_H264, true)) {
221
+ * // Can use hardware H.264 encoder
222
+ * }
204
223
  * ```
224
+ *
225
+ * @see {@link findSupportedCodecs} For all supported codecs
205
226
  */
206
- ensureFramesContext(width: number, height: number, swFormat?: AVPixelFormat, initialPoolSize?: number): HardwareFramesContext;
227
+ supportsCodec(codecId: AVCodecID, isEncoder?: boolean): boolean;
207
228
  /**
208
- * Wait for frames context to become available.
209
- *
210
- * Used by components that need hw_frames_ctx but don't have it yet.
211
- * Resolves when another component (typically decoder) sets the frames context.
229
+ * Check if this hardware supports a specific pixel format for a codec.
212
230
  *
213
- * @param timeout - Maximum time to wait in milliseconds (default: 5000)
231
+ * Verifies pixel format compatibility with hardware codec.
232
+ * Important for ensuring format compatibility in pipelines.
214
233
  *
215
- * @returns Promise that resolves with the frames context
216
- *
217
- * @throws {Error} If timeout expires or HardwareContext is disposed
234
+ * @param codecId - Codec ID from AVCodecID enum
235
+ * @param pixelFormat - Pixel format to check
236
+ * @param isEncoder - Check for encoder (default: decoder)
237
+ * @returns true if pixel format is supported
218
238
  *
219
239
  * @example
220
240
  * ```typescript
221
- * // Wait up to 3 seconds for frames context
222
- * const framesCtx = await hw.waitForFramesContext(3000);
223
- * ```
224
- */
225
- waitForFramesContext(timeout?: number): Promise<HardwareFramesContext>;
226
- /**
227
- * Get the hardware pixel format for this device type.
228
- *
229
- * Maps device types to their corresponding pixel formats.
241
+ * import { AV_CODEC_ID_H264, AV_PIX_FMT_NV12 } from 'node-av/constants';
230
242
  *
231
- * Returns the appropriate AV_PIX_FMT_* constant for the hardware type.
243
+ * if (hw.supportsPixelFormat(AV_CODEC_ID_H264, AV_PIX_FMT_NV12)) {
244
+ * // Can use NV12 format with H.264
245
+ * }
246
+ * ```
232
247
  *
233
- * @returns Hardware pixel format
248
+ * @see {@link supportsCodec} For basic codec support
234
249
  */
235
- getHardwarePixelFormat(): AVPixelFormat;
250
+ supportsPixelFormat(codecId: AVCodecID, pixelFormat: AVPixelFormat, isEncoder?: boolean): boolean;
236
251
  /**
237
- * Check if this hardware type supports a specific codec.
238
- *
239
- * Checks both decoder and encoder support by querying FFmpeg's codec configurations.
252
+ * Get the appropriate encoder codec for a given base codec name.
240
253
  *
241
- * Uses avcodec_get_hw_config() internally to check hardware support.
254
+ * Maps generic codec names to hardware-specific encoder implementations.
255
+ * Returns null if no hardware encoder is available for the codec.
256
+ * Automatically tests encoder viability before returning.
242
257
  *
243
- * @param codecId - Codec ID from AVCodecID enum
244
- * @param isEncoder - Check for encoder support (default: false for decoder)
258
+ * @param codecName - Generic codec name (e.g., 'h264', 'hevc', 'av1')
259
+ * @returns Hardware encoder codec or null if unsupported
245
260
  *
246
- * @returns True if codec is supported by this hardware
247
- */
248
- supportsCodec(codecId: AVCodecID, isEncoder?: boolean): boolean;
249
- /**
250
- * Check if this hardware device type supports a specific pixel format.
261
+ * @example
262
+ * ```typescript
263
+ * const encoderCodec = await hw.getEncoderCodec('h264');
264
+ * if (encoderCodec) {
265
+ * console.log(`Using encoder: ${encoderCodec.name}`);
266
+ * // e.g., "h264_nvenc" for CUDA
267
+ * }
268
+ * ```
251
269
  *
252
- * @param codecId - Codec ID from AVCodecID enum
253
- * @param pixelFormat - Pixel format to check
254
- * @param isEncoder - Check for encoder support (default: false for decoder)
270
+ * @example
271
+ * ```typescript
272
+ * // Use with Encoder.create
273
+ * const codec = await hw.getEncoderCodec('hevc');
274
+ * if (codec) {
275
+ * const encoder = await Encoder.create(codec, streamInfo, {
276
+ * hardware: hw
277
+ * });
278
+ * }
279
+ * ```
255
280
  *
256
- * @returns True if pixel format is supported by this hardware
281
+ * @see {@link Encoder.create} For using the codec
257
282
  */
258
- supportsPixelFormat(codecId: AVCodecID, pixelFormat: AVPixelFormat, isEncoder?: boolean): boolean;
283
+ getEncoderCodec(codecName: BaseCodecName): Promise<Codec | null>;
259
284
  /**
260
285
  * Find all codecs that support this hardware device.
261
286
  *
262
- * Uses FFmpeg's native codec list to find compatible codecs.
287
+ * Iterates through all available codecs and checks hardware compatibility.
288
+ * Useful for discovering available hardware acceleration options.
263
289
  *
264
- * Iterates through all codecs using av_codec_iterate() and checks
265
- * their hardware configurations.
290
+ * Direct mapping to av_codec_iterate() with hardware config checks.
266
291
  *
267
292
  * @param isEncoder - Find encoders (true) or decoders (false)
268
- *
269
293
  * @returns Array of codec names that support this hardware
294
+ *
295
+ * @example
296
+ * ```typescript
297
+ * const decoders = hw.findSupportedCodecs(false);
298
+ * console.log('Hardware decoders:', decoders);
299
+ * // ["h264_cuvid", "hevc_cuvid", ...]
300
+ *
301
+ * const encoders = hw.findSupportedCodecs(true);
302
+ * console.log('Hardware encoders:', encoders);
303
+ * // ["h264_nvenc", "hevc_nvenc", ...]
304
+ * ```
305
+ *
306
+ * @see {@link supportsCodec} For checking specific codec
270
307
  */
271
308
  findSupportedCodecs(isEncoder?: boolean): string[];
272
309
  /**
273
310
  * Clean up and free hardware resources.
274
311
  *
275
- * Safe to call multiple times - subsequent calls are no-ops.
276
- * Called automatically by Decoder/Encoder on close.
312
+ * Releases the hardware device context.
313
+ * Safe to call multiple times.
314
+ * Automatically called by Symbol.dispose.
315
+ *
316
+ * @example
317
+ * ```typescript
318
+ * const hw = HardwareContext.auto();
319
+ * try {
320
+ * // Use hardware
321
+ * } finally {
322
+ * hw?.dispose();
323
+ * }
324
+ * ```
277
325
  *
278
- * Frees both frames context (if created) and device context.
279
- * Notifies any waiting components that disposal occurred.
326
+ * @see {@link Symbol.dispose} For automatic cleanup
280
327
  */
281
328
  dispose(): void;
329
+ /**
330
+ * Get the hardware decoder pixel format for this device type.
331
+ *
332
+ * Maps device types to their corresponding pixel formats.
333
+ * Used internally for frame format configuration.
334
+ *
335
+ * @returns Hardware-specific pixel format
336
+ */
337
+ private getHardwareDecoderPixelFormat;
338
+ /**
339
+ * Test if a hardware encoder can be created.
340
+ *
341
+ * Attempts to initialize the encoder to verify support.
342
+ * Used internally by getEncoderCodec.
343
+ *
344
+ * @param encoderCodec - Encoder to test
345
+ * @returns true if encoder can be initialized
346
+ */
347
+ private testHardwareEncoder;
282
348
  /**
283
349
  * Create hardware context from device type.
284
350
  *
285
351
  * Internal factory method using av_hwdevice_ctx_create().
286
352
  *
287
353
  * @param deviceType - AVHWDeviceType enum value
288
- * @param deviceName - Optional device name/index
354
+ * @param device - Optional device specifier
289
355
  * @param options - Optional device options
290
- *
291
- * @returns HardwareContext or null if creation fails
356
+ * @returns Hardware context or null if creation fails
292
357
  */
293
358
  private static createFromType;
294
359
  /**
295
360
  * Get platform-specific preference order for hardware types.
296
361
  *
297
- * Returns the optimal hardware types for the current platform.
362
+ * Returns available hardware types sorted by platform preference.
363
+ * Ensures optimal hardware selection for each platform.
298
364
  *
299
365
  * @returns Array of AVHWDeviceType values in preference order
300
366
  */
301
367
  private static getPreferenceOrder;
302
368
  /**
303
- * Automatic cleanup when using 'using' statement.
304
- *
305
- * Implements the Disposable interface for automatic cleanup.
369
+ * Dispose of hardware context.
306
370
  *
307
- * Calls dispose() to free hardware resources.
371
+ * Implements Disposable interface for automatic cleanup.
372
+ * Equivalent to calling dispose().
308
373
  *
309
374
  * @example
310
375
  * ```typescript
311
376
  * {
312
- * using hw = await HardwareContext.auto();
377
+ * using hw = HardwareContext.auto();
313
378
  * // Use hardware context...
314
379
  * } // Automatically disposed
315
380
  * ```
381
+ *
382
+ * @see {@link dispose} For manual cleanup
316
383
  */
317
384
  [Symbol.dispose](): void;
318
385
  }