@omnimedia/omnitool 1.1.0-36 → 1.1.0-39
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/package.json +1 -1
- package/s/timeline/parts/filmstrip.ts +25 -3
- package/x/demo/demo.bundle.min.js +1 -1
- package/x/demo/demo.bundle.min.js.map +3 -3
- package/x/index.html +2 -2
- package/x/timeline/parts/filmstrip.d.ts +2 -1
- package/x/timeline/parts/filmstrip.js +15 -1
- package/x/timeline/parts/filmstrip.js.map +1 -1
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=
|
|
68
|
+
<script type=module src="demo/demo.bundle.min.js?v=2a60552f64b2"></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-
|
|
88
|
+
<h1>Omnitool <small>v1.1.0-39</small></h1>
|
|
89
89
|
<button class=fetch>fetch</button>
|
|
90
90
|
<input type="file" class="file-input">
|
|
91
91
|
<div class=results></div>
|
|
@@ -29,8 +29,9 @@ export declare class Filmstrip {
|
|
|
29
29
|
}
|
|
30
30
|
type TimeRange = [number, number];
|
|
31
31
|
interface FilmstripOptions {
|
|
32
|
-
frequency
|
|
32
|
+
frequency: number;
|
|
33
33
|
canvasSinkOptions?: CanvasSinkOptions;
|
|
34
|
+
onPlaceholders?: (timestamps: number[]) => void;
|
|
34
35
|
onChange: (tiles: {
|
|
35
36
|
time: number;
|
|
36
37
|
canvas: WrappedCanvas;
|
|
@@ -21,7 +21,8 @@ export class Filmstrip {
|
|
|
21
21
|
return new Filmstrip(videoTrack, {
|
|
22
22
|
frequency: options.frequency ?? 1,
|
|
23
23
|
canvasSinkOptions: options.canvasSinkOptions ?? { width: 80, height: 50, fit: "fill" },
|
|
24
|
-
onChange: options.onChange
|
|
24
|
+
onChange: options.onChange,
|
|
25
|
+
onPlaceholders: options.onPlaceholders
|
|
25
26
|
});
|
|
26
27
|
else
|
|
27
28
|
throw new Error("Source has no video track");
|
|
@@ -44,6 +45,18 @@ export class Filmstrip {
|
|
|
44
45
|
const tileSize = end - start;
|
|
45
46
|
return [start - tileSize * margin, end + tileSize * margin];
|
|
46
47
|
}
|
|
48
|
+
async #generatePlaceholders() {
|
|
49
|
+
const [rangeStart, rangeEnd] = this.#activeRange;
|
|
50
|
+
const neededTimestamps = new Set();
|
|
51
|
+
// duration should be computed but with trim etc also
|
|
52
|
+
const duration = await this.videoTrack.computeDuration();
|
|
53
|
+
for (let timestamp = rangeStart; timestamp <= rangeEnd; timestamp += this.options.frequency) {
|
|
54
|
+
// Clamp to valid time range
|
|
55
|
+
if (timestamp >= 0 && timestamp <= duration)
|
|
56
|
+
neededTimestamps.add(+timestamp.toFixed(3));
|
|
57
|
+
}
|
|
58
|
+
this.options.onPlaceholders?.([...neededTimestamps]);
|
|
59
|
+
}
|
|
47
60
|
async #generateTiles() {
|
|
48
61
|
const [rangeStart, rangeEnd] = this.#activeRange;
|
|
49
62
|
const neededTimestamps = new Set();
|
|
@@ -97,6 +110,7 @@ export class Filmstrip {
|
|
|
97
110
|
#updating = null;
|
|
98
111
|
#shouldRunAgain = false;
|
|
99
112
|
async #update() {
|
|
113
|
+
this.#generatePlaceholders();
|
|
100
114
|
// Perform update immediately. If multiple updates are requested while updating,
|
|
101
115
|
// only the latest one will run after the current finishes (skips intermediate ones).
|
|
102
116
|
if (this.#updating) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filmstrip.js","sourceRoot":"","sources":["../../../s/timeline/parts/filmstrip.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,WAAW,EACX,UAAU,EAEV,KAAK,GAGL,MAAM,YAAY,CAAA;AAGnB,OAAO,EAAC,iBAAiB,EAAC,MAAM,2CAA2C,CAAA;AAE3E,MAAM,OAAO,SAAS;IAMZ;IACA;IANT,KAAK,CAAY;IACjB,MAAM,GAA+B,IAAI,GAAG,EAAE,CAAA;IAC9C,YAAY,GAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAEhC,YACS,UAA2B,EAC3B,
|
|
1
|
+
{"version":3,"file":"filmstrip.js","sourceRoot":"","sources":["../../../s/timeline/parts/filmstrip.ts"],"names":[],"mappings":"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"}
|