@pixerate/editor 0.234.0 → 0.236.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/agent/index.cjs +286 -27
- package/dist/agent/index.d.cts +1 -0
- package/dist/agent/index.d.ts +1 -0
- package/dist/agent/index.js +261 -2
- package/dist/agent/reviewTools.d.cts +16 -0
- package/dist/agent/reviewTools.d.ts +16 -0
- package/dist/animation-editor/controller.d.cts +25 -0
- package/dist/animation-editor/controller.d.ts +25 -0
- package/dist/animation-editor/index.cjs +159 -50
- package/dist/animation-editor/index.d.cts +1 -0
- package/dist/animation-editor/index.d.ts +1 -0
- package/dist/animation-editor/index.js +115 -6
- package/dist/animation-editor/layers.d.cts +2 -0
- package/dist/animation-editor/layers.d.ts +2 -0
- package/dist/animation-editor/sequence.d.cts +33 -0
- package/dist/animation-editor/sequence.d.ts +33 -0
- package/dist/{chunk-PI2UYMZY.js → chunk-FSLKBQU7.js} +269 -15
- package/dist/{chunk-I277KJLQ.js → chunk-G3RUKJ5C.js} +105 -1
- package/dist/{chunk-6RZVFYGJ.cjs → chunk-JWCKJNDR.cjs} +105 -1
- package/dist/{chunk-3MO3ZS7E.js → chunk-PHYOZK3B.js} +59 -311
- package/dist/{chunk-CZBRY4SW.cjs → chunk-WPWHT4Z6.cjs} +122 -374
- package/dist/{chunk-O7QXVGMP.cjs → chunk-WV5WTOC6.cjs} +295 -41
- package/dist/effects/index.cjs +19 -11
- package/dist/effects/index.d.cts +1 -0
- package/dist/effects/index.d.ts +1 -0
- package/dist/effects/index.js +9 -1
- package/dist/effects/template-tools.d.cts +25 -0
- package/dist/effects/template-tools.d.ts +25 -0
- package/dist/effects/templates.d.cts +30 -1
- package/dist/effects/templates.d.ts +30 -1
- package/dist/extensions/index.cjs +6 -6
- package/dist/extensions/index.js +10 -10
- package/dist/index.cjs +11 -11
- package/dist/index.js +10 -10
- package/dist/video-editor/controller.d.cts +26 -0
- package/dist/video-editor/controller.d.ts +26 -0
- package/dist/video-editor/index.cjs +187 -42
- package/dist/video-editor/index.d.cts +1 -0
- package/dist/video-editor/index.d.ts +1 -0
- package/dist/video-editor/index.js +145 -0
- package/dist/video-editor/sequence.d.cts +38 -0
- package/dist/video-editor/sequence.d.ts +38 -0
- package/package.json +1 -1
- package/skills/pixerate-rich-text/SKILL.md +28 -1
- package/skills/pixerate-rich-text-revise/SKILL.md +8 -1
|
@@ -153,6 +153,13 @@ var _chunkZQIWBJGHcjs = require('../chunk-ZQIWBJGH.cjs');
|
|
|
153
153
|
|
|
154
154
|
|
|
155
155
|
var _chunkDGWOGQJ5cjs = require('../chunk-DGWOGQJ5.cjs');
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
var _chunkJWCKJNDRcjs = require('../chunk-JWCKJNDR.cjs');
|
|
156
163
|
require('../chunk-PY4GWSE2.cjs');
|
|
157
164
|
|
|
158
165
|
|
|
@@ -3454,6 +3461,106 @@ var VideoPreviewEngine = (_class6 = class {
|
|
|
3454
3461
|
}
|
|
3455
3462
|
}, _class6);
|
|
3456
3463
|
|
|
3464
|
+
// src/video-editor/sequence.ts
|
|
3465
|
+
var svgUrl = (svg) => svg.trimStart().startsWith("<") ? `data:image/svg+xml;charset=utf-8,${encodeURIComponent(svg)}` : svg;
|
|
3466
|
+
var GROUPS = ["base", "background", "subject", "overlay", "text"];
|
|
3467
|
+
function videoEditsFromSequence(project, sequence, options = {}) {
|
|
3468
|
+
const at = _nullishCoalesce(options.at, () => ( _chunkZQIWBJGHcjs.videoProjectDuration.call(void 0, project)));
|
|
3469
|
+
const W = project.width;
|
|
3470
|
+
const H = project.height;
|
|
3471
|
+
const sx = W / sequence.stage.width;
|
|
3472
|
+
const sy = H / sequence.stage.height;
|
|
3473
|
+
const timing = _chunkJWCKJNDRcjs.effectSequenceTiming.call(void 0, sequence);
|
|
3474
|
+
const provider = options.provider ? { provider: options.provider } : {};
|
|
3475
|
+
const notes = [];
|
|
3476
|
+
const usedClips = new Set(_chunkZQIWBJGHcjs.allVideoClipIds.call(void 0, project));
|
|
3477
|
+
const usedTracks = new Set(project.tracks.map((t) => t.id));
|
|
3478
|
+
const usedAssets = new Set(project.assets.map((a) => a.id));
|
|
3479
|
+
const fresh = (used, base) => {
|
|
3480
|
+
for (let i = 1; ; i++) if (!used.has(`${base}${i}`)) return used.add(`${base}${i}`), `${base}${i}`;
|
|
3481
|
+
};
|
|
3482
|
+
const edits = [];
|
|
3483
|
+
const assets = [];
|
|
3484
|
+
const placeholders = {};
|
|
3485
|
+
const items = [];
|
|
3486
|
+
const placement = (r) => {
|
|
3487
|
+
if (!r) return {};
|
|
3488
|
+
const x = (r.x + r.width / 2) * sx - W / 2;
|
|
3489
|
+
const y = (r.y + r.height / 2) * sy - H / 2;
|
|
3490
|
+
const scale = Math.min(r.width * sx / W, r.height * sy / H);
|
|
3491
|
+
return { transform: { x: Math.round(x * 100) / 100, y: Math.round(y * 100) / 100, scale: Math.round(scale * 1e3) / 1e3 } };
|
|
3492
|
+
};
|
|
3493
|
+
const clipOf = (layer, start, duration, shot) => {
|
|
3494
|
+
const id = fresh(usedClips, "tpl-c");
|
|
3495
|
+
const common = { id, start, duration, ...layer.opacity !== void 0 && layer.opacity < 1 ? { opacity: layer.opacity } : {}, ...layer.fade ? { fadeIn: layer.fade, fadeOut: layer.fade } : {}, ...placement(layer.rect) };
|
|
3496
|
+
const effects = layer.effect ? { effects: [{ id: "fx1", effect: layer.effect, ...provider, ...layer.values ? { values: layer.values } : {} }] } : {};
|
|
3497
|
+
const s = layer.subject;
|
|
3498
|
+
if (!s) return { ...common, type: "effect", effect: layer.effect, ...provider, ...layer.values ? { values: layer.values } : {} };
|
|
3499
|
+
if ("slot" in s) {
|
|
3500
|
+
(placeholders[s.slot] ??= []).push(id);
|
|
3501
|
+
if (layer.effect) notes.push(`Shot ${shot + 1}: the "${s.slot}" slot is a grey placeholder; when you swap in the picture, apply ${layer.effect} to it again (apply_effect).`);
|
|
3502
|
+
return { ...common, type: "color", color: "#475569", name: `Slot "${s.slot}"` };
|
|
3503
|
+
}
|
|
3504
|
+
if ("text" in s) return { ...common, type: "text", text: s.text, ...s.font ? { fontFamily: s.font } : {}, ...typeof s.weight === "number" ? { fontWeight: s.weight } : {}, ...effects };
|
|
3505
|
+
const asset = fresh(usedAssets, "tpl-a");
|
|
3506
|
+
assets.push(asset);
|
|
3507
|
+
if ("video" in s) {
|
|
3508
|
+
notes.push(`Shot ${shot + 1}: a video's length is not known here, so its asset is given the clip's length (${Math.round(duration)} ms); correct it with update_video_asset if it is longer.`);
|
|
3509
|
+
edits.push({ op: "add_asset", asset: { id: asset, kind: "video", src: s.video, duration } });
|
|
3510
|
+
} else edits.push({ op: "add_asset", asset: { id: asset, kind: "image", src: "image" in s ? s.image : svgUrl(s.svg) } });
|
|
3511
|
+
return { ...common, type: "media", asset, fit: "contain", ...effects };
|
|
3512
|
+
};
|
|
3513
|
+
sequence.shots.forEach((shot, i) => {
|
|
3514
|
+
const shotStart = timing.starts[i];
|
|
3515
|
+
const shotEnd = _nullishCoalesce(timing.starts[i + 1], () => ( timing.total));
|
|
3516
|
+
let base;
|
|
3517
|
+
shot.layers.forEach((layer, j) => {
|
|
3518
|
+
const span = _chunkJWCKJNDRcjs.effectLayerSpan.call(void 0, layer, i, timing.starts, timing.total);
|
|
3519
|
+
if (span.end - span.start <= 0) return void notes.push(`Shot ${i + 1}, layer ${j + 1} lasts no time, so it was left out.`);
|
|
3520
|
+
const clip = clipOf(layer, at + span.start, span.end - span.start, i);
|
|
3521
|
+
const isBase = j === 0 && !base && span.start === shotStart && span.end === shotEnd && _chunkJWCKJNDRcjs.effectLayerRole.call(void 0, layer) === "background" && !layer.rect;
|
|
3522
|
+
const item = { group: isBase ? "base" : _chunkJWCKJNDRcjs.effectLayerRole.call(void 0, layer), clip };
|
|
3523
|
+
if (isBase) base = item;
|
|
3524
|
+
items.push(item);
|
|
3525
|
+
});
|
|
3526
|
+
if (!base) {
|
|
3527
|
+
base = { group: "base", clip: { id: fresh(usedClips, "tpl-c"), type: "color", color: "#000000", name: `Shot ${i + 1}`, start: at + shotStart, duration: shotEnd - shotStart } };
|
|
3528
|
+
items.push(base);
|
|
3529
|
+
}
|
|
3530
|
+
if (i > 0 && shot.transition) {
|
|
3531
|
+
base.clip.transition = { type: "effect", duration: _nullishCoalesce(shot.transition.ms, () => ( 800)), effect: { effect: shot.transition.effect, ...provider, ...shot.transition.values ? { values: shot.transition.values } : {} } };
|
|
3532
|
+
if (shot.layers.length > 1) notes.push(`Shot ${i + 1}: its transition blends the clips on the base track; the layers above it cut.`);
|
|
3533
|
+
}
|
|
3534
|
+
const words = (text, y, size, name) => items.push({ group: "text", clip: { id: fresh(usedClips, "tpl-c"), type: "text", text, name, fontSize: Math.round(size), start: at + shotStart, duration: shotEnd - shotStart, transform: { x: 0, y: Math.round(y) } } });
|
|
3535
|
+
if (shot.title) words(shot.title, 0, H * 0.09, "Title");
|
|
3536
|
+
if (shot.caption) words(shot.caption, H * 0.35, H * 0.045, "Caption");
|
|
3537
|
+
if (_optionalChain([shot, 'access', _109 => _109.camera, 'optionalAccess', _110 => _110.in]) !== void 0 || _optionalChain([shot, 'access', _111 => _111.camera, 'optionalAccess', _112 => _112.during]) !== void 0 || _optionalChain([shot, 'access', _113 => _113.camera, 'optionalAccess', _114 => _114.framing])) notes.push(`Shot ${i + 1}: its camera framing and moves were not carried over; set them with set_clip_camera_move on its clips.`);
|
|
3538
|
+
});
|
|
3539
|
+
const lanes = [];
|
|
3540
|
+
for (const group of GROUPS) {
|
|
3541
|
+
const mine = [];
|
|
3542
|
+
for (const item of items.filter((x) => x.group === group).sort((a, b) => a.clip.start - b.clip.start)) {
|
|
3543
|
+
let lane = group === "base" ? mine[0] : mine.find((l) => l.ends.every((e) => e <= item.clip.start + 1e-6));
|
|
3544
|
+
if (!lane) mine.push(lane = { group, id: fresh(usedTracks, "tpl-v"), ends: [], clips: [] });
|
|
3545
|
+
lane.ends.push(item.clip.start + item.clip.duration);
|
|
3546
|
+
lane.clips.push(item);
|
|
3547
|
+
}
|
|
3548
|
+
lanes.push(...mine);
|
|
3549
|
+
}
|
|
3550
|
+
for (const lane of lanes) edits.push({ op: "add_track", track: { id: lane.id, kind: "video", name: `Template ${lane.group}` }, at: 0 });
|
|
3551
|
+
for (const lane of lanes) for (const item of lane.clips) edits.push({ op: "add_clip", track: lane.id, clip: item.clip });
|
|
3552
|
+
return {
|
|
3553
|
+
edits,
|
|
3554
|
+
clips: lanes.flatMap((l) => l.clips.map((c) => c.clip.id)),
|
|
3555
|
+
tracks: lanes.map((l) => l.id).reverse(),
|
|
3556
|
+
assets,
|
|
3557
|
+
start: at,
|
|
3558
|
+
end: at + timing.total,
|
|
3559
|
+
placeholders,
|
|
3560
|
+
notes
|
|
3561
|
+
};
|
|
3562
|
+
}
|
|
3563
|
+
|
|
3457
3564
|
// src/video-editor/controller.ts
|
|
3458
3565
|
var VideoEditorController = (_class7 = class _VideoEditorController {
|
|
3459
3566
|
|
|
@@ -3579,7 +3686,7 @@ var VideoEditorController = (_class7 = class _VideoEditorController {
|
|
|
3579
3686
|
this.applying = false;
|
|
3580
3687
|
}
|
|
3581
3688
|
this.notify();
|
|
3582
|
-
_optionalChain([this, 'access',
|
|
3689
|
+
_optionalChain([this, 'access', _115 => _115.onChange, 'optionalCall', _116 => _116(project)]);
|
|
3583
3690
|
}
|
|
3584
3691
|
commit(label, next, merge) {
|
|
3585
3692
|
const before = this.project;
|
|
@@ -3736,7 +3843,7 @@ var VideoEditorController = (_class7 = class _VideoEditorController {
|
|
|
3736
3843
|
}
|
|
3737
3844
|
/** Selects clips (unknown ids are dropped). `add` toggles them into the current selection. */
|
|
3738
3845
|
select(clips, options = {}) {
|
|
3739
|
-
const known = _nullishCoalesce(_optionalChain([clips, 'optionalAccess',
|
|
3846
|
+
const known = _nullishCoalesce(_optionalChain([clips, 'optionalAccess', _117 => _117.filter, 'call', _118 => _118((id) => _chunkZQIWBJGHcjs.findVideoClip.call(void 0, this.project, id))]), () => ( []));
|
|
3740
3847
|
let next;
|
|
3741
3848
|
if (options.add) {
|
|
3742
3849
|
next = [...this.selection];
|
|
@@ -3818,6 +3925,29 @@ var VideoEditorController = (_class7 = class _VideoEditorController {
|
|
|
3818
3925
|
if (place) _chunkZQIWBJGHcjs.checkVideoEffectPlace.call(void 0, d, place);
|
|
3819
3926
|
return d;
|
|
3820
3927
|
}
|
|
3928
|
+
/**
|
|
3929
|
+
* Fills a provider sequence template and puts it on the timeline at `at` (default the end), on
|
|
3930
|
+
* new tracks above the others (see `videoEditsFromSequence`). Values are checked first and every
|
|
3931
|
+
* problem is refused at once. One undo step. Returns the new tracks, clips and assets, where it
|
|
3932
|
+
* starts and ends, the placeholder clips standing in for open slots, and notes.
|
|
3933
|
+
*/
|
|
3934
|
+
async fillTemplate(template, values = {}, options = {}) {
|
|
3935
|
+
const reason = this.readOnlyReason();
|
|
3936
|
+
if (reason) return this.refused(reason);
|
|
3937
|
+
if (options.at !== void 0 && !(Number.isFinite(options.at) && options.at >= 0)) return this.refused(`"at" is a time in ms, 0 or more (got ${options.at}).`);
|
|
3938
|
+
let filled;
|
|
3939
|
+
try {
|
|
3940
|
+
filled = await _chunkJWCKJNDRcjs.fillEffectTemplate.call(void 0, this.effects.provider, template, values, options.name ? { name: options.name } : {});
|
|
3941
|
+
} catch (error) {
|
|
3942
|
+
if (_chunkJAOSL334cjs.isEffectError.call(void 0, error) || error instanceof Error) return this.refused(error.message);
|
|
3943
|
+
throw error;
|
|
3944
|
+
}
|
|
3945
|
+
const made = videoEditsFromSequence(this.getState().project, filled.sequence, { at: options.at, provider: this.effects.provider.id });
|
|
3946
|
+
const r = this.apply(made.edits, `Template ${filled.template.name}`);
|
|
3947
|
+
if (!r.ok) return r;
|
|
3948
|
+
const { edits: _edits, notes, ...rest } = made;
|
|
3949
|
+
return { ok: true, template, ...rest, openSlots: filled.openSlots, notes: [...filled.notes, ...notes] };
|
|
3950
|
+
}
|
|
3821
3951
|
refused(message) {
|
|
3822
3952
|
return this.refuse(message);
|
|
3823
3953
|
}
|
|
@@ -3902,7 +4032,7 @@ var VideoEditorController = (_class7 = class _VideoEditorController {
|
|
|
3902
4032
|
/** The provider's camera moves for a role (`transition` into a clip, `hold` while it plays), or all of them. Empty without camera support. */
|
|
3903
4033
|
async cameraMoves(role) {
|
|
3904
4034
|
const provider = this.effects.provider;
|
|
3905
|
-
if (!_optionalChain([provider, 'optionalAccess',
|
|
4035
|
+
if (!_optionalChain([provider, 'optionalAccess', _119 => _119.capabilities, 'access', _120 => _120.supportsCamera]) || !provider.cameraView) return [];
|
|
3906
4036
|
return (await provider.list({ kind: "camera" })).filter((e) => e.kind === "camera" && e.camera && (!role || e.camera.role === role));
|
|
3907
4037
|
}
|
|
3908
4038
|
cameraClip(id) {
|
|
@@ -3968,8 +4098,8 @@ var VideoEditorController = (_class7 = class _VideoEditorController {
|
|
|
3968
4098
|
const current = this.cameraClip(clip);
|
|
3969
4099
|
const field = _chunkJAOSL334cjs.cameraMoveField.call(void 0, role);
|
|
3970
4100
|
const other = field === "in" ? "during" : "in";
|
|
3971
|
-
if (_optionalChain([current, 'access',
|
|
3972
|
-
throw new Error(`Clip "${clip}" has no camera "${field}" move to clear${_optionalChain([current, 'access',
|
|
4101
|
+
if (_optionalChain([current, 'access', _121 => _121.camera, 'optionalAccess', _122 => _122[field]]) === void 0)
|
|
4102
|
+
throw new Error(`Clip "${clip}" has no camera "${field}" move to clear${_optionalChain([current, 'access', _123 => _123.camera, 'optionalAccess', _124 => _124[other]]) !== void 0 ? `; it has a "${other}" move (role ${role === "hold" ? "transition" : "hold"})` : ""}.`);
|
|
3973
4103
|
const camera = { ...current.camera };
|
|
3974
4104
|
delete camera[field];
|
|
3975
4105
|
if (field === "in") delete camera.from;
|
|
@@ -4023,7 +4153,7 @@ var VideoEditorController = (_class7 = class _VideoEditorController {
|
|
|
4023
4153
|
label,
|
|
4024
4154
|
clip: clipId
|
|
4025
4155
|
};
|
|
4026
|
-
}).then((r) => r.ok && !r.clip ? { ...r, clip: _nullishCoalesce(_optionalChain([r, 'access',
|
|
4156
|
+
}).then((r) => r.ok && !r.clip ? { ...r, clip: _nullishCoalesce(_optionalChain([r, 'access', _125 => _125.outcomes, 'access', _126 => _126[0], 'optionalAccess', _127 => _127.clip]), () => ( "")) } : r);
|
|
4027
4157
|
}
|
|
4028
4158
|
/**
|
|
4029
4159
|
* Changes the values of an effect clip's picture (`target` its id) or of the effect transition
|
|
@@ -4039,7 +4169,7 @@ var VideoEditorController = (_class7 = class _VideoEditorController {
|
|
|
4039
4169
|
return { edit: { op: "update_clip", clip, set: { values: _chunkZQIWBJGHcjs.checkVideoEffectValues.call(void 0, d2, values, { base: _nullishCoalesce(current.values, () => ( {})), keyframes: true }) } }, label: `Change ${_nullishCoalesce(current.name, () => ( d2.name))}`, clip };
|
|
4040
4170
|
}
|
|
4041
4171
|
const t = current.transition;
|
|
4042
|
-
if (_optionalChain([t, 'optionalAccess',
|
|
4172
|
+
if (_optionalChain([t, 'optionalAccess', _128 => _128.type]) !== "effect" || !t.effect) throw new Error(`Clip "${clip}" has no effect transition.`);
|
|
4043
4173
|
const d = await this.describeEffect(t.effect.effect);
|
|
4044
4174
|
const merged = _chunkZQIWBJGHcjs.checkVideoEffectValues.call(void 0, d, values, { base: _nullishCoalesce(t.effect.values, () => ( {})) });
|
|
4045
4175
|
return { edit: { op: "set_transition", clip, transition: { ...t, effect: { ...t.effect, values: merged } } }, label: `Change transition ${d.name}`, clip };
|
|
@@ -4047,10 +4177,10 @@ var VideoEditorController = (_class7 = class _VideoEditorController {
|
|
|
4047
4177
|
}
|
|
4048
4178
|
/** Keys for one numeric control of a clip effect (clip-relative ms), or `null` to stop animating it (keeping its value at the clip's start). */
|
|
4049
4179
|
setClipEffectKeyframes(clip, instance, control, keys) {
|
|
4050
|
-
const current = _optionalChain([_chunkZQIWBJGHcjs.findVideoClip.call(void 0, this.project, clip), 'optionalAccess',
|
|
4051
|
-
const was = _optionalChain([current, 'optionalAccess',
|
|
4052
|
-
const value = _optionalChain([was, 'optionalAccess',
|
|
4053
|
-
const plain = keys === null ? _chunkZQIWBJGHcjs.isVideoKeyframes.call(void 0, value) ? _optionalChain([value, 'access',
|
|
4180
|
+
const current = _optionalChain([_chunkZQIWBJGHcjs.findVideoClip.call(void 0, this.project, clip), 'optionalAccess', _129 => _129.clip]);
|
|
4181
|
+
const was = _optionalChain([current, 'optionalAccess', _130 => _130.effects, 'optionalAccess', _131 => _131.find, 'call', _132 => _132((e) => e.id === instance)]);
|
|
4182
|
+
const value = _optionalChain([was, 'optionalAccess', _133 => _133.values, 'optionalAccess', _134 => _134[control]]);
|
|
4183
|
+
const plain = keys === null ? _chunkZQIWBJGHcjs.isVideoKeyframes.call(void 0, value) ? _optionalChain([value, 'access', _135 => _135.keys, 'access', _136 => _136[0], 'optionalAccess', _137 => _137.v]) : value : { keys: [...keys].sort((a, b) => a.t - b.t) };
|
|
4054
4184
|
return this.updateClipEffect(clip, instance, { values: { [control]: _nullishCoalesce(plain, () => ( null)) } });
|
|
4055
4185
|
}
|
|
4056
4186
|
/** What plays at `time` (default: the playhead). */
|
|
@@ -4105,7 +4235,7 @@ function planVideoToolPlayback(tool, args) {
|
|
|
4105
4235
|
const clips = clipsOf(args);
|
|
4106
4236
|
const track = str2(args.track) ? args.track : void 0;
|
|
4107
4237
|
const newClip = args.clip && typeof args.clip === "object" ? args.clip : null;
|
|
4108
|
-
const time = [args.start, args.at, args.time, args.to, _optionalChain([newClip, 'optionalAccess',
|
|
4238
|
+
const time = [args.start, args.at, args.time, args.to, _optionalChain([newClip, 'optionalAccess', _138 => _138.start])].find(num2);
|
|
4109
4239
|
const click = (ref) => [{ type: "target", ref }, { type: "press" }, { type: "release" }];
|
|
4110
4240
|
if (clips.length === 1 && (time !== void 0 || track) && tool !== "split_video_clip") {
|
|
4111
4241
|
const clip = clips[0];
|
|
@@ -4201,10 +4331,10 @@ function videoClipLabel(clip, asset, sequence) {
|
|
|
4201
4331
|
if (clip.name) return clip.name;
|
|
4202
4332
|
if (clip.type === "text") return clip.text.split("\n")[0];
|
|
4203
4333
|
if (clip.type === "color") return clip.color;
|
|
4204
|
-
if (clip.type === "sequence") return `Compound: ${_nullishCoalesce(_optionalChain([sequence, 'optionalAccess',
|
|
4334
|
+
if (clip.type === "sequence") return `Compound: ${_nullishCoalesce(_optionalChain([sequence, 'optionalAccess', _139 => _139.name]), () => ( clip.sequence))}`;
|
|
4205
4335
|
if (clip.type === "effect") return `Effect: ${clip.effect}`;
|
|
4206
4336
|
if (clip.type === "adjustment") return `Adjustment${clip.scope === "all" ? " (all tracks)" : clip.scope === "track" ? ` (${clip.targetTrack})` : ""}`;
|
|
4207
|
-
const base = _nullishCoalesce(_nullishCoalesce(_optionalChain([asset, 'optionalAccess',
|
|
4337
|
+
const base = _nullishCoalesce(_nullishCoalesce(_optionalChain([asset, 'optionalAccess', _140 => _140.name]), () => ( _optionalChain([asset, 'optionalAccess', _141 => _141.src, 'access', _142 => _142.replace, 'call', _143 => _143(/^.*[\\/]/, "")]))), () => ( clip.asset));
|
|
4208
4338
|
const speed = _chunkZQIWBJGHcjs.videoClipSpeed.call(void 0, clip);
|
|
4209
4339
|
return speed !== 1 ? `${base} (${Math.round(speed * 100)}%)` : base;
|
|
4210
4340
|
}
|
|
@@ -4248,7 +4378,7 @@ function videoAssetDropEdit(project, assetId, options = {}) {
|
|
|
4248
4378
|
const asset = _chunkZQIWBJGHcjs.videoAssetMap.call(void 0, project).get(assetId);
|
|
4249
4379
|
if (!asset) return null;
|
|
4250
4380
|
const kind = asset.kind === "audio" ? "audio" : "video";
|
|
4251
|
-
const track = _nullishCoalesce(options.track, () => ( _optionalChain([project, 'access',
|
|
4381
|
+
const track = _nullishCoalesce(options.track, () => ( _optionalChain([project, 'access', _144 => _144.tracks, 'access', _145 => _145.find, 'call', _146 => _146((t) => t.kind === kind && !t.locked), 'optionalAccess', _147 => _147.id])));
|
|
4252
4382
|
if (!track) return null;
|
|
4253
4383
|
return { op: "add_clip", track, clip: { type: "media", asset: asset.id, ...options.start !== void 0 ? { start: options.start } : {} }, ...options.ripple ? { ripple: true } : {}, ...options.mode && options.mode !== "refuse" ? { mode: options.mode } : {} };
|
|
4254
4384
|
}
|
|
@@ -4297,14 +4427,14 @@ var KEY_LABELS = {
|
|
|
4297
4427
|
scale: { label: "Scale", step: 0.05 },
|
|
4298
4428
|
rotation: { label: "Rotation", step: 1 }
|
|
4299
4429
|
};
|
|
4300
|
-
var animatableOf = (clip, property) => _chunkZQIWBJGHcjs.VIDEO_TRANSFORM_PROPERTIES.includes(property) ? _optionalChain([clip, 'access',
|
|
4430
|
+
var animatableOf = (clip, property) => _chunkZQIWBJGHcjs.VIDEO_TRANSFORM_PROPERTIES.includes(property) ? _optionalChain([clip, 'access', _148 => _148.transform, 'optionalAccess', _149 => _149[property]]) : property === "volume" ? clip.type === "media" || clip.type === "sequence" ? clip.volume : void 0 : clip.opacity;
|
|
4301
4431
|
var playheadInClip = (clip, time) => Math.round(Math.min(clip.duration, Math.max(0, time - clip.start)));
|
|
4302
4432
|
function videoKeyframeRows(project, clipId, time) {
|
|
4303
4433
|
const at = _chunkZQIWBJGHcjs.findVideoClip.call(void 0, project, clipId);
|
|
4304
4434
|
if (!at) return [];
|
|
4305
4435
|
const { clip } = at;
|
|
4306
4436
|
const asset = clip.type === "media" ? _chunkZQIWBJGHcjs.videoAssetMap.call(void 0, project).get(clip.asset) : void 0;
|
|
4307
|
-
const visual = !(_optionalChain([asset, 'optionalAccess',
|
|
4437
|
+
const visual = !(_optionalChain([asset, 'optionalAccess', _150 => _150.kind]) === "audio" || at.track.kind === "audio");
|
|
4308
4438
|
const audible = clip.type === "media" && _chunkZQIWBJGHcjs.videoAssetHasSound.call(void 0, asset) || clip.type === "sequence";
|
|
4309
4439
|
const properties = [...visual ? ["opacity"] : [], ...audible ? ["volume"] : [], ...visual ? _chunkZQIWBJGHcjs.VIDEO_TRANSFORM_PROPERTIES : []];
|
|
4310
4440
|
const clipTime = playheadInClip(clip, time);
|
|
@@ -4386,7 +4516,7 @@ function videoAddAdjustmentEdits(project, time, options = {}) {
|
|
|
4386
4516
|
const top = project.tracks[0];
|
|
4387
4517
|
const free = top && top.kind === "video" && !top.locked && !top.clips.some((c) => c.start < start + duration && _chunkZQIWBJGHcjs.videoClipEnd.call(void 0, c) > start);
|
|
4388
4518
|
const edits = [];
|
|
4389
|
-
let track = _optionalChain([top, 'optionalAccess',
|
|
4519
|
+
let track = _optionalChain([top, 'optionalAccess', _151 => _151.id]);
|
|
4390
4520
|
if (!free) {
|
|
4391
4521
|
const ids = new Set(project.tracks.map((t) => t.id));
|
|
4392
4522
|
let n = 1;
|
|
@@ -4403,8 +4533,8 @@ function videoMaskEdit(clip, mask) {
|
|
|
4403
4533
|
function videoSkinProtectionEdits(project, clips, amount) {
|
|
4404
4534
|
const edits = [];
|
|
4405
4535
|
for (const id of clips) {
|
|
4406
|
-
const clip = _optionalChain([_chunkZQIWBJGHcjs.findVideoClip.call(void 0, project, id), 'optionalAccess',
|
|
4407
|
-
const lut = _optionalChain([clip, 'optionalAccess',
|
|
4536
|
+
const clip = _optionalChain([_chunkZQIWBJGHcjs.findVideoClip.call(void 0, project, id), 'optionalAccess', _152 => _152.clip]);
|
|
4537
|
+
const lut = _optionalChain([clip, 'optionalAccess', _153 => _153.grade, 'optionalAccess', _154 => _154.lut]);
|
|
4408
4538
|
if (!clip || !lut) continue;
|
|
4409
4539
|
const { preserveSkinTones: _p, ...rest } = lut;
|
|
4410
4540
|
const k = Math.min(1, Math.max(0, amount));
|
|
@@ -4621,7 +4751,7 @@ function describeVideoProject(project) {
|
|
|
4621
4751
|
...project.background ? { background: project.background } : {},
|
|
4622
4752
|
assets: project.assets.map(videoAssetOut),
|
|
4623
4753
|
tracks: describeVideoTracks(project.tracks),
|
|
4624
|
-
..._optionalChain([project, 'access',
|
|
4754
|
+
..._optionalChain([project, 'access', _155 => _155.sequences, 'optionalAccess', _156 => _156.length]) ? { sequences: project.sequences.map((q) => describeVideoSequence(project, q, false)) } : {},
|
|
4625
4755
|
markers: _nullishCoalesce(project.markers, () => ( []))
|
|
4626
4756
|
};
|
|
4627
4757
|
}
|
|
@@ -4648,14 +4778,14 @@ function createVideoEditorToolProvider(controller, options = {}) {
|
|
|
4648
4778
|
return null;
|
|
4649
4779
|
};
|
|
4650
4780
|
const placed = (o) => ({
|
|
4651
|
-
..._optionalChain([o, 'access',
|
|
4652
|
-
..._optionalChain([o, 'access',
|
|
4653
|
-
..._optionalChain([o, 'access',
|
|
4781
|
+
..._optionalChain([o, 'access', _157 => _157.created, 'optionalAccess', _158 => _158.length]) ? { created: o.created } : {},
|
|
4782
|
+
..._optionalChain([o, 'access', _159 => _159.trimmed, 'optionalAccess', _160 => _160.length]) ? { trimmed: o.trimmed } : {},
|
|
4783
|
+
..._optionalChain([o, 'access', _161 => _161.removed, 'optionalAccess', _162 => _162.length]) ? { removed: o.removed } : {},
|
|
4654
4784
|
...o.rippled ? { rippled: o.rippled } : {}
|
|
4655
4785
|
});
|
|
4656
4786
|
const keysOut = (p, clip, property) => {
|
|
4657
4787
|
const c = clipOut(p, clip);
|
|
4658
|
-
const value = _chunkZQIWBJGHcjs.VIDEO_TRANSFORM_PROPERTIES.includes(property) ? _optionalChain([c, 'optionalAccess',
|
|
4788
|
+
const value = _chunkZQIWBJGHcjs.VIDEO_TRANSFORM_PROPERTIES.includes(property) ? _optionalChain([c, 'optionalAccess', _163 => _163.transform, 'optionalAccess', _164 => _164[property]]) : _optionalChain([c, 'optionalAccess', _165 => _165[property]]);
|
|
4659
4789
|
return typeof value === "object" ? { keys: value.keys } : { keys: [], value: _nullishCoalesce(value, () => ( null)) };
|
|
4660
4790
|
};
|
|
4661
4791
|
const getProject = {
|
|
@@ -4733,7 +4863,7 @@ function createVideoEditorToolProvider(controller, options = {}) {
|
|
|
4733
4863
|
annotations: { title: "Render a frame", ...READ },
|
|
4734
4864
|
handler: async ({ time, times, columns, format = "svg" }) => {
|
|
4735
4865
|
const p = project();
|
|
4736
|
-
const lutSrcs = [...new Set(p.tracks.flatMap((t) => t.clips.map((c) => _optionalChain([c, 'access',
|
|
4866
|
+
const lutSrcs = [...new Set(p.tracks.flatMap((t) => t.clips.map((c) => _optionalChain([c, 'access', _166 => _166.grade, 'optionalAccess', _167 => _167.lut, 'optionalAccess', _168 => _168.src])).filter((x) => !!x)))];
|
|
4737
4867
|
const missing = (await Promise.all(lutSrcs.map((src) => controller.luts.load(src).then(() => null, (e) => e.message)))).filter((m) => !!m);
|
|
4738
4868
|
const svgOptions = { lutFor: (src) => controller.luts.peek(src), ...columns ? { columns } : {} };
|
|
4739
4869
|
const svg = times ? _chunkZQIWBJGHcjs.videoContactSheetSvg.call(void 0, p, times, svgOptions) : _chunkZQIWBJGHcjs.videoProjectSvg.call(void 0, p, _nullishCoalesce(time, () => ( controller.getState().time)), svgOptions);
|
|
@@ -4974,7 +5104,7 @@ function createVideoEditorToolProvider(controller, options = {}) {
|
|
|
4974
5104
|
const at = _chunkZQIWBJGHcjs.findVideoClip.call(void 0, p, id);
|
|
4975
5105
|
if (!at) throw new Error(`There is no clip "${id}"; get_video_project lists the clips.`);
|
|
4976
5106
|
const { clip } = at;
|
|
4977
|
-
if (at.track.kind !== "video" || clip.type === "media" && _optionalChain([p, 'access',
|
|
5107
|
+
if (at.track.kind !== "video" || clip.type === "media" && _optionalChain([p, 'access', _169 => _169.assets, 'access', _170 => _170.find, 'call', _171 => _171((a) => a.id === clip.asset), 'optionalAccess', _172 => _172.kind]) === "audio")
|
|
4978
5108
|
throw new Error(`Clip "${id}" is sound only; grades change pictures. Pass clips on video tracks.`);
|
|
4979
5109
|
}
|
|
4980
5110
|
};
|
|
@@ -4997,7 +5127,7 @@ function createVideoEditorToolProvider(controller, options = {}) {
|
|
|
4997
5127
|
const grade = _chunkZQIWBJGHcjs.videoGradeLook.call(void 0, _chunkZQIWBJGHcjs.findVideoClip.call(void 0, project(), clip).clip.grade, preset, _nullishCoalesce(amount, () => ( 1)));
|
|
4998
5128
|
return grade ? { op: "update_clip", clip, set: { grade } } : { op: "update_clip", clip, remove: ["grade"] };
|
|
4999
5129
|
});
|
|
5000
|
-
return apply(edits, `Apply ${preset} look`, (r) => ({ clips: clips.map((id) => ({ id, grade: _nullishCoalesce(_optionalChain([_chunkZQIWBJGHcjs.findVideoClip.call(void 0, r.project, id), 'optionalAccess',
|
|
5130
|
+
return apply(edits, `Apply ${preset} look`, (r) => ({ clips: clips.map((id) => ({ id, grade: _nullishCoalesce(_optionalChain([_chunkZQIWBJGHcjs.findVideoClip.call(void 0, r.project, id), 'optionalAccess', _173 => _173.clip, 'access', _174 => _174.grade]), () => ( null)) })) }));
|
|
5001
5131
|
}
|
|
5002
5132
|
};
|
|
5003
5133
|
const copyGrade = {
|
|
@@ -5034,7 +5164,7 @@ function createVideoEditorToolProvider(controller, options = {}) {
|
|
|
5034
5164
|
const lut = await controller.luts.load(src);
|
|
5035
5165
|
const label = _nullishCoalesce(name, () => ( lut.title));
|
|
5036
5166
|
const setting = { src, ...strength !== void 0 && strength !== 1 ? { strength } : {}, ...label ? { name: label } : {}, ...preserve_skin_tones ? { preserveSkinTones: preserve_skin_tones } : {} };
|
|
5037
|
-
return apply(videoLutEdits(project(), clips, setting), "Apply LUT", (r) => ({ lut: { src, ...lut.title ? { title: lut.title } : {}, size: lut.size }, clips: clips.map((id) => ({ id, grade: _nullishCoalesce(_optionalChain([_chunkZQIWBJGHcjs.findVideoClip.call(void 0, r.project, id), 'optionalAccess',
|
|
5167
|
+
return apply(videoLutEdits(project(), clips, setting), "Apply LUT", (r) => ({ lut: { src, ...lut.title ? { title: lut.title } : {}, size: lut.size }, clips: clips.map((id) => ({ id, grade: _nullishCoalesce(_optionalChain([_chunkZQIWBJGHcjs.findVideoClip.call(void 0, r.project, id), 'optionalAccess', _175 => _175.clip, 'access', _176 => _176.grade]), () => ( null)) })) }));
|
|
5038
5168
|
}
|
|
5039
5169
|
};
|
|
5040
5170
|
const removeLut = {
|
|
@@ -5046,9 +5176,9 @@ function createVideoEditorToolProvider(controller, options = {}) {
|
|
|
5046
5176
|
handler: ({ clips }) => {
|
|
5047
5177
|
gradeTargets(clips);
|
|
5048
5178
|
const p = project();
|
|
5049
|
-
const withLut = clips.filter((id) => _optionalChain([_chunkZQIWBJGHcjs.findVideoClip.call(void 0, p, id), 'access',
|
|
5179
|
+
const withLut = clips.filter((id) => _optionalChain([_chunkZQIWBJGHcjs.findVideoClip.call(void 0, p, id), 'access', _177 => _177.clip, 'access', _178 => _178.grade, 'optionalAccess', _179 => _179.lut]));
|
|
5050
5180
|
if (!withLut.length) throw new Error(`None of ${clips.map((c) => `"${c}"`).join(", ")} has a LUT; get_video_project shows each clip's grade.`);
|
|
5051
|
-
return apply(videoLutEdits(p, withLut, null), "Remove LUT", (r) => ({ clips: clips.map((id) => ({ id, grade: _nullishCoalesce(_optionalChain([_chunkZQIWBJGHcjs.findVideoClip.call(void 0, r.project, id), 'optionalAccess',
|
|
5181
|
+
return apply(videoLutEdits(p, withLut, null), "Remove LUT", (r) => ({ clips: clips.map((id) => ({ id, grade: _nullishCoalesce(_optionalChain([_chunkZQIWBJGHcjs.findVideoClip.call(void 0, r.project, id), 'optionalAccess', _180 => _180.clip, 'access', _181 => _181.grade]), () => ( null)) })) }));
|
|
5052
5182
|
}
|
|
5053
5183
|
};
|
|
5054
5184
|
const PROXY_SCALE = { type: "number", exclusiveMinimum: 0, exclusiveMaximum: 1, description: "Proxy size as a fraction of the original: 0.5 (half width and height, the default) or 0.25 for very large footage." };
|
|
@@ -5106,7 +5236,7 @@ function createVideoEditorToolProvider(controller, options = {}) {
|
|
|
5106
5236
|
controller.setPreviewScale(scale);
|
|
5107
5237
|
const s = controller.getState().previewScale;
|
|
5108
5238
|
const fixed = s === "full" ? 1 : typeof s === "number" ? s : null;
|
|
5109
|
-
const plays = fixed === null ? void 0 : project().assets.filter((a) => a.kind === "video").map((a) => ({ asset: a.id, src: _nullishCoalesce(_optionalChain([videoAssetProxy, 'call',
|
|
5239
|
+
const plays = fixed === null ? void 0 : project().assets.filter((a) => a.kind === "video").map((a) => ({ asset: a.id, src: _nullishCoalesce(_optionalChain([videoAssetProxy, 'call', _182 => _182(a, fixed), 'optionalAccess', _183 => _183.src]), () => ( a.src)), proxy: !!videoAssetProxy(a, fixed) }));
|
|
5110
5240
|
return { previewScale: s, ...plays ? { plays } : { note: "auto picks the smallest proxy at least as large as the preview canvas shows, so it depends on the preview's size." } };
|
|
5111
5241
|
}
|
|
5112
5242
|
};
|
|
@@ -5175,7 +5305,7 @@ function createVideoEditorToolProvider(controller, options = {}) {
|
|
|
5175
5305
|
handler: ({ track, from, to, limit }) => {
|
|
5176
5306
|
const all = timelineWords(track).filter((w) => w.end > (_nullishCoalesce(from, () => ( 0))) && w.start < (_nullishCoalesce(to, () => ( Infinity))));
|
|
5177
5307
|
const words = all.slice(0, _nullishCoalesce(limit, () => ( 1e3)));
|
|
5178
|
-
return { track: _nullishCoalesce(_optionalChain([words, 'access',
|
|
5308
|
+
return { track: _nullishCoalesce(_optionalChain([words, 'access', _184 => _184[0], 'optionalAccess', _185 => _185.track]), () => ( videoTranscriptTrack(project(), track))), text: words.map((w) => w.word).join(" "), words: words.map((w) => ({ word: w.word, start: round(w.start), end: round(w.end), clip: w.clip })), more: all.length > words.length };
|
|
5179
5309
|
}
|
|
5180
5310
|
};
|
|
5181
5311
|
const findText = {
|
|
@@ -5238,7 +5368,7 @@ function createVideoEditorToolProvider(controller, options = {}) {
|
|
|
5238
5368
|
const { clip } = at;
|
|
5239
5369
|
if (clip.type === "sequence") throw new Error(`Clip "${id}" is a compound clip, which plays its sequence at normal speed; change the speed of the clips inside the sequence instead.`);
|
|
5240
5370
|
if (clip.type !== "media") throw new Error(`Clip "${id}" is a ${_chunkZQIWBJGHcjs.videoClipTypeLabel.call(void 0, clip)}, so it has no source to change the speed of; use a video or audio clip.`);
|
|
5241
|
-
if (_optionalChain([project, 'call',
|
|
5371
|
+
if (_optionalChain([project, 'call', _186 => _186(), 'access', _187 => _187.assets, 'access', _188 => _188.find, 'call', _189 => _189((a) => a.id === clip.asset), 'optionalAccess', _190 => _190.kind]) === "image") throw new Error(`Clip "${id}" is a still, so it has no motion to change the speed of.`);
|
|
5242
5372
|
return clip;
|
|
5243
5373
|
};
|
|
5244
5374
|
const rampOut = (r, id) => {
|
|
@@ -5654,12 +5784,12 @@ function createVideoEditorToolProvider(controller, options = {}) {
|
|
|
5654
5784
|
const edits = [];
|
|
5655
5785
|
for (const id of clips) {
|
|
5656
5786
|
const clip = _chunkZQIWBJGHcjs.findVideoClip.call(void 0, project(), id).clip;
|
|
5657
|
-
const lut = _optionalChain([clip, 'access',
|
|
5787
|
+
const lut = _optionalChain([clip, 'access', _191 => _191.grade, 'optionalAccess', _192 => _192.lut]);
|
|
5658
5788
|
if (!lut) throw new Error(`Clip "${id}" has no LUT to protect skin from; add one with set_video_lut first.`);
|
|
5659
5789
|
const { preserveSkinTones: _p, ...rest } = lut;
|
|
5660
5790
|
edits.push({ op: "update_clip", clip: id, set: { grade: { ...clip.grade, lut: amount > 0 ? { ...rest, preserveSkinTones: amount } : rest } } });
|
|
5661
5791
|
}
|
|
5662
|
-
return apply(edits, amount > 0 ? "Protect skin tones" : "Stop protecting skin tones", (r) => ({ clips: clips.map((id) => ({ id, lut: _nullishCoalesce(_optionalChain([_chunkZQIWBJGHcjs.findVideoClip.call(void 0, r.project, id), 'optionalAccess',
|
|
5792
|
+
return apply(edits, amount > 0 ? "Protect skin tones" : "Stop protecting skin tones", (r) => ({ clips: clips.map((id) => ({ id, lut: _nullishCoalesce(_optionalChain([_chunkZQIWBJGHcjs.findVideoClip.call(void 0, r.project, id), 'optionalAccess', _193 => _193.clip, 'access', _194 => _194.grade, 'optionalAccess', _195 => _195.lut]), () => ( null)) })) }));
|
|
5663
5793
|
}
|
|
5664
5794
|
};
|
|
5665
5795
|
const planOut = (plan) => ({
|
|
@@ -5785,7 +5915,7 @@ function videoCameraMoveTools(controller, ctx) {
|
|
|
5785
5915
|
annotations: { title: "List camera moves for clips", ...ctx.annotations.read },
|
|
5786
5916
|
handler: async (args) => {
|
|
5787
5917
|
const provider = controller.effectsProvider;
|
|
5788
|
-
if (!_optionalChain([provider, 'optionalAccess',
|
|
5918
|
+
if (!_optionalChain([provider, 'optionalAccess', _196 => _196.capabilities, 'access', _197 => _197.supportsCamera]) || !provider.cameraView)
|
|
5789
5919
|
return { available: false, reason: provider ? `${provider.name} has no camera moves (capabilities.supportsCamera is not set).` : "No effects provider is registered, so there are no camera moves.", moves: [] };
|
|
5790
5920
|
return { available: true, provider: provider.name, moves: (await controller.cameraMoves(args.role)).map(summary) };
|
|
5791
5921
|
}
|
|
@@ -5837,7 +5967,7 @@ function videoClipAppliedEffects(clip) {
|
|
|
5837
5967
|
const out = [];
|
|
5838
5968
|
const ref = (r) => ({ effect: r.effect, ...r.name ? { name: r.name } : {}, ...r.provider ? { provider: r.provider } : {} });
|
|
5839
5969
|
if (clip.type === "effect") out.push({ id: "generator", ...ref(clip), role: "effect clip", enabled: true, values: _nullishCoalesce(clip.values, () => ( {})) });
|
|
5840
|
-
if (_optionalChain([clip, 'access',
|
|
5970
|
+
if (_optionalChain([clip, 'access', _198 => _198.transition, 'optionalAccess', _199 => _199.type]) === "effect" && clip.transition.effect) out.push({ id: "transition", ...ref(clip.transition.effect), role: "transition", enabled: true, values: { ..._nullishCoalesce(clip.transition.effect.values, () => ( {})) }, duration: clip.transition.duration });
|
|
5841
5971
|
(_nullishCoalesce(clip.effects, () => ( []))).forEach((e, index) => out.push({ id: e.id, ...ref(e), role: "clip effect", enabled: e.enabled !== false, ...e.opacity !== void 0 ? { opacity: e.opacity } : {}, values: _nullishCoalesce(e.values, () => ( {})), index }));
|
|
5842
5972
|
return out;
|
|
5843
5973
|
}
|
|
@@ -5874,7 +6004,7 @@ function createVideoEffectsToolProvider(controller, options = {}) {
|
|
|
5874
6004
|
const result = (r, target, instance, extra = {}) => {
|
|
5875
6005
|
if (!r.ok) throw new Error(r.error);
|
|
5876
6006
|
const effects = videoClipAppliedEffects(clipOf(target));
|
|
5877
|
-
const effect = _nullishCoalesce(effects.find((e) => e.id === (_nullishCoalesce(instance, () => ( _optionalChain([r, 'access',
|
|
6007
|
+
const effect = _nullishCoalesce(effects.find((e) => e.id === (_nullishCoalesce(instance, () => ( _optionalChain([r, 'access', _200 => _200.effect, 'optionalAccess', _201 => _201.id]))))), () => ( (r.effect ? { id: r.effect.id, effect: r.effect.effect, role: "clip effect", enabled: r.effect.enabled !== false, values: _nullishCoalesce(r.effect.values, () => ( {})) } : effects[0])));
|
|
5878
6008
|
return { target, effect, effects, ...extra };
|
|
5879
6009
|
};
|
|
5880
6010
|
return withVideoPlayback(_chunkJAOSL334cjs.createEffectToolProvider.call(void 0, {
|
|
@@ -5923,6 +6053,20 @@ function createVideoEffectsToolProvider(controller, options = {}) {
|
|
|
5923
6053
|
subscribe: (notify) => controller.subscribe(() => notify()),
|
|
5924
6054
|
extraTools: (ctx) => [
|
|
5925
6055
|
...videoCameraMoveTools(controller, ctx),
|
|
6056
|
+
..._chunkJWCKJNDRcjs.effectTemplateTools.call(void 0,
|
|
6057
|
+
{
|
|
6058
|
+
provider: () => controller.effectsProvider,
|
|
6059
|
+
fillDetails: `It goes on the timeline at "at" (default the end of the project), on new tracks above the others: each shot's bottom layer on a base track (with the shot's transition), other layers as effect, picture and text clips on tracks by role, titles and captions as text clips; an open subject slot becomes a grey placeholder clip named after it. Camera moves are not carried over. Returns { template, tracks, clips, assets, start, end (ms), placeholders (clip ids by open slot), openSlots, notes }. To fill an open slot, add the picture with add_video_asset and put it on the placeholder's track at its start with add_video_clip in overwrite mode.`,
|
|
6060
|
+
fillOptions: { at: { type: "number", minimum: 0, description: "Where on the timeline it starts, ms (default the end of the project)." } },
|
|
6061
|
+
fill: async (template, values, options2) => {
|
|
6062
|
+
const r = await controller.fillTemplate(template, values, { name: options2.name, at: options2.at });
|
|
6063
|
+
if (!r.ok) throw new Error(r.error);
|
|
6064
|
+
const { ok: _ok, ...rest } = r;
|
|
6065
|
+
return rest;
|
|
6066
|
+
}
|
|
6067
|
+
},
|
|
6068
|
+
ctx
|
|
6069
|
+
),
|
|
5926
6070
|
{
|
|
5927
6071
|
name: "add_video_effect_clip",
|
|
5928
6072
|
title: "Add an effect clip",
|
|
@@ -5995,8 +6139,8 @@ function createVideoEffectsToolProvider(controller, options = {}) {
|
|
|
5995
6139
|
if (args.effect === "generator") {
|
|
5996
6140
|
const clip = clipOf(args.clip);
|
|
5997
6141
|
if (clip.type !== "effect") throw new Error(`Clip "${args.clip}" is not an effect clip; give the id of one of its effects (list_applied_effects).`);
|
|
5998
|
-
const was = _optionalChain([clip, 'access',
|
|
5999
|
-
const plain = keys === null ? _chunkZQIWBJGHcjs.isVideoKeyframes.call(void 0, was) ? _optionalChain([was, 'access',
|
|
6142
|
+
const was = _optionalChain([clip, 'access', _202 => _202.values, 'optionalAccess', _203 => _203[args.control]]);
|
|
6143
|
+
const plain = keys === null ? _chunkZQIWBJGHcjs.isVideoKeyframes.call(void 0, was) ? _optionalChain([was, 'access', _204 => _204.keys, 'access', _205 => _205[0], 'optionalAccess', _206 => _206.v]) : was : { keys: [...keys].sort((a, b) => a.t - b.t) };
|
|
6000
6144
|
if (plain === void 0) throw new Error(`"${args.control}" has no value to keep; give keys instead.`);
|
|
6001
6145
|
r = await controller.updateEffectValues(args.clip, "generator", { [args.control]: plain });
|
|
6002
6146
|
} else r = await controller.setClipEffectKeyframes(args.clip, args.effect, args.control, keys);
|
|
@@ -6792,4 +6936,5 @@ function createVideoEditorDocument(controller) {
|
|
|
6792
6936
|
|
|
6793
6937
|
|
|
6794
6938
|
|
|
6795
|
-
exports.TranscriptVideoController = TranscriptVideoController; exports.VIDEO_ADJUSTMENT_SCOPES = _chunkZQIWBJGHcjs.VIDEO_ADJUSTMENT_SCOPES; exports.VIDEO_ADJUSTMENT_SCOPE_LABELS = VIDEO_ADJUSTMENT_SCOPE_LABELS; exports.VIDEO_BLEND_MODES = _chunkZQIWBJGHcjs.VIDEO_BLEND_MODES; exports.VIDEO_BLEND_MODE_LABELS = VIDEO_BLEND_MODE_LABELS; exports.VIDEO_CLIP_ANIMATION_DURATION = _chunkZQIWBJGHcjs.VIDEO_CLIP_ANIMATION_DURATION; exports.VIDEO_CLIP_ANIMATION_EFFECTS = _chunkZQIWBJGHcjs.VIDEO_CLIP_ANIMATION_EFFECTS; exports.VIDEO_CLIP_ANIMATION_LABELS = VIDEO_CLIP_ANIMATION_LABELS; exports.VIDEO_CLIP_TYPES = _chunkZQIWBJGHcjs.VIDEO_CLIP_TYPES; exports.VIDEO_DEFAULT_FILLERS = VIDEO_DEFAULT_FILLERS; exports.VIDEO_DEFAULT_STILL_DURATION = VIDEO_DEFAULT_STILL_DURATION; exports.VIDEO_DEFAULT_TITLE_DURATION = VIDEO_DEFAULT_TITLE_DURATION; exports.VIDEO_DISFLUENCY_KINDS = VIDEO_DISFLUENCY_KINDS; exports.VIDEO_EASE_NAMES = _chunkZQIWBJGHcjs.VIDEO_EASE_NAMES; exports.VIDEO_EDIT_OPS = VIDEO_EDIT_OPS; exports.VIDEO_EFFECT_PLACES = _chunkZQIWBJGHcjs.VIDEO_EFFECT_PLACES; exports.VIDEO_FADE_CURVES = _chunkZQIWBJGHcjs.VIDEO_FADE_CURVES; exports.VIDEO_FADE_CURVE_LABELS = VIDEO_FADE_CURVE_LABELS; exports.VIDEO_FITS = _chunkZQIWBJGHcjs.VIDEO_FITS; exports.VIDEO_GRADE_CONTROLS = _chunkZQIWBJGHcjs.VIDEO_GRADE_CONTROLS; exports.VIDEO_GRADE_PRESETS = _chunkZQIWBJGHcjs.VIDEO_GRADE_PRESETS; exports.VIDEO_GRADE_PRESET_NAMES = _chunkZQIWBJGHcjs.VIDEO_GRADE_PRESET_NAMES; exports.VIDEO_ISSUE_CODES = VIDEO_ISSUE_CODES; exports.VIDEO_KEYFRAME_LIMITS = _chunkZQIWBJGHcjs.VIDEO_KEYFRAME_LIMITS; exports.VIDEO_KEYFRAME_PROPERTIES = _chunkZQIWBJGHcjs.VIDEO_KEYFRAME_PROPERTIES; exports.VIDEO_LOUDNESS_HOP = VIDEO_LOUDNESS_HOP; exports.VIDEO_LUT_MAX_SIZE = _chunkZQIWBJGHcjs.VIDEO_LUT_MAX_SIZE; exports.VIDEO_MASK_DEFAULTS = _chunkZQIWBJGHcjs.VIDEO_MASK_DEFAULTS; exports.VIDEO_MASK_SHAPES = _chunkZQIWBJGHcjs.VIDEO_MASK_SHAPES; exports.VIDEO_MASK_SHAPE_LABELS = VIDEO_MASK_SHAPE_LABELS; exports.VIDEO_PEAK_BLOCK = VIDEO_PEAK_BLOCK; exports.VIDEO_PLACEMENT_MODES = _chunkZQIWBJGHcjs.VIDEO_PLACEMENT_MODES; exports.VIDEO_PREVIEW_SCALE_OPTIONS = VIDEO_PREVIEW_SCALE_OPTIONS; exports.VIDEO_PROXY_SCALES = VIDEO_PROXY_SCALES; exports.VIDEO_SCOPE_KINDS = VIDEO_SCOPE_KINDS; exports.VIDEO_TIME_EPSILON = _chunkZQIWBJGHcjs.VIDEO_TIME_EPSILON; exports.VIDEO_TRANSFORM_PROPERTIES = _chunkZQIWBJGHcjs.VIDEO_TRANSFORM_PROPERTIES; exports.VIDEO_TRANSITION_LABELS = VIDEO_TRANSITION_LABELS; exports.VIDEO_TRANSITION_TYPES = _chunkZQIWBJGHcjs.VIDEO_TRANSITION_TYPES; exports.VIDEO_VECTORSCOPE_TARGETS = VIDEO_VECTORSCOPE_TARGETS; exports.VIDEO_WIPE_DIRECTIONS = _chunkZQIWBJGHcjs.VIDEO_WIPE_DIRECTIONS; exports.VideoAudioPeaksCache = VideoAudioPeaksCache; exports.VideoEditorController = VideoEditorController; exports.VideoEffectsEngine = _chunkZQIWBJGHcjs.VideoEffectsEngine; exports.VideoFrameCache = VideoFrameCache; exports.VideoLutCache = _chunkZQIWBJGHcjs.VideoLutCache; exports.VideoPreviewEngine = VideoPreviewEngine; exports.VideoPreviewPixels = VideoPreviewPixels; exports.allVideoClipIds = _chunkZQIWBJGHcjs.allVideoClipIds; exports.allVideoTracks = _chunkZQIWBJGHcjs.allVideoTracks; exports.animationEasingToVideoEase = animationEasingToVideoEase; exports.applyVideoEdits = applyVideoEdits; exports.applyVideoGrade = _chunkZQIWBJGHcjs.applyVideoGrade; exports.applyVideoLut = _chunkZQIWBJGHcjs.applyVideoLut; exports.applyVideoLutToPixels = _chunkZQIWBJGHcjs.applyVideoLutToPixels; exports.bakeVideoClipCamera = bakeVideoClipCamera; exports.buildVideoAudioPeaks = buildVideoAudioPeaks; exports.checkVideoEffectPlace = _chunkZQIWBJGHcjs.checkVideoEffectPlace; exports.checkVideoEffectValues = _chunkZQIWBJGHcjs.checkVideoEffectValues; exports.checkVideoProject = checkVideoProject; exports.checkVideoTimeRemap = _chunkZQIWBJGHcjs.checkVideoTimeRemap; exports.createVideoDialogueToolProvider = createVideoDialogueToolProvider; exports.createVideoEditorDocument = createVideoEditorDocument; exports.createVideoEditorToolProvider = createVideoEditorToolProvider; exports.createVideoEffectsToolProvider = createVideoEffectsToolProvider; exports.createVideoElementDecoder = createVideoElementDecoder; exports.createVideoMusicToolProvider = createVideoMusicToolProvider; exports.createVideoProject = createVideoProject; exports.decodeVideoAudioPeaks = decodeVideoAudioPeaks; exports.describeVideoEditPlan = describeVideoEditPlan; exports.describeVideoProject = describeVideoProject; exports.describeVideoSequence = describeVideoSequence; exports.detectVideoDisfluencies = detectVideoDisfluencies; exports.diffVideoProjects = diffVideoProjects; exports.drawVideoFrame = _chunkZQIWBJGHcjs.drawVideoFrame; exports.ffmpegFilterValue = _chunkZQIWBJGHcjs.ffmpegFilterValue; exports.findVideoAudioBeats = findVideoAudioBeats; exports.findVideoAudioSilences = findVideoAudioSilences; exports.findVideoClip = _chunkZQIWBJGHcjs.findVideoClip; exports.findVideoFillers = findVideoFillers; exports.findVideoGaps = _chunkZQIWBJGHcjs.findVideoGaps; exports.findVideoRepetitions = findVideoRepetitions; exports.findVideoSequenceClip = _chunkZQIWBJGHcjs.findVideoSequenceClip; exports.findVideoSequenceCycle = _chunkZQIWBJGHcjs.findVideoSequenceCycle; exports.findVideoTranscriptPauses = findVideoTranscriptPauses; exports.findVideoTranscriptText = findVideoTranscriptText; exports.formatVideoSeconds = _chunkZQIWBJGHcjs.formatVideoSeconds; exports.formatVideoTimecode = _chunkZQIWBJGHcjs.formatVideoTimecode; exports.formatVideoTimecodeFrames = _chunkZQIWBJGHcjs.formatVideoTimecodeFrames; exports.isVideoDropFrameRate = _chunkZQIWBJGHcjs.isVideoDropFrameRate; exports.isVideoKeyframes = _chunkZQIWBJGHcjs.isVideoKeyframes; exports.measureVideoLoudness = measureVideoLoudness; exports.mergeVideoRanges = mergeVideoRanges; exports.mixEffectPixels = _chunkZQIWBJGHcjs.mixEffectPixels; exports.nearestVideoBeat = nearestVideoBeat; exports.nextFreeVideoSlot = _chunkZQIWBJGHcjs.nextFreeVideoSlot; exports.normalizeVideoClipMask = _chunkZQIWBJGHcjs.normalizeVideoClipMask; exports.normalizeVideoGrade = _chunkZQIWBJGHcjs.normalizeVideoGrade; exports.normalizeVideoGradeLut = _chunkZQIWBJGHcjs.normalizeVideoGradeLut; exports.normalizeVideoWord = normalizeVideoWord; exports.openVideoClipEffectAuthoring = openVideoClipEffectAuthoring; exports.overEffectPixels = _chunkZQIWBJGHcjs.overEffectPixels; exports.parseVideoAnimatable = parseVideoAnimatable; exports.parseVideoAsset = parseVideoAsset; exports.parseVideoAssetProxies = parseVideoAssetProxies; exports.parseVideoClip = parseVideoClip; exports.parseVideoClipAnimation = parseVideoClipAnimation; exports.parseVideoClipCamera = parseVideoClipCamera; exports.parseVideoClipEffects = parseVideoClipEffects; exports.parseVideoClipMask = parseVideoClipMask; exports.parseVideoCubeLut = _chunkZQIWBJGHcjs.parseVideoCubeLut; exports.parseVideoEffectRef = parseVideoEffectRef; exports.parseVideoEffectValues = parseVideoEffectValues; exports.parseVideoGrade = parseVideoGrade; exports.parseVideoGradeLut = parseVideoGradeLut; exports.parseVideoKeyframes = parseVideoKeyframes; exports.parseVideoLoudnessMeasurement = _chunkZQIWBJGHcjs.parseVideoLoudnessMeasurement; exports.parseVideoMarker = parseVideoMarker; exports.parseVideoPreviewScale = parseVideoPreviewScale; exports.parseVideoProject = parseVideoProject; exports.parseVideoSequence = parseVideoSequence; exports.parseVideoTimeRef = parseVideoTimeRef; exports.parseVideoTimeRemap = parseVideoTimeRemap; exports.parseVideoTrack = parseVideoTrack; exports.parseVideoTranscript = parseVideoTranscript; exports.parseVideoTranscriptWords = parseVideoTranscriptWords; exports.parseVideoTransform = parseVideoTransform; exports.parseVideoTransition = parseVideoTransition; exports.placeVideoRect = _chunkZQIWBJGHcjs.placeVideoRect; exports.planVideoClipDrag = planVideoClipDrag; exports.planVideoEdits = planVideoEdits; exports.planVideoPrefetch = planVideoPrefetch; exports.planVideoToolPlayback = planVideoToolPlayback; exports.probeVideoMedia = probeVideoMedia; exports.readVideoScopesPanel = readVideoScopesPanel; exports.removeVideoKey = _chunkZQIWBJGHcjs.removeVideoKey; exports.renderVideoFrameExact = _chunkZQIWBJGHcjs.renderVideoFrameExact; exports.resolveVideoPreviewScale = resolveVideoPreviewScale; exports.retimeVideoAnimatable = _chunkZQIWBJGHcjs.retimeVideoAnimatable; exports.setVideoKey = _chunkZQIWBJGHcjs.setVideoKey; exports.snapToVideoFrame = _chunkZQIWBJGHcjs.snapToVideoFrame; exports.snapVideoTime = _chunkZQIWBJGHcjs.snapVideoTime; exports.sortVideoKeys = _chunkZQIWBJGHcjs.sortVideoKeys; exports.sortedVideoClips = _chunkZQIWBJGHcjs.sortedVideoClips; exports.splitVideoAnimatable = _chunkZQIWBJGHcjs.splitVideoAnimatable; exports.summarizeVideoScopes = summarizeVideoScopes; exports.toVideoEdl = _chunkZQIWBJGHcjs.toVideoEdl; exports.toVideoFfmpeg = _chunkZQIWBJGHcjs.toVideoFfmpeg; exports.toVideoLoudnessMeasure = _chunkZQIWBJGHcjs.toVideoLoudnessMeasure; exports.videoAddAdjustmentEdits = videoAddAdjustmentEdits; exports.videoAssetDropEdit = videoAssetDropEdit; exports.videoAssetHasSound = _chunkZQIWBJGHcjs.videoAssetHasSound; exports.videoAssetKindOf = videoAssetKindOf; exports.videoAssetMap = _chunkZQIWBJGHcjs.videoAssetMap; exports.videoAssetProxy = videoAssetProxy; exports.videoAudioLevels = videoAudioLevels; exports.videoAudioLoudness = videoAudioLoudness; exports.videoAudioPeakRange = videoAudioPeakRange; exports.videoAudioPeakSpans = videoAudioPeakSpans; exports.videoAudioPeaksDuration = videoAudioPeaksDuration; exports.videoAuthorableEffects = videoAuthorableEffects; exports.videoCacheEvictions = videoCacheEvictions; exports.videoCameraBase = videoCameraBase; exports.videoCameraMoveTools = videoCameraMoveTools; exports.videoCameraView = videoCameraView; exports.videoChroma = videoChroma; exports.videoClipAfter = _chunkZQIWBJGHcjs.videoClipAfter; exports.videoClipAnimated = _chunkZQIWBJGHcjs.videoClipAnimated; exports.videoClipAnimationProperties = _chunkZQIWBJGHcjs.videoClipAnimationProperties; exports.videoClipAnimationSpans = _chunkZQIWBJGHcjs.videoClipAnimationSpans; exports.videoClipAppliedEffects = videoClipAppliedEffects; exports.videoClipBefore = _chunkZQIWBJGHcjs.videoClipBefore; exports.videoClipCameraMove = videoClipCameraMove; exports.videoClipEffectDocument = videoClipEffectDocument; exports.videoClipEffectUses = _chunkZQIWBJGHcjs.videoClipEffectUses; exports.videoClipEnd = _chunkZQIWBJGHcjs.videoClipEnd; exports.videoClipHandles = _chunkZQIWBJGHcjs.videoClipHandles; exports.videoClipHeading = videoClipHeading; exports.videoClipKeyframes = videoClipKeyframes; exports.videoClipLabel = videoClipLabel; exports.videoClipOverhang = _chunkZQIWBJGHcjs.videoClipOverhang; exports.videoClipShowsWaveform = videoClipShowsWaveform; exports.videoClipSoundGain = _chunkZQIWBJGHcjs.videoClipSoundGain; exports.videoClipSourceRange = _chunkZQIWBJGHcjs.videoClipSourceRange; exports.videoClipSourceTime = _chunkZQIWBJGHcjs.videoClipSourceTime; exports.videoClipSpeed = _chunkZQIWBJGHcjs.videoClipSpeed; exports.videoClipSpeedAt = _chunkZQIWBJGHcjs.videoClipSpeedAt; exports.videoClipTint = videoClipTint; exports.videoClipTypeLabel = _chunkZQIWBJGHcjs.videoClipTypeLabel; exports.videoClipWaveform = videoClipWaveform; exports.videoClipWaveformPath = videoClipWaveformPath; exports.videoClipsAt = _chunkZQIWBJGHcjs.videoClipsAt; exports.videoContactSheetSvg = _chunkZQIWBJGHcjs.videoContactSheetSvg; exports.videoCutsWithMargin = videoCutsWithMargin; exports.videoDragLabel = videoDragLabel; exports.videoDropTracks = videoDropTracks; exports.videoDuckingKeys = videoDuckingKeys; exports.videoEaseBezier = _chunkZQIWBJGHcjs.videoEaseBezier; exports.videoEaseProgress = _chunkZQIWBJGHcjs.videoEaseProgress; exports.videoEaseToAnimationEasing = videoEaseToAnimationEasing; exports.videoEffectFrameTime = _chunkZQIWBJGHcjs.videoEffectFrameTime; exports.videoEffectLayerKey = _chunkZQIWBJGHcjs.videoEffectLayerKey; exports.videoEffectValuesAt = _chunkZQIWBJGHcjs.videoEffectValuesAt; exports.videoEffectValuesFromDocument = videoEffectValuesFromDocument; exports.videoExposureNotes = videoExposureNotes; exports.videoExposureStats = videoExposureStats; exports.videoFadeCurveGain = _chunkZQIWBJGHcjs.videoFadeCurveGain; exports.videoFfmpegUnsupportedEffects = _chunkZQIWBJGHcjs.videoFfmpegUnsupportedEffects; exports.videoFfmpegUnsupportedFeatures = _chunkZQIWBJGHcjs.videoFfmpegUnsupportedFeatures; exports.videoFrameAt = _chunkZQIWBJGHcjs.videoFrameAt; exports.videoFrameCacheKey = videoFrameCacheKey; exports.videoFrameDuration = _chunkZQIWBJGHcjs.videoFrameDuration; exports.videoFrameLeafLayers = _chunkZQIWBJGHcjs.videoFrameLeafLayers; exports.videoFrameRequestsAt = videoFrameRequestsAt; exports.videoFrameToSvg = _chunkZQIWBJGHcjs.videoFrameToSvg; exports.videoFrames = _chunkZQIWBJGHcjs.videoFrames; exports.videoFreezeFrameEdit = _chunkZQIWBJGHcjs.videoFreezeFrameEdit; exports.videoGradeCssFilter = _chunkZQIWBJGHcjs.videoGradeCssFilter; exports.videoGradeFfmpegFilters = _chunkZQIWBJGHcjs.videoGradeFfmpegFilters; exports.videoGradeGainsFilterId = _chunkZQIWBJGHcjs.videoGradeGainsFilterId; exports.videoGradeLook = _chunkZQIWBJGHcjs.videoGradeLook; exports.videoGradePreset = _chunkZQIWBJGHcjs.videoGradePreset; exports.videoGradeStepMatrix = _chunkZQIWBJGHcjs.videoGradeStepMatrix; exports.videoGradeStepSvgValues = _chunkZQIWBJGHcjs.videoGradeStepSvgValues; exports.videoGradeSteps = _chunkZQIWBJGHcjs.videoGradeSteps; exports.videoGradeSvgDefs = _chunkZQIWBJGHcjs.videoGradeSvgDefs; exports.videoGradeSvgFilter = _chunkZQIWBJGHcjs.videoGradeSvgFilter; exports.videoHistogram = videoHistogram; exports.videoHistogramImage = videoHistogramImage; exports.videoHourFrames = _chunkZQIWBJGHcjs.videoHourFrames; exports.videoIrisRadius = _chunkZQIWBJGHcjs.videoIrisRadius; exports.videoIssueKey = videoIssueKey; exports.videoKeyTimesProblem = _chunkZQIWBJGHcjs.videoKeyTimesProblem; exports.videoKeyframeBreakpoints = _chunkZQIWBJGHcjs.videoKeyframeBreakpoints; exports.videoKeyframeFfmpegExpr = _chunkZQIWBJGHcjs.videoKeyframeFfmpegExpr; exports.videoKeyframeRows = videoKeyframeRows; exports.videoKeyframeToggleEdit = videoKeyframeToggleEdit; exports.videoKeyframeValueEdit = videoKeyframeValueEdit; exports.videoKeysOf = _chunkZQIWBJGHcjs.videoKeysOf; exports.videoLayerMask = _chunkZQIWBJGHcjs.videoLayerMask; exports.videoLayersUseEffects = _chunkZQIWBJGHcjs.videoLayersUseEffects; exports.videoLayersWithoutTransitionEffects = _chunkZQIWBJGHcjs.videoLayersWithoutTransitionEffects; exports.videoLoudnessEnergy = videoLoudnessEnergy; exports.videoLoudnessGain = videoLoudnessGain; exports.videoLoudnessOf = videoLoudnessOf; exports.videoLuma = videoLuma; exports.videoLumaWaveform = videoLumaWaveform; exports.videoLutEdits = videoLutEdits; exports.videoLutFromFunction = _chunkZQIWBJGHcjs.videoLutFromFunction; exports.videoLutSvgApproximation = _chunkZQIWBJGHcjs.videoLutSvgApproximation; exports.videoLutSvgPrimitives = _chunkZQIWBJGHcjs.videoLutSvgPrimitives; exports.videoLutToCube = _chunkZQIWBJGHcjs.videoLutToCube; exports.videoMaskContains = _chunkZQIWBJGHcjs.videoMaskContains; exports.videoMaskEdit = videoMaskEdit; exports.videoMaskPolygon = _chunkZQIWBJGHcjs.videoMaskPolygon; exports.videoMaskSvgPath = _chunkZQIWBJGHcjs.videoMaskSvgPath; exports.videoOverlap = _chunkZQIWBJGHcjs.videoOverlap; exports.videoPeakDb = videoPeakDb; exports.videoPreviewSrc = videoPreviewSrc; exports.videoProjectDuration = _chunkZQIWBJGHcjs.videoProjectDuration; exports.videoProjectEffects = _chunkZQIWBJGHcjs.videoProjectEffects; exports.videoProjectHasProxies = videoProjectHasProxies; exports.videoProjectSvg = _chunkZQIWBJGHcjs.videoProjectSvg; exports.videoProxyFfmpeg = videoProxyFfmpeg; exports.videoProxyName = videoProxyName; exports.videoProxyPlan = videoProxyPlan; exports.videoRemoveRangesEdits = videoRemoveRangesEdits; exports.videoRulerTicks = videoRulerTicks; exports.videoScopeImage = videoScopeImage; exports.videoSequenceChildren = _chunkZQIWBJGHcjs.videoSequenceChildren; exports.videoSequenceDuration = _chunkZQIWBJGHcjs.videoSequenceDuration; exports.videoSequenceMap = _chunkZQIWBJGHcjs.videoSequenceMap; exports.videoShellQuote = _chunkZQIWBJGHcjs.videoShellQuote; exports.videoSkinProtectionEdits = videoSkinProtectionEdits; exports.videoSkinToneWeight = _chunkZQIWBJGHcjs.videoSkinToneWeight; exports.videoSlowMotionRamp = _chunkZQIWBJGHcjs.videoSlowMotionRamp; exports.videoSnapPoints = _chunkZQIWBJGHcjs.videoSnapPoints; exports.videoSourceFrame = videoSourceFrame; exports.videoSourceFrameTime = videoSourceFrameTime; exports.videoSpeechRanges = videoSpeechRanges; exports.videoSpeedRampEdit = _chunkZQIWBJGHcjs.videoSpeedRampEdit; exports.videoSpeedRampKeys = _chunkZQIWBJGHcjs.videoSpeedRampKeys; exports.videoTextStyle = _chunkZQIWBJGHcjs.videoTextStyle; exports.videoTimeRef = videoTimeRef; exports.videoTimeRemapBreakpoints = _chunkZQIWBJGHcjs.videoTimeRemapBreakpoints; exports.videoTimeRemapSpan = _chunkZQIWBJGHcjs.videoTimeRemapSpan; exports.videoTimecodeFrames = _chunkZQIWBJGHcjs.videoTimecodeFrames; exports.videoTimelineTranscript = videoTimelineTranscript; exports.videoTitleFrame = _chunkZQIWBJGHcjs.videoTitleFrame; exports.videoTrackSyncLocked = _chunkZQIWBJGHcjs.videoTrackSyncLocked; exports.videoTranscriptEdit = videoTranscriptEdit; exports.videoTranscriptTrack = videoTranscriptTrack; exports.videoTransformAt = _chunkZQIWBJGHcjs.videoTransformAt; exports.videoTransformOfView = videoTransformOfView; exports.videoTransitionAudioCurve = _chunkZQIWBJGHcjs.videoTransitionAudioCurve; exports.videoTransitionEase = _chunkZQIWBJGHcjs.videoTransitionEase; exports.videoTransitionHasDirection = videoTransitionHasDirection; exports.videoValueAt = _chunkZQIWBJGHcjs.videoValueAt; exports.videoVectorscope = videoVectorscope; exports.videoVectorscopeAngle = videoVectorscopeAngle; exports.videoVectorscopeImage = videoVectorscopeImage; exports.videoVectorscopePoint = videoVectorscopePoint; exports.videoWaveformImage = videoWaveformImage; exports.videoWaveformPath = videoWaveformPath; exports.videoWipeRect = _chunkZQIWBJGHcjs.videoWipeRect; exports.videoWordAt = videoWordAt; exports.videoWordsRange = videoWordsRange; exports.withVideoPlayback = withVideoPlayback;
|
|
6939
|
+
|
|
6940
|
+
exports.TranscriptVideoController = TranscriptVideoController; exports.VIDEO_ADJUSTMENT_SCOPES = _chunkZQIWBJGHcjs.VIDEO_ADJUSTMENT_SCOPES; exports.VIDEO_ADJUSTMENT_SCOPE_LABELS = VIDEO_ADJUSTMENT_SCOPE_LABELS; exports.VIDEO_BLEND_MODES = _chunkZQIWBJGHcjs.VIDEO_BLEND_MODES; exports.VIDEO_BLEND_MODE_LABELS = VIDEO_BLEND_MODE_LABELS; exports.VIDEO_CLIP_ANIMATION_DURATION = _chunkZQIWBJGHcjs.VIDEO_CLIP_ANIMATION_DURATION; exports.VIDEO_CLIP_ANIMATION_EFFECTS = _chunkZQIWBJGHcjs.VIDEO_CLIP_ANIMATION_EFFECTS; exports.VIDEO_CLIP_ANIMATION_LABELS = VIDEO_CLIP_ANIMATION_LABELS; exports.VIDEO_CLIP_TYPES = _chunkZQIWBJGHcjs.VIDEO_CLIP_TYPES; exports.VIDEO_DEFAULT_FILLERS = VIDEO_DEFAULT_FILLERS; exports.VIDEO_DEFAULT_STILL_DURATION = VIDEO_DEFAULT_STILL_DURATION; exports.VIDEO_DEFAULT_TITLE_DURATION = VIDEO_DEFAULT_TITLE_DURATION; exports.VIDEO_DISFLUENCY_KINDS = VIDEO_DISFLUENCY_KINDS; exports.VIDEO_EASE_NAMES = _chunkZQIWBJGHcjs.VIDEO_EASE_NAMES; exports.VIDEO_EDIT_OPS = VIDEO_EDIT_OPS; exports.VIDEO_EFFECT_PLACES = _chunkZQIWBJGHcjs.VIDEO_EFFECT_PLACES; exports.VIDEO_FADE_CURVES = _chunkZQIWBJGHcjs.VIDEO_FADE_CURVES; exports.VIDEO_FADE_CURVE_LABELS = VIDEO_FADE_CURVE_LABELS; exports.VIDEO_FITS = _chunkZQIWBJGHcjs.VIDEO_FITS; exports.VIDEO_GRADE_CONTROLS = _chunkZQIWBJGHcjs.VIDEO_GRADE_CONTROLS; exports.VIDEO_GRADE_PRESETS = _chunkZQIWBJGHcjs.VIDEO_GRADE_PRESETS; exports.VIDEO_GRADE_PRESET_NAMES = _chunkZQIWBJGHcjs.VIDEO_GRADE_PRESET_NAMES; exports.VIDEO_ISSUE_CODES = VIDEO_ISSUE_CODES; exports.VIDEO_KEYFRAME_LIMITS = _chunkZQIWBJGHcjs.VIDEO_KEYFRAME_LIMITS; exports.VIDEO_KEYFRAME_PROPERTIES = _chunkZQIWBJGHcjs.VIDEO_KEYFRAME_PROPERTIES; exports.VIDEO_LOUDNESS_HOP = VIDEO_LOUDNESS_HOP; exports.VIDEO_LUT_MAX_SIZE = _chunkZQIWBJGHcjs.VIDEO_LUT_MAX_SIZE; exports.VIDEO_MASK_DEFAULTS = _chunkZQIWBJGHcjs.VIDEO_MASK_DEFAULTS; exports.VIDEO_MASK_SHAPES = _chunkZQIWBJGHcjs.VIDEO_MASK_SHAPES; exports.VIDEO_MASK_SHAPE_LABELS = VIDEO_MASK_SHAPE_LABELS; exports.VIDEO_PEAK_BLOCK = VIDEO_PEAK_BLOCK; exports.VIDEO_PLACEMENT_MODES = _chunkZQIWBJGHcjs.VIDEO_PLACEMENT_MODES; exports.VIDEO_PREVIEW_SCALE_OPTIONS = VIDEO_PREVIEW_SCALE_OPTIONS; exports.VIDEO_PROXY_SCALES = VIDEO_PROXY_SCALES; exports.VIDEO_SCOPE_KINDS = VIDEO_SCOPE_KINDS; exports.VIDEO_TIME_EPSILON = _chunkZQIWBJGHcjs.VIDEO_TIME_EPSILON; exports.VIDEO_TRANSFORM_PROPERTIES = _chunkZQIWBJGHcjs.VIDEO_TRANSFORM_PROPERTIES; exports.VIDEO_TRANSITION_LABELS = VIDEO_TRANSITION_LABELS; exports.VIDEO_TRANSITION_TYPES = _chunkZQIWBJGHcjs.VIDEO_TRANSITION_TYPES; exports.VIDEO_VECTORSCOPE_TARGETS = VIDEO_VECTORSCOPE_TARGETS; exports.VIDEO_WIPE_DIRECTIONS = _chunkZQIWBJGHcjs.VIDEO_WIPE_DIRECTIONS; exports.VideoAudioPeaksCache = VideoAudioPeaksCache; exports.VideoEditorController = VideoEditorController; exports.VideoEffectsEngine = _chunkZQIWBJGHcjs.VideoEffectsEngine; exports.VideoFrameCache = VideoFrameCache; exports.VideoLutCache = _chunkZQIWBJGHcjs.VideoLutCache; exports.VideoPreviewEngine = VideoPreviewEngine; exports.VideoPreviewPixels = VideoPreviewPixels; exports.allVideoClipIds = _chunkZQIWBJGHcjs.allVideoClipIds; exports.allVideoTracks = _chunkZQIWBJGHcjs.allVideoTracks; exports.animationEasingToVideoEase = animationEasingToVideoEase; exports.applyVideoEdits = applyVideoEdits; exports.applyVideoGrade = _chunkZQIWBJGHcjs.applyVideoGrade; exports.applyVideoLut = _chunkZQIWBJGHcjs.applyVideoLut; exports.applyVideoLutToPixels = _chunkZQIWBJGHcjs.applyVideoLutToPixels; exports.bakeVideoClipCamera = bakeVideoClipCamera; exports.buildVideoAudioPeaks = buildVideoAudioPeaks; exports.checkVideoEffectPlace = _chunkZQIWBJGHcjs.checkVideoEffectPlace; exports.checkVideoEffectValues = _chunkZQIWBJGHcjs.checkVideoEffectValues; exports.checkVideoProject = checkVideoProject; exports.checkVideoTimeRemap = _chunkZQIWBJGHcjs.checkVideoTimeRemap; exports.createVideoDialogueToolProvider = createVideoDialogueToolProvider; exports.createVideoEditorDocument = createVideoEditorDocument; exports.createVideoEditorToolProvider = createVideoEditorToolProvider; exports.createVideoEffectsToolProvider = createVideoEffectsToolProvider; exports.createVideoElementDecoder = createVideoElementDecoder; exports.createVideoMusicToolProvider = createVideoMusicToolProvider; exports.createVideoProject = createVideoProject; exports.decodeVideoAudioPeaks = decodeVideoAudioPeaks; exports.describeVideoEditPlan = describeVideoEditPlan; exports.describeVideoProject = describeVideoProject; exports.describeVideoSequence = describeVideoSequence; exports.detectVideoDisfluencies = detectVideoDisfluencies; exports.diffVideoProjects = diffVideoProjects; exports.drawVideoFrame = _chunkZQIWBJGHcjs.drawVideoFrame; exports.ffmpegFilterValue = _chunkZQIWBJGHcjs.ffmpegFilterValue; exports.findVideoAudioBeats = findVideoAudioBeats; exports.findVideoAudioSilences = findVideoAudioSilences; exports.findVideoClip = _chunkZQIWBJGHcjs.findVideoClip; exports.findVideoFillers = findVideoFillers; exports.findVideoGaps = _chunkZQIWBJGHcjs.findVideoGaps; exports.findVideoRepetitions = findVideoRepetitions; exports.findVideoSequenceClip = _chunkZQIWBJGHcjs.findVideoSequenceClip; exports.findVideoSequenceCycle = _chunkZQIWBJGHcjs.findVideoSequenceCycle; exports.findVideoTranscriptPauses = findVideoTranscriptPauses; exports.findVideoTranscriptText = findVideoTranscriptText; exports.formatVideoSeconds = _chunkZQIWBJGHcjs.formatVideoSeconds; exports.formatVideoTimecode = _chunkZQIWBJGHcjs.formatVideoTimecode; exports.formatVideoTimecodeFrames = _chunkZQIWBJGHcjs.formatVideoTimecodeFrames; exports.isVideoDropFrameRate = _chunkZQIWBJGHcjs.isVideoDropFrameRate; exports.isVideoKeyframes = _chunkZQIWBJGHcjs.isVideoKeyframes; exports.measureVideoLoudness = measureVideoLoudness; exports.mergeVideoRanges = mergeVideoRanges; exports.mixEffectPixels = _chunkZQIWBJGHcjs.mixEffectPixels; exports.nearestVideoBeat = nearestVideoBeat; exports.nextFreeVideoSlot = _chunkZQIWBJGHcjs.nextFreeVideoSlot; exports.normalizeVideoClipMask = _chunkZQIWBJGHcjs.normalizeVideoClipMask; exports.normalizeVideoGrade = _chunkZQIWBJGHcjs.normalizeVideoGrade; exports.normalizeVideoGradeLut = _chunkZQIWBJGHcjs.normalizeVideoGradeLut; exports.normalizeVideoWord = normalizeVideoWord; exports.openVideoClipEffectAuthoring = openVideoClipEffectAuthoring; exports.overEffectPixels = _chunkZQIWBJGHcjs.overEffectPixels; exports.parseVideoAnimatable = parseVideoAnimatable; exports.parseVideoAsset = parseVideoAsset; exports.parseVideoAssetProxies = parseVideoAssetProxies; exports.parseVideoClip = parseVideoClip; exports.parseVideoClipAnimation = parseVideoClipAnimation; exports.parseVideoClipCamera = parseVideoClipCamera; exports.parseVideoClipEffects = parseVideoClipEffects; exports.parseVideoClipMask = parseVideoClipMask; exports.parseVideoCubeLut = _chunkZQIWBJGHcjs.parseVideoCubeLut; exports.parseVideoEffectRef = parseVideoEffectRef; exports.parseVideoEffectValues = parseVideoEffectValues; exports.parseVideoGrade = parseVideoGrade; exports.parseVideoGradeLut = parseVideoGradeLut; exports.parseVideoKeyframes = parseVideoKeyframes; exports.parseVideoLoudnessMeasurement = _chunkZQIWBJGHcjs.parseVideoLoudnessMeasurement; exports.parseVideoMarker = parseVideoMarker; exports.parseVideoPreviewScale = parseVideoPreviewScale; exports.parseVideoProject = parseVideoProject; exports.parseVideoSequence = parseVideoSequence; exports.parseVideoTimeRef = parseVideoTimeRef; exports.parseVideoTimeRemap = parseVideoTimeRemap; exports.parseVideoTrack = parseVideoTrack; exports.parseVideoTranscript = parseVideoTranscript; exports.parseVideoTranscriptWords = parseVideoTranscriptWords; exports.parseVideoTransform = parseVideoTransform; exports.parseVideoTransition = parseVideoTransition; exports.placeVideoRect = _chunkZQIWBJGHcjs.placeVideoRect; exports.planVideoClipDrag = planVideoClipDrag; exports.planVideoEdits = planVideoEdits; exports.planVideoPrefetch = planVideoPrefetch; exports.planVideoToolPlayback = planVideoToolPlayback; exports.probeVideoMedia = probeVideoMedia; exports.readVideoScopesPanel = readVideoScopesPanel; exports.removeVideoKey = _chunkZQIWBJGHcjs.removeVideoKey; exports.renderVideoFrameExact = _chunkZQIWBJGHcjs.renderVideoFrameExact; exports.resolveVideoPreviewScale = resolveVideoPreviewScale; exports.retimeVideoAnimatable = _chunkZQIWBJGHcjs.retimeVideoAnimatable; exports.setVideoKey = _chunkZQIWBJGHcjs.setVideoKey; exports.snapToVideoFrame = _chunkZQIWBJGHcjs.snapToVideoFrame; exports.snapVideoTime = _chunkZQIWBJGHcjs.snapVideoTime; exports.sortVideoKeys = _chunkZQIWBJGHcjs.sortVideoKeys; exports.sortedVideoClips = _chunkZQIWBJGHcjs.sortedVideoClips; exports.splitVideoAnimatable = _chunkZQIWBJGHcjs.splitVideoAnimatable; exports.summarizeVideoScopes = summarizeVideoScopes; exports.toVideoEdl = _chunkZQIWBJGHcjs.toVideoEdl; exports.toVideoFfmpeg = _chunkZQIWBJGHcjs.toVideoFfmpeg; exports.toVideoLoudnessMeasure = _chunkZQIWBJGHcjs.toVideoLoudnessMeasure; exports.videoAddAdjustmentEdits = videoAddAdjustmentEdits; exports.videoAssetDropEdit = videoAssetDropEdit; exports.videoAssetHasSound = _chunkZQIWBJGHcjs.videoAssetHasSound; exports.videoAssetKindOf = videoAssetKindOf; exports.videoAssetMap = _chunkZQIWBJGHcjs.videoAssetMap; exports.videoAssetProxy = videoAssetProxy; exports.videoAudioLevels = videoAudioLevels; exports.videoAudioLoudness = videoAudioLoudness; exports.videoAudioPeakRange = videoAudioPeakRange; exports.videoAudioPeakSpans = videoAudioPeakSpans; exports.videoAudioPeaksDuration = videoAudioPeaksDuration; exports.videoAuthorableEffects = videoAuthorableEffects; exports.videoCacheEvictions = videoCacheEvictions; exports.videoCameraBase = videoCameraBase; exports.videoCameraMoveTools = videoCameraMoveTools; exports.videoCameraView = videoCameraView; exports.videoChroma = videoChroma; exports.videoClipAfter = _chunkZQIWBJGHcjs.videoClipAfter; exports.videoClipAnimated = _chunkZQIWBJGHcjs.videoClipAnimated; exports.videoClipAnimationProperties = _chunkZQIWBJGHcjs.videoClipAnimationProperties; exports.videoClipAnimationSpans = _chunkZQIWBJGHcjs.videoClipAnimationSpans; exports.videoClipAppliedEffects = videoClipAppliedEffects; exports.videoClipBefore = _chunkZQIWBJGHcjs.videoClipBefore; exports.videoClipCameraMove = videoClipCameraMove; exports.videoClipEffectDocument = videoClipEffectDocument; exports.videoClipEffectUses = _chunkZQIWBJGHcjs.videoClipEffectUses; exports.videoClipEnd = _chunkZQIWBJGHcjs.videoClipEnd; exports.videoClipHandles = _chunkZQIWBJGHcjs.videoClipHandles; exports.videoClipHeading = videoClipHeading; exports.videoClipKeyframes = videoClipKeyframes; exports.videoClipLabel = videoClipLabel; exports.videoClipOverhang = _chunkZQIWBJGHcjs.videoClipOverhang; exports.videoClipShowsWaveform = videoClipShowsWaveform; exports.videoClipSoundGain = _chunkZQIWBJGHcjs.videoClipSoundGain; exports.videoClipSourceRange = _chunkZQIWBJGHcjs.videoClipSourceRange; exports.videoClipSourceTime = _chunkZQIWBJGHcjs.videoClipSourceTime; exports.videoClipSpeed = _chunkZQIWBJGHcjs.videoClipSpeed; exports.videoClipSpeedAt = _chunkZQIWBJGHcjs.videoClipSpeedAt; exports.videoClipTint = videoClipTint; exports.videoClipTypeLabel = _chunkZQIWBJGHcjs.videoClipTypeLabel; exports.videoClipWaveform = videoClipWaveform; exports.videoClipWaveformPath = videoClipWaveformPath; exports.videoClipsAt = _chunkZQIWBJGHcjs.videoClipsAt; exports.videoContactSheetSvg = _chunkZQIWBJGHcjs.videoContactSheetSvg; exports.videoCutsWithMargin = videoCutsWithMargin; exports.videoDragLabel = videoDragLabel; exports.videoDropTracks = videoDropTracks; exports.videoDuckingKeys = videoDuckingKeys; exports.videoEaseBezier = _chunkZQIWBJGHcjs.videoEaseBezier; exports.videoEaseProgress = _chunkZQIWBJGHcjs.videoEaseProgress; exports.videoEaseToAnimationEasing = videoEaseToAnimationEasing; exports.videoEditsFromSequence = videoEditsFromSequence; exports.videoEffectFrameTime = _chunkZQIWBJGHcjs.videoEffectFrameTime; exports.videoEffectLayerKey = _chunkZQIWBJGHcjs.videoEffectLayerKey; exports.videoEffectValuesAt = _chunkZQIWBJGHcjs.videoEffectValuesAt; exports.videoEffectValuesFromDocument = videoEffectValuesFromDocument; exports.videoExposureNotes = videoExposureNotes; exports.videoExposureStats = videoExposureStats; exports.videoFadeCurveGain = _chunkZQIWBJGHcjs.videoFadeCurveGain; exports.videoFfmpegUnsupportedEffects = _chunkZQIWBJGHcjs.videoFfmpegUnsupportedEffects; exports.videoFfmpegUnsupportedFeatures = _chunkZQIWBJGHcjs.videoFfmpegUnsupportedFeatures; exports.videoFrameAt = _chunkZQIWBJGHcjs.videoFrameAt; exports.videoFrameCacheKey = videoFrameCacheKey; exports.videoFrameDuration = _chunkZQIWBJGHcjs.videoFrameDuration; exports.videoFrameLeafLayers = _chunkZQIWBJGHcjs.videoFrameLeafLayers; exports.videoFrameRequestsAt = videoFrameRequestsAt; exports.videoFrameToSvg = _chunkZQIWBJGHcjs.videoFrameToSvg; exports.videoFrames = _chunkZQIWBJGHcjs.videoFrames; exports.videoFreezeFrameEdit = _chunkZQIWBJGHcjs.videoFreezeFrameEdit; exports.videoGradeCssFilter = _chunkZQIWBJGHcjs.videoGradeCssFilter; exports.videoGradeFfmpegFilters = _chunkZQIWBJGHcjs.videoGradeFfmpegFilters; exports.videoGradeGainsFilterId = _chunkZQIWBJGHcjs.videoGradeGainsFilterId; exports.videoGradeLook = _chunkZQIWBJGHcjs.videoGradeLook; exports.videoGradePreset = _chunkZQIWBJGHcjs.videoGradePreset; exports.videoGradeStepMatrix = _chunkZQIWBJGHcjs.videoGradeStepMatrix; exports.videoGradeStepSvgValues = _chunkZQIWBJGHcjs.videoGradeStepSvgValues; exports.videoGradeSteps = _chunkZQIWBJGHcjs.videoGradeSteps; exports.videoGradeSvgDefs = _chunkZQIWBJGHcjs.videoGradeSvgDefs; exports.videoGradeSvgFilter = _chunkZQIWBJGHcjs.videoGradeSvgFilter; exports.videoHistogram = videoHistogram; exports.videoHistogramImage = videoHistogramImage; exports.videoHourFrames = _chunkZQIWBJGHcjs.videoHourFrames; exports.videoIrisRadius = _chunkZQIWBJGHcjs.videoIrisRadius; exports.videoIssueKey = videoIssueKey; exports.videoKeyTimesProblem = _chunkZQIWBJGHcjs.videoKeyTimesProblem; exports.videoKeyframeBreakpoints = _chunkZQIWBJGHcjs.videoKeyframeBreakpoints; exports.videoKeyframeFfmpegExpr = _chunkZQIWBJGHcjs.videoKeyframeFfmpegExpr; exports.videoKeyframeRows = videoKeyframeRows; exports.videoKeyframeToggleEdit = videoKeyframeToggleEdit; exports.videoKeyframeValueEdit = videoKeyframeValueEdit; exports.videoKeysOf = _chunkZQIWBJGHcjs.videoKeysOf; exports.videoLayerMask = _chunkZQIWBJGHcjs.videoLayerMask; exports.videoLayersUseEffects = _chunkZQIWBJGHcjs.videoLayersUseEffects; exports.videoLayersWithoutTransitionEffects = _chunkZQIWBJGHcjs.videoLayersWithoutTransitionEffects; exports.videoLoudnessEnergy = videoLoudnessEnergy; exports.videoLoudnessGain = videoLoudnessGain; exports.videoLoudnessOf = videoLoudnessOf; exports.videoLuma = videoLuma; exports.videoLumaWaveform = videoLumaWaveform; exports.videoLutEdits = videoLutEdits; exports.videoLutFromFunction = _chunkZQIWBJGHcjs.videoLutFromFunction; exports.videoLutSvgApproximation = _chunkZQIWBJGHcjs.videoLutSvgApproximation; exports.videoLutSvgPrimitives = _chunkZQIWBJGHcjs.videoLutSvgPrimitives; exports.videoLutToCube = _chunkZQIWBJGHcjs.videoLutToCube; exports.videoMaskContains = _chunkZQIWBJGHcjs.videoMaskContains; exports.videoMaskEdit = videoMaskEdit; exports.videoMaskPolygon = _chunkZQIWBJGHcjs.videoMaskPolygon; exports.videoMaskSvgPath = _chunkZQIWBJGHcjs.videoMaskSvgPath; exports.videoOverlap = _chunkZQIWBJGHcjs.videoOverlap; exports.videoPeakDb = videoPeakDb; exports.videoPreviewSrc = videoPreviewSrc; exports.videoProjectDuration = _chunkZQIWBJGHcjs.videoProjectDuration; exports.videoProjectEffects = _chunkZQIWBJGHcjs.videoProjectEffects; exports.videoProjectHasProxies = videoProjectHasProxies; exports.videoProjectSvg = _chunkZQIWBJGHcjs.videoProjectSvg; exports.videoProxyFfmpeg = videoProxyFfmpeg; exports.videoProxyName = videoProxyName; exports.videoProxyPlan = videoProxyPlan; exports.videoRemoveRangesEdits = videoRemoveRangesEdits; exports.videoRulerTicks = videoRulerTicks; exports.videoScopeImage = videoScopeImage; exports.videoSequenceChildren = _chunkZQIWBJGHcjs.videoSequenceChildren; exports.videoSequenceDuration = _chunkZQIWBJGHcjs.videoSequenceDuration; exports.videoSequenceMap = _chunkZQIWBJGHcjs.videoSequenceMap; exports.videoShellQuote = _chunkZQIWBJGHcjs.videoShellQuote; exports.videoSkinProtectionEdits = videoSkinProtectionEdits; exports.videoSkinToneWeight = _chunkZQIWBJGHcjs.videoSkinToneWeight; exports.videoSlowMotionRamp = _chunkZQIWBJGHcjs.videoSlowMotionRamp; exports.videoSnapPoints = _chunkZQIWBJGHcjs.videoSnapPoints; exports.videoSourceFrame = videoSourceFrame; exports.videoSourceFrameTime = videoSourceFrameTime; exports.videoSpeechRanges = videoSpeechRanges; exports.videoSpeedRampEdit = _chunkZQIWBJGHcjs.videoSpeedRampEdit; exports.videoSpeedRampKeys = _chunkZQIWBJGHcjs.videoSpeedRampKeys; exports.videoTextStyle = _chunkZQIWBJGHcjs.videoTextStyle; exports.videoTimeRef = videoTimeRef; exports.videoTimeRemapBreakpoints = _chunkZQIWBJGHcjs.videoTimeRemapBreakpoints; exports.videoTimeRemapSpan = _chunkZQIWBJGHcjs.videoTimeRemapSpan; exports.videoTimecodeFrames = _chunkZQIWBJGHcjs.videoTimecodeFrames; exports.videoTimelineTranscript = videoTimelineTranscript; exports.videoTitleFrame = _chunkZQIWBJGHcjs.videoTitleFrame; exports.videoTrackSyncLocked = _chunkZQIWBJGHcjs.videoTrackSyncLocked; exports.videoTranscriptEdit = videoTranscriptEdit; exports.videoTranscriptTrack = videoTranscriptTrack; exports.videoTransformAt = _chunkZQIWBJGHcjs.videoTransformAt; exports.videoTransformOfView = videoTransformOfView; exports.videoTransitionAudioCurve = _chunkZQIWBJGHcjs.videoTransitionAudioCurve; exports.videoTransitionEase = _chunkZQIWBJGHcjs.videoTransitionEase; exports.videoTransitionHasDirection = videoTransitionHasDirection; exports.videoValueAt = _chunkZQIWBJGHcjs.videoValueAt; exports.videoVectorscope = videoVectorscope; exports.videoVectorscopeAngle = videoVectorscopeAngle; exports.videoVectorscopeImage = videoVectorscopeImage; exports.videoVectorscopePoint = videoVectorscopePoint; exports.videoWaveformImage = videoWaveformImage; exports.videoWaveformPath = videoWaveformPath; exports.videoWipeRect = _chunkZQIWBJGHcjs.videoWipeRect; exports.videoWordAt = videoWordAt; exports.videoWordsRange = videoWordsRange; exports.withVideoPlayback = withVideoPlayback;
|