@omnimedia/omnitool 1.1.0-3 → 1.1.0-30

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 (189) hide show
  1. package/package.json +15 -10
  2. package/s/context.ts +0 -7
  3. package/s/demo/demo.bundle.ts +39 -5
  4. package/s/demo/demo.css +5 -0
  5. package/s/demo/routines/filmstrip-test.ts +2 -2
  6. package/s/demo/routines/transcode-test.ts +8 -4
  7. package/s/demo/routines/transcriber-test.ts +34 -0
  8. package/s/demo/routines/transitions-test.ts +43 -0
  9. package/s/demo/routines/waveform-test.ts +3 -2
  10. package/s/driver/driver.ts +19 -11
  11. package/s/driver/fns/host.ts +7 -6
  12. package/s/driver/fns/schematic.ts +47 -24
  13. package/s/driver/fns/work.ts +165 -156
  14. package/s/driver/utils/load-decoder-source.ts +3 -4
  15. package/s/features/speech/transcribe/default-spec.ts +11 -0
  16. package/s/features/speech/transcribe/parts/load-pipe.ts +19 -0
  17. package/s/features/speech/transcribe/parts/prep-audio.ts +23 -0
  18. package/s/features/speech/transcribe/parts/transcribe.ts +70 -0
  19. package/s/features/speech/transcribe/transcriber.ts +46 -0
  20. package/s/features/speech/transcribe/types.ts +82 -0
  21. package/s/features/speech/transcribe/worker.bundle.ts +40 -0
  22. package/s/features/transition/parts/fragment.ts +24 -0
  23. package/s/features/transition/parts/types.ts +94 -0
  24. package/s/features/transition/parts/uniforms.ts +29 -0
  25. package/s/features/transition/parts/vertex.ts +31 -0
  26. package/s/features/transition/transition.ts +60 -0
  27. package/s/index.html.ts +6 -1
  28. package/s/timeline/index.ts +1 -0
  29. package/s/timeline/parts/basics.ts +1 -1
  30. package/s/timeline/parts/compositor/export.ts +77 -0
  31. package/s/timeline/parts/compositor/parts/html-tree.ts +37 -0
  32. package/s/timeline/parts/compositor/parts/schedulers.ts +94 -0
  33. package/s/timeline/parts/compositor/parts/tree-builder.ts +196 -0
  34. package/s/timeline/parts/compositor/parts/webcodecs-tree.ts +30 -0
  35. package/s/timeline/parts/compositor/playback.ts +94 -0
  36. package/s/timeline/parts/compositor/samplers/html.ts +115 -0
  37. package/s/timeline/parts/compositor/samplers/webcodecs.ts +61 -0
  38. package/s/timeline/parts/item.ts +48 -6
  39. package/s/timeline/parts/media.ts +21 -0
  40. package/s/timeline/parts/waveform.ts +3 -4
  41. package/s/timeline/sugar/builders.ts +102 -0
  42. package/s/timeline/sugar/o.ts +162 -36
  43. package/s/timeline/sugar/omni-test.ts +5 -3
  44. package/s/timeline/sugar/omni.ts +26 -11
  45. package/s/timeline/types.ts +29 -0
  46. package/s/timeline/utils/audio-stream.ts +15 -0
  47. package/s/timeline/utils/checksum.ts +2 -1
  48. package/s/timeline/utils/matrix.ts +33 -0
  49. package/s/timeline/utils/video-cursor.ts +40 -0
  50. package/x/context.d.ts +1 -4
  51. package/x/context.js +1 -5
  52. package/x/context.js.map +1 -1
  53. package/x/demo/demo.bundle.js +26 -5
  54. package/x/demo/demo.bundle.js.map +1 -1
  55. package/x/demo/demo.bundle.min.js +606 -36
  56. package/x/demo/demo.bundle.min.js.map +4 -4
  57. package/x/demo/demo.css +5 -0
  58. package/x/demo/routines/filmstrip-test.d.ts +1 -1
  59. package/x/demo/routines/filmstrip-test.js +2 -2
  60. package/x/demo/routines/filmstrip-test.js.map +1 -1
  61. package/x/demo/routines/transcode-test.js +8 -4
  62. package/x/demo/routines/transcode-test.js.map +1 -1
  63. package/x/demo/routines/transcriber-test.d.ts +4 -0
  64. package/x/demo/routines/transcriber-test.js +33 -0
  65. package/x/demo/routines/transcriber-test.js.map +1 -0
  66. package/x/demo/routines/transitions-test.d.ts +5 -0
  67. package/x/demo/routines/transitions-test.js +35 -0
  68. package/x/demo/routines/transitions-test.js.map +1 -0
  69. package/x/demo/routines/waveform-test.d.ts +2 -1
  70. package/x/demo/routines/waveform-test.js +2 -2
  71. package/x/demo/routines/waveform-test.js.map +1 -1
  72. package/x/driver/driver.d.ts +4 -6
  73. package/x/driver/driver.js +17 -10
  74. package/x/driver/driver.js.map +1 -1
  75. package/x/driver/driver.worker.bundle.min.js +2537 -148
  76. package/x/driver/driver.worker.bundle.min.js.map +4 -4
  77. package/x/driver/fns/host.d.ts +9 -2
  78. package/x/driver/fns/host.js +3 -3
  79. package/x/driver/fns/host.js.map +1 -1
  80. package/x/driver/fns/schematic.d.ts +41 -23
  81. package/x/driver/fns/work.d.ts +11 -4
  82. package/x/driver/fns/work.js +113 -107
  83. package/x/driver/fns/work.js.map +1 -1
  84. package/x/driver/utils/load-decoder-source.d.ts +2 -1
  85. package/x/driver/utils/load-decoder-source.js +2 -3
  86. package/x/driver/utils/load-decoder-source.js.map +1 -1
  87. package/x/features/speech/transcribe/default-spec.d.ts +2 -0
  88. package/x/features/speech/transcribe/default-spec.js +8 -0
  89. package/x/features/speech/transcribe/default-spec.js.map +1 -0
  90. package/x/features/speech/transcribe/parts/load-pipe.d.ts +2 -0
  91. package/x/features/speech/transcribe/parts/load-pipe.js +13 -0
  92. package/x/features/speech/transcribe/parts/load-pipe.js.map +1 -0
  93. package/x/features/speech/transcribe/parts/prep-audio.d.ts +5 -0
  94. package/x/features/speech/transcribe/parts/prep-audio.js +21 -0
  95. package/x/features/speech/transcribe/parts/prep-audio.js.map +1 -0
  96. package/x/features/speech/transcribe/parts/transcribe.d.ts +5 -0
  97. package/x/features/speech/transcribe/parts/transcribe.js +56 -0
  98. package/x/features/speech/transcribe/parts/transcribe.js.map +1 -0
  99. package/x/features/speech/transcribe/transcriber.d.ts +5 -0
  100. package/x/features/speech/transcribe/transcriber.js +33 -0
  101. package/x/features/speech/transcribe/transcriber.js.map +1 -0
  102. package/x/features/speech/transcribe/types.d.ts +66 -0
  103. package/x/features/speech/transcribe/types.js +2 -0
  104. package/x/features/speech/transcribe/types.js.map +1 -0
  105. package/x/features/speech/transcribe/worker.bundle.d.ts +1 -0
  106. package/x/features/speech/transcribe/worker.bundle.js +33 -0
  107. package/x/features/speech/transcribe/worker.bundle.js.map +1 -0
  108. package/x/features/speech/transcribe/worker.bundle.min.js +2916 -0
  109. package/x/features/speech/transcribe/worker.bundle.min.js.map +7 -0
  110. package/x/features/transition/parts/fragment.d.ts +1 -0
  111. package/x/features/transition/parts/fragment.js +25 -0
  112. package/x/features/transition/parts/fragment.js.map +1 -0
  113. package/x/features/transition/parts/types.d.ts +23 -0
  114. package/x/features/transition/parts/types.js +2 -0
  115. package/x/features/transition/parts/types.js.map +1 -0
  116. package/x/features/transition/parts/uniforms.d.ts +31 -0
  117. package/x/features/transition/parts/uniforms.js +27 -0
  118. package/x/features/transition/parts/uniforms.js.map +1 -0
  119. package/x/features/transition/parts/vertex.d.ts +1 -0
  120. package/x/features/transition/parts/vertex.js +32 -0
  121. package/x/features/transition/parts/vertex.js.map +1 -0
  122. package/x/features/transition/transition.d.ts +5 -0
  123. package/x/features/transition/transition.js +50 -0
  124. package/x/features/transition/transition.js.map +1 -0
  125. package/x/index.html +13 -3
  126. package/x/index.html.js +6 -1
  127. package/x/index.html.js.map +1 -1
  128. package/x/timeline/index.d.ts +1 -0
  129. package/x/timeline/index.js +1 -0
  130. package/x/timeline/index.js.map +1 -1
  131. package/x/timeline/parts/basics.d.ts +1 -1
  132. package/x/timeline/parts/compositor/export.d.ts +11 -0
  133. package/x/timeline/parts/compositor/export.js +64 -0
  134. package/x/timeline/parts/compositor/export.js.map +1 -0
  135. package/x/timeline/parts/compositor/parts/html-tree.d.ts +3 -0
  136. package/x/timeline/parts/compositor/parts/html-tree.js +40 -0
  137. package/x/timeline/parts/compositor/parts/html-tree.js.map +1 -0
  138. package/x/timeline/parts/compositor/parts/schedulers.d.ts +15 -0
  139. package/x/timeline/parts/compositor/parts/schedulers.js +69 -0
  140. package/x/timeline/parts/compositor/parts/schedulers.js.map +1 -0
  141. package/x/timeline/parts/compositor/parts/tree-builder.d.ts +37 -0
  142. package/x/timeline/parts/compositor/parts/tree-builder.js +160 -0
  143. package/x/timeline/parts/compositor/parts/tree-builder.js.map +1 -0
  144. package/x/timeline/parts/compositor/parts/webcodecs-tree.d.ts +3 -0
  145. package/x/timeline/parts/compositor/parts/webcodecs-tree.js +28 -0
  146. package/x/timeline/parts/compositor/parts/webcodecs-tree.js.map +1 -0
  147. package/x/timeline/parts/compositor/playback.d.ts +26 -0
  148. package/x/timeline/parts/compositor/playback.js +79 -0
  149. package/x/timeline/parts/compositor/playback.js.map +1 -0
  150. package/x/timeline/parts/compositor/samplers/html.d.ts +3 -0
  151. package/x/timeline/parts/compositor/samplers/html.js +106 -0
  152. package/x/timeline/parts/compositor/samplers/html.js.map +1 -0
  153. package/x/timeline/parts/compositor/samplers/webcodecs.d.ts +3 -0
  154. package/x/timeline/parts/compositor/samplers/webcodecs.js +52 -0
  155. package/x/timeline/parts/compositor/samplers/webcodecs.js.map +1 -0
  156. package/x/timeline/parts/item.d.ts +42 -8
  157. package/x/timeline/parts/item.js +7 -3
  158. package/x/timeline/parts/item.js.map +1 -1
  159. package/x/timeline/parts/media.d.ts +3 -0
  160. package/x/timeline/parts/media.js +17 -0
  161. package/x/timeline/parts/media.js.map +1 -1
  162. package/x/timeline/parts/waveform.d.ts +2 -1
  163. package/x/timeline/parts/waveform.js +2 -4
  164. package/x/timeline/parts/waveform.js.map +1 -1
  165. package/x/timeline/sugar/builders.d.ts +1 -0
  166. package/x/timeline/sugar/builders.js +104 -0
  167. package/x/timeline/sugar/builders.js.map +1 -0
  168. package/x/timeline/sugar/o.d.ts +27 -5
  169. package/x/timeline/sugar/o.js +135 -36
  170. package/x/timeline/sugar/o.js.map +1 -1
  171. package/x/timeline/sugar/omni-test.js +4 -2
  172. package/x/timeline/sugar/omni-test.js.map +1 -1
  173. package/x/timeline/sugar/omni.d.ts +8 -2
  174. package/x/timeline/sugar/omni.js +22 -9
  175. package/x/timeline/sugar/omni.js.map +1 -1
  176. package/x/timeline/types.d.ts +24 -0
  177. package/x/timeline/types.js +2 -0
  178. package/x/timeline/types.js.map +1 -0
  179. package/x/timeline/utils/audio-stream.d.ts +6 -0
  180. package/x/timeline/utils/audio-stream.js +17 -0
  181. package/x/timeline/utils/audio-stream.js.map +1 -0
  182. package/x/timeline/utils/checksum.js +2 -1
  183. package/x/timeline/utils/checksum.js.map +1 -1
  184. package/x/timeline/utils/matrix.d.ts +8 -0
  185. package/x/timeline/utils/matrix.js +26 -0
  186. package/x/timeline/utils/matrix.js.map +1 -0
  187. package/x/timeline/utils/video-cursor.d.ts +10 -0
  188. package/x/timeline/utils/video-cursor.js +36 -0
  189. package/x/timeline/utils/video-cursor.js.map +1 -0
