@pixerate/editor 0.91.0 → 0.93.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/{chunk-PDCITYBT.cjs → chunk-4F3YDIWW.cjs} +367 -2
- package/dist/chunk-4F3YDIWW.cjs.map +1 -0
- package/dist/{chunk-YLB2WVNA.js → chunk-ISDCJHTO.js} +367 -2
- package/dist/chunk-ISDCJHTO.js.map +1 -0
- package/dist/image-editor/index.cjs +36 -11
- package/dist/image-editor/index.cjs.map +1 -1
- package/dist/image-editor/index.d.cts +1 -1
- package/dist/image-editor/index.d.ts +1 -1
- package/dist/image-editor/index.js +26 -1
- package/dist/image-editor/index.js.map +1 -1
- package/dist/paint/index.cjs +26 -2
- package/dist/paint/index.cjs.map +1 -1
- package/dist/paint/index.d.cts +95 -1
- package/dist/paint/index.d.ts +95 -1
- package/dist/paint/index.js +25 -1
- package/dist/video-editor/index.cjs +604 -340
- package/dist/video-editor/index.cjs.map +1 -1
- package/dist/video-editor/index.d.cts +470 -28
- package/dist/video-editor/index.d.ts +470 -28
- package/dist/video-editor/index.js +521 -257
- package/dist/video-editor/index.js.map +1 -1
- package/package.json +3 -3
- package/skills/pixerate-image-editor/SKILL.md +8 -0
- package/skills/pixerate-video-editor/SKILL.md +22 -3
- package/dist/chunk-PDCITYBT.cjs.map +0 -1
- package/dist/chunk-YLB2WVNA.js.map +0 -1
|
@@ -330,7 +330,28 @@ interface VideoColorClip extends VideoClipBase {
|
|
|
330
330
|
type: 'color';
|
|
331
331
|
color: string;
|
|
332
332
|
}
|
|
333
|
-
|
|
333
|
+
/**
|
|
334
|
+
* A compound clip: a nested sequence (see `VideoProject.sequences`) played as one picture and one
|
|
335
|
+
* sound. It plays the sequence's own time from `in`, at normal speed. Its opacity, transform, blend,
|
|
336
|
+
* grade, fades, transitions and animations apply to the sequence's composite, not to each of its
|
|
337
|
+
* clips; its volume and fades apply to the sequence's mixed sound.
|
|
338
|
+
*/
|
|
339
|
+
interface VideoSequenceClip extends VideoClipBase {
|
|
340
|
+
type: 'sequence';
|
|
341
|
+
/** The id of the sequence it plays (in `project.sequences`). */
|
|
342
|
+
sequence: string;
|
|
343
|
+
/** Where in the sequence's time it starts (ms, default 0). */
|
|
344
|
+
in?: number;
|
|
345
|
+
/** Gain on the sequence's sound (1 = unchanged, default 1), or keyframes. */
|
|
346
|
+
volume?: VideoAnimatable;
|
|
347
|
+
/** Silences the sequence's sound. */
|
|
348
|
+
muted?: boolean;
|
|
349
|
+
/** Shape of the sound's fade in (default linear). */
|
|
350
|
+
fadeInCurve?: VideoFadeCurve;
|
|
351
|
+
/** Shape of the sound's fade out (default linear). */
|
|
352
|
+
fadeOutCurve?: VideoFadeCurve;
|
|
353
|
+
}
|
|
354
|
+
type VideoClip = VideoMediaClip | VideoTextClip | VideoColorClip | VideoSequenceClip;
|
|
334
355
|
type VideoClipType = VideoClip['type'];
|
|
335
356
|
/**
|
|
336
357
|
* How a clip is placed where others already are: `refuse` an overlap (the default), `overwrite`
|
|
@@ -339,7 +360,7 @@ type VideoClipType = VideoClip['type'];
|
|
|
339
360
|
*/
|
|
340
361
|
type VideoPlacementMode = 'refuse' | 'overwrite' | 'insert';
|
|
341
362
|
declare const VIDEO_PLACEMENT_MODES: readonly ["refuse", "overwrite", "insert"];
|
|
342
|
-
declare const VIDEO_CLIP_TYPES: readonly ["media", "text", "color"];
|
|
363
|
+
declare const VIDEO_CLIP_TYPES: readonly ["media", "text", "color", "sequence"];
|
|
343
364
|
interface VideoMarker {
|
|
344
365
|
id: string;
|
|
345
366
|
time: number;
|
|
@@ -347,6 +368,17 @@ interface VideoMarker {
|
|
|
347
368
|
/** CSS colour. */
|
|
348
369
|
color?: string;
|
|
349
370
|
}
|
|
371
|
+
/**
|
|
372
|
+
* A nested sequence: tracks of clips with their own timeline from 0, played inside the project by
|
|
373
|
+
* compound clips (`type: 'sequence'`). Its frame is the project's frame size, transparent where no
|
|
374
|
+
* clip covers it. A sequence may hold compound clips of other sequences, but never itself (directly
|
|
375
|
+
* or through others).
|
|
376
|
+
*/
|
|
377
|
+
interface VideoSequence {
|
|
378
|
+
id: string;
|
|
379
|
+
name?: string;
|
|
380
|
+
tracks: VideoTrack[];
|
|
381
|
+
}
|
|
350
382
|
interface VideoProject {
|
|
351
383
|
version: 1;
|
|
352
384
|
name?: string;
|
|
@@ -359,6 +391,8 @@ interface VideoProject {
|
|
|
359
391
|
background?: string;
|
|
360
392
|
assets: VideoAsset[];
|
|
361
393
|
tracks: VideoTrack[];
|
|
394
|
+
/** Nested sequences that compound clips play (see `VideoSequence`). */
|
|
395
|
+
sequences?: VideoSequence[];
|
|
362
396
|
markers?: VideoMarker[];
|
|
363
397
|
}
|
|
364
398
|
|
|
@@ -387,11 +421,14 @@ declare function parseVideoAsset(v: unknown, path?: string): VideoAsset;
|
|
|
387
421
|
declare function parseVideoAssetProxies(v: unknown, path: string): VideoAssetProxy[] | undefined;
|
|
388
422
|
declare function parseVideoClip(v: unknown, path?: string): VideoClip;
|
|
389
423
|
declare function parseVideoTrack(v: unknown, path?: string): VideoTrack;
|
|
424
|
+
/** A nested sequence `{ id, name, tracks }` (see `VideoSequence`). */
|
|
425
|
+
declare function parseVideoSequence(v: unknown, path?: string): VideoSequence;
|
|
390
426
|
declare function parseVideoMarker(v: unknown, path?: string): VideoMarker;
|
|
391
427
|
/**
|
|
392
428
|
* Reads a project from JSON text or an object, checking every field. Throws an error naming the
|
|
393
429
|
* first bad field (`tracks[0].clips[2].duration must be greater than 0.`). Ids must be unique
|
|
394
|
-
* within assets, tracks, clips
|
|
430
|
+
* within assets, tracks, sequences, clips (across the project and its sequences) and markers.
|
|
431
|
+
* Overlaps, missing media and sequences, and sequences that contain themselves are left to
|
|
395
432
|
* `checkVideoProject`, so a project with problems can still be opened and fixed.
|
|
396
433
|
*/
|
|
397
434
|
declare function parseVideoProject(input: unknown): VideoProject;
|
|
@@ -415,7 +452,10 @@ declare const videoClipEnd: (clip: VideoClip) => number;
|
|
|
415
452
|
declare const videoTrackSyncLocked: (track: VideoTrack) => boolean;
|
|
416
453
|
/** Playback speed of a clip (1 for titles and colours). */
|
|
417
454
|
declare const videoClipSpeed: (clip: VideoClip) => number;
|
|
418
|
-
/**
|
|
455
|
+
/**
|
|
456
|
+
* The stretch of source a media clip plays (ms), or of its sequence's time a compound plays; `null`
|
|
457
|
+
* for titles and colours.
|
|
458
|
+
*/
|
|
419
459
|
declare function videoClipSourceRange(clip: VideoClip): {
|
|
420
460
|
in: number;
|
|
421
461
|
out: number;
|
|
@@ -449,6 +489,22 @@ declare const formatVideoSeconds: (time: number) => string;
|
|
|
449
489
|
/** Whether an asset carries sound: audio, or video not marked `hasAudio: false`. */
|
|
450
490
|
declare const videoAssetHasSound: (asset: VideoAsset | undefined) => boolean;
|
|
451
491
|
declare function videoAssetMap(project: VideoProject): Map<string, VideoAsset>;
|
|
492
|
+
declare function videoSequenceMap(project: VideoProject): Map<string, VideoSequence>;
|
|
493
|
+
/** A sequence's length: the end of its last clip (ms). */
|
|
494
|
+
declare function videoSequenceDuration(sequence: Pick<VideoSequence, 'tracks'>): number;
|
|
495
|
+
/** The sequences a sequence's compound clips play directly (ids, in order, without repeats). */
|
|
496
|
+
declare const videoSequenceChildren: (sequence: Pick<VideoSequence, "tracks">) => string[];
|
|
497
|
+
/**
|
|
498
|
+
* A path of sequence ids that leads from `id` back to itself through compound clips (`[a, b, a]`),
|
|
499
|
+
* or `null` when it contains no cycle. Evaluating and exporting skip a compound that would close
|
|
500
|
+
* one, and `checkVideoProject` reports it.
|
|
501
|
+
*/
|
|
502
|
+
declare function findVideoSequenceCycle(project: VideoProject, id: string): string[] | null;
|
|
503
|
+
/** Every track with its sequence (`undefined` for the project's own), the project's first. */
|
|
504
|
+
declare function allVideoTracks(project: VideoProject): {
|
|
505
|
+
sequence?: string;
|
|
506
|
+
track: VideoTrack;
|
|
507
|
+
}[];
|
|
452
508
|
/** A track's clips in timeline order. */
|
|
453
509
|
declare function sortedVideoClips(track: VideoTrack): VideoClip[];
|
|
454
510
|
interface VideoClipLocation {
|
|
@@ -459,7 +515,14 @@ interface VideoClipLocation {
|
|
|
459
515
|
index: number;
|
|
460
516
|
}
|
|
461
517
|
declare function findVideoClip(project: VideoProject, id: string): VideoClipLocation | null;
|
|
518
|
+
/** Every clip id in the project, its sequences' clips included (ids are unique across them). */
|
|
462
519
|
declare function allVideoClipIds(project: VideoProject): string[];
|
|
520
|
+
/** The sequence a clip inside a sequence belongs to, with its track; `null` for clips of the project's own tracks (or no clip). */
|
|
521
|
+
declare function findVideoSequenceClip(project: VideoProject, id: string): {
|
|
522
|
+
sequence: VideoSequence;
|
|
523
|
+
track: VideoTrack;
|
|
524
|
+
clip: VideoClip;
|
|
525
|
+
} | null;
|
|
463
526
|
/** Total length: the end of the last clip (ms). */
|
|
464
527
|
declare function videoProjectDuration(project: VideoProject): number;
|
|
465
528
|
/** The clip that ends where `clip` starts on its track (a cut), if any. */
|
|
@@ -469,9 +532,10 @@ declare function videoClipAfter(track: VideoTrack, clip: VideoClip): VideoClip |
|
|
|
469
532
|
/**
|
|
470
533
|
* Timeline time (ms) a clip can run past its edges into source media: before its in point
|
|
471
534
|
* (`before`) and after its out point (`after`). Unlimited for stills, titles, colours and media
|
|
472
|
-
* whose length is unknown.
|
|
535
|
+
* whose length is unknown. A compound's handles are its sequence's time before `in` and after its
|
|
536
|
+
* out point (pass `sequences`; without them they count as unlimited).
|
|
473
537
|
*/
|
|
474
|
-
declare function videoClipHandles(clip: VideoClip, assets: Map<string, VideoAsset>): {
|
|
538
|
+
declare function videoClipHandles(clip: VideoClip, assets: Map<string, VideoAsset>, sequences?: Map<string, VideoSequence>): {
|
|
475
539
|
before: number;
|
|
476
540
|
after: number;
|
|
477
541
|
};
|
|
@@ -519,13 +583,15 @@ declare function videoClipKeyframes(clip: VideoClip): {
|
|
|
519
583
|
keys: ReturnType<typeof videoKeysOf>;
|
|
520
584
|
}[];
|
|
521
585
|
type VideoIssueSeverity = 'error' | 'warning' | 'note';
|
|
522
|
-
declare const VIDEO_ISSUE_CODES: readonly ["missing-asset", "wrong-track", "overlap", "source-overrun", "transition-without-cut", "transition-too-long", "transition-handles", "fades-too-long", "animations-too-long", "animation-keyed", "keyframes-outside-clip", "unknown-duration", "unused-asset", "marker-past-end", "empty"];
|
|
586
|
+
declare const VIDEO_ISSUE_CODES: readonly ["missing-asset", "missing-sequence", "sequence-cycle", "wrong-track", "overlap", "source-overrun", "transition-without-cut", "transition-too-long", "transition-handles", "fades-too-long", "animations-too-long", "animation-keyed", "keyframes-outside-clip", "unknown-duration", "unused-asset", "unused-sequence", "marker-past-end", "empty"];
|
|
523
587
|
type VideoIssueCode = (typeof VIDEO_ISSUE_CODES)[number];
|
|
524
588
|
interface VideoIssue {
|
|
525
589
|
code: VideoIssueCode;
|
|
526
590
|
severity: VideoIssueSeverity;
|
|
527
591
|
/** One sentence saying what is wrong and how to fix it. */
|
|
528
592
|
message: string;
|
|
593
|
+
/** The sequence whose track it is about (absent for the project's own tracks). */
|
|
594
|
+
sequence?: string;
|
|
529
595
|
track?: string;
|
|
530
596
|
clip?: string;
|
|
531
597
|
asset?: string;
|
|
@@ -537,7 +603,8 @@ declare const videoIssueKey: (i: VideoIssue) => string;
|
|
|
537
603
|
* Everything wrong with a project, errors first: clips pointing at missing media or sitting on the
|
|
538
604
|
* wrong kind of track, overlaps, clips running past the end of their source, transitions with no
|
|
539
605
|
* cut to play over or not enough media either side of it, and softer notes (unused assets, markers
|
|
540
|
-
* past the end).
|
|
606
|
+
* past the end). Sequences' tracks are checked the same way, and compound clips must play a
|
|
607
|
+
* sequence that exists, does not contain itself and is long enough. Edits never add errors (see `applyVideoEdits`), so errors only come from a loaded file.
|
|
541
608
|
*/
|
|
542
609
|
declare function checkVideoProject(project: VideoProject): VideoIssue[];
|
|
543
610
|
|
|
@@ -754,15 +821,29 @@ interface VideoRect {
|
|
|
754
821
|
}
|
|
755
822
|
/** One picture in a frame, in draw order (first is at the back). */
|
|
756
823
|
interface VideoLayer {
|
|
757
|
-
/**
|
|
824
|
+
/**
|
|
825
|
+
* The clip it comes from, or `transition:<clip>` for a dip's colour. Inside a compound clip it is
|
|
826
|
+
* the path of clip ids from the project's own track (`compound/inner`), so the same sequence
|
|
827
|
+
* played twice gives distinct layers.
|
|
828
|
+
*/
|
|
758
829
|
clip: string;
|
|
830
|
+
/** The track it is on (inside a compound: the sequence's track). */
|
|
759
831
|
track: string;
|
|
760
832
|
type: VideoClip['type'];
|
|
761
833
|
/** For media: the asset, its kind and `src`, and the moment of the source to show (ms). */
|
|
762
834
|
asset?: string;
|
|
763
835
|
assetKind?: VideoAsset['kind'];
|
|
764
836
|
src?: string;
|
|
837
|
+
/** For media: the moment of the source to show (ms); for a compound: the moment of its sequence. */
|
|
765
838
|
sourceTime?: number;
|
|
839
|
+
/** For a compound: the sequence it plays. */
|
|
840
|
+
sequence?: string;
|
|
841
|
+
/**
|
|
842
|
+
* For a compound: the sequence's frame at `sourceTime`, back to front in the sequence's own frame
|
|
843
|
+
* (the project's size, transparent where nothing covers it). They are drawn together as one
|
|
844
|
+
* picture, which this layer's rect, rotation, opacity, blend, grade, wipe and iris then apply to.
|
|
845
|
+
*/
|
|
846
|
+
layers?: VideoLayer[];
|
|
766
847
|
/** 0–1, after fades and transitions. */
|
|
767
848
|
opacity: number;
|
|
768
849
|
/** Where the fitted picture sits before rotation (its centre is the rotation centre). */
|
|
@@ -796,13 +877,15 @@ interface VideoLayer {
|
|
|
796
877
|
}
|
|
797
878
|
/** One sound playing at a moment. */
|
|
798
879
|
interface VideoAudioSource {
|
|
880
|
+
/** The clip it comes from (inside a compound: the path of clip ids, `compound/inner`). */
|
|
799
881
|
clip: string;
|
|
882
|
+
/** The track it is on (inside a compound: the sequence's track). */
|
|
800
883
|
track: string;
|
|
801
884
|
asset: string;
|
|
802
885
|
src: string;
|
|
803
886
|
/** The moment of the source playing (ms). */
|
|
804
887
|
sourceTime: number;
|
|
805
|
-
/** Gain after clip and track volume, fades and transitions (0 = silent). */
|
|
888
|
+
/** Gain after clip and track volume, fades and transitions, and those of any compound it plays in (0 = silent). */
|
|
806
889
|
gain: number;
|
|
807
890
|
speed: number;
|
|
808
891
|
}
|
|
@@ -844,16 +927,23 @@ declare const videoTransitionEase: (progress: number) => number;
|
|
|
844
927
|
/** Gain of a fade shape `x` of the way up (0–1); a fade out uses the time left, so it mirrors the fade in. */
|
|
845
928
|
declare function videoFadeCurveGain(curve: VideoFadeCurve | undefined, x: number): number;
|
|
846
929
|
/**
|
|
847
|
-
* A media clip's own gain at clip time `clipTime` (ms): its volume (or volume keyframes) times its
|
|
930
|
+
* A media or compound clip's own gain at clip time `clipTime` (ms): its volume (or volume keyframes) times its
|
|
848
931
|
* shaped fades. Leaves out track volume and transitions, which depend on the timeline around it.
|
|
849
932
|
*/
|
|
850
933
|
declare function videoClipSoundGain(clip: VideoClip, clipTime: number): number;
|
|
851
934
|
/**
|
|
852
935
|
* What plays at `time` (ms): the pictures to draw, back to front, with their placement, opacity
|
|
853
936
|
* and the moment of source each shows, and the sounds with their gain. A pure function of the
|
|
854
|
-
* project and the time, so previews, exporters and agents all agree on every frame.
|
|
937
|
+
* project and the time, so previews, exporters and agents all agree on every frame. A compound
|
|
938
|
+
* clip is one layer holding its sequence's frame (`layers`), and its sounds are mixed in with the
|
|
939
|
+
* compound's volume, fades and transitions.
|
|
855
940
|
*/
|
|
856
941
|
declare function videoFrameAt(project: VideoProject, time: number): VideoFrame;
|
|
942
|
+
/**
|
|
943
|
+
* Every layer of a frame that draws a picture of its own, compounds opened up (each compound's
|
|
944
|
+
* layers in place of it), back to front. Hosts use it to find the media a frame needs.
|
|
945
|
+
*/
|
|
946
|
+
declare function videoFrameLeafLayers(layers: readonly VideoLayer[]): VideoLayer[];
|
|
857
947
|
|
|
858
948
|
/**
|
|
859
949
|
* Sound levels of a piece of audio, small enough to keep for every asset: a pyramid of min / max
|
|
@@ -1549,7 +1639,11 @@ interface VideoSvgOptions {
|
|
|
1549
1639
|
/** The loaded table of a grade's LUT `src`; drawn as an approximation (curves and a matrix). Without it LUTs are left out. */
|
|
1550
1640
|
lutFor?: (src: string) => VideoLut | null | undefined;
|
|
1551
1641
|
}
|
|
1552
|
-
/**
|
|
1642
|
+
/**
|
|
1643
|
+
* A frame as standalone SVG: images and posters as `<image>`, video without one as a labelled box.
|
|
1644
|
+
* A compound clip is a `<g>` (isolated, so blends inside it mix only with its own layers) holding
|
|
1645
|
+
* its sequence's layers scaled into its rect, with its opacity, blend, grade filter and clips on it.
|
|
1646
|
+
*/
|
|
1553
1647
|
declare function videoFrameToSvg(frame: VideoFrame, options?: VideoSvgOptions, assets?: VideoProject['assets']): string;
|
|
1554
1648
|
/** The project at `time` as SVG. */
|
|
1555
1649
|
declare function videoProjectSvg(project: VideoProject, time: number, options?: VideoSvgOptions): string;
|
|
@@ -1571,7 +1665,10 @@ type VideoCanvasContext = Pick<CanvasRenderingContext2D, 'save' | 'restore' | 'f
|
|
|
1571
1665
|
lineWidth: number;
|
|
1572
1666
|
strokeRect(x: number, y: number, w: number, h: number): void;
|
|
1573
1667
|
};
|
|
1574
|
-
/**
|
|
1668
|
+
/**
|
|
1669
|
+
* An offscreen canvas `drawVideoFrame` draws on: a compound clip's layers before laying them on the
|
|
1670
|
+
* frame as one picture, or a LUT-graded layer before running its pixels through the LUT.
|
|
1671
|
+
*/
|
|
1575
1672
|
interface VideoScratchCanvas {
|
|
1576
1673
|
canvas: CanvasImageSource;
|
|
1577
1674
|
ctx: VideoCanvasContext & Pick<CanvasRenderingContext2D, 'getImageData' | 'putImageData' | 'clearRect'>;
|
|
@@ -1581,8 +1678,13 @@ interface VideoDrawOptions {
|
|
|
1581
1678
|
defineSvgFilter?: (id: string, markup: string) => void;
|
|
1582
1679
|
/** The loaded table of a grade's LUT `src`, or nothing while it loads (the layer is drawn without it). */
|
|
1583
1680
|
lutFor?: (src: string) => VideoLut | null | undefined;
|
|
1584
|
-
/**
|
|
1585
|
-
|
|
1681
|
+
/**
|
|
1682
|
+
* An offscreen canvas of the given canvas-pixel size, for compound clips and LUT layers; `slot`
|
|
1683
|
+
* numbers the ones in use at once (a compound inside a compound needs its own), so return the
|
|
1684
|
+
* same canvas for the same slot and a different one for each slot. Without it LUTs are left out
|
|
1685
|
+
* and a compound's layers are drawn straight onto the frame, without its opacity, blend and grade.
|
|
1686
|
+
*/
|
|
1687
|
+
scratch?: (width: number, height: number, slot: number) => VideoScratchCanvas | null;
|
|
1586
1688
|
}
|
|
1587
1689
|
/**
|
|
1588
1690
|
* Draws a frame on a 2D canvas scaled by `scale` (canvas pixels per frame pixel). `sourceFor`
|
|
@@ -1591,7 +1693,8 @@ interface VideoDrawOptions {
|
|
|
1591
1693
|
* balance there refers to an SVG filter, which `options.defineSvgFilter` is given to put in the page
|
|
1592
1694
|
* (without it, white balance is left out of the canvas). A grade's LUT needs `options.lutFor` and
|
|
1593
1695
|
* `options.scratch`: the layer is drawn on the scratch canvas, its pixels run through the LUT, and
|
|
1594
|
-
* the result is laid on the frame with the layer's opacity and blend.
|
|
1696
|
+
* the result is laid on the frame with the layer's opacity and blend. A compound clip's layers are
|
|
1697
|
+
* drawn on a scratch canvas of their own (transparent), which is then drawn like a picture.
|
|
1595
1698
|
*/
|
|
1596
1699
|
declare function drawVideoFrame(ctx: VideoCanvasContext, frame: VideoFrame, sourceFor: (layer: VideoLayer) => CanvasImageSource | null, scale?: number, options?: VideoDrawOptions): void;
|
|
1597
1700
|
|
|
@@ -1608,8 +1711,8 @@ interface VideoEdlOptions {
|
|
|
1608
1711
|
/**
|
|
1609
1712
|
* One track as a CMX 3600 edit decision list, for conforming in another NLE: an event per clip with
|
|
1610
1713
|
* source and record timecode at the project's frame rate (drop-frame at 29.97 and 59.94), dissolves (`D`) for crossfades, dips and
|
|
1611
|
-
* wipes (`W001`), `M2` lines for speed changes, and `* FROM CLIP NAME` comments. Titles
|
|
1612
|
-
* clips become black (`BL`) events.
|
|
1714
|
+
* wipes (`W001`), `M2` lines for speed changes, and `* FROM CLIP NAME` comments. Titles, colour
|
|
1715
|
+
* clips and compound clips (not flattened yet) become black (`BL`) events.
|
|
1613
1716
|
*/
|
|
1614
1717
|
declare function toVideoEdl(project: VideoProject, options?: VideoEdlOptions): string;
|
|
1615
1718
|
interface VideoFfmpegOptions {
|
|
@@ -2005,10 +2108,11 @@ interface VideoPreviewOptions {
|
|
|
2005
2108
|
/** Where grades' LUTs load from (default: the source's `luts`). Without one, LUTs are left out. */
|
|
2006
2109
|
luts?: VideoLutCache | null;
|
|
2007
2110
|
/**
|
|
2008
|
-
* Makes
|
|
2009
|
-
* `willReadFrequently`)
|
|
2111
|
+
* Makes an offscreen canvas compound clips and LUT-graded layers are drawn on (default: a
|
|
2112
|
+
* `<canvas>` with `willReadFrequently`), once per `slot` (see `VideoDrawOptions.scratch`). LUTs
|
|
2113
|
+
* run on the CPU, so a lower `resolution` keeps playback smooth.
|
|
2010
2114
|
*/
|
|
2011
|
-
createScratch?: (width: number, height: number) => VideoScratchCanvas | null;
|
|
2115
|
+
createScratch?: (width: number, height: number, slot: number) => VideoScratchCanvas | null;
|
|
2012
2116
|
}
|
|
2013
2117
|
/**
|
|
2014
2118
|
* Plays a project in the browser: keeps one `<video>` or `<audio>` element per playing clip in step
|
|
@@ -2039,7 +2143,7 @@ declare class VideoPreviewEngine {
|
|
|
2039
2143
|
private playing;
|
|
2040
2144
|
private fps;
|
|
2041
2145
|
private readonly unsubscribeLuts;
|
|
2042
|
-
private
|
|
2146
|
+
private readonly scratchCanvases;
|
|
2043
2147
|
constructor(source: VideoPreviewSource, canvas: {
|
|
2044
2148
|
width: number;
|
|
2045
2149
|
height: number;
|
|
@@ -2254,8 +2358,320 @@ interface VideoEditorToolProviderOptions {
|
|
|
2254
2358
|
/** How long `get_video_scopes` waits for the preview to finish drawing a frame (ms, default 5000). */
|
|
2255
2359
|
framePixelsTimeout?: number;
|
|
2256
2360
|
}
|
|
2257
|
-
/** A
|
|
2361
|
+
/** A sequence as agents see it: its length, the sequences it nests, who plays it, and (with `tracks`) its tracks and clips. */
|
|
2362
|
+
declare function describeVideoSequence(project: VideoProject, sequence: VideoSequence, tracks?: boolean): {
|
|
2363
|
+
tracks: {
|
|
2364
|
+
clips: ({
|
|
2365
|
+
source?: {
|
|
2366
|
+
in: number;
|
|
2367
|
+
out: number;
|
|
2368
|
+
} | null | undefined;
|
|
2369
|
+
end: number;
|
|
2370
|
+
type: "media";
|
|
2371
|
+
asset: string;
|
|
2372
|
+
in?: number;
|
|
2373
|
+
speed?: number;
|
|
2374
|
+
timeRemap?: VideoKeyframes;
|
|
2375
|
+
volume?: VideoAnimatable;
|
|
2376
|
+
muted?: boolean;
|
|
2377
|
+
fadeInCurve?: VideoFadeCurve;
|
|
2378
|
+
fadeOutCurve?: VideoFadeCurve;
|
|
2379
|
+
id: string;
|
|
2380
|
+
name?: string;
|
|
2381
|
+
start: number;
|
|
2382
|
+
duration: number;
|
|
2383
|
+
opacity?: VideoAnimatable;
|
|
2384
|
+
transform?: VideoTransform;
|
|
2385
|
+
fit?: VideoFit;
|
|
2386
|
+
blend?: VideoBlendMode;
|
|
2387
|
+
grade?: VideoGrade;
|
|
2388
|
+
animateIn?: VideoClipAnimation;
|
|
2389
|
+
animateOut?: VideoClipAnimation;
|
|
2390
|
+
fadeIn?: number;
|
|
2391
|
+
fadeOut?: number;
|
|
2392
|
+
transition?: VideoTransition;
|
|
2393
|
+
} | {
|
|
2394
|
+
source?: {
|
|
2395
|
+
in: number;
|
|
2396
|
+
out: number;
|
|
2397
|
+
} | null | undefined;
|
|
2398
|
+
end: number;
|
|
2399
|
+
type: "text";
|
|
2400
|
+
text: string;
|
|
2401
|
+
color?: string;
|
|
2402
|
+
fontSize?: number;
|
|
2403
|
+
fontFamily?: string;
|
|
2404
|
+
fontWeight?: number;
|
|
2405
|
+
background?: string;
|
|
2406
|
+
id: string;
|
|
2407
|
+
name?: string;
|
|
2408
|
+
start: number;
|
|
2409
|
+
duration: number;
|
|
2410
|
+
opacity?: VideoAnimatable;
|
|
2411
|
+
transform?: VideoTransform;
|
|
2412
|
+
fit?: VideoFit;
|
|
2413
|
+
blend?: VideoBlendMode;
|
|
2414
|
+
grade?: VideoGrade;
|
|
2415
|
+
animateIn?: VideoClipAnimation;
|
|
2416
|
+
animateOut?: VideoClipAnimation;
|
|
2417
|
+
fadeIn?: number;
|
|
2418
|
+
fadeOut?: number;
|
|
2419
|
+
transition?: VideoTransition;
|
|
2420
|
+
} | {
|
|
2421
|
+
source?: {
|
|
2422
|
+
in: number;
|
|
2423
|
+
out: number;
|
|
2424
|
+
} | null | undefined;
|
|
2425
|
+
end: number;
|
|
2426
|
+
type: "color";
|
|
2427
|
+
color: string;
|
|
2428
|
+
id: string;
|
|
2429
|
+
name?: string;
|
|
2430
|
+
start: number;
|
|
2431
|
+
duration: number;
|
|
2432
|
+
opacity?: VideoAnimatable;
|
|
2433
|
+
transform?: VideoTransform;
|
|
2434
|
+
fit?: VideoFit;
|
|
2435
|
+
blend?: VideoBlendMode;
|
|
2436
|
+
grade?: VideoGrade;
|
|
2437
|
+
animateIn?: VideoClipAnimation;
|
|
2438
|
+
animateOut?: VideoClipAnimation;
|
|
2439
|
+
fadeIn?: number;
|
|
2440
|
+
fadeOut?: number;
|
|
2441
|
+
transition?: VideoTransition;
|
|
2442
|
+
} | {
|
|
2443
|
+
source?: {
|
|
2444
|
+
in: number;
|
|
2445
|
+
out: number;
|
|
2446
|
+
} | null | undefined;
|
|
2447
|
+
end: number;
|
|
2448
|
+
type: "sequence";
|
|
2449
|
+
sequence: string;
|
|
2450
|
+
in?: number;
|
|
2451
|
+
volume?: VideoAnimatable;
|
|
2452
|
+
muted?: boolean;
|
|
2453
|
+
fadeInCurve?: VideoFadeCurve;
|
|
2454
|
+
fadeOutCurve?: VideoFadeCurve;
|
|
2455
|
+
id: string;
|
|
2456
|
+
name?: string;
|
|
2457
|
+
start: number;
|
|
2458
|
+
duration: number;
|
|
2459
|
+
opacity?: VideoAnimatable;
|
|
2460
|
+
transform?: VideoTransform;
|
|
2461
|
+
fit?: VideoFit;
|
|
2462
|
+
blend?: VideoBlendMode;
|
|
2463
|
+
grade?: VideoGrade;
|
|
2464
|
+
animateIn?: VideoClipAnimation;
|
|
2465
|
+
animateOut?: VideoClipAnimation;
|
|
2466
|
+
fadeIn?: number;
|
|
2467
|
+
fadeOut?: number;
|
|
2468
|
+
transition?: VideoTransition;
|
|
2469
|
+
})[];
|
|
2470
|
+
volume?: number | undefined;
|
|
2471
|
+
syncLocked?: boolean | undefined;
|
|
2472
|
+
locked?: boolean | undefined;
|
|
2473
|
+
hidden?: boolean | undefined;
|
|
2474
|
+
muted?: boolean | undefined;
|
|
2475
|
+
name?: string | undefined;
|
|
2476
|
+
id: string;
|
|
2477
|
+
kind: VideoTrackKind;
|
|
2478
|
+
index: number;
|
|
2479
|
+
}[];
|
|
2480
|
+
cycle?: string[] | undefined;
|
|
2481
|
+
duration: number;
|
|
2482
|
+
clipCount: number;
|
|
2483
|
+
nests: string[];
|
|
2484
|
+
usedBy: {
|
|
2485
|
+
track: string;
|
|
2486
|
+
start: number;
|
|
2487
|
+
end: number;
|
|
2488
|
+
source: {
|
|
2489
|
+
in: number;
|
|
2490
|
+
out: number;
|
|
2491
|
+
};
|
|
2492
|
+
inSequence?: string | undefined;
|
|
2493
|
+
clip: string;
|
|
2494
|
+
}[];
|
|
2495
|
+
name?: string | undefined;
|
|
2496
|
+
id: string;
|
|
2497
|
+
} | {
|
|
2498
|
+
trackCount: number;
|
|
2499
|
+
cycle?: string[] | undefined;
|
|
2500
|
+
duration: number;
|
|
2501
|
+
clipCount: number;
|
|
2502
|
+
nests: string[];
|
|
2503
|
+
usedBy: {
|
|
2504
|
+
track: string;
|
|
2505
|
+
start: number;
|
|
2506
|
+
end: number;
|
|
2507
|
+
source: {
|
|
2508
|
+
in: number;
|
|
2509
|
+
out: number;
|
|
2510
|
+
};
|
|
2511
|
+
inSequence?: string | undefined;
|
|
2512
|
+
clip: string;
|
|
2513
|
+
}[];
|
|
2514
|
+
name?: string | undefined;
|
|
2515
|
+
id: string;
|
|
2516
|
+
};
|
|
2517
|
+
/** A project as agents see it: settings, assets, each track's clips in order with their times, and a summary of each sequence. */
|
|
2258
2518
|
declare function describeVideoProject(project: VideoProject): {
|
|
2519
|
+
markers: VideoMarker[];
|
|
2520
|
+
sequences?: ({
|
|
2521
|
+
tracks: {
|
|
2522
|
+
clips: ({
|
|
2523
|
+
source?: {
|
|
2524
|
+
in: number;
|
|
2525
|
+
out: number;
|
|
2526
|
+
} | null | undefined;
|
|
2527
|
+
end: number;
|
|
2528
|
+
type: "media";
|
|
2529
|
+
asset: string;
|
|
2530
|
+
in?: number;
|
|
2531
|
+
speed?: number;
|
|
2532
|
+
timeRemap?: VideoKeyframes;
|
|
2533
|
+
volume?: VideoAnimatable;
|
|
2534
|
+
muted?: boolean;
|
|
2535
|
+
fadeInCurve?: VideoFadeCurve;
|
|
2536
|
+
fadeOutCurve?: VideoFadeCurve;
|
|
2537
|
+
id: string;
|
|
2538
|
+
name?: string;
|
|
2539
|
+
start: number;
|
|
2540
|
+
duration: number;
|
|
2541
|
+
opacity?: VideoAnimatable;
|
|
2542
|
+
transform?: VideoTransform;
|
|
2543
|
+
fit?: VideoFit;
|
|
2544
|
+
blend?: VideoBlendMode;
|
|
2545
|
+
grade?: VideoGrade;
|
|
2546
|
+
animateIn?: VideoClipAnimation;
|
|
2547
|
+
animateOut?: VideoClipAnimation;
|
|
2548
|
+
fadeIn?: number;
|
|
2549
|
+
fadeOut?: number;
|
|
2550
|
+
transition?: VideoTransition;
|
|
2551
|
+
} | {
|
|
2552
|
+
source?: {
|
|
2553
|
+
in: number;
|
|
2554
|
+
out: number;
|
|
2555
|
+
} | null | undefined;
|
|
2556
|
+
end: number;
|
|
2557
|
+
type: "text";
|
|
2558
|
+
text: string;
|
|
2559
|
+
color?: string;
|
|
2560
|
+
fontSize?: number;
|
|
2561
|
+
fontFamily?: string;
|
|
2562
|
+
fontWeight?: number;
|
|
2563
|
+
background?: string;
|
|
2564
|
+
id: string;
|
|
2565
|
+
name?: string;
|
|
2566
|
+
start: number;
|
|
2567
|
+
duration: number;
|
|
2568
|
+
opacity?: VideoAnimatable;
|
|
2569
|
+
transform?: VideoTransform;
|
|
2570
|
+
fit?: VideoFit;
|
|
2571
|
+
blend?: VideoBlendMode;
|
|
2572
|
+
grade?: VideoGrade;
|
|
2573
|
+
animateIn?: VideoClipAnimation;
|
|
2574
|
+
animateOut?: VideoClipAnimation;
|
|
2575
|
+
fadeIn?: number;
|
|
2576
|
+
fadeOut?: number;
|
|
2577
|
+
transition?: VideoTransition;
|
|
2578
|
+
} | {
|
|
2579
|
+
source?: {
|
|
2580
|
+
in: number;
|
|
2581
|
+
out: number;
|
|
2582
|
+
} | null | undefined;
|
|
2583
|
+
end: number;
|
|
2584
|
+
type: "color";
|
|
2585
|
+
color: string;
|
|
2586
|
+
id: string;
|
|
2587
|
+
name?: string;
|
|
2588
|
+
start: number;
|
|
2589
|
+
duration: number;
|
|
2590
|
+
opacity?: VideoAnimatable;
|
|
2591
|
+
transform?: VideoTransform;
|
|
2592
|
+
fit?: VideoFit;
|
|
2593
|
+
blend?: VideoBlendMode;
|
|
2594
|
+
grade?: VideoGrade;
|
|
2595
|
+
animateIn?: VideoClipAnimation;
|
|
2596
|
+
animateOut?: VideoClipAnimation;
|
|
2597
|
+
fadeIn?: number;
|
|
2598
|
+
fadeOut?: number;
|
|
2599
|
+
transition?: VideoTransition;
|
|
2600
|
+
} | {
|
|
2601
|
+
source?: {
|
|
2602
|
+
in: number;
|
|
2603
|
+
out: number;
|
|
2604
|
+
} | null | undefined;
|
|
2605
|
+
end: number;
|
|
2606
|
+
type: "sequence";
|
|
2607
|
+
sequence: string;
|
|
2608
|
+
in?: number;
|
|
2609
|
+
volume?: VideoAnimatable;
|
|
2610
|
+
muted?: boolean;
|
|
2611
|
+
fadeInCurve?: VideoFadeCurve;
|
|
2612
|
+
fadeOutCurve?: VideoFadeCurve;
|
|
2613
|
+
id: string;
|
|
2614
|
+
name?: string;
|
|
2615
|
+
start: number;
|
|
2616
|
+
duration: number;
|
|
2617
|
+
opacity?: VideoAnimatable;
|
|
2618
|
+
transform?: VideoTransform;
|
|
2619
|
+
fit?: VideoFit;
|
|
2620
|
+
blend?: VideoBlendMode;
|
|
2621
|
+
grade?: VideoGrade;
|
|
2622
|
+
animateIn?: VideoClipAnimation;
|
|
2623
|
+
animateOut?: VideoClipAnimation;
|
|
2624
|
+
fadeIn?: number;
|
|
2625
|
+
fadeOut?: number;
|
|
2626
|
+
transition?: VideoTransition;
|
|
2627
|
+
})[];
|
|
2628
|
+
volume?: number | undefined;
|
|
2629
|
+
syncLocked?: boolean | undefined;
|
|
2630
|
+
locked?: boolean | undefined;
|
|
2631
|
+
hidden?: boolean | undefined;
|
|
2632
|
+
muted?: boolean | undefined;
|
|
2633
|
+
name?: string | undefined;
|
|
2634
|
+
id: string;
|
|
2635
|
+
kind: VideoTrackKind;
|
|
2636
|
+
index: number;
|
|
2637
|
+
}[];
|
|
2638
|
+
cycle?: string[] | undefined;
|
|
2639
|
+
duration: number;
|
|
2640
|
+
clipCount: number;
|
|
2641
|
+
nests: string[];
|
|
2642
|
+
usedBy: {
|
|
2643
|
+
track: string;
|
|
2644
|
+
start: number;
|
|
2645
|
+
end: number;
|
|
2646
|
+
source: {
|
|
2647
|
+
in: number;
|
|
2648
|
+
out: number;
|
|
2649
|
+
};
|
|
2650
|
+
inSequence?: string | undefined;
|
|
2651
|
+
clip: string;
|
|
2652
|
+
}[];
|
|
2653
|
+
name?: string | undefined;
|
|
2654
|
+
id: string;
|
|
2655
|
+
} | {
|
|
2656
|
+
trackCount: number;
|
|
2657
|
+
cycle?: string[] | undefined;
|
|
2658
|
+
duration: number;
|
|
2659
|
+
clipCount: number;
|
|
2660
|
+
nests: string[];
|
|
2661
|
+
usedBy: {
|
|
2662
|
+
track: string;
|
|
2663
|
+
start: number;
|
|
2664
|
+
end: number;
|
|
2665
|
+
source: {
|
|
2666
|
+
in: number;
|
|
2667
|
+
out: number;
|
|
2668
|
+
};
|
|
2669
|
+
inSequence?: string | undefined;
|
|
2670
|
+
clip: string;
|
|
2671
|
+
}[];
|
|
2672
|
+
name?: string | undefined;
|
|
2673
|
+
id: string;
|
|
2674
|
+
})[] | undefined;
|
|
2259
2675
|
assets: ({
|
|
2260
2676
|
id: string;
|
|
2261
2677
|
kind: VideoAssetKind;
|
|
@@ -2359,6 +2775,33 @@ declare function describeVideoProject(project: VideoProject): {
|
|
|
2359
2775
|
fadeIn?: number;
|
|
2360
2776
|
fadeOut?: number;
|
|
2361
2777
|
transition?: VideoTransition;
|
|
2778
|
+
} | {
|
|
2779
|
+
source?: {
|
|
2780
|
+
in: number;
|
|
2781
|
+
out: number;
|
|
2782
|
+
} | null | undefined;
|
|
2783
|
+
end: number;
|
|
2784
|
+
type: "sequence";
|
|
2785
|
+
sequence: string;
|
|
2786
|
+
in?: number;
|
|
2787
|
+
volume?: VideoAnimatable;
|
|
2788
|
+
muted?: boolean;
|
|
2789
|
+
fadeInCurve?: VideoFadeCurve;
|
|
2790
|
+
fadeOutCurve?: VideoFadeCurve;
|
|
2791
|
+
id: string;
|
|
2792
|
+
name?: string;
|
|
2793
|
+
start: number;
|
|
2794
|
+
duration: number;
|
|
2795
|
+
opacity?: VideoAnimatable;
|
|
2796
|
+
transform?: VideoTransform;
|
|
2797
|
+
fit?: VideoFit;
|
|
2798
|
+
blend?: VideoBlendMode;
|
|
2799
|
+
grade?: VideoGrade;
|
|
2800
|
+
animateIn?: VideoClipAnimation;
|
|
2801
|
+
animateOut?: VideoClipAnimation;
|
|
2802
|
+
fadeIn?: number;
|
|
2803
|
+
fadeOut?: number;
|
|
2804
|
+
transition?: VideoTransition;
|
|
2362
2805
|
})[];
|
|
2363
2806
|
volume?: number | undefined;
|
|
2364
2807
|
syncLocked?: boolean | undefined;
|
|
@@ -2370,7 +2813,6 @@ declare function describeVideoProject(project: VideoProject): {
|
|
|
2370
2813
|
kind: VideoTrackKind;
|
|
2371
2814
|
index: number;
|
|
2372
2815
|
}[];
|
|
2373
|
-
markers: VideoMarker[];
|
|
2374
2816
|
background?: string | undefined;
|
|
2375
2817
|
width: number;
|
|
2376
2818
|
height: number;
|
|
@@ -2415,8 +2857,8 @@ declare const VIDEO_BLEND_MODE_LABELS: Readonly<Record<VideoBlendMode, string>>;
|
|
|
2415
2857
|
/** Names for the sound fade curves, for menus. */
|
|
2416
2858
|
declare const VIDEO_FADE_CURVE_LABELS: Readonly<Record<VideoFadeCurve, string>>;
|
|
2417
2859
|
declare function videoClipTint(clip: VideoClip, asset?: VideoAsset): string;
|
|
2418
|
-
/** A short label for a clip on the timeline. */
|
|
2419
|
-
declare function videoClipLabel(clip: VideoClip, asset?: VideoAsset): string;
|
|
2860
|
+
/** A short label for a clip on the timeline (pass the sequence a compound clip plays, for its name). */
|
|
2861
|
+
declare function videoClipLabel(clip: VideoClip, asset?: VideoAsset, sequence?: VideoSequence): string;
|
|
2420
2862
|
type VideoClipDragMode = 'move' | 'trim-start' | 'trim-end';
|
|
2421
2863
|
interface VideoClipDragInput {
|
|
2422
2864
|
clip: string;
|
|
@@ -2514,4 +2956,4 @@ declare function videoKeyframeToggleEdit(project: VideoProject, clipId: string,
|
|
|
2514
2956
|
*/
|
|
2515
2957
|
declare function videoLutEdits(project: VideoProject, clips: readonly string[], lut: VideoGradeLut | null): VideoEdit[];
|
|
2516
2958
|
|
|
2517
|
-
export { type CreateVideoProjectOptions, type NewVideoClip, VIDEO_BLEND_MODES, VIDEO_BLEND_MODE_LABELS, VIDEO_CLIP_ANIMATION_DURATION, VIDEO_CLIP_ANIMATION_EFFECTS, VIDEO_CLIP_ANIMATION_LABELS, VIDEO_CLIP_TYPES, VIDEO_DEFAULT_FILLERS, VIDEO_DEFAULT_STILL_DURATION, VIDEO_DEFAULT_TITLE_DURATION, VIDEO_EASE_NAMES, VIDEO_EDIT_OPS, VIDEO_FADE_CURVES, VIDEO_FADE_CURVE_LABELS, VIDEO_FITS, VIDEO_GRADE_CONTROLS, VIDEO_GRADE_PRESETS, VIDEO_GRADE_PRESET_NAMES, VIDEO_ISSUE_CODES, VIDEO_KEYFRAME_LIMITS, VIDEO_KEYFRAME_PROPERTIES, VIDEO_LUT_MAX_SIZE, VIDEO_PEAK_BLOCK, VIDEO_PLACEMENT_MODES, VIDEO_PREVIEW_SCALE_OPTIONS, VIDEO_PROXY_SCALES, VIDEO_SCOPE_KINDS, VIDEO_TIME_EPSILON, VIDEO_TRANSFORM_PROPERTIES, VIDEO_TRANSITION_LABELS, VIDEO_TRANSITION_TYPES, VIDEO_VECTORSCOPE_TARGETS, VIDEO_WIPE_DIRECTIONS, type VideoAnimatable, type VideoAsset, type VideoAssetKind, type VideoAssetProxy, type VideoAudioLevel, type VideoAudioPeaks, VideoAudioPeaksCache, type VideoAudioPeaksLoader, type VideoAudioSource, type VideoBlendMode, type VideoCacheEntryInfo, type VideoCanvasContext, type VideoClip, type VideoClipAnimation, type VideoClipAnimationEffect, type VideoClipDragInput, type VideoClipDragMode, type VideoClipDragPlan, type VideoClipLocation, type VideoClipType, type VideoColorClip, type VideoDecodedFrame, type VideoDrawOptions, type VideoEase, type VideoEdit, type VideoEditOp, type VideoEditOutcome, type VideoEditResult, VideoEditorController, type VideoEditorOptions, type VideoEditorState, type VideoEditorToolProviderOptions, type VideoEdlOptions, type VideoExposureOptions, type VideoExposureStats, type VideoFadeCurve, type VideoFfmpegExport, type VideoFfmpegOptions, type VideoFit, type VideoFrame, VideoFrameCache, type VideoFrameCacheOptions, type VideoFrameCacheStats, type VideoFrameDecoder, type VideoFrameRequest, type VideoGap, type VideoGrade, type VideoGradeControl, type VideoGradeLut, type VideoGradePreset, type VideoGradeSetting, type VideoGradeStep, type VideoHistogram, type VideoIssue, type VideoIssueCode, type VideoIssueSeverity, type VideoKey, type VideoKeyframeProperty, type VideoKeyframeRow, type VideoKeyframes, type VideoLayer, type VideoLoudnessMeasurement, type VideoLoudnessTarget, type VideoLut, VideoLutCache, type VideoLutLoader, type VideoLutSvgApproximation, type VideoMarker, type VideoMediaClip, type VideoMediaProbe, type VideoPauseOptions, type VideoPixels, type VideoPlacementMode, VideoPreviewEngine, type VideoPreviewImage, type VideoPreviewMedia, type VideoPreviewOptions, VideoPreviewPixels, type VideoPreviewScale, type VideoPreviewSnapshot, type VideoPreviewSource, type VideoProject, type VideoProxyCommand, type VideoProxyOptions, type VideoRect, type VideoRulerTick, type VideoScopeImage, type VideoScopeKind, type VideoScopeOptions, type VideoScopeSummary, type VideoScopesPanelReading, type VideoScratchCanvas, type VideoSilenceOptions, type VideoSnapOptions, type VideoSpeedSegment, type VideoSvgOptions, type VideoTextClip, type VideoTimelineWord, type VideoTrack, type VideoTrackKind, type VideoTranscriptRange, type VideoTranscriptWord, type VideoTransform, type VideoTransition, type VideoTransitionType, type VideoVectorscope, type VideoWaveform, type VideoWaveformMode, type VideoWipeDirection, allVideoClipIds, applyVideoEdits, applyVideoGrade, applyVideoLut, applyVideoLutToPixels, buildVideoAudioPeaks, checkVideoProject, checkVideoTimeRemap, createVideoEditorToolProvider, createVideoElementDecoder, createVideoProject, decodeVideoAudioPeaks, describeVideoProject, drawVideoFrame, ffmpegFilterValue, findVideoAudioSilences, findVideoClip, findVideoFillers, findVideoGaps, findVideoTranscriptPauses, findVideoTranscriptText, formatVideoSeconds, formatVideoTimecode, formatVideoTimecodeFrames, isVideoDropFrameRate, isVideoKeyframes, mergeVideoRanges, nextFreeVideoSlot, normalizeVideoGrade, normalizeVideoGradeLut, normalizeVideoWord, parseVideoAnimatable, parseVideoAsset, parseVideoAssetProxies, parseVideoClip, parseVideoClipAnimation, parseVideoCubeLut, parseVideoGrade, parseVideoGradeLut, parseVideoKeyframes, parseVideoLoudnessMeasurement, parseVideoMarker, parseVideoPreviewScale, parseVideoProject, parseVideoTimeRemap, parseVideoTrack, parseVideoTranscript, parseVideoTranscriptWords, parseVideoTransform, parseVideoTransition, placeVideoRect, planVideoClipDrag, planVideoPrefetch, probeVideoMedia, readVideoScopesPanel, removeVideoKey, resolveVideoPreviewScale, retimeVideoAnimatable, setVideoKey, snapToVideoFrame, snapVideoTime, sortVideoKeys, sortedVideoClips, splitVideoAnimatable, summarizeVideoScopes, toVideoEdl, toVideoFfmpeg, toVideoLoudnessMeasure, videoAssetDropEdit, videoAssetHasSound, videoAssetKindOf, videoAssetMap, videoAssetProxy, videoAudioLevels, videoAudioPeakRange, videoAudioPeakSpans, videoAudioPeaksDuration, videoCacheEvictions, videoChroma, videoClipAfter, videoClipAnimated, videoClipAnimationProperties, videoClipAnimationSpans, videoClipBefore, videoClipEnd, videoClipHandles, videoClipKeyframes, videoClipLabel, videoClipOverhang, videoClipShowsWaveform, videoClipSoundGain, videoClipSourceRange, videoClipSourceTime, videoClipSpeed, videoClipSpeedAt, videoClipTint, videoClipWaveform, videoClipWaveformPath, videoClipsAt, videoContactSheetSvg, videoDragLabel, videoDropTracks, videoEaseBezier, videoEaseProgress, videoExposureNotes, videoExposureStats, videoFadeCurveGain, videoFrameAt, videoFrameCacheKey, videoFrameDuration, videoFrameRequestsAt, videoFrameToSvg, videoFrames, videoFreezeFrameEdit, videoGradeCssFilter, videoGradeFfmpegFilters, videoGradeGainsFilterId, videoGradeLook, videoGradePreset, videoGradeStepMatrix, videoGradeStepSvgValues, videoGradeSteps, videoGradeSvgDefs, videoGradeSvgFilter, videoHistogram, videoHistogramImage, videoHourFrames, videoIrisRadius, videoIssueKey, videoKeyframeBreakpoints, videoKeyframeFfmpegExpr, videoKeyframeRows, videoKeyframeToggleEdit, videoKeyframeValueEdit, videoKeysOf, videoLuma, videoLumaWaveform, videoLutEdits, videoLutFromFunction, videoLutSvgApproximation, videoLutSvgPrimitives, videoLutToCube, videoOverlap, videoPeakDb, videoPreviewSrc, videoProjectDuration, videoProjectHasProxies, videoProjectSvg, videoProxyFfmpeg, videoProxyName, videoProxyPlan, videoRemoveRangesEdits, videoRulerTicks, videoScopeImage, videoShellQuote, videoSlowMotionRamp, videoSnapPoints, videoSourceFrame, videoSourceFrameTime, videoSpeedRampEdit, videoSpeedRampKeys, videoTextStyle, videoTimeRemapBreakpoints, videoTimeRemapSpan, videoTimecodeFrames, videoTimelineTranscript, videoTitleFrame, videoTrackSyncLocked, videoTranscriptEdit, videoTranscriptTrack, videoTransformAt, videoTransitionAudioCurve, videoTransitionEase, videoTransitionHasDirection, videoValueAt, videoVectorscope, videoVectorscopeAngle, videoVectorscopeImage, videoVectorscopePoint, videoWaveformImage, videoWaveformPath, videoWipeRect, videoWordAt, videoWordsRange };
|
|
2959
|
+
export { type CreateVideoProjectOptions, type NewVideoClip, VIDEO_BLEND_MODES, VIDEO_BLEND_MODE_LABELS, VIDEO_CLIP_ANIMATION_DURATION, VIDEO_CLIP_ANIMATION_EFFECTS, VIDEO_CLIP_ANIMATION_LABELS, VIDEO_CLIP_TYPES, VIDEO_DEFAULT_FILLERS, VIDEO_DEFAULT_STILL_DURATION, VIDEO_DEFAULT_TITLE_DURATION, VIDEO_EASE_NAMES, VIDEO_EDIT_OPS, VIDEO_FADE_CURVES, VIDEO_FADE_CURVE_LABELS, VIDEO_FITS, VIDEO_GRADE_CONTROLS, VIDEO_GRADE_PRESETS, VIDEO_GRADE_PRESET_NAMES, VIDEO_ISSUE_CODES, VIDEO_KEYFRAME_LIMITS, VIDEO_KEYFRAME_PROPERTIES, VIDEO_LUT_MAX_SIZE, VIDEO_PEAK_BLOCK, VIDEO_PLACEMENT_MODES, VIDEO_PREVIEW_SCALE_OPTIONS, VIDEO_PROXY_SCALES, VIDEO_SCOPE_KINDS, VIDEO_TIME_EPSILON, VIDEO_TRANSFORM_PROPERTIES, VIDEO_TRANSITION_LABELS, VIDEO_TRANSITION_TYPES, VIDEO_VECTORSCOPE_TARGETS, VIDEO_WIPE_DIRECTIONS, type VideoAnimatable, type VideoAsset, type VideoAssetKind, type VideoAssetProxy, type VideoAudioLevel, type VideoAudioPeaks, VideoAudioPeaksCache, type VideoAudioPeaksLoader, type VideoAudioSource, type VideoBlendMode, type VideoCacheEntryInfo, type VideoCanvasContext, type VideoClip, type VideoClipAnimation, type VideoClipAnimationEffect, type VideoClipDragInput, type VideoClipDragMode, type VideoClipDragPlan, type VideoClipLocation, type VideoClipType, type VideoColorClip, type VideoDecodedFrame, type VideoDrawOptions, type VideoEase, type VideoEdit, type VideoEditOp, type VideoEditOutcome, type VideoEditResult, VideoEditorController, type VideoEditorOptions, type VideoEditorState, type VideoEditorToolProviderOptions, type VideoEdlOptions, type VideoExposureOptions, type VideoExposureStats, type VideoFadeCurve, type VideoFfmpegExport, type VideoFfmpegOptions, type VideoFit, type VideoFrame, VideoFrameCache, type VideoFrameCacheOptions, type VideoFrameCacheStats, type VideoFrameDecoder, type VideoFrameRequest, type VideoGap, type VideoGrade, type VideoGradeControl, type VideoGradeLut, type VideoGradePreset, type VideoGradeSetting, type VideoGradeStep, type VideoHistogram, type VideoIssue, type VideoIssueCode, type VideoIssueSeverity, type VideoKey, type VideoKeyframeProperty, type VideoKeyframeRow, type VideoKeyframes, type VideoLayer, type VideoLoudnessMeasurement, type VideoLoudnessTarget, type VideoLut, VideoLutCache, type VideoLutLoader, type VideoLutSvgApproximation, type VideoMarker, type VideoMediaClip, type VideoMediaProbe, type VideoPauseOptions, type VideoPixels, type VideoPlacementMode, VideoPreviewEngine, type VideoPreviewImage, type VideoPreviewMedia, type VideoPreviewOptions, VideoPreviewPixels, type VideoPreviewScale, type VideoPreviewSnapshot, type VideoPreviewSource, type VideoProject, type VideoProxyCommand, type VideoProxyOptions, type VideoRect, type VideoRulerTick, type VideoScopeImage, type VideoScopeKind, type VideoScopeOptions, type VideoScopeSummary, type VideoScopesPanelReading, type VideoScratchCanvas, type VideoSequence, type VideoSequenceClip, type VideoSilenceOptions, type VideoSnapOptions, type VideoSpeedSegment, type VideoSvgOptions, type VideoTextClip, type VideoTimelineWord, type VideoTrack, type VideoTrackKind, type VideoTranscriptRange, type VideoTranscriptWord, type VideoTransform, type VideoTransition, type VideoTransitionType, type VideoVectorscope, type VideoWaveform, type VideoWaveformMode, type VideoWipeDirection, allVideoClipIds, allVideoTracks, applyVideoEdits, applyVideoGrade, applyVideoLut, applyVideoLutToPixels, buildVideoAudioPeaks, checkVideoProject, checkVideoTimeRemap, createVideoEditorToolProvider, createVideoElementDecoder, createVideoProject, decodeVideoAudioPeaks, describeVideoProject, describeVideoSequence, drawVideoFrame, ffmpegFilterValue, findVideoAudioSilences, findVideoClip, findVideoFillers, findVideoGaps, findVideoSequenceClip, findVideoSequenceCycle, findVideoTranscriptPauses, findVideoTranscriptText, formatVideoSeconds, formatVideoTimecode, formatVideoTimecodeFrames, isVideoDropFrameRate, isVideoKeyframes, mergeVideoRanges, nextFreeVideoSlot, normalizeVideoGrade, normalizeVideoGradeLut, normalizeVideoWord, parseVideoAnimatable, parseVideoAsset, parseVideoAssetProxies, parseVideoClip, parseVideoClipAnimation, parseVideoCubeLut, parseVideoGrade, parseVideoGradeLut, parseVideoKeyframes, parseVideoLoudnessMeasurement, parseVideoMarker, parseVideoPreviewScale, parseVideoProject, parseVideoSequence, parseVideoTimeRemap, parseVideoTrack, parseVideoTranscript, parseVideoTranscriptWords, parseVideoTransform, parseVideoTransition, placeVideoRect, planVideoClipDrag, planVideoPrefetch, probeVideoMedia, readVideoScopesPanel, removeVideoKey, resolveVideoPreviewScale, retimeVideoAnimatable, setVideoKey, snapToVideoFrame, snapVideoTime, sortVideoKeys, sortedVideoClips, splitVideoAnimatable, summarizeVideoScopes, toVideoEdl, toVideoFfmpeg, toVideoLoudnessMeasure, videoAssetDropEdit, videoAssetHasSound, videoAssetKindOf, videoAssetMap, videoAssetProxy, videoAudioLevels, videoAudioPeakRange, videoAudioPeakSpans, videoAudioPeaksDuration, videoCacheEvictions, videoChroma, videoClipAfter, videoClipAnimated, videoClipAnimationProperties, videoClipAnimationSpans, videoClipBefore, videoClipEnd, videoClipHandles, videoClipKeyframes, videoClipLabel, videoClipOverhang, videoClipShowsWaveform, videoClipSoundGain, videoClipSourceRange, videoClipSourceTime, videoClipSpeed, videoClipSpeedAt, videoClipTint, videoClipWaveform, videoClipWaveformPath, videoClipsAt, videoContactSheetSvg, videoDragLabel, videoDropTracks, videoEaseBezier, videoEaseProgress, videoExposureNotes, videoExposureStats, videoFadeCurveGain, videoFrameAt, videoFrameCacheKey, videoFrameDuration, videoFrameLeafLayers, videoFrameRequestsAt, videoFrameToSvg, videoFrames, videoFreezeFrameEdit, videoGradeCssFilter, videoGradeFfmpegFilters, videoGradeGainsFilterId, videoGradeLook, videoGradePreset, videoGradeStepMatrix, videoGradeStepSvgValues, videoGradeSteps, videoGradeSvgDefs, videoGradeSvgFilter, videoHistogram, videoHistogramImage, videoHourFrames, videoIrisRadius, videoIssueKey, videoKeyframeBreakpoints, videoKeyframeFfmpegExpr, videoKeyframeRows, videoKeyframeToggleEdit, videoKeyframeValueEdit, videoKeysOf, videoLuma, videoLumaWaveform, videoLutEdits, videoLutFromFunction, videoLutSvgApproximation, videoLutSvgPrimitives, videoLutToCube, videoOverlap, videoPeakDb, videoPreviewSrc, videoProjectDuration, videoProjectHasProxies, videoProjectSvg, videoProxyFfmpeg, videoProxyName, videoProxyPlan, videoRemoveRangesEdits, videoRulerTicks, videoScopeImage, videoSequenceChildren, videoSequenceDuration, videoSequenceMap, videoShellQuote, videoSlowMotionRamp, videoSnapPoints, videoSourceFrame, videoSourceFrameTime, videoSpeedRampEdit, videoSpeedRampKeys, videoTextStyle, videoTimeRemapBreakpoints, videoTimeRemapSpan, videoTimecodeFrames, videoTimelineTranscript, videoTitleFrame, videoTrackSyncLocked, videoTranscriptEdit, videoTranscriptTrack, videoTransformAt, videoTransitionAudioCurve, videoTransitionEase, videoTransitionHasDirection, videoValueAt, videoVectorscope, videoVectorscopeAngle, videoVectorscopeImage, videoVectorscopePoint, videoWaveformImage, videoWaveformPath, videoWipeRect, videoWordAt, videoWordsRange };
|