@omnimedia/omnitool 1.1.0-5 → 1.1.0-51

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 (380) hide show
  1. package/README.md +143 -80
  2. package/package.json +18 -16
  3. package/s/context.ts +0 -7
  4. package/s/demo/demo.bundle.ts +102 -43
  5. package/s/demo/demo.css +246 -11
  6. package/s/demo/routines/export-test.ts +16 -0
  7. package/s/demo/routines/filmstrip-test.ts +22 -18
  8. package/s/demo/routines/load-video.ts +2 -3
  9. package/s/demo/routines/playback-test.ts +76 -0
  10. package/s/demo/routines/timeline-setup.ts +24 -0
  11. package/s/demo/routines/transcode-test.ts +21 -5
  12. package/s/demo/routines/transitions-test.ts +2 -2
  13. package/s/demo/routines/waveform-test.ts +8 -6
  14. package/s/driver/driver-worker.ts +9 -0
  15. package/s/driver/driver.test.ts +1 -1
  16. package/s/driver/driver.ts +32 -44
  17. package/s/driver/fns/schematic.ts +52 -25
  18. package/s/driver/fns/work.ts +71 -200
  19. package/s/driver/parts/compositor.ts +178 -0
  20. package/s/driver/parts/machina.ts +19 -20
  21. package/s/index.html.ts +103 -19
  22. package/s/index.ts +1 -0
  23. package/s/tests.bundle.ts +11 -0
  24. package/s/tests.html.ts +28 -0
  25. package/s/timeline/index.ts +3 -0
  26. package/s/timeline/parts/basics.ts +1 -1
  27. package/s/timeline/parts/filmstrip.ts +43 -16
  28. package/s/timeline/parts/item.ts +59 -6
  29. package/s/timeline/parts/media.ts +32 -1
  30. package/s/timeline/parts/resource-pool.ts +8 -5
  31. package/s/timeline/parts/resource.ts +2 -0
  32. package/s/timeline/parts/waveform.ts +3 -4
  33. package/s/timeline/renderers/export/parts/audio-gain.ts +17 -0
  34. package/s/timeline/renderers/export/parts/audio-mix.ts +133 -0
  35. package/s/timeline/renderers/export/parts/cursor.ts +109 -0
  36. package/s/timeline/renderers/export/parts/produce-audio.ts +64 -0
  37. package/s/timeline/renderers/export/parts/produce-video.ts +50 -0
  38. package/s/timeline/renderers/export/parts/resamplers.ts +48 -0
  39. package/s/timeline/renderers/export/produce.ts +28 -0
  40. package/s/timeline/renderers/parts/handy.ts +360 -0
  41. package/s/timeline/renderers/parts/samplers/audio/parts/find.ts +19 -0
  42. package/s/timeline/renderers/parts/samplers/audio/parts/init.ts +60 -0
  43. package/s/timeline/renderers/parts/samplers/audio/parts/sink.ts +38 -0
  44. package/s/timeline/renderers/parts/samplers/audio/parts/types.ts +16 -0
  45. package/s/timeline/renderers/parts/samplers/audio/sampler.ts +35 -0
  46. package/s/timeline/renderers/parts/samplers/visual/parts/defaults.ts +16 -0
  47. package/s/timeline/renderers/parts/samplers/visual/parts/sample.ts +59 -0
  48. package/s/timeline/renderers/parts/samplers/visual/parts/sequence.ts +111 -0
  49. package/s/timeline/renderers/parts/samplers/visual/parts/sink.ts +38 -0
  50. package/s/timeline/renderers/parts/samplers/visual/parts/transition.ts +28 -0
  51. package/s/timeline/renderers/parts/samplers/visual/parts/types.ts +10 -0
  52. package/s/timeline/renderers/parts/samplers/visual/sampler.ts +28 -0
  53. package/s/timeline/renderers/parts/schedulers.ts +96 -0
  54. package/s/timeline/renderers/player/parts/playback.ts +125 -0
  55. package/s/timeline/renderers/player/player.ts +71 -0
  56. package/s/timeline/renderers/renderers.test.ts +387 -0
  57. package/s/timeline/sugar/helpers.ts +85 -0
  58. package/s/timeline/sugar/o.ts +178 -38
  59. package/s/timeline/sugar/omni.test.ts +210 -0
  60. package/s/timeline/sugar/omni.ts +38 -12
  61. package/s/timeline/types.ts +29 -0
  62. package/s/timeline/utils/checksum.ts +3 -1
  63. package/s/timeline/utils/datafile.ts +15 -4
  64. package/s/timeline/utils/dummy-data.ts +3 -3
  65. package/s/timeline/utils/matrix.ts +33 -0
  66. package/s/units/fps.ts +8 -0
  67. package/s/units/ms.ts +8 -0
  68. package/s/units/seconds.ts +8 -0
  69. package/x/WebGLRenderer-7X274AYV.js +2 -0
  70. package/x/WebGLRenderer-7X274AYV.js.map +7 -0
  71. package/x/WebGPURenderer-XMCMEXAO.js +2 -0
  72. package/x/WebGPURenderer-XMCMEXAO.js.map +7 -0
  73. package/x/browserAll-6TVTCHHE.js +2 -0
  74. package/x/browserAll-6TVTCHHE.js.map +7 -0
  75. package/x/chunk-4ONWQOPX.js +157 -0
  76. package/x/chunk-4ONWQOPX.js.map +7 -0
  77. package/x/chunk-63NSCXPX.js +2 -0
  78. package/x/chunk-63NSCXPX.js.map +7 -0
  79. package/x/chunk-A45M2HJC.js +2 -0
  80. package/x/chunk-A45M2HJC.js.map +7 -0
  81. package/x/chunk-OTQK6FAJ.js +15 -0
  82. package/x/chunk-OTQK6FAJ.js.map +7 -0
  83. package/x/chunk-Q7JBQNE4.js +42 -0
  84. package/x/chunk-Q7JBQNE4.js.map +7 -0
  85. package/x/chunk-W33LM336.js +393 -0
  86. package/x/chunk-W33LM336.js.map +7 -0
  87. package/x/chunk-W5CN46AR.js +327 -0
  88. package/x/chunk-W5CN46AR.js.map +7 -0
  89. package/x/chunk-WFT3KTZG.js +269 -0
  90. package/x/chunk-WFT3KTZG.js.map +7 -0
  91. package/x/context.d.ts +1 -4
  92. package/x/context.js +1 -5
  93. package/x/context.js.map +1 -1
  94. package/x/demo/WebGLRenderer-NLGJGAXK.js +2 -0
  95. package/x/demo/WebGLRenderer-NLGJGAXK.js.map +7 -0
  96. package/x/demo/WebGPURenderer-RBOFXPL5.js +2 -0
  97. package/x/demo/WebGPURenderer-RBOFXPL5.js.map +7 -0
  98. package/x/demo/browserAll-5AZHDDG6.js +2 -0
  99. package/x/demo/browserAll-5AZHDDG6.js.map +7 -0
  100. package/x/demo/chunk-5ZZYIILO.js +393 -0
  101. package/x/demo/chunk-5ZZYIILO.js.map +7 -0
  102. package/x/demo/chunk-P3PTHHFE.js +42 -0
  103. package/x/demo/chunk-P3PTHHFE.js.map +7 -0
  104. package/x/demo/chunk-PYG4RZZ2.js +269 -0
  105. package/x/demo/chunk-PYG4RZZ2.js.map +7 -0
  106. package/x/demo/chunk-Q4MWBZHL.js +157 -0
  107. package/x/demo/chunk-Q4MWBZHL.js.map +7 -0
  108. package/x/demo/chunk-T3METYEY.js +15 -0
  109. package/x/demo/chunk-T3METYEY.js.map +7 -0
  110. package/x/demo/chunk-USLRKDKD.js +2 -0
  111. package/x/demo/chunk-USLRKDKD.js.map +7 -0
  112. package/x/demo/chunk-YISSXWBT.js +327 -0
  113. package/x/demo/chunk-YISSXWBT.js.map +7 -0
  114. package/x/demo/chunk-YJQWVIHX.js +2 -0
  115. package/x/demo/chunk-YJQWVIHX.js.map +7 -0
  116. package/x/demo/demo.bundle.js +92 -40
  117. package/x/demo/demo.bundle.js.map +1 -1
  118. package/x/demo/demo.bundle.min.js +2450 -35
  119. package/x/demo/demo.bundle.min.js.map +4 -4
  120. package/x/demo/demo.css +246 -11
  121. package/x/demo/routines/export-test.d.ts +2 -0
  122. package/x/demo/routines/export-test.js +10 -0
  123. package/x/demo/routines/export-test.js.map +1 -0
  124. package/x/demo/routines/filmstrip-test.d.ts +1 -1
  125. package/x/demo/routines/filmstrip-test.js +20 -17
  126. package/x/demo/routines/filmstrip-test.js.map +1 -1
  127. package/x/demo/routines/load-video.d.ts +1 -1
  128. package/x/demo/routines/load-video.js +1 -2
  129. package/x/demo/routines/load-video.js.map +1 -1
  130. package/x/demo/routines/playback-test.d.ts +2 -0
  131. package/x/demo/routines/playback-test.js +65 -0
  132. package/x/demo/routines/playback-test.js.map +1 -0
  133. package/x/demo/routines/timeline-setup.d.ts +6 -0
  134. package/x/demo/routines/timeline-setup.js +13 -0
  135. package/x/demo/routines/timeline-setup.js.map +1 -0
  136. package/x/demo/routines/transcode-test.js +17 -5
  137. package/x/demo/routines/transcode-test.js.map +1 -1
  138. package/x/demo/routines/transitions-test.js +2 -2
  139. package/x/demo/routines/transitions-test.js.map +1 -1
  140. package/x/demo/routines/waveform-test.d.ts +2 -1
  141. package/x/demo/routines/waveform-test.js +7 -6
  142. package/x/demo/routines/waveform-test.js.map +1 -1
  143. package/x/demo/webworkerAll-QKIC5O27.js +2 -0
  144. package/x/demo/webworkerAll-QKIC5O27.js.map +7 -0
  145. package/x/driver/WebGLRenderer-OMRWYQIV.js +2 -0
  146. package/x/driver/WebGLRenderer-OMRWYQIV.js.map +7 -0
  147. package/x/driver/WebGPURenderer-KQJB2OJJ.js +2 -0
  148. package/x/driver/WebGPURenderer-KQJB2OJJ.js.map +7 -0
  149. package/x/driver/browserAll-YBZEJCN3.js +2 -0
  150. package/x/driver/browserAll-YBZEJCN3.js.map +7 -0
  151. package/x/driver/chunk-3L3MB5NY.js +393 -0
  152. package/x/driver/chunk-3L3MB5NY.js.map +7 -0
  153. package/x/driver/chunk-42BQ4XKE.js +269 -0
  154. package/x/driver/chunk-42BQ4XKE.js.map +7 -0
  155. package/x/driver/chunk-4HAYG3N5.js +327 -0
  156. package/x/driver/chunk-4HAYG3N5.js.map +7 -0
  157. package/x/driver/chunk-BFBY7VYB.js +42 -0
  158. package/x/driver/chunk-BFBY7VYB.js.map +7 -0
  159. package/x/driver/chunk-KM6O72WE.js +157 -0
  160. package/x/driver/chunk-KM6O72WE.js.map +7 -0
  161. package/x/driver/chunk-N6HD4WYJ.js +2 -0
  162. package/x/driver/chunk-N6HD4WYJ.js.map +7 -0
  163. package/x/driver/chunk-WCZ2O3UN.js +15 -0
  164. package/x/driver/chunk-WCZ2O3UN.js.map +7 -0
  165. package/x/driver/chunk-XWNSF3WJ.js +2 -0
  166. package/x/driver/chunk-XWNSF3WJ.js.map +7 -0
  167. package/x/driver/driver-worker.d.ts +1 -0
  168. package/x/driver/driver-worker.js +6 -0
  169. package/x/driver/driver-worker.js.map +1 -0
  170. package/x/driver/driver.d.ts +12 -9
  171. package/x/driver/driver.js +31 -41
  172. package/x/driver/driver.js.map +1 -1
  173. package/x/driver/driver.test.js +1 -1
  174. package/x/driver/driver.test.js.map +1 -1
  175. package/x/driver/driver.worker.bundle.min.js +139 -1135
  176. package/x/driver/driver.worker.bundle.min.js.map +4 -4
  177. package/x/driver/fns/host.d.ts +10 -4
  178. package/x/driver/fns/schematic.d.ts +47 -24
  179. package/x/driver/fns/work.d.ts +12 -7
  180. package/x/driver/fns/work.js +68 -170
  181. package/x/driver/fns/work.js.map +1 -1
  182. package/x/driver/parts/compositor.d.ts +15 -0
  183. package/x/driver/parts/compositor.js +152 -0
  184. package/x/driver/parts/compositor.js.map +1 -0
  185. package/x/driver/parts/machina.d.ts +0 -20
  186. package/x/driver/parts/machina.js +6 -10
  187. package/x/driver/parts/machina.js.map +1 -1
  188. package/x/driver/webworkerAll-BKJQW6P7.js +2 -0
  189. package/x/driver/webworkerAll-BKJQW6P7.js.map +7 -0
  190. package/x/features/speech/transcribe/parts/prep-audio.d.ts +1 -1
  191. package/x/features/speech/transcribe/worker.bundle.min.js +703 -703
  192. package/x/features/speech/transcribe/worker.bundle.min.js.map +4 -4
  193. package/x/index.d.ts +1 -0
  194. package/x/index.html +349 -30
  195. package/x/index.html.js +103 -19
  196. package/x/index.html.js.map +1 -1
  197. package/x/index.js +1 -0
  198. package/x/index.js.map +1 -1
  199. package/x/tests.bundle.js +8 -0
  200. package/x/tests.bundle.js.map +1 -0
  201. package/x/tests.bundle.min.js +2464 -0
  202. package/x/tests.bundle.min.js.map +7 -0
  203. package/x/tests.html +316 -0
  204. package/x/tests.html.d.ts +2 -0
  205. package/x/tests.html.js +22 -0
  206. package/x/tests.html.js.map +1 -0
  207. package/x/timeline/index.d.ts +3 -0
  208. package/x/timeline/index.js +3 -0
  209. package/x/timeline/index.js.map +1 -1
  210. package/x/timeline/parts/basics.d.ts +1 -1
  211. package/x/timeline/parts/filmstrip.d.ts +4 -3
  212. package/x/timeline/parts/filmstrip.js +29 -10
  213. package/x/timeline/parts/filmstrip.js.map +1 -1
  214. package/x/timeline/parts/item.d.ts +51 -8
  215. package/x/timeline/parts/item.js +7 -3
  216. package/x/timeline/parts/item.js.map +1 -1
  217. package/x/timeline/parts/media.d.ts +5 -0
  218. package/x/timeline/parts/media.js +27 -1
  219. package/x/timeline/parts/media.js.map +1 -1
  220. package/x/timeline/parts/resource-pool.d.ts +3 -0
  221. package/x/timeline/parts/resource-pool.js +7 -4
  222. package/x/timeline/parts/resource-pool.js.map +1 -1
  223. package/x/timeline/parts/resource.d.ts +2 -0
  224. package/x/timeline/parts/waveform.d.ts +2 -1
  225. package/x/timeline/parts/waveform.js +2 -4
  226. package/x/timeline/parts/waveform.js.map +1 -1
  227. package/x/timeline/renderers/export/parts/audio-gain.d.ts +1 -0
  228. package/x/timeline/renderers/export/parts/audio-gain.js +13 -0
  229. package/x/timeline/renderers/export/parts/audio-gain.js.map +1 -0
  230. package/x/timeline/renderers/export/parts/audio-mix.d.ts +21 -0
  231. package/x/timeline/renderers/export/parts/audio-mix.js +89 -0
  232. package/x/timeline/renderers/export/parts/audio-mix.js.map +1 -0
  233. package/x/timeline/renderers/export/parts/cursor.d.ts +19 -0
  234. package/x/timeline/renderers/export/parts/cursor.js +80 -0
  235. package/x/timeline/renderers/export/parts/cursor.js.map +1 -0
  236. package/x/timeline/renderers/export/parts/produce-audio.d.ts +6 -0
  237. package/x/timeline/renderers/export/parts/produce-audio.js +41 -0
  238. package/x/timeline/renderers/export/parts/produce-audio.js.map +1 -0
  239. package/x/timeline/renderers/export/parts/produce-video.d.ts +10 -0
  240. package/x/timeline/renderers/export/parts/produce-video.js +27 -0
  241. package/x/timeline/renderers/export/parts/produce-video.js.map +1 -0
  242. package/x/timeline/renderers/export/parts/resamplers.d.ts +12 -0
  243. package/x/timeline/renderers/export/parts/resamplers.js +29 -0
  244. package/x/timeline/renderers/export/parts/resamplers.js.map +1 -0
  245. package/x/timeline/renderers/export/produce.d.ts +13 -0
  246. package/x/timeline/renderers/export/produce.js +15 -0
  247. package/x/timeline/renderers/export/produce.js.map +1 -0
  248. package/x/timeline/renderers/parts/handy.d.ts +30 -0
  249. package/x/timeline/renderers/parts/handy.js +219 -0
  250. package/x/timeline/renderers/parts/handy.js.map +1 -0
  251. package/x/timeline/renderers/parts/samplers/audio/parts/find.d.ts +6 -0
  252. package/x/timeline/renderers/parts/samplers/audio/parts/find.js +15 -0
  253. package/x/timeline/renderers/parts/samplers/audio/parts/find.js.map +1 -0
  254. package/x/timeline/renderers/parts/samplers/audio/parts/init.d.ts +5 -0
  255. package/x/timeline/renderers/parts/samplers/audio/parts/init.js +40 -0
  256. package/x/timeline/renderers/parts/samplers/audio/parts/init.js.map +1 -0
  257. package/x/timeline/renderers/parts/samplers/audio/parts/sink.d.ts +8 -0
  258. package/x/timeline/renderers/parts/samplers/audio/parts/sink.js +24 -0
  259. package/x/timeline/renderers/parts/samplers/audio/parts/sink.js.map +1 -0
  260. package/x/timeline/renderers/parts/samplers/audio/parts/types.d.ts +14 -0
  261. package/x/timeline/renderers/parts/samplers/audio/parts/types.js.map +1 -0
  262. package/x/timeline/renderers/parts/samplers/audio/sampler.d.ts +11 -0
  263. package/x/timeline/renderers/parts/samplers/audio/sampler.js +22 -0
  264. package/x/timeline/renderers/parts/samplers/audio/sampler.js.map +1 -0
  265. package/x/timeline/renderers/parts/samplers/visual/parts/defaults.d.ts +5 -0
  266. package/x/timeline/renderers/parts/samplers/visual/parts/defaults.js +10 -0
  267. package/x/timeline/renderers/parts/samplers/visual/parts/defaults.js.map +1 -0
  268. package/x/timeline/renderers/parts/samplers/visual/parts/sample.d.ts +5 -0
  269. package/x/timeline/renderers/parts/samplers/visual/parts/sample.js +38 -0
  270. package/x/timeline/renderers/parts/samplers/visual/parts/sample.js.map +1 -0
  271. package/x/timeline/renderers/parts/samplers/visual/parts/sequence.d.ts +5 -0
  272. package/x/timeline/renderers/parts/samplers/visual/parts/sequence.js +75 -0
  273. package/x/timeline/renderers/parts/samplers/visual/parts/sequence.js.map +1 -0
  274. package/x/timeline/renderers/parts/samplers/visual/parts/sink.d.ts +8 -0
  275. package/x/timeline/renderers/parts/samplers/visual/parts/sink.js +24 -0
  276. package/x/timeline/renderers/parts/samplers/visual/parts/sink.js.map +1 -0
  277. package/x/timeline/renderers/parts/samplers/visual/parts/transition.d.ts +3 -0
  278. package/x/timeline/renderers/parts/samplers/visual/parts/transition.js +18 -0
  279. package/x/timeline/renderers/parts/samplers/visual/parts/transition.js.map +1 -0
  280. package/x/timeline/renderers/parts/samplers/visual/parts/types.d.ts +8 -0
  281. package/x/timeline/renderers/parts/samplers/visual/parts/types.js +2 -0
  282. package/x/timeline/renderers/parts/samplers/visual/parts/types.js.map +1 -0
  283. package/x/timeline/renderers/parts/samplers/visual/sampler.d.ts +7 -0
  284. package/x/timeline/renderers/parts/samplers/visual/sampler.js +17 -0
  285. package/x/timeline/renderers/parts/samplers/visual/sampler.js.map +1 -0
  286. package/x/timeline/renderers/parts/schedulers.d.ts +17 -0
  287. package/x/timeline/renderers/parts/schedulers.js +64 -0
  288. package/x/timeline/renderers/parts/schedulers.js.map +1 -0
  289. package/x/timeline/renderers/player/parts/playback.d.ts +31 -0
  290. package/x/timeline/renderers/player/parts/playback.js +91 -0
  291. package/x/timeline/renderers/player/parts/playback.js.map +1 -0
  292. package/x/timeline/renderers/player/player.d.ts +23 -0
  293. package/x/timeline/renderers/player/player.js +50 -0
  294. package/x/timeline/renderers/player/player.js.map +1 -0
  295. package/x/timeline/renderers/renderers.test.d.ts +32 -0
  296. package/x/timeline/renderers/renderers.test.js +306 -0
  297. package/x/timeline/renderers/renderers.test.js.map +1 -0
  298. package/x/timeline/sugar/helpers.d.ts +30 -0
  299. package/x/timeline/sugar/helpers.js +46 -0
  300. package/x/timeline/sugar/helpers.js.map +1 -0
  301. package/x/timeline/sugar/o.d.ts +31 -4
  302. package/x/timeline/sugar/o.js +144 -38
  303. package/x/timeline/sugar/o.js.map +1 -1
  304. package/x/timeline/sugar/omni.d.ts +11 -2
  305. package/x/timeline/sugar/omni.js +30 -9
  306. package/x/timeline/sugar/omni.js.map +1 -1
  307. package/x/timeline/sugar/omni.test.d.ts +27 -0
  308. package/x/timeline/sugar/omni.test.js +128 -0
  309. package/x/timeline/sugar/omni.test.js.map +1 -0
  310. package/x/timeline/types.d.ts +24 -0
  311. package/x/timeline/types.js +2 -0
  312. package/x/timeline/types.js.map +1 -0
  313. package/x/timeline/utils/checksum.d.ts +3 -2
  314. package/x/timeline/utils/checksum.js.map +1 -1
  315. package/x/timeline/utils/datafile.d.ts +5 -3
  316. package/x/timeline/utils/datafile.js +18 -5
  317. package/x/timeline/utils/datafile.js.map +1 -1
  318. package/x/timeline/utils/dummy-data.d.ts +1 -2
  319. package/x/timeline/utils/dummy-data.js +4 -2
  320. package/x/timeline/utils/dummy-data.js.map +1 -1
  321. package/x/timeline/utils/matrix.d.ts +8 -0
  322. package/x/timeline/utils/matrix.js +26 -0
  323. package/x/timeline/utils/matrix.js.map +1 -0
  324. package/x/units/fps.d.ts +6 -0
  325. package/x/units/fps.js +2 -0
  326. package/x/units/fps.js.map +1 -0
  327. package/x/units/ms.d.ts +6 -0
  328. package/x/units/ms.js +2 -0
  329. package/x/units/ms.js.map +1 -0
  330. package/x/units/seconds.d.ts +6 -0
  331. package/x/units/seconds.js +2 -0
  332. package/x/units/seconds.js.map +1 -0
  333. package/x/webworkerAll-VVIU3M54.js +2 -0
  334. package/x/webworkerAll-VVIU3M54.js.map +7 -0
  335. package/s/tests.test.ts +0 -8
  336. package/s/timeline/sugar/omni-test.ts +0 -38
  337. package/s/tools/common/loader.ts +0 -26
  338. package/s/tools/common/transformer-pipeline.ts +0 -26
  339. package/s/tools/speech-recognition/common/model.ts +0 -26
  340. package/s/tools/speech-recognition/whisper/fns/host.ts +0 -25
  341. package/s/tools/speech-recognition/whisper/fns/schematic.ts +0 -23
  342. package/s/tools/speech-recognition/whisper/fns/work.ts +0 -91
  343. package/s/tools/speech-recognition/whisper/parts/types.ts +0 -38
  344. package/s/tools/speech-recognition/whisper/parts/worker.bundle.ts +0 -7
  345. package/s/tools/speech-recognition/whisper/tool.ts +0 -70
  346. package/x/tests.test.js +0 -6
  347. package/x/tests.test.js.map +0 -1
  348. package/x/timeline/sugar/omni-test.d.ts +0 -1
  349. package/x/timeline/sugar/omni-test.js +0 -22
  350. package/x/timeline/sugar/omni-test.js.map +0 -1
  351. package/x/tools/common/loader.d.ts +0 -19
  352. package/x/tools/common/loader.js +0 -18
  353. package/x/tools/common/loader.js.map +0 -1
  354. package/x/tools/common/transformer-pipeline.d.ts +0 -8
  355. package/x/tools/common/transformer-pipeline.js +0 -24
  356. package/x/tools/common/transformer-pipeline.js.map +0 -1
  357. package/x/tools/speech-recognition/common/model.d.ts +0 -14
  358. package/x/tools/speech-recognition/common/model.js +0 -16
  359. package/x/tools/speech-recognition/common/model.js.map +0 -1
  360. package/x/tools/speech-recognition/whisper/fns/host.d.ts +0 -13
  361. package/x/tools/speech-recognition/whisper/fns/host.js +0 -19
  362. package/x/tools/speech-recognition/whisper/fns/host.js.map +0 -1
  363. package/x/tools/speech-recognition/whisper/fns/schematic.d.ts +0 -19
  364. package/x/tools/speech-recognition/whisper/fns/schematic.js +0 -2
  365. package/x/tools/speech-recognition/whisper/fns/schematic.js.map +0 -1
  366. package/x/tools/speech-recognition/whisper/fns/work.d.ts +0 -12
  367. package/x/tools/speech-recognition/whisper/fns/work.js +0 -74
  368. package/x/tools/speech-recognition/whisper/fns/work.js.map +0 -1
  369. package/x/tools/speech-recognition/whisper/parts/types.d.ts +0 -31
  370. package/x/tools/speech-recognition/whisper/parts/types.js.map +0 -1
  371. package/x/tools/speech-recognition/whisper/parts/worker.bundle.d.ts +0 -1
  372. package/x/tools/speech-recognition/whisper/parts/worker.bundle.js +0 -4
  373. package/x/tools/speech-recognition/whisper/parts/worker.bundle.js.map +0 -1
  374. package/x/tools/speech-recognition/whisper/parts/worker.bundle.min.js +0 -8
  375. package/x/tools/speech-recognition/whisper/parts/worker.bundle.min.js.map +0 -7
  376. package/x/tools/speech-recognition/whisper/tool.d.ts +0 -12
  377. package/x/tools/speech-recognition/whisper/tool.js +0 -63
  378. package/x/tools/speech-recognition/whisper/tool.js.map +0 -1
  379. /package/x/{tests.test.d.ts → tests.bundle.d.ts} +0 -0
  380. /package/x/{tools/speech-recognition/whisper → timeline/renderers/parts/samplers/audio}/parts/types.js +0 -0
