@smoove/core 0.1.8 → 0.3.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.
- package/dist/engine/composition.d.ts.map +1 -1
- package/dist/engine/composition.js +1 -1
- package/dist/engine/composition.js.map +1 -1
- package/dist/engine/runtime-defaults.d.ts +5 -5
- package/dist/engine/runtime-defaults.d.ts.map +1 -1
- package/dist/engine/runtime-defaults.js +12 -9
- package/dist/engine/runtime-defaults.js.map +1 -1
- package/dist/engine/sequence.js +1 -1
- package/dist/engine/sequence.js.map +1 -1
- package/dist/index.d.ts +5 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -6
- package/dist/index.js.map +1 -1
- package/dist/layout/group.d.ts +15 -0
- package/dist/layout/group.d.ts.map +1 -0
- package/dist/layout/group.js +20 -0
- package/dist/layout/group.js.map +1 -0
- package/dist/layout/image.js +1 -1
- package/dist/layout/image.js.map +1 -1
- package/dist/layout/text/font.js +1 -1
- package/dist/layout/text/font.js.map +1 -1
- package/dist/layout/text/text.d.ts +17 -0
- package/dist/layout/text/text.d.ts.map +1 -1
- package/dist/layout/text/text.js +66 -1
- package/dist/layout/text/text.js.map +1 -1
- package/dist/markers.d.ts +43 -0
- package/dist/markers.d.ts.map +1 -0
- package/dist/markers.js +46 -0
- package/dist/markers.js.map +1 -0
- package/package.json +2 -3
- package/dist/media/audio/audio-driver.d.ts +0 -34
- package/dist/media/audio/audio-driver.d.ts.map +0 -1
- package/dist/media/audio/audio-driver.js +0 -2
- package/dist/media/audio/audio-driver.js.map +0 -1
- package/dist/media/audio/audio-for-preview.d.ts +0 -47
- package/dist/media/audio/audio-for-preview.d.ts.map +0 -1
- package/dist/media/audio/audio-for-preview.js +0 -232
- package/dist/media/audio/audio-for-preview.js.map +0 -1
- package/dist/media/audio/audio-for-rendering.d.ts +0 -16
- package/dist/media/audio/audio-for-rendering.d.ts.map +0 -1
- package/dist/media/audio/audio-for-rendering.js +0 -32
- package/dist/media/audio/audio-for-rendering.js.map +0 -1
- package/dist/media/audio/audio-source-browser.d.ts +0 -30
- package/dist/media/audio/audio-source-browser.d.ts.map +0 -1
- package/dist/media/audio/audio-source-browser.js +0 -139
- package/dist/media/audio/audio-source-browser.js.map +0 -1
- package/dist/media/audio/audio-source-mediabunny.d.ts +0 -45
- package/dist/media/audio/audio-source-mediabunny.d.ts.map +0 -1
- package/dist/media/audio/audio-source-mediabunny.js +0 -79
- package/dist/media/audio/audio-source-mediabunny.js.map +0 -1
- package/dist/media/audio/index.d.ts +0 -57
- package/dist/media/audio/index.d.ts.map +0 -1
- package/dist/media/audio/index.js +0 -170
- package/dist/media/audio/index.js.map +0 -1
- package/dist/media/audio/shared-audio-context.d.ts +0 -30
- package/dist/media/audio/shared-audio-context.d.ts.map +0 -1
- package/dist/media/audio/shared-audio-context.js +0 -68
- package/dist/media/audio/shared-audio-context.js.map +0 -1
- package/dist/media/audio/types.d.ts +0 -31
- package/dist/media/audio/types.d.ts.map +0 -1
- package/dist/media/audio/types.js +0 -2
- package/dist/media/audio/types.js.map +0 -1
- package/dist/media/media-marker.d.ts +0 -26
- package/dist/media/media-marker.d.ts.map +0 -1
- package/dist/media/media-marker.js +0 -26
- package/dist/media/media-marker.js.map +0 -1
- package/dist/media/video/driver.d.ts +0 -31
- package/dist/media/video/driver.d.ts.map +0 -1
- package/dist/media/video/driver.js +0 -3
- package/dist/media/video/driver.js.map +0 -1
- package/dist/media/video/index.d.ts +0 -66
- package/dist/media/video/index.d.ts.map +0 -1
- package/dist/media/video/index.js +0 -372
- package/dist/media/video/index.js.map +0 -1
- package/dist/media/video/types.d.ts +0 -36
- package/dist/media/video/types.d.ts.map +0 -1
- package/dist/media/video/types.js +0 -2
- package/dist/media/video/types.js.map +0 -1
- package/dist/media/video/video-for-preview.d.ts +0 -17
- package/dist/media/video/video-for-preview.d.ts.map +0 -1
- package/dist/media/video/video-for-preview.js +0 -30
- package/dist/media/video/video-for-preview.js.map +0 -1
- package/dist/media/video/video-for-rendering.d.ts +0 -17
- package/dist/media/video/video-for-rendering.d.ts.map +0 -1
- package/dist/media/video/video-for-rendering.js +0 -59
- package/dist/media/video/video-for-rendering.js.map +0 -1
- package/dist/media/video/video-source-browser.d.ts +0 -37
- package/dist/media/video/video-source-browser.d.ts.map +0 -1
- package/dist/media/video/video-source-browser.js +0 -171
- package/dist/media/video/video-source-browser.js.map +0 -1
- package/dist/media/video/video-source-mediabunny.d.ts +0 -69
- package/dist/media/video/video-source-mediabunny.d.ts.map +0 -1
- package/dist/media/video/video-source-mediabunny.js +0 -236
- package/dist/media/video/video-source-mediabunny.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/media/video/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import type Konva from "konva";
|
|
2
|
-
import type { FlexChildProps, SizeValue } from "../../layout/flex/types.js";
|
|
3
|
-
import type { ObjectFit, ObjectPosition } from "../../layout/image.js";
|
|
4
|
-
import type { VideoSourceFactory } from "./video-source.js";
|
|
5
|
-
/**
|
|
6
|
-
* Config for {@link Video}. Mirrors {@link ImageConfig} plus Remotion's
|
|
7
|
-
* `<Video>` playback props (`trimBefore`/`trimAfter`/`loop`/`muted`/`volume`/
|
|
8
|
-
* `playbackRate`) and a `sourceFactory` dependency-injection seam.
|
|
9
|
-
*/
|
|
10
|
-
export type VideoConfig = Omit<Konva.GroupConfig, "width" | "height"> & FlexChildProps & {
|
|
11
|
-
width?: SizeValue;
|
|
12
|
-
height?: SizeValue;
|
|
13
|
-
src: string;
|
|
14
|
-
/** Human label for the audio mixer channel / UIs. Defaults to {@link src}. */
|
|
15
|
-
name?: string;
|
|
16
|
-
objectFit?: ObjectFit;
|
|
17
|
-
objectPosition?: ObjectPosition;
|
|
18
|
-
cornerRadius?: number | number[];
|
|
19
|
-
/** Frames trimmed from the start of the media (composition fps). Remotion v4 name. */
|
|
20
|
-
trimBefore?: number;
|
|
21
|
-
/** Exclusive frame bound — media past this offset is trimmed (composition fps). */
|
|
22
|
-
trimAfter?: number;
|
|
23
|
-
/** @deprecated alias of {@link trimBefore} (Remotion's pre-v4.0.319 name). */
|
|
24
|
-
startFrom?: number;
|
|
25
|
-
/** @deprecated alias of {@link trimAfter} (Remotion's pre-v4.0.319 name). */
|
|
26
|
-
endAt?: number;
|
|
27
|
-
/** Repeat the trimmed clip within its sequence window instead of freezing on the last frame. */
|
|
28
|
-
loop?: boolean;
|
|
29
|
-
muted?: boolean;
|
|
30
|
-
/** 0..1 */
|
|
31
|
-
volume?: number;
|
|
32
|
-
playbackRate?: number;
|
|
33
|
-
/** Inject an alternative VideoSource. Defaults to BrowserVideoSource. */
|
|
34
|
-
sourceFactory?: VideoSourceFactory;
|
|
35
|
-
};
|
|
36
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/media/video/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,GAAG,QAAQ,CAAC,GACnE,cAAc,GAAG;IACf,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,8EAA8E;IAC9E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjC,sFAAsF;IACtF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gGAAgG;IAChG,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,aAAa,CAAC,EAAE,kBAAkB,CAAC;CACpC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/media/video/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { type VideoDriver, type VideoDriverContext } from "./driver.js";
|
|
2
|
-
/**
|
|
3
|
-
* Realtime preview driver for a **pull-based** {@link VideoSource} (Mediabunny +
|
|
4
|
-
* WebCodecs). Unlike the old `HTMLVideoElement` model — where the element played
|
|
5
|
-
* on its own and we only corrected drift — nothing self-plays here: every tick we
|
|
6
|
-
* seek the source to the exact media time for the current frame and redraw. The
|
|
7
|
-
* frame clock is the single source of truth, so playback and scrubbing are
|
|
8
|
-
* identical code paths and both land on the exact frame.
|
|
9
|
-
*/
|
|
10
|
-
export declare class PreviewVideoDriver implements VideoDriver {
|
|
11
|
-
private readonly ctx;
|
|
12
|
-
constructor(ctx: VideoDriverContext);
|
|
13
|
-
tick(localFrame: number): void;
|
|
14
|
-
deactivate(): void;
|
|
15
|
-
dispose(): void;
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=video-for-preview.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"video-for-preview.d.ts","sourceRoot":"","sources":["../../../src/media/video/video-for-preview.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtF;;;;;;;GAOG;AACH,qBAAa,kBAAmB,YAAW,WAAW;IACxC,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,kBAAkB;IAEpD,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAW9B,UAAU,IAAI,IAAI;IAIlB,OAAO,IAAI,IAAI;CAChB"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { getMediaTime } from "./driver.js";
|
|
2
|
-
/**
|
|
3
|
-
* Realtime preview driver for a **pull-based** {@link VideoSource} (Mediabunny +
|
|
4
|
-
* WebCodecs). Unlike the old `HTMLVideoElement` model — where the element played
|
|
5
|
-
* on its own and we only corrected drift — nothing self-plays here: every tick we
|
|
6
|
-
* seek the source to the exact media time for the current frame and redraw. The
|
|
7
|
-
* frame clock is the single source of truth, so playback and scrubbing are
|
|
8
|
-
* identical code paths and both land on the exact frame.
|
|
9
|
-
*/
|
|
10
|
-
export class PreviewVideoDriver {
|
|
11
|
-
ctx;
|
|
12
|
-
constructor(ctx) {
|
|
13
|
-
this.ctx = ctx;
|
|
14
|
-
}
|
|
15
|
-
tick(localFrame) {
|
|
16
|
-
const { source } = this.ctx;
|
|
17
|
-
if (!source.isReady) {
|
|
18
|
-
this.ctx.redraw();
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
const expected = getMediaTime(localFrame, this.ctx.timing);
|
|
22
|
-
void source.seek(expected).then(() => this.ctx.redraw());
|
|
23
|
-
this.ctx.redraw();
|
|
24
|
-
}
|
|
25
|
-
deactivate() {
|
|
26
|
-
this.ctx.source.pause();
|
|
27
|
-
}
|
|
28
|
-
dispose() { }
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=video-for-preview.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"video-for-preview.js","sourceRoot":"","sources":["../../../src/media/video/video-for-preview.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA6C,MAAM,aAAa,CAAC;AAEtF;;;;;;;GAOG;AACH,MAAM,OAAO,kBAAkB;IACA;IAA7B,YAA6B,GAAuB;QAAvB,QAAG,GAAH,GAAG,CAAoB;IAAG,CAAC;IAExD,IAAI,CAAC,UAAkB;QACrB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QACD,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3D,KAAK,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;IACpB,CAAC;IAED,UAAU;QACR,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED,OAAO,KAAU,CAAC;CACnB"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { type VideoDriver, type VideoDriverContext } from "./driver.js";
|
|
2
|
-
/**
|
|
3
|
-
* Deterministic, gated frame production — Remotion's `VideoForRendering`. Never
|
|
4
|
-
* plays in realtime: each tick seeks the source to the exact media time and
|
|
5
|
-
* holds a `delayRender` handle so `Composition.renderFrame()` waits for the
|
|
6
|
-
* decoded frame before the canvas is captured.
|
|
7
|
-
*/
|
|
8
|
-
export declare class RenderingVideoDriver implements VideoDriver {
|
|
9
|
-
private readonly ctx;
|
|
10
|
-
private _lastMediaTime;
|
|
11
|
-
constructor(ctx: VideoDriverContext);
|
|
12
|
-
tick(localFrame: number): void;
|
|
13
|
-
private _waitReady;
|
|
14
|
-
deactivate(): void;
|
|
15
|
-
dispose(): void;
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=video-for-rendering.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"video-for-rendering.d.ts","sourceRoot":"","sources":["../../../src/media/video/video-for-rendering.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtF;;;;;GAKG;AACH,qBAAa,oBAAqB,YAAW,WAAW;IAG1C,OAAO,CAAC,QAAQ,CAAC,GAAG;IAFhC,OAAO,CAAC,cAAc,CAAc;gBAEP,GAAG,EAAE,kBAAkB;IAEpD,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IA4B9B,OAAO,CAAC,UAAU;IAclB,UAAU,IAAI,IAAI;IAIlB,OAAO,IAAI,IAAI;CAChB"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { getMediaTime } from "./driver.js";
|
|
2
|
-
/**
|
|
3
|
-
* Deterministic, gated frame production — Remotion's `VideoForRendering`. Never
|
|
4
|
-
* plays in realtime: each tick seeks the source to the exact media time and
|
|
5
|
-
* holds a `delayRender` handle so `Composition.renderFrame()` waits for the
|
|
6
|
-
* decoded frame before the canvas is captured.
|
|
7
|
-
*/
|
|
8
|
-
export class RenderingVideoDriver {
|
|
9
|
-
ctx;
|
|
10
|
-
_lastMediaTime = Number.NaN;
|
|
11
|
-
constructor(ctx) {
|
|
12
|
-
this.ctx = ctx;
|
|
13
|
-
}
|
|
14
|
-
tick(localFrame) {
|
|
15
|
-
const { source, comp } = this.ctx;
|
|
16
|
-
const mediaTime = getMediaTime(localFrame, this.ctx.timing);
|
|
17
|
-
// Already decoded this exact frame and the source is live — just redraw.
|
|
18
|
-
if (source.isReady && mediaTime === this._lastMediaTime) {
|
|
19
|
-
this.ctx.redraw();
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
this._lastMediaTime = mediaTime;
|
|
23
|
-
// Gate the frame: wait for the source to become decodable (the async
|
|
24
|
-
// `load()` fired in the constructor may still be in flight), then seek to
|
|
25
|
-
// the exact media time. Holding the handle across both steps is what keeps
|
|
26
|
-
// `renderFrame()` from capturing a blank frame before the video is ready.
|
|
27
|
-
const handle = comp.delayRender(`seek video -> ${mediaTime.toFixed(4)}s`);
|
|
28
|
-
this._waitReady()
|
|
29
|
-
.then(() => source.seek(mediaTime))
|
|
30
|
-
.then(() => {
|
|
31
|
-
this.ctx.redraw();
|
|
32
|
-
})
|
|
33
|
-
.catch((err) => {
|
|
34
|
-
console.error("[smoove] video seek failed during render:", err);
|
|
35
|
-
})
|
|
36
|
-
.finally(() => {
|
|
37
|
-
comp.continueRender(handle);
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
_waitReady() {
|
|
41
|
-
const { source } = this.ctx;
|
|
42
|
-
// Short-circuit when already ready: registering `onReady` here would invoke
|
|
43
|
-
// the callback synchronously (sources fire immediately when ready), and the
|
|
44
|
-
// callback references `off` before its `const` is initialized (TDZ).
|
|
45
|
-
if (source.isReady)
|
|
46
|
-
return Promise.resolve();
|
|
47
|
-
return new Promise((resolve) => {
|
|
48
|
-
const off = source.onReady(() => {
|
|
49
|
-
off();
|
|
50
|
-
resolve();
|
|
51
|
-
});
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
deactivate() {
|
|
55
|
-
this._lastMediaTime = Number.NaN;
|
|
56
|
-
}
|
|
57
|
-
dispose() { }
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=video-for-rendering.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"video-for-rendering.js","sourceRoot":"","sources":["../../../src/media/video/video-for-rendering.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA6C,MAAM,aAAa,CAAC;AAEtF;;;;;GAKG;AACH,MAAM,OAAO,oBAAoB;IAGF;IAFrB,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC;IAEpC,YAA6B,GAAuB;QAAvB,QAAG,GAAH,GAAG,CAAoB;IAAG,CAAC;IAExD,IAAI,CAAC,UAAkB;QACrB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QAClC,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5D,yEAAyE;QACzE,IAAI,MAAM,CAAC,OAAO,IAAI,SAAS,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC;YACxD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAEhC,qEAAqE;QACrE,0EAA0E;QAC1E,2EAA2E;QAC3E,0EAA0E;QAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC1E,IAAI,CAAC,UAAU,EAAE;aACd,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAClC,IAAI,CAAC,GAAG,EAAE;YACT,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QACpB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YACtB,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,GAAG,CAAC,CAAC;QAClE,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,UAAU;QAChB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QAC5B,4EAA4E;QAC5E,4EAA4E;QAC5E,qEAAqE;QACrE,IAAI,MAAM,CAAC,OAAO;YAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC7C,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACnC,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;gBAC9B,GAAG,EAAE,CAAC;gBACN,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC;IACnC,CAAC;IAED,OAAO,KAAU,CAAC;CACnB"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import type { SeekMode, VideoSource } from "./video-source.js";
|
|
2
|
-
/**
|
|
3
|
-
* Preview-mode {@link VideoSource}: wraps an `HTMLVideoElement` and drives it in
|
|
4
|
-
* realtime. The server renderer injects a different source via
|
|
5
|
-
* `VideoConfig.sourceFactory`.
|
|
6
|
-
*/
|
|
7
|
-
export declare class BrowserVideoSource implements VideoSource {
|
|
8
|
-
private readonly _el;
|
|
9
|
-
private _ready;
|
|
10
|
-
private readonly _readyCbs;
|
|
11
|
-
private readonly _frameCbs;
|
|
12
|
-
private _rvfcId;
|
|
13
|
-
private _rvfcRunning;
|
|
14
|
-
private _seeking;
|
|
15
|
-
private _pending;
|
|
16
|
-
constructor();
|
|
17
|
-
load(src: string): Promise<void>;
|
|
18
|
-
private _startFrameLoop;
|
|
19
|
-
get element(): CanvasImageSource | null;
|
|
20
|
-
get naturalWidth(): number;
|
|
21
|
-
get naturalHeight(): number;
|
|
22
|
-
get duration(): number;
|
|
23
|
-
get currentTime(): number;
|
|
24
|
-
get isReady(): boolean;
|
|
25
|
-
seek(timeSeconds: number, mode?: SeekMode): Promise<void>;
|
|
26
|
-
/** Issue the pending seek if none is in flight; chains the latest target after each completes. */
|
|
27
|
-
private _drainSeek;
|
|
28
|
-
play(): Promise<void>;
|
|
29
|
-
pause(): void;
|
|
30
|
-
setMuted(muted: boolean): void;
|
|
31
|
-
setVolume(volume: number): void;
|
|
32
|
-
setPlaybackRate(rate: number): void;
|
|
33
|
-
onReady(cb: () => void): () => void;
|
|
34
|
-
onFrame(cb: () => void): () => void;
|
|
35
|
-
destroy(): void;
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=video-source-browser.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"video-source-browser.d.ts","sourceRoot":"","sources":["../../../src/media/video/video-source-browser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAQ/D;;;;GAIG;AACH,qBAAa,kBAAmB,YAAW,WAAW;IACpD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;IACnD,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,YAAY,CAAS;IAK7B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAA+E;;IAY/F,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBhC,OAAO,CAAC,eAAe;IAWvB,IAAI,OAAO,IAAI,iBAAiB,GAAG,IAAI,CAEtC;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,GAAE,QAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBpE,kGAAkG;IAClG,OAAO,CAAC,UAAU;IA6BlB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,KAAK,IAAI,IAAI;IAIb,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAI9B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAInC,OAAO,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IASnC,OAAO,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAKnC,OAAO,IAAI,IAAI;CAYhB"}
|
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Preview-mode {@link VideoSource}: wraps an `HTMLVideoElement` and drives it in
|
|
3
|
-
* realtime. The server renderer injects a different source via
|
|
4
|
-
* `VideoConfig.sourceFactory`.
|
|
5
|
-
*/
|
|
6
|
-
export class BrowserVideoSource {
|
|
7
|
-
_el;
|
|
8
|
-
_ready = false;
|
|
9
|
-
_readyCbs = new Set();
|
|
10
|
-
_frameCbs = new Set();
|
|
11
|
-
_rvfcId = null;
|
|
12
|
-
_rvfcRunning = false;
|
|
13
|
-
// Seek coalescing: keep at most one seek in flight. Rapid scrubbing only ever
|
|
14
|
-
// lands the latest target — intermediate ones are dropped — so the backlog
|
|
15
|
-
// never grows (which is what makes scrubbing a large clip degrade over time).
|
|
16
|
-
_seeking = false;
|
|
17
|
-
_pending = null;
|
|
18
|
-
constructor() {
|
|
19
|
-
const el = document.createElement("video");
|
|
20
|
-
el.crossOrigin = "anonymous";
|
|
21
|
-
el.playsInline = true;
|
|
22
|
-
el.preload = "auto";
|
|
23
|
-
// Muted so the browser allows programmatic play()/seek before any user gesture.
|
|
24
|
-
el.muted = true;
|
|
25
|
-
this._el = el;
|
|
26
|
-
}
|
|
27
|
-
load(src) {
|
|
28
|
-
return new Promise((resolve, reject) => {
|
|
29
|
-
const onReady = () => {
|
|
30
|
-
cleanup();
|
|
31
|
-
this._ready = true;
|
|
32
|
-
this._startFrameLoop();
|
|
33
|
-
for (const cb of this._readyCbs)
|
|
34
|
-
cb();
|
|
35
|
-
resolve();
|
|
36
|
-
};
|
|
37
|
-
const onErr = () => {
|
|
38
|
-
cleanup();
|
|
39
|
-
reject(new Error(`Failed to load video: ${src}`));
|
|
40
|
-
};
|
|
41
|
-
const cleanup = () => {
|
|
42
|
-
this._el.removeEventListener("loadeddata", onReady);
|
|
43
|
-
this._el.removeEventListener("error", onErr);
|
|
44
|
-
};
|
|
45
|
-
this._el.addEventListener("loadeddata", onReady);
|
|
46
|
-
this._el.addEventListener("error", onErr);
|
|
47
|
-
this._el.src = src;
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
_startFrameLoop() {
|
|
51
|
-
if (this._rvfcRunning)
|
|
52
|
-
return;
|
|
53
|
-
if (typeof this._el.requestVideoFrameCallback !== "function")
|
|
54
|
-
return;
|
|
55
|
-
this._rvfcRunning = true;
|
|
56
|
-
const tick = () => {
|
|
57
|
-
for (const cb of this._frameCbs)
|
|
58
|
-
cb();
|
|
59
|
-
this._rvfcId = this._el.requestVideoFrameCallback?.(tick) ?? null;
|
|
60
|
-
};
|
|
61
|
-
this._rvfcId = this._el.requestVideoFrameCallback(tick);
|
|
62
|
-
}
|
|
63
|
-
get element() {
|
|
64
|
-
return this._ready ? this._el : null;
|
|
65
|
-
}
|
|
66
|
-
get naturalWidth() {
|
|
67
|
-
return this._el.videoWidth;
|
|
68
|
-
}
|
|
69
|
-
get naturalHeight() {
|
|
70
|
-
return this._el.videoHeight;
|
|
71
|
-
}
|
|
72
|
-
get duration() {
|
|
73
|
-
return Number.isFinite(this._el.duration) ? this._el.duration : 0;
|
|
74
|
-
}
|
|
75
|
-
get currentTime() {
|
|
76
|
-
return this._el.currentTime;
|
|
77
|
-
}
|
|
78
|
-
get isReady() {
|
|
79
|
-
return this._ready;
|
|
80
|
-
}
|
|
81
|
-
seek(timeSeconds, mode = "precise") {
|
|
82
|
-
const clamped = Math.max(0, this.duration > 0 ? Math.min(this.duration, timeSeconds) : timeSeconds);
|
|
83
|
-
// No-op seek with nothing in flight: already there, resolve immediately.
|
|
84
|
-
if (!this._seeking && Math.abs(this._el.currentTime - clamped) <= 1e-4) {
|
|
85
|
-
return Promise.resolve();
|
|
86
|
-
}
|
|
87
|
-
return new Promise((resolve) => {
|
|
88
|
-
if (this._pending) {
|
|
89
|
-
// Supersede the queued target — only the latest scrub position matters.
|
|
90
|
-
this._pending.time = clamped;
|
|
91
|
-
this._pending.mode = mode;
|
|
92
|
-
this._pending.resolvers.push(resolve);
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
this._pending = { time: clamped, mode, resolvers: [resolve] };
|
|
96
|
-
}
|
|
97
|
-
this._drainSeek();
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
/** Issue the pending seek if none is in flight; chains the latest target after each completes. */
|
|
101
|
-
_drainSeek() {
|
|
102
|
-
if (this._seeking || !this._pending)
|
|
103
|
-
return;
|
|
104
|
-
const { time, mode, resolvers } = this._pending;
|
|
105
|
-
this._pending = null;
|
|
106
|
-
if (Math.abs(this._el.currentTime - time) <= 1e-4) {
|
|
107
|
-
for (const r of resolvers)
|
|
108
|
-
r();
|
|
109
|
-
this._drainSeek();
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
this._seeking = true;
|
|
113
|
-
const onSeeked = () => {
|
|
114
|
-
this._el.removeEventListener("seeked", onSeeked);
|
|
115
|
-
this._seeking = false;
|
|
116
|
-
for (const r of resolvers)
|
|
117
|
-
r();
|
|
118
|
-
// A newer target may have arrived mid-seek — land it now.
|
|
119
|
-
this._drainSeek();
|
|
120
|
-
};
|
|
121
|
-
this._el.addEventListener("seeked", onSeeked);
|
|
122
|
-
// fastSeek jumps to the nearest keyframe — much snappier for scrubbing a
|
|
123
|
-
// large clip. Fall back to a precise currentTime seek when unavailable.
|
|
124
|
-
if (mode === "fast" && typeof this._el.fastSeek === "function") {
|
|
125
|
-
this._el.fastSeek(time);
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
this._el.currentTime = time;
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
play() {
|
|
132
|
-
return this._el.play();
|
|
133
|
-
}
|
|
134
|
-
pause() {
|
|
135
|
-
this._el.pause();
|
|
136
|
-
}
|
|
137
|
-
setMuted(muted) {
|
|
138
|
-
this._el.muted = muted;
|
|
139
|
-
}
|
|
140
|
-
setVolume(volume) {
|
|
141
|
-
this._el.volume = Math.max(0, Math.min(1, volume));
|
|
142
|
-
}
|
|
143
|
-
setPlaybackRate(rate) {
|
|
144
|
-
this._el.playbackRate = rate;
|
|
145
|
-
}
|
|
146
|
-
onReady(cb) {
|
|
147
|
-
if (this._ready) {
|
|
148
|
-
cb();
|
|
149
|
-
return () => { };
|
|
150
|
-
}
|
|
151
|
-
this._readyCbs.add(cb);
|
|
152
|
-
return () => this._readyCbs.delete(cb);
|
|
153
|
-
}
|
|
154
|
-
onFrame(cb) {
|
|
155
|
-
this._frameCbs.add(cb);
|
|
156
|
-
return () => this._frameCbs.delete(cb);
|
|
157
|
-
}
|
|
158
|
-
destroy() {
|
|
159
|
-
if (this._rvfcId !== null && typeof this._el.cancelVideoFrameCallback === "function") {
|
|
160
|
-
this._el.cancelVideoFrameCallback(this._rvfcId);
|
|
161
|
-
}
|
|
162
|
-
this._el.pause();
|
|
163
|
-
this._el.removeAttribute("src");
|
|
164
|
-
this._el.load();
|
|
165
|
-
this._readyCbs.clear();
|
|
166
|
-
this._frameCbs.clear();
|
|
167
|
-
this._pending = null;
|
|
168
|
-
this._seeking = false;
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
//# sourceMappingURL=video-source-browser.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"video-source-browser.js","sourceRoot":"","sources":["../../../src/media/video/video-source-browser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { AudioBufferSink } from "mediabunny";
|
|
2
|
-
import type { SchedulableAudioSource } from "../audio/audio-source-mediabunny.js";
|
|
3
|
-
import type { SeekMode, VideoSource } from "./video-source.js";
|
|
4
|
-
/**
|
|
5
|
-
* Preview-mode {@link VideoSource} backed by Mediabunny + WebCodecs. Replaces the
|
|
6
|
-
* `HTMLVideoElement`-based {@link BrowserVideoSource}: instead of a self-playing
|
|
7
|
-
* element corrected for drift, frames are **pulled** for the exact timestamp the
|
|
8
|
-
* frame clock asks for, so scrubbing and playback are frame-accurate.
|
|
9
|
-
*
|
|
10
|
-
* Decoding uses a forward-only {@link CanvasSink} iterator (the cheap path for
|
|
11
|
-
* playback); the iterator is torn down and reseeded only on a backward seek or a
|
|
12
|
-
* large forward jump. Each decoded frame is blitted onto a single owned canvas so
|
|
13
|
-
* {@link element} keeps a stable reference for `Konva.Image`.
|
|
14
|
-
*
|
|
15
|
-
* The same {@link Input} also exposes the file's audio track as an
|
|
16
|
-
* {@link AudioBufferSink} (so a `Video` with sound is decoded once, not twice),
|
|
17
|
-
* which is why this also satisfies {@link SchedulableAudioSource} — the Video's
|
|
18
|
-
* {@link PreviewAudioDriver} schedules it on the shared Web Audio context.
|
|
19
|
-
*/
|
|
20
|
-
export declare class MediabunnyVideoSource implements VideoSource, SchedulableAudioSource {
|
|
21
|
-
private readonly _canvas;
|
|
22
|
-
private readonly _ctx;
|
|
23
|
-
private _input;
|
|
24
|
-
private _sink;
|
|
25
|
-
private _audioSink;
|
|
26
|
-
private _audioFirstTs;
|
|
27
|
-
private _ready;
|
|
28
|
-
private _disposed;
|
|
29
|
-
private readonly _readyCbs;
|
|
30
|
-
private readonly _frameCbs;
|
|
31
|
-
private _w;
|
|
32
|
-
private _h;
|
|
33
|
-
private _duration;
|
|
34
|
-
private _firstTs;
|
|
35
|
-
private _iter;
|
|
36
|
-
private _next;
|
|
37
|
-
private _curTs;
|
|
38
|
-
private _seeking;
|
|
39
|
-
private _pending;
|
|
40
|
-
constructor();
|
|
41
|
-
load(src: string): Promise<void>;
|
|
42
|
-
get element(): CanvasImageSource | null;
|
|
43
|
-
get naturalWidth(): number;
|
|
44
|
-
get naturalHeight(): number;
|
|
45
|
-
get duration(): number;
|
|
46
|
-
get currentTime(): number;
|
|
47
|
-
get isReady(): boolean;
|
|
48
|
-
/** @see SchedulableAudioSource — decoded-buffer sink for the file's audio track. */
|
|
49
|
-
get sink(): AudioBufferSink | null;
|
|
50
|
-
/** @see SchedulableAudioSource — audio track start time in seconds. */
|
|
51
|
-
get firstTimestamp(): number;
|
|
52
|
-
seek(timeSeconds: number, _mode?: SeekMode): Promise<void>;
|
|
53
|
-
private _drainSeek;
|
|
54
|
-
/** Land the owned canvas on the last frame whose start timestamp is <= `t`. */
|
|
55
|
-
private _satisfy;
|
|
56
|
-
private _restartIterator;
|
|
57
|
-
private _pull;
|
|
58
|
-
/** Blit a decoded frame onto the owned canvas and notify listeners. */
|
|
59
|
-
private _draw;
|
|
60
|
-
play(): Promise<void>;
|
|
61
|
-
pause(): void;
|
|
62
|
-
setMuted(_muted: boolean): void;
|
|
63
|
-
setVolume(_volume: number): void;
|
|
64
|
-
setPlaybackRate(_rate: number): void;
|
|
65
|
-
onReady(cb: () => void): () => void;
|
|
66
|
-
onFrame(cb: () => void): () => void;
|
|
67
|
-
destroy(): void;
|
|
68
|
-
}
|
|
69
|
-
//# sourceMappingURL=video-source-mediabunny.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"video-source-mediabunny.d.ts","sourceRoot":"","sources":["../../../src/media/video/video-source-mediabunny.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EAKhB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAS/D;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,qBAAsB,YAAW,WAAW,EAAE,sBAAsB;IAC/E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA2B;IAChD,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,KAAK,CAA2B;IAGxC,OAAO,CAAC,UAAU,CAAgC;IAClD,OAAO,CAAC,aAAa,CAAK;IAE1B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;IAEnD,OAAO,CAAC,EAAE,CAAK;IACf,OAAO,CAAC,EAAE,CAAK;IACf,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,QAAQ,CAAK;IAIrB,OAAO,CAAC,KAAK,CAA6D;IAC1E,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,MAAM,CAA4B;IAI1C,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAA+D;;IAWzE,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkCtC,IAAI,OAAO,IAAI,iBAAiB,GAAG,IAAI,CAEtC;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,oFAAoF;IACpF,IAAI,IAAI,IAAI,eAAe,GAAG,IAAI,CAEjC;IAED,uEAAuE;IACvE,IAAI,cAAc,IAAI,MAAM,CAE3B;IAID,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,GAAE,QAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;YAmBvD,UAAU;IAgBxB,+EAA+E;YACjE,QAAQ;YAuBR,gBAAgB;YAShB,KAAK;IAMnB,uEAAuE;IACvE,OAAO,CAAC,KAAK;IAQb,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAGrB,KAAK,IAAI,IAAI;IACb,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAC/B,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAChC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAEpC,OAAO,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IASnC,OAAO,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAKnC,OAAO,IAAI,IAAI;CAahB"}
|