package/x/demo/demo.css CHANGED
@@ -46,6 +46,11 @@
46
46
  }
47
47
  }
48
48
 
49
+ canvas {
50
+ width: 500px;
51
+ height: 300px;
52
+ }
53
+
49
54
  #filmstrip {
50
55
  display: flex;
51
56
  overflow-x: scroll;
@@ -1 +1 @@
1
- export declare function filmstripTest(fileHandle: FileSystemFileHandle): Promise<void>;
1
+ export declare function filmstripTest(file: File): Promise<void>;
@@ -1,5 +1,5 @@
1
1
  import { Filmstrip } from "../../timeline/parts/filmstrip.js";
2
- export async function filmstripTest(fileHandle) {
2
+ export async function filmstripTest(file) {
3
3
  const rangeSlider = document.querySelector(".range");
4
4
  const rangeView = document.querySelector(".range-view");
5
5
  const rangeSizeSlider = document.querySelector(".range-size");
@@ -8,7 +8,7 @@ export async function filmstripTest(fileHandle) {
8
8
  const container = document.querySelector("#filmstrip");
9
9
  const FPS_10 = 1000 / 10 / 1000;
10
10
  let rangeSize = 0.5;
11
- const filmstrip = await Filmstrip.init(fileHandle, {
11
+ const filmstrip = await Filmstrip.init(file, {
12
12
  onChange(tiles) {
13
13
  // Sort by time (optional, for clean ordering)
14
14
  const sorted = tiles.sort((a, b) => a.time - b.time);
@@ -1 +1 @@
1
- {"version":3,"file":"filmstrip-test.js","sourceRoot":"","sources":["../../../s/demo/routines/filmstrip-test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,mCAAmC,CAAA;AAE3D,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,UAAgC;IACnE,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAqB,CAAA;IACxE,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAE,CAAA;IACxD,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAsB,CAAA;IAClF,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAsB,CAAA;IACjF,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,iBAAiB,CAAE,CAAA;IAChE,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAE,CAAA;IACvD,MAAM,MAAM,GAAG,IAAI,GAAC,EAAE,GAAG,IAAI,CAAA;IAC7B,IAAI,SAAS,GAAG,GAAG,CAAA;IACnB,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,IAAI,CACpC,UAAU,EACV;QACC,QAAQ,CAAC,KAAK;YACb,8CAA8C;YAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAA;YACpD,4BAA4B;YAC5B,SAAS,CAAC,eAAe,CACxB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAA2B,CAAC,CAAC,CAClG,CAAA;QACF,CAAC;QACD,SAAS,EAAE,MAAM;QACjB,iBAAiB,EAAE;YAClB,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;YACV,GAAG,EAAE,MAAM;SACX;KACD,CACD,CAAA;IACF,eAAe,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE;QAC/C,SAAS,GAAG,CAAC,eAAe,CAAC,KAAK,CAAA;QAClC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,KAAK,GAAC,SAAS,CAAC,CAAA;QACvE,SAAS,CAAC,KAAK,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QAC9B,SAAS,CAAC,WAAW,GAAG,wBAAwB,KAAK,KAAK,GAAG,GAAG,CAAA;IACjE,CAAC,CAAC,CAAA;IACF,WAAW,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,KAAK,GAAC,SAAS,CAAC,CAAA;QACvE,SAAS,CAAC,KAAK,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QAC9B,SAAS,CAAC,WAAW,GAAG,wBAAwB,KAAK,KAAK,GAAG,GAAG,CAAA;IACjE,CAAC,CAAC,CAAA;IACF,eAAe,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE;QAC/C,SAAS,CAAC,SAAS,GAAG,IAAI,GAAC,CAAC,eAAe,CAAC,KAAK,GAAC,IAAI,CAAA;QACtD,aAAa,CAAC,WAAW,GAAG,eAAe,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,eAAe,CAAC,KAAK,qBAAqB,CAAA;IAChI,CAAC,CAAC,CAAA;IACF,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;AAC7B,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY,EAAE,MAAyB;IACnE,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IAC7C,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAA;IACnC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,cAAc,CAAA;IACtC,OAAO,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAA;IACjC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;IAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IAC3C,KAAK,CAAC,WAAW,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAA;IACzC,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAA;IACjC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAA;IACvB,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAA;IACzB,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAA;IAC7B,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,CAAA;IAC3B,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,iBAAiB,CAAA;IAC1C,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,SAAS,CAAA;IAC/B,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAA;IAChC,KAAK,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAA;IAClC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;IAC1B,OAAO,OAAO,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"filmstrip-test.js","sourceRoot":"","sources":["../../../s/demo/routines/filmstrip-test.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ export function setupTranscodeTest(driver, source) {
5
5
  canvas.height = dimensions.height;
6
6
  const ctx = canvas.getContext("2d");
7
7
  async function run() {
8
- const readables = driver.decode({
8
+ const video = driver.decodeVideo({
9
9
  source,
10
10
  async onFrame(frame) {
11
11
  const composed = await driver.composite([
@@ -16,8 +16,10 @@ export function setupTranscodeTest(driver, source) {
16
16
  {
17
17
  kind: "text",
18
18
  content: "omnitool",
19
- fontSize: 50,
20
- color: "green"
19
+ style: {
20
+ fontSize: 50,
21
+ fill: "green"
22
+ }
21
23
  }
22
24
  ]);
23
25
  frame.close();
@@ -25,8 +27,10 @@ export function setupTranscodeTest(driver, source) {
25
27
  return composed;
26
28
  }
27
29
  });
30
+ const audio = driver.decodeAudio({ source });
28
31
  await driver.encode({
29
- readables,
32
+ video,
33
+ audio,
30
34
  config: {
31
35
  audio: { codec: "opus", bitrate: 128000 },
32
36
  video: { codec: "vp9", bitrate: 1000000 }
@@ -1 +1 @@
1
- {"version":3,"file":"transcode-test.js","sourceRoot":"","sources":["../../../s/demo/routines/transcode-test.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,MAAqB;IACvE,MAAM,UAAU,GAAG,EAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAC,CAAA;IAE9C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;IAC/C,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAA;IAC/B,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;IACjC,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IAEnC,KAAK,UAAU,GAAG;QACjB,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;YAC/B,MAAM;YACN,KAAK,CAAC,OAAO,CAAC,KAAK;gBAClB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC;oBACvC;wBACC,IAAI,EAAE,OAAO;wBACb,KAAK;qBACL;oBACD;wBACC,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,UAAU;wBACnB,QAAQ,EAAE,EAAE;wBACZ,KAAK,EAAE,OAAO;qBACd;iBACD,CAAC,CAAA;gBACF,KAAK,CAAC,KAAK,EAAE,CAAA;gBACb,GAAG,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;gBAC9B,OAAO,QAAQ,CAAA;YAChB,CAAC;SACD,CAAC,CAAA;QAEF,MAAM,MAAM,CAAC,MAAM,CAAC;YACnB,SAAS;YACT,MAAM,EAAE;gBACP,KAAK,EAAE,EAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAC;gBACvC,KAAK,EAAE,EAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAC;aACvC;SACD,CAAC,CAAA;IACH,CAAC;IAED,OAAO,EAAC,MAAM,EAAE,GAAG,EAAC,CAAA;AACrB,CAAC"}
1
+ {"version":3,"file":"transcode-test.js","sourceRoot":"","sources":["../../../s/demo/routines/transcode-test.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,MAAqB;IACvE,MAAM,UAAU,GAAG,EAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAC,CAAA;IAE9C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;IAC/C,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAA;IAC/B,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;IACjC,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IAEnC,KAAK,UAAU,GAAG;QACjB,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC;YAChC,MAAM;YACN,KAAK,CAAC,OAAO,CAAC,KAAK;gBAClB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC;oBACvC;wBACC,IAAI,EAAE,OAAO;wBACb,KAAK;qBACL;oBACD;wBACC,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,UAAU;wBACnB,KAAK,EAAE;4BACN,QAAQ,EAAE,EAAE;4BACZ,IAAI,EAAE,OAAO;yBACb;qBACD;iBACD,CAAC,CAAA;gBACF,KAAK,CAAC,KAAK,EAAE,CAAA;gBACb,GAAG,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;gBAC9B,OAAO,QAAQ,CAAA;YAChB,CAAC;SACD,CAAC,CAAA;QACF,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,EAAC,MAAM,EAAC,CAAC,CAAA;QAE1C,MAAM,MAAM,CAAC,MAAM,CAAC;YACnB,KAAK;YACL,KAAK;YACL,MAAM,EAAE;gBACP,KAAK,EAAE,EAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAC;gBACvC,KAAK,EAAE,EAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAC;aACvC;SACD,CAAC,CAAA;IACH,CAAC;IAED,OAAO,EAAC,MAAM,EAAE,GAAG,EAAC,CAAA;AACrB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Driver } from "../../driver/driver.js";
2
+ export declare function transcriberTest(driver: Driver): Promise<{
3
+ transcribe: (file: File) => Promise<void>;
4
+ }>;
@@ -0,0 +1,33 @@
1
+ import { makeTranscriber } from "../../features/speech/transcribe/transcriber.js";
2
+ export async function transcriberTest(driver) {
3
+ const transcriber = await makeTranscriber({
4
+ driver,
5
+ spec: {
6
+ model: "onnx-community/whisper-tiny_timestamped",
7
+ device: "webgpu",
8
+ strideLength: 5,
9
+ chunkLength: 30,
10
+ dtype: "fp32"
11
+ },
12
+ workerUrl: new URL("/features/speech/transcribe/worker.bundle.min.js", import.meta.url),
13
+ onLoading({ progress, total }) {
14
+ console.log(progress, total, "total");
15
+ },
16
+ });
17
+ return {
18
+ transcribe: async (file) => {
19
+ const result = await transcriber.transcribe({
20
+ source: file,
21
+ language: "english",
22
+ onReport(report) {
23
+ console.log("report", report);
24
+ },
25
+ onTranscription(transcription) {
26
+ console.log("transcript", transcription);
27
+ }
28
+ });
29
+ console.log(result, "transcript result");
30
+ }
31
+ };
32
+ }
33
+ //# sourceMappingURL=transcriber-test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transcriber-test.js","sourceRoot":"","sources":["../../../s/demo/routines/transcriber-test.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,iDAAiD,CAAA;AAE/E,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAc;IACnD,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC;QACzC,MAAM;QACN,IAAI,EAAE;YACL,KAAK,EAAE,yCAAyC;YAChD,MAAM,EAAE,QAAQ;YAChB,YAAY,EAAE,CAAC;YACf,WAAW,EAAE,EAAE;YACf,KAAK,EAAE,MAAM;SACb;QACD,SAAS,EAAE,IAAI,GAAG,CAAC,kDAAkD,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QACvF,SAAS,CAAC,EAAC,QAAQ,EAAE,KAAK,EAAC;YACzB,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;QACvC,CAAC;KACD,CAAC,CAAA;IACF,OAAO;QACN,UAAU,EAAE,KAAK,EAAE,IAAU,EAAE,EAAE;YAChC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC;gBAC3C,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,SAAS;gBACnB,QAAQ,CAAC,MAAM;oBACb,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;gBAC/B,CAAC;gBACD,eAAe,CAAC,aAAa;oBAC3B,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA;gBAC1C,CAAC;aACD,CAAC,CAAA;YACF,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;QACzC,CAAC;KACD,CAAA;AACF,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { Driver } from "../../driver/driver.js";
2
+ import { DecoderSource } from "../../driver/fns/schematic.js";
3
+ export declare function setupTransitionsTest(driver: Driver, source: DecoderSource): Promise<{
4
+ run: () => Promise<void>;
5
+ }>;
@@ -0,0 +1,35 @@
1
+ import { Application, Sprite } from "pixi.js";
2
+ import { makeTransition } from "../../features/transition/transition.js";
3
+ export async function setupTransitionsTest(driver, source) {
4
+ const app = new Application();
5
+ await app.init({ width: 300, height: 300, preference: "webgl" });
6
+ const sprite = new Sprite({ width: 300, height: 300 });
7
+ app.stage.addChild(sprite);
8
+ document.body.appendChild(app.canvas);
9
+ const transition = makeTransition({ name: "circle", renderer: app.renderer });
10
+ async function run() {
11
+ const video = driver.decodeVideo({
12
+ source,
13
+ async onFrame(frame) {
14
+ const texture = transition.render({
15
+ from: frame,
16
+ to: frame,
17
+ progress: 0.7,
18
+ width: app.canvas.width,
19
+ height: app.canvas.height
20
+ });
21
+ sprite.texture = texture;
22
+ return frame;
23
+ }
24
+ });
25
+ await driver.encode({
26
+ video,
27
+ config: {
28
+ audio: { codec: "opus", bitrate: 128000 },
29
+ video: { codec: "vp9", bitrate: 1000000 }
30
+ }
31
+ });
32
+ }
33
+ return { run };
34
+ }
35
+ //# sourceMappingURL=transitions-test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transitions-test.js","sourceRoot":"","sources":["../../../s/demo/routines/transitions-test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,MAAM,EAAC,MAAM,SAAS,CAAA;AAI3C,OAAO,EAAC,cAAc,EAAC,MAAM,yCAAyC,CAAA;AAEtE,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,MAAc,EAAE,MAAqB;IAC/E,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAA;IAC7B,MAAM,GAAG,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAC,CAAC,CAAA;IAC9D,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAC,CAAC,CAAA;IAEpD,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAE1B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACrC,MAAM,UAAU,GAAG,cAAc,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAC,CAAC,CAAA;IAE3E,KAAK,UAAU,GAAG;QACjB,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC;YAChC,MAAM;YACN,KAAK,CAAC,OAAO,CAAC,KAAK;gBAClB,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC;oBACjC,IAAI,EAAE,KAAK;oBACX,EAAE,EAAE,KAAK;oBACT,QAAQ,EAAE,GAAG;oBACb,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK;oBACvB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM;iBACzB,CAAC,CAAA;gBACF,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;gBACxB,OAAO,KAAK,CAAA;YACb,CAAC;SACD,CAAC,CAAA;QAEF,MAAM,MAAM,CAAC,MAAM,CAAC;YACnB,KAAK;YACL,MAAM,EAAE;gBACP,KAAK,EAAE,EAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAC;gBACvC,KAAK,EAAE,EAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAC;aACvC;SACD,CAAC,CAAA;IACH,CAAC;IAED,OAAO,EAAC,GAAG,EAAC,CAAA;AACb,CAAC"}
@@ -1 +1,2 @@
1
- export declare function waveformTest(): Promise<void>;
1
+ import { Driver } from "../../driver/driver.js";
2
+ export declare function waveformTest(driver: Driver): Promise<void>;
@@ -1,8 +1,8 @@
1
1
  import { Waveform } from "../../timeline/parts/waveform.js";
2
- export async function waveformTest() {
2
+ export async function waveformTest(driver) {
3
3
  const container = document.querySelector(".waveform-demo");
4
4
  const widthSlider = document.querySelector(".width");
5
- const waveform = await Waveform.init("/assets/temp/gl.mp4", container);
5
+ const waveform = await Waveform.init(driver, "/assets/temp/gl.mp4", container);
6
6
  widthSlider.addEventListener("change", () => {
7
7
  const width = +widthSlider.value;
8
8
  waveform.width = width;
@@ -1 +1 @@
1
- {"version":3,"file":"waveform-test.js","sourceRoot":"","sources":["../../../s/demo/routines/waveform-test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,kCAAkC,CAAA;AAEzD,MAAM,CAAC,KAAK,UAAU,YAAY;IACjC,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAgB,CAAA;IACzE,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAqB,CAAA;IACxE,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAA;IAEtE,WAAW,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE;QAC3C,MAAM,KAAK,GAAG,CAAC,WAAW,CAAC,KAAK,CAAA;QAChC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAA;IACvB,CAAC,CAAC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"waveform-test.js","sourceRoot":"","sources":["../../../s/demo/routines/waveform-test.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,QAAQ,EAAC,MAAM,kCAAkC,CAAA;AAEzD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAc;IAChD,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAgB,CAAA;IACzE,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAqB,CAAA;IACxE,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,qBAAqB,EAAE,SAAS,CAAC,CAAA;IAE9E,WAAW,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE;QAC3C,MAAM,KAAK,GAAG,CAAC,WAAW,CAAC,KAAK,CAAA;QAChC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAA;IACvB,CAAC,CAAC,CAAA;AACH,CAAC"}
@@ -8,15 +8,13 @@ export declare class Driver {
8
8
  #private;
9
9
  machina: Machina;
10
10
  thread: Thread<DriverSchematic>;
11
- static setup(options: DriverOptions): Promise<Driver>;
11
+ static setup(options?: DriverOptions): Promise<Driver>;
12
12
  constructor(machina: Machina, thread: Thread<DriverSchematic>);
13
13
  hello(): Promise<void>;
14
14
  getAudioDuration(source: DecoderSource): Promise<any>;
15
15
  getVideoDuration(source: DecoderSource): Promise<any>;
16
- decode(input: DecoderInput): {
17
- audio: ReadableStream<AudioData>;
18
- video: ReadableStream<VideoFrame>;
19
- };
20
- encode({ readables, config }: EncoderInput): Promise<void>;
16
+ decodeVideo(input: DecoderInput): ReadableStream<VideoFrame>;
17
+ decodeAudio(input: DecoderInput): ReadableStream<AudioData>;
18
+ encode({ video, audio, config }: EncoderInput): Promise<void>;
21
19
  composite(composition: Composition): Promise<VideoFrame>;
22
20
  }
@@ -10,7 +10,7 @@ export class Driver {
10
10
  const machina = new Machina();
11
11
  const thread = await Comrade.thread({
12
12
  label: "OmnitoolDriver",
13
- workerUrl: options.workerUrl,
13
+ workerUrl: options?.workerUrl ?? "/node_modules/@omnimedia/omnitool/x/driver/driver.worker.bundle.min.js",
14
14
  setupHost: setupDriverHost(machina),
15
15
  });
16
16
  return new this(machina, thread);
@@ -38,7 +38,7 @@ export class Driver {
38
38
  const videoTrack = await input.getPrimaryVideoTrack();
39
39
  return await videoTrack?.computeDuration();
40
40
  }
41
- decode(input) {
41
+ decodeVideo(input) {
42
42
  let lastFrame = null;
43
43
  const videoTransform = new TransformStream({
44
44
  async transform(chunk, controller) {
@@ -49,18 +49,25 @@ export class Driver {
49
49
  lastFrame = frame;
50
50
  }
51
51
  });
52
- const audioTransform = new TransformStream();
53
- this.thread.work.decode[tune]({ transfer: [videoTransform.writable, audioTransform.writable] })({
52
+ this.thread.work.decodeVideo[tune]({ transfer: [videoTransform.writable] })({
54
53
  source: input.source,
55
54
  video: videoTransform.writable,
55
+ start: input.start,
56
+ end: input.end
57
+ });
58
+ return videoTransform.readable;
59
+ }
60
+ decodeAudio(input) {
61
+ const audioTransform = new TransformStream();
62
+ this.thread.work.decodeAudio[tune]({ transfer: [audioTransform.writable] })({
63
+ source: input.source,
56
64
  audio: audioTransform.writable,
65
+ start: input.start,
66
+ end: input.end
57
67
  });
58
- return {
59
- audio: audioTransform.readable,
60
- video: videoTransform.readable
61
- };
68
+ return audioTransform.readable;
62
69
  }
63
- async encode({ readables, config }) {
70
+ async encode({ video, audio, config }) {
64
71
  const handle = await window.showSaveFilePicker();
65
72
  const writable = await handle.createWritable();
66
73
  // making bridge because file picker writable is not transferable
@@ -72,7 +79,7 @@ export class Driver {
72
79
  await writable.close();
73
80
  }
74
81
  });
75
- return await this.thread.work.encode[tune]({ transfer: [readables.audio, readables.video, bridge] })({ readables, config, bridge });
82
+ return await this.thread.work.encode[tune]({ transfer: [audio ?? [], video ?? [], bridge] })({ video, audio, config, bridge });
76
83
  }
77
84
  async composite(composition) {
78
85
  const transfer = this.#collectTransferablesFromComposition(composition);
@@ -1 +1 @@
1
- {"version":3,"file":"driver.js","sourceRoot":"","sources":["../../s/driver/driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"driver.js","sourceRoot":"","sources":["../../s/driver/driver.ts"],"names":[],"mappings":"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"}