@omnimedia/omnitool 1.1.0-34 → 1.1.0-36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/x/index.html CHANGED
@@ -65,7 +65,7 @@ canvas {
65
65
  }
66
66
 
67
67
  </style>
68
- <script type=module src="demo/demo.bundle.min.js?v=4d24e759ce4d"></script>
68
+ <script type=module src="demo/demo.bundle.min.js?v=9e675d0f9cdf"></script>
69
69
 
70
70
 
71
71
  <meta name="theme-color" content="#3cff9c">
@@ -85,7 +85,7 @@ canvas {
85
85
  <body>
86
86
 
87
87
  <section>
88
- <h1>Omnitool <small>v1.1.0-34</small></h1>
88
+ <h1>Omnitool <small>v1.1.0-36</small></h1>
89
89
  <button class=fetch>fetch</button>
90
90
  <input type="file" class="file-input">
91
91
  <div class=results></div>
@@ -33,9 +33,9 @@ export function makeWebCodecsSampler(driver, resolveMedia) {
33
33
  audio: {
34
34
  getStream: async function* () {
35
35
  const source = resolveMedia(item.mediaHash);
36
- const startUs = item.start;
37
- const endUs = (item.start + item.duration);
38
- const audio = driver.decodeAudio({ source, start: startUs, end: endUs });
36
+ const start = item.start / 1000;
37
+ const end = (item.start + item.duration) / 1000;
38
+ const audio = driver.decodeAudio({ source, start, end });
39
39
  const audioStream = new AudioStream(audio.getReader());
40
40
  yield* audioStream.stream();
41
41
  },
@@ -1 +1 @@
1
- {"version":3,"file":"webcodecs.js","sourceRoot":"","sources":["../../../../../s/timeline/parts/compositor/samplers/webcodecs.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,WAAW,EAAC,MAAM,gCAAgC,CAAA;AAC1D,OAAO,EAAC,WAAW,EAAC,MAAM,gCAAgC,CAAA;AAE1D,MAAM,IAAI,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,CAAA;AAEnD,MAAM,UAAU,oBAAoB,CACnC,MAAc,EACd,YAAmC;IAEnC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAA;IAEnD,KAAK,UAAU,iBAAiB,CAAC,SAAqB;QACrD,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;QAC/C,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAA;QAC7B,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAChD,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,EAAC,MAAM,EAAC,CAAC,CAAA;QAC1C,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAA;QACjD,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QACtC,OAAO,MAAM,CAAA;IACd,CAAC;IAED,OAAO;QACN,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM;YACvB,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAA;YAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC/B,OAAO;gBACN,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,OAAO,EAAE;oBACR,QAAQ,EAAE,KAAK,EAAE,EAAU,EAAE,EAAE;wBAC9B,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;wBACtD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;oBACrD,CAAC;iBACD;aACD,CAAA;QACF,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,IAAI;YACf,OAAO;gBACN,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,KAAK,EAAE;oBACN,SAAS,EAAE,KAAK,SAAS,CAAC;wBACzB,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;wBAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAA;wBAC1B,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAA;wBAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,EAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAC,CAAC,CAAA;wBACtE,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAA;wBACtD,KAAK,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,CAAA;oBAC5B,CAAC;iBACD;aACD,CAAA;QACF,CAAC;QACA,KAAK,CAAC,OAAO;YACX,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;YACrE,YAAY,CAAC,KAAK,EAAE,CAAA;YACpB,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC1B,CAAC;KACF,CAAA;AACF,CAAC"}
1
+ {"version":3,"file":"webcodecs.js","sourceRoot":"","sources":["../../../../../s/timeline/parts/compositor/samplers/webcodecs.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,WAAW,EAAC,MAAM,gCAAgC,CAAA;AAC1D,OAAO,EAAC,WAAW,EAAC,MAAM,gCAAgC,CAAA;AAE1D,MAAM,IAAI,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,CAAA;AAEnD,MAAM,UAAU,oBAAoB,CACnC,MAAc,EACd,YAAmC;IAEnC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAA;IAEnD,KAAK,UAAU,iBAAiB,CAAC,SAAqB;QACrD,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;QAC/C,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAA;QAC7B,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAChD,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,EAAC,MAAM,EAAC,CAAC,CAAA;QAC1C,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAA;QACjD,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QACtC,OAAO,MAAM,CAAA;IACd,CAAC;IAED,OAAO;QACN,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM;YACvB,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAA;YAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC/B,OAAO;gBACN,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,OAAO,EAAE;oBACR,QAAQ,EAAE,KAAK,EAAE,EAAU,EAAE,EAAE;wBAC9B,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;wBACtD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;oBACrD,CAAC;iBACD;aACD,CAAA;QACF,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,IAAI;YACf,OAAO;gBACN,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,KAAK,EAAE;oBACN,SAAS,EAAE,KAAK,SAAS,CAAC;wBACzB,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;wBAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;wBAC/B,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAA;wBAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,EAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAC,CAAC,CAAA;wBACtD,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAA;wBACtD,KAAK,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,CAAA;oBAC5B,CAAC;iBACD;aACD,CAAA;QACF,CAAC;QACA,KAAK,CAAC,OAAO;YACX,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;YACrE,YAAY,CAAC,KAAK,EAAE,CAAA;YACpB,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC1B,CAAC;KACF,CAAA;AACF,CAAC"}
@@ -40,9 +40,9 @@ export class Filmstrip {
40
40
  get frequency() {
41
41
  return this.options.frequency;
42
42
  }
43
- #computeActiveRange([start, end]) {
43
+ #computeActiveRange([start, end], margin = 1) {
44
44
  const tileSize = end - start;
45
- return [start - tileSize, end + tileSize];
45
+ return [start - tileSize * margin, end + tileSize * margin];
46
46
  }
47
47
  async #generateTiles() {
48
48
  const [rangeStart, rangeEnd] = this.#activeRange;
@@ -81,12 +81,17 @@ export class Filmstrip {
81
81
  * @param visibleRange - The current timeline viewport as a [start, end] tuple in seconds.
82
82
  */
83
83
  set range(visibleRange) {
84
- const newRange = this.#computeActiveRange(visibleRange);
85
- // Avoid redundant updates
86
- if (this.#activeRange[0] === newRange[0] &&
87
- this.#activeRange[1] === newRange[1])
84
+ const [visStart, visEnd] = visibleRange;
85
+ const visibleSize = visEnd - visStart;
86
+ const [actStart, actEnd] = this.#activeRange;
87
+ // trigger when we're 1x visible width away from margin edges
88
+ const leftTrigger = actStart + visibleSize;
89
+ const rightTrigger = actEnd - visibleSize;
90
+ const nearLeftEdge = visStart < leftTrigger;
91
+ const nearRightEdge = visEnd > rightTrigger;
92
+ if (!nearLeftEdge && !nearRightEdge)
88
93
  return;
89
- this.#activeRange = newRange;
94
+ this.#activeRange = this.#computeActiveRange(visibleRange, 2);
90
95
  this.#update();
91
96
  }
92
97
  #updating = null;
@@ -1 +1 @@
1
- {"version":3,"file":"filmstrip.js","sourceRoot":"","sources":["../../../s/timeline/parts/filmstrip.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filmstrip.js","sourceRoot":"","sources":["../../../s/timeline/parts/filmstrip.ts"],"names":[],"mappings":"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"}