@@ -2,15 +2,21 @@ import { Machina } from "../parts/machina.js";
2
2
  export declare const setupDriverHost: (machina: Machina) => import("@e280/comrade").SetupHost<{
3
3
  work: {
4
4
  hello(): Promise<void>;
5
- decode(input: {
5
+ decodeAudio(input: {
6
6
  source: import("./schematic.js").DecoderSource;
7
- video: WritableStream<VideoFrame>;
8
7
  audio: WritableStream<AudioData>;
8
+ start?: number;
9
+ end?: number;
10
+ }): Promise<void>;
11
+ decodeVideo(input: {
12
+ source: import("./schematic.js").DecoderSource;
13
+ video: WritableStream<VideoFrame>;
14
+ start?: number;
15
+ end?: number;
9
16
  }): Promise<void>;
10
17
  encode(input: import("./schematic.js").EncoderInput & {
11
- bridge: WritableStream<StreamTargetChunk>;
18
+ writable: WritableStream<import("mediabunny").StreamTargetChunk>;
12
19
  }): Promise<void>;
13
- composite(input: import("./schematic.js").Composition): Promise<VideoFrame>;
14
20
  };
15
21
  host: {
16
22
  world(): Promise<void>;
@@ -1,35 +1,45 @@
1
+ import { TextStyleOptions } from "pixi.js";
1
2
  import { AsSchematic } from "@e280/comrade";
2
3
  import type { AudioEncodingConfig, StreamTargetChunk, VideoEncodingConfig } from "mediabunny";
4
+ import { Mat6 } from "../../timeline/utils/matrix.js";
5
+ import { Id } from "../../timeline/index.js";
3
6
  export type DriverSchematic = AsSchematic<{
4
7
  work: {
5
8
  hello(): Promise<void>;
6
- decode(input: {
9
+ decodeAudio(input: {
7
10
  source: DecoderSource;
8
- video: WritableStream<VideoFrame>;
9
11
  audio: WritableStream<AudioData>;
12
+ start?: number;
13
+ end?: number;
14
+ }): Promise<void>;
15
+ decodeVideo(input: {
16
+ source: DecoderSource;
17
+ video: WritableStream<VideoFrame>;
18
+ start?: number;
19
+ end?: number;
10
20
  }): Promise<void>;
11
21
  encode(input: EncoderInput & {
12
- bridge: WritableStream<StreamTargetChunk>;
22
+ writable: WritableStream<StreamTargetChunk>;
13
23
  }): Promise<void>;
14
- composite(input: Composition): Promise<VideoFrame>;
15
24
  };
16
25
  host: {
17
26
  world(): Promise<void>;
18
27
  };
19
28
  }>;
20
29
  export interface EncoderInput {
21
- readables: {
22
- video: ReadableStream<VideoFrame>;
23
- audio: ReadableStream<AudioData>;
24
- };
25
- config: {
26
- video: VideoEncodingConfig;
27
- audio: AudioEncodingConfig;
28
- };
30
+ video?: ReadableStream<VideoFrame>;
31
+ audio?: ReadableStream<AudioData>;
32
+ config: RenderConfig;
33
+ }
34
+ export interface RenderConfig {
35
+ video: VideoEncodingConfig;
36
+ audio: AudioEncodingConfig;
29
37
  }
30
38
  export type DecoderSource = Blob | string | URL;
31
39
  export interface DecoderInput {
32
40
  source: DecoderSource;
41
+ start?: number;
42
+ end?: number;
33
43
  onFrame?: (frame: VideoFrame) => Promise<VideoFrame>;
34
44
  }
35
45
  export interface MuxOpts {
@@ -46,21 +56,34 @@ export interface MuxOpts {
46
56
  };
47
57
  }
48
58
  export type Composition = Layer | (Layer | Composition)[];
49
- export type Transform = {
50
- x?: number;
51
- y?: number;
52
- scale?: number;
53
- opacity?: number;
54
- anchor?: number;
55
- };
56
59
  export type TextLayer = {
60
+ id: Id;
57
61
  kind: 'text';
58
62
  content: string;
59
- fontSize?: number;
60
- color?: string;
61
- } & Transform;
63
+ style?: TextStyleOptions;
64
+ matrix?: Mat6;
65
+ };
62
66
  export type ImageLayer = {
67
+ id: Id;
63
68
  kind: 'image';
64
69
  frame: VideoFrame;
65
- } & Transform;
66
- export type Layer = TextLayer | ImageLayer;
70
+ matrix?: Mat6;
71
+ };
72
+ export type TransitionLayer = {
73
+ id: Id;
74
+ kind: 'transition';
75
+ name: string;
76
+ progress: number;
77
+ from: VideoFrame;
78
+ to: VideoFrame;
79
+ };
80
+ export type GapLayer = {
81
+ id: Id;
82
+ kind: 'gap';
83
+ };
84
+ export type Audio = {
85
+ id: Id;
86
+ kind: "audio";
87
+ data: AudioData;
88
+ };
89
+ export type Layer = TextLayer | ImageLayer | TransitionLayer | GapLayer;
@@ -1,17 +1,22 @@
1
- import { Input } from "mediabunny";
2
- import { Composition } from "./schematic.js";
1
+ import { DecoderSource } from "./schematic.js";
3
2
  export declare const setupDriverWork: import("@e280/comrade").SetupWork<{
4
3
  work: {
5
4
  hello(): Promise<void>;
6
- decode(input: {
7
- source: import("./schematic.js").DecoderSource;
8
- video: WritableStream<VideoFrame>;
5
+ decodeAudio(input: {
6
+ source: DecoderSource;
9
7
  audio: WritableStream<AudioData>;
8
+ start?: number;
9
+ end?: number;
10
+ }): Promise<void>;
11
+ decodeVideo(input: {
12
+ source: DecoderSource;
13
+ video: WritableStream<VideoFrame>;
14
+ start?: number;
15
+ end?: number;
10
16
  }): Promise<void>;
11
17
  encode(input: import("./schematic.js").EncoderInput & {
12
- bridge: WritableStream<Input>;
18
+ writable: WritableStream<import("mediabunny").StreamTargetChunk>;
13
19
  }): Promise<void>;
14
- composite(input: Composition): Promise<VideoFrame>;
15
20
  };
16
21
  host: {
17
22
  world(): Promise<void>;
@@ -1,192 +1,90 @@
1
1
  import { Comrade } from "@e280/comrade";
2
- import { autoDetectRenderer, Container, Sprite, Text, Texture, DOMAdapter, WebWorkerAdapter } from "pixi.js";
2
+ import { DOMAdapter, WebWorkerAdapter } from "pixi.js";
3
3
  import { Input, ALL_FORMATS, VideoSampleSink, Output, Mp4OutputFormat, VideoSampleSource, VideoSample, AudioSampleSink, AudioSampleSource, AudioSample, StreamTarget, BlobSource, UrlSource } from "mediabunny";
4
4
  DOMAdapter.set(WebWorkerAdapter);
5
+ const loadSource = async (source) => {
6
+ if (source instanceof Blob) {
7
+ return new BlobSource(source);
8
+ }
9
+ else {
10
+ return new UrlSource(source);
11
+ }
12
+ };
5
13
  export const setupDriverWork = (Comrade.work(shell => ({
6
14
  async hello() {
7
15
  await shell.host.world();
8
16
  },
9
- async decode({ source, video, audio }) {
10
- const loadSource = async () => {
11
- if (source instanceof Blob) {
12
- return new BlobSource(source);
13
- }
14
- else {
15
- return new UrlSource(source);
17
+ async decodeAudio({ source, audio, start, end }) {
18
+ const input = new Input({
19
+ source: await loadSource(source),
20
+ formats: ALL_FORMATS
21
+ });
22
+ const audioTrack = await input.getPrimaryAudioTrack();
23
+ const audioDecodable = await audioTrack?.canDecode();
24
+ const audioWriter = audio.getWriter();
25
+ if (audioDecodable && audioTrack) {
26
+ const sink = new AudioSampleSink(audioTrack);
27
+ for await (const sample of sink.samples(start, end)) {
28
+ const frame = sample.toAudioData();
29
+ await audioWriter.write(frame);
30
+ sample.close();
31
+ frame.close();
16
32
  }
17
- };
33
+ await audioWriter.close();
34
+ }
35
+ },
36
+ async decodeVideo({ source, video, start, end }) {
18
37
  const input = new Input({
19
- source: await loadSource(),
38
+ source: await loadSource(source),
20
39
  formats: ALL_FORMATS
21
40
  });
22
- const [videoTrack, audioTrack] = await Promise.all([
23
- input.getPrimaryVideoTrack(),
24
- input.getPrimaryAudioTrack()
25
- ]);
41
+ const videoTrack = await input.getPrimaryVideoTrack();
26
42
  const videoDecodable = await videoTrack?.canDecode();
27
- const audioDecodable = await audioTrack?.canDecode();
28
43
  const videoWriter = video.getWriter();
29
- const audioWriter = audio.getWriter();
30
- await Promise.all([
31
- (async () => {
32
- if (videoDecodable && videoTrack) {
33
- const sink = new VideoSampleSink(videoTrack);
34
- for await (const sample of sink.samples()) {
35
- const frame = sample.toVideoFrame();
36
- await videoWriter.write(frame);
37
- sample.close();
38
- frame.close();
39
- }
40
- await videoWriter.close();
41
- }
42
- })(),
43
- (async () => {
44
- if (audioDecodable && audioTrack) {
45
- const sink = new AudioSampleSink(audioTrack);
46
- for await (const sample of sink.samples()) {
47
- const frame = sample.toAudioData();
48
- await audioWriter.write(frame);
49
- sample.close();
50
- frame.close();
51
- }
52
- await audioWriter.close();
53
- }
54
- })()
55
- ]);
44
+ if (videoDecodable && videoTrack) {
45
+ const sink = new VideoSampleSink(videoTrack);
46
+ for await (const sample of sink.samples(start, end)) {
47
+ const frame = sample.toVideoFrame();
48
+ await videoWriter.write(frame);
49
+ sample.close();
50
+ frame.close();
51
+ }
52
+ await videoWriter.close();
53
+ }
56
54
  },
57
- async encode({ readables, config, bridge }) {
55
+ async encode({ video, audio, config, writable }) {
58
56
  const output = new Output({
59
57
  format: new Mp4OutputFormat(),
60
- target: new StreamTarget(bridge, { chunked: true })
58
+ target: new StreamTarget(writable, { chunked: true })
61
59
  });
62
- const videoSource = new VideoSampleSource(config.video);
63
- output.addVideoTrack(videoSource);
64
- // since AudioSample is not transferable it fails to transfer encoder bitrate config
65
- // so it needs to be hardcoded not set through constants eg QUALITY_LOW
66
- const audioSource = new AudioSampleSource(config.audio);
67
- output.addAudioTrack(audioSource);
60
+ async function encodeVideo() {
61
+ if (!video)
62
+ return;
63
+ const videoSource = new VideoSampleSource(config.video);
64
+ output.addVideoTrack(videoSource);
65
+ for await (const frame of video) {
66
+ const sample = new VideoSample(frame);
67
+ await videoSource.add(sample);
68
+ sample.close();
69
+ }
70
+ }
71
+ async function encodeAudio() {
72
+ if (!audio)
73
+ return;
74
+ const audioSource = new AudioSampleSource(config.audio);
75
+ output.addAudioTrack(audioSource);
76
+ for await (const data of audio) {
77
+ const sample = new AudioSample(data);
78
+ await audioSource.add(sample);
79
+ sample.close();
80
+ data.close();
81
+ }
82
+ }
83
+ const audioTask = encodeAudio();
84
+ const videoTask = encodeVideo();
68
85
  await output.start();
69
- const videoReader = readables.video.getReader();
70
- const audioReader = readables.audio.getReader();
71
- await Promise.all([
72
- (async () => {
73
- while (true) {
74
- const { done, value } = await videoReader.read();
75
- if (done)
76
- break;
77
- const sample = new VideoSample(value);
78
- await videoSource.add(sample);
79
- sample.close();
80
- }
81
- })(),
82
- (async () => {
83
- while (true) {
84
- const { done, value } = await audioReader.read();
85
- if (done)
86
- break;
87
- const sample = new AudioSample(value);
88
- await audioSource.add(sample);
89
- sample.close();
90
- value.close();
91
- }
92
- })()
93
- ]);
86
+ await Promise.all([audioTask, videoTask]);
94
87
  await output.finalize();
95
88
  },
96
- async composite(composition) {
97
- const { stage, renderer } = await renderPIXI(1920, 1080);
98
- stage.removeChildren();
99
- const { baseFrame, disposables } = await renderLayer(composition, stage);
100
- renderer.render(stage);
101
- // make sure browser support webgl/webgpu otherwise it might take much longer to construct frame
102
- // if its very slow on eg edge try chrome
103
- const frame = new VideoFrame(renderer.canvas, {
104
- timestamp: baseFrame?.timestamp,
105
- duration: baseFrame?.duration ?? undefined,
106
- });
107
- baseFrame?.close();
108
- renderer.clear();
109
- for (const disposable of disposables) {
110
- disposable.destroy(true);
111
- }
112
- shell.transfer = [frame];
113
- return frame;
114
- }
115
89
  })));
116
- // TODO suspicious global, probably bad
117
- let pixi = null;
118
- async function renderPIXI(width, height) {
119
- if (pixi)
120
- return pixi;
121
- const renderer = await autoDetectRenderer({
122
- width,
123
- height,
124
- preference: "webgl", // webgl and webgl2 causes memory leaks on chrome
125
- background: "black",
126
- preferWebGLVersion: 2
127
- });
128
- const stage = new Container();
129
- pixi = { renderer, stage };
130
- return pixi;
131
- }
132
- async function renderLayer(layer, parent, disposables = []) {
133
- if (Array.isArray(layer)) {
134
- let baseFrame;
135
- for (const child of layer) {
136
- const result = await renderLayer(child, parent, disposables);
137
- baseFrame ??= result.baseFrame;
138
- }
139
- return { baseFrame, disposables };
140
- }
141
- if (!isRenderableLayer(layer)) {
142
- console.warn('Invalid layer', layer);
143
- return { disposables };
144
- }
145
- switch (layer.kind) {
146
- case 'text':
147
- return renderTextLayer(layer, parent, disposables);
148
- case 'image':
149
- return renderImageLayer(layer, parent, disposables);
150
- default:
151
- console.warn('Unknown layer kind', layer.kind);
152
- return { disposables };
153
- }
154
- }
155
- function isRenderableLayer(layer) {
156
- return !!layer && typeof layer === 'object' && typeof layer.kind === 'string';
157
- }
158
- function renderTextLayer(layer, parent, disposables) {
159
- const text = new Text({
160
- text: layer.content,
161
- style: {
162
- fontFamily: 'sans-serif',
163
- fontSize: layer.fontSize ?? 48,
164
- fill: layer.color ?? 'white'
165
- }
166
- });
167
- applyTransform(text, layer);
168
- parent.addChild(text);
169
- disposables.push(text);
170
- return { disposables };
171
- }
172
- function renderImageLayer(layer, parent, disposables) {
173
- const texture = Texture.from(layer.frame);
174
- const sprite = new Sprite(texture);
175
- applyTransform(sprite, layer);
176
- parent.addChild(sprite);
177
- disposables.push(sprite, texture);
178
- return { baseFrame: layer.frame, disposables };
179
- }
180
- function applyTransform(target, t = {}) {
181
- if (t.x)
182
- target.x = t.x;
183
- if (t.y)
184
- target.y = t.y;
185
- if (t.scale)
186
- target.scale.set(t.scale);
187
- if (t.opacity)
188
- target.alpha = t.opacity;
189
- if (t.anchor && 'anchor' in target)
190
- target.anchor.set(t.anchor);
191
- }
192
90
  //# sourceMappingURL=work.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"work.js","sourceRoot":"","sources":["../../../s/driver/fns/work.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"work.js","sourceRoot":"","sources":["../../../s/driver/fns/work.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { Container, Renderer } from "pixi.js";
2
+ import { Composition } from "../fns/schematic.js";
3
+ export declare class Compositor {
4
+ #private;
5
+ pixi: {
6
+ renderer: Renderer;
7
+ stage: Container;
8
+ };
9
+ static setup(): Promise<Compositor>;
10
+ constructor(pixi: {
11
+ renderer: Renderer;
12
+ stage: Container;
13
+ });
14
+ composite(composition: Composition): Promise<VideoFrame>;
15
+ }
@@ -0,0 +1,152 @@
1
+ import { autoDetectRenderer, Container, Sprite, Text, Texture } from "pixi.js";
2
+ import { mat6ToMatrix } from "../../timeline/utils/matrix.js";
3
+ import { makeTransition } from "../../features/transition/transition.js";
4
+ export class Compositor {
5
+ pixi;
6
+ static async setup() {
7
+ const renderer = await autoDetectRenderer({
8
+ width: 1920,
9
+ height: 1080,
10
+ preference: "webgl", // webgl and webgl2 causes memory leaks on chrome
11
+ background: "black",
12
+ preferWebGLVersion: 2
13
+ });
14
+ const stage = new Container();
15
+ stage.interactive = true;
16
+ return new this({ renderer, stage });
17
+ }
18
+ constructor(pixi) {
19
+ this.pixi = pixi;
20
+ }
21
+ #transitions = new Map();
22
+ #objects = new Map();
23
+ async composite(composition) {
24
+ const { stage, renderer } = this.pixi;
25
+ this.#cleanup(this.#collectIds(composition));
26
+ const { dispose } = await this.#renderLayer(composition, stage);
27
+ renderer.render(stage);
28
+ // make sure browser support webgl/webgpu otherwise it might take much longer to construct frame
29
+ // if its very slow on eg edge try chrome
30
+ const frame = new VideoFrame(renderer.canvas, {
31
+ timestamp: 0,
32
+ duration: 0,
33
+ });
34
+ dispose();
35
+ return frame;
36
+ }
37
+ async #renderLayer(layer, parent) {
38
+ if (Array.isArray(layer)) {
39
+ layer.reverse();
40
+ const disposers = [];
41
+ for (const child of layer) {
42
+ const result = await this.#renderLayer(child, parent);
43
+ disposers.push(result.dispose);
44
+ }
45
+ return { dispose: () => disposers.forEach(d => d()) };
46
+ }
47
+ switch (layer.kind) {
48
+ case 'text':
49
+ return this.#renderTextLayer(layer, parent);
50
+ case 'image':
51
+ return this.#renderImageLayer(layer, parent);
52
+ case 'transition':
53
+ return this.#renderTransitionLayer(layer, parent);
54
+ case 'gap': {
55
+ this.pixi?.renderer.clear();
56
+ return { dispose: () => { } };
57
+ }
58
+ default:
59
+ console.warn('Unknown layer kind', layer.kind);
60
+ return { dispose: () => { } };
61
+ }
62
+ }
63
+ #renderTextLayer(layer, parent) {
64
+ const text = this.#findOrCreate(layer);
65
+ this.#applyTransform(text, layer.matrix);
66
+ parent.addChild(text);
67
+ return {
68
+ dispose: () => { }
69
+ };
70
+ }
71
+ #renderImageLayer(layer, parent) {
72
+ const texture = Texture.from(layer.frame);
73
+ const sprite = this.#findOrCreate(layer);
74
+ sprite.texture = texture;
75
+ this.#applyTransform(sprite, layer.matrix);
76
+ parent.addChild(sprite);
77
+ return {
78
+ dispose: () => {
79
+ texture.destroy(true);
80
+ layer.frame.close();
81
+ }
82
+ };
83
+ }
84
+ #renderTransitionLayer({ from, to, progress, name }, parent) {
85
+ const transition = this.#transitions.get(name) ??
86
+ (this.#transitions.set(name, makeTransition({
87
+ name: "circle",
88
+ renderer: this.pixi.renderer
89
+ })),
90
+ this.#transitions.get(name));
91
+ const texture = transition.render({ from, to, progress, width: from.displayWidth, height: from.displayHeight });
92
+ const sprite = new Sprite(texture);
93
+ parent.addChild(sprite);
94
+ return { dispose: () => sprite.destroy(false) };
95
+ }
96
+ #applyTransform(target, worldMatrix) {
97
+ if (!worldMatrix)
98
+ return;
99
+ const mx = mat6ToMatrix(worldMatrix);
100
+ target.setFromMatrix(mx);
101
+ }
102
+ #findOrCreate(layer) {
103
+ const object = this.#objects.get(layer.id);
104
+ if (!object) {
105
+ switch (layer.kind) {
106
+ case 'text': {
107
+ const text = new Text({
108
+ text: layer.content,
109
+ style: layer.style
110
+ });
111
+ text.onmouseenter = () => console.log("enter text");
112
+ return this.#objects
113
+ .set(layer.id, text)
114
+ .get(layer.id);
115
+ }
116
+ case 'image': {
117
+ const sprite = new Sprite();
118
+ sprite.onmouseenter = () => console.log("enter");
119
+ return this.#objects
120
+ .set(layer.id, sprite)
121
+ .get(layer.id);
122
+ }
123
+ }
124
+ }
125
+ else
126
+ return object;
127
+ }
128
+ #collectIds(layers) {
129
+ const result = new Set();
130
+ const traverse = (node) => {
131
+ if (Array.isArray(node)) {
132
+ for (const child of node)
133
+ traverse(child);
134
+ }
135
+ else {
136
+ result.add(node.id);
137
+ }
138
+ };
139
+ traverse(layers);
140
+ return result;
141
+ }
142
+ #cleanup(activeIds) {
143
+ for (const id of this.#objects.keys()) {
144
+ if (!activeIds.has(id)) {
145
+ const obj = this.#objects.get(id);
146
+ obj.destroy(true);
147
+ this.#objects.delete(id);
148
+ }
149
+ }
150
+ }
151
+ }
152
+ //# sourceMappingURL=compositor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compositor.js","sourceRoot":"","sources":["../../../s/driver/parts/compositor.ts"],"names":[],"mappings":"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"}
@@ -1,23 +1,3 @@
1
- import { WebMediaInfo } from "web-demuxer";
2
- type Events = {
3
- type: "config";
4
- config: {
5
- audio: AudioDecoderConfig;
6
- video: VideoDecoderConfig;
7
- };
8
- } | {
9
- type: "info";
10
- data: WebMediaInfo;
11
- } | {
12
- type: "encoderQueueSize";
13
- size: number;
14
- };
15
- type Handler = (event: Events) => void;
16
1
  export declare class Machina {
17
- #private;
18
2
  count: number;
19
- register(id: number, handler: Handler): void;
20
- unregister(id: number): void;
21
- dispatch(id: number, event: Events): void;
22
3
  }
23
- export {};