@pixerate/editor 0.124.0 → 0.124.1
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-IWSMDQE5.cjs → chunk-4QQZV5Y5.cjs} +18 -29
- package/dist/chunk-4QQZV5Y5.cjs.map +1 -0
- package/dist/{chunk-IOXKXQNW.cjs → chunk-CN4PJHUG.cjs} +59 -3
- package/dist/chunk-CN4PJHUG.cjs.map +1 -0
- package/dist/{chunk-TK53AB4Q.cjs → chunk-FHYDQOPC.cjs} +3 -3
- package/dist/{chunk-TK53AB4Q.cjs.map → chunk-FHYDQOPC.cjs.map} +1 -1
- package/dist/{chunk-VFAKN46Z.js → chunk-JRXJTPES.js} +2 -2
- package/dist/{chunk-YVVSTD3B.js → chunk-ORHMVUR6.js} +8 -19
- package/dist/chunk-ORHMVUR6.js.map +1 -0
- package/dist/{chunk-TGKT5QAB.js → chunk-QEG3GRN2.js} +58 -2
- package/dist/chunk-QEG3GRN2.js.map +1 -0
- package/dist/effects/index.cjs +51 -34
- package/dist/effects/index.cjs.map +1 -1
- package/dist/effects/index.d.cts +35 -3
- package/dist/effects/index.d.ts +35 -3
- package/dist/effects/index.js +20 -3
- package/dist/effects/index.js.map +1 -1
- package/dist/{export-8RnlngAv.d.ts → export-BGtXgMJ3.d.ts} +3 -1
- package/dist/{export-DM3h7QEI.d.ts → export-BdfY_lH0.d.ts} +4 -2
- package/dist/{export-BzSRXyH6.d.cts → export-CbpjwxaI.d.cts} +4 -2
- package/dist/{export-TqXMOlDt.d.cts → export-WmYoWmLM.d.cts} +3 -1
- package/dist/image-editor/index.cjs +110 -121
- package/dist/image-editor/index.cjs.map +1 -1
- package/dist/image-editor/index.d.cts +2 -2
- package/dist/image-editor/index.d.ts +2 -2
- package/dist/image-editor/index.js +7 -18
- package/dist/image-editor/index.js.map +1 -1
- package/dist/paint-editor/index.cjs +3 -3
- package/dist/paint-editor/index.d.cts +2 -2
- package/dist/paint-editor/index.d.ts +2 -2
- package/dist/paint-editor/index.js +2 -2
- package/dist/video-editor/index.cjs +270 -270
- package/dist/video-editor/index.d.cts +2 -2
- package/dist/video-editor/index.d.ts +2 -2
- package/dist/video-editor/index.js +3 -3
- package/package.json +1 -1
- package/dist/chunk-IOXKXQNW.cjs.map +0 -1
- package/dist/chunk-IWSMDQE5.cjs.map +0 -1
- package/dist/chunk-TGKT5QAB.js.map +0 -1
- package/dist/chunk-YVVSTD3B.js.map +0 -1
- /package/dist/{chunk-VFAKN46Z.js.map → chunk-JRXJTPES.js.map} +0 -0
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
|
|
8
|
+
var _chunkCN4PJHUGcjs = require('./chunk-CN4PJHUG.cjs');
|
|
8
9
|
|
|
9
10
|
|
|
10
11
|
var _chunkRIWPYSKUcjs = require('./chunk-RIWPYSKU.cjs');
|
|
@@ -1171,12 +1172,12 @@ function videoEffectLayerKey(layer, width, height) {
|
|
|
1171
1172
|
}
|
|
1172
1173
|
function mixEffectPixels(a, b, k) {
|
|
1173
1174
|
if (k >= 1) return b;
|
|
1174
|
-
const out =
|
|
1175
|
+
const out = _chunkCN4PJHUGcjs.createEffectPixels.call(void 0, a.width, a.height);
|
|
1175
1176
|
for (let i = 0; i < out.data.length; i++) out.data[i] = a.data[i] + (b.data[i] - a.data[i]) * k;
|
|
1176
1177
|
return out;
|
|
1177
1178
|
}
|
|
1178
1179
|
function overEffectPixels(base, top, opacity = 1) {
|
|
1179
|
-
const out =
|
|
1180
|
+
const out = _chunkCN4PJHUGcjs.createEffectPixels.call(void 0, base.width, base.height);
|
|
1180
1181
|
const o = out.data;
|
|
1181
1182
|
const b = base.data;
|
|
1182
1183
|
const t = top.data;
|
|
@@ -1213,17 +1214,18 @@ var VideoEffectsEngine = (_class2 = class {
|
|
|
1213
1214
|
__init5() {this.cache = /* @__PURE__ */ new Map()}
|
|
1214
1215
|
__init6() {this.pending = /* @__PURE__ */ new Map()}
|
|
1215
1216
|
__init7() {this.failures = /* @__PURE__ */ new Map()}
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1217
|
+
|
|
1218
|
+
__init8() {this.descriptions = /* @__PURE__ */ new Map()}
|
|
1219
|
+
__init9() {this.listeners = /* @__PURE__ */ new Set()}
|
|
1219
1220
|
|
|
1220
1221
|
|
|
1221
|
-
|
|
1222
|
+
__init10() {this.generation = 0}
|
|
1222
1223
|
|
|
1223
|
-
constructor(options = {}) {;_class2.prototype.__init5.call(this);_class2.prototype.__init6.call(this);_class2.prototype.__init7.call(this);_class2.prototype.__init8.call(this);_class2.prototype.__init9.call(this);_class2.prototype.__init10.call(this);
|
|
1224
|
-
this.slot = _nullishCoalesce(options.slot, () => ( new (0,
|
|
1224
|
+
constructor(options = {}) {;_class2.prototype.__init5.call(this);_class2.prototype.__init6.call(this);_class2.prototype.__init7.call(this);_class2.prototype.__init8.call(this);_class2.prototype.__init9.call(this);_class2.prototype.__init10.call(this);
|
|
1225
|
+
this.slot = _nullishCoalesce(options.slot, () => ( new (0, _chunkCN4PJHUGcjs.EffectsSlot)()));
|
|
1225
1226
|
this.maxEntries = _nullishCoalesce(options.maxEntries, () => ( 120));
|
|
1226
1227
|
this.toImage = _nullishCoalesce(options.toImage, () => ( defaultToImage));
|
|
1228
|
+
this.pool = new (0, _chunkCN4PJHUGcjs.EffectRendererPool)({ maxRenderers: options.maxRenderers });
|
|
1227
1229
|
this.detach = this.slot.subscribe(() => {
|
|
1228
1230
|
this.reset();
|
|
1229
1231
|
this.notify();
|
|
@@ -1324,20 +1326,9 @@ var VideoEffectsEngine = (_class2 = class {
|
|
|
1324
1326
|
}
|
|
1325
1327
|
return d;
|
|
1326
1328
|
}
|
|
1327
|
-
/** Renders
|
|
1329
|
+
/** Renders through the pool: a few live renderers, one render at a time on each. */
|
|
1328
1330
|
render(provider, id, width, height, request) {
|
|
1329
|
-
|
|
1330
|
-
let r = this.renderers.get(k);
|
|
1331
|
-
if (!r) {
|
|
1332
|
-
const renderer = Promise.resolve().then(() => provider.createRenderer(id, { width, height }));
|
|
1333
|
-
renderer.catch(() => this.renderers.delete(k));
|
|
1334
|
-
r = { renderer, queue: Promise.resolve() };
|
|
1335
|
-
this.renderers.set(k, r);
|
|
1336
|
-
}
|
|
1337
|
-
const entry = r;
|
|
1338
|
-
const next = entry.queue.then(() => entry.renderer).then((renderer) => renderer.render(request));
|
|
1339
|
-
entry.queue = next.catch(() => void 0);
|
|
1340
|
-
return next;
|
|
1331
|
+
return this.pool.render(provider, id, { width, height }, request);
|
|
1341
1332
|
}
|
|
1342
1333
|
/** Forgets every picture and failure and disposes the renderers (e.g. after the provider changes). */
|
|
1343
1334
|
reset() {
|
|
@@ -1346,9 +1337,7 @@ var VideoEffectsEngine = (_class2 = class {
|
|
|
1346
1337
|
this.pending.clear();
|
|
1347
1338
|
this.failures.clear();
|
|
1348
1339
|
this.descriptions.clear();
|
|
1349
|
-
|
|
1350
|
-
});
|
|
1351
|
-
this.renderers.clear();
|
|
1340
|
+
this.pool.clear();
|
|
1352
1341
|
}
|
|
1353
1342
|
subscribe(listener) {
|
|
1354
1343
|
this.listeners.add(listener);
|
|
@@ -1375,7 +1364,7 @@ function checkVideoEffectPlace(d, place) {
|
|
|
1375
1364
|
if (d.kind === "motion" || !d.uses.some((u) => allowed.includes(u))) {
|
|
1376
1365
|
const where = place === "clip" ? "on a clip" : place === "transition" ? "as a transition" : "as an effect clip";
|
|
1377
1366
|
const instead = d.uses.includes("transition") ? "set_video_effect_transition" : d.uses.some((u) => VIDEO_EFFECT_PLACES.generator.includes(u)) ? "add_video_effect_clip" : d.uses.some((u) => u === "filter") ? "apply_effect" : null;
|
|
1378
|
-
throw new (0,
|
|
1367
|
+
throw new (0, _chunkCN4PJHUGcjs.EffectUnsupportedError)(
|
|
1379
1368
|
`"${d.id}" (${d.name}) is a ${d.uses.join(" / ")} effect and cannot be used ${where}, which takes ${allowed.join(" or ")} effects${instead ? `; use ${instead} instead` : ""}. search_effects with use "${allowed[0]}" lists ones that fit.`,
|
|
1380
1369
|
d.id
|
|
1381
1370
|
);
|
|
@@ -1396,12 +1385,12 @@ function checkVideoEffectValues(d, values, options = {}) {
|
|
|
1396
1385
|
else if (type !== "number" && type !== "integer") errors.push({ path: `/${k}`, message: "only number controls can be keyframed." });
|
|
1397
1386
|
else for (const [i, key] of v.keys.entries()) for (const e of _chunkRIWPYSKUcjs.validateJsonSchema.call(void 0, key.v, schema)) errors.push({ path: `/${k}/keys/${i}/v`, message: e.message });
|
|
1398
1387
|
}
|
|
1399
|
-
for (const e of
|
|
1388
|
+
for (const e of _chunkCN4PJHUGcjs.effectValueErrors.call(void 0, d, plain)) {
|
|
1400
1389
|
const name = e.path.split("/")[1];
|
|
1401
1390
|
const about = name && _optionalChain([d, 'access', _46 => _46.controls, 'access', _47 => _47.properties, 'access', _48 => _48[name], 'optionalAccess', _49 => _49.description]);
|
|
1402
1391
|
errors.push(about ? { path: e.path, message: `${e.message} (${about})` } : e);
|
|
1403
1392
|
}
|
|
1404
|
-
if (errors.length) throw new (0,
|
|
1393
|
+
if (errors.length) throw new (0, _chunkCN4PJHUGcjs.EffectControlError)(d.id, errors);
|
|
1405
1394
|
return { ..._nullishCoalesce(options.base, () => ( d.defaults)), ..._nullishCoalesce(values, () => ( {})) };
|
|
1406
1395
|
}
|
|
1407
1396
|
|
|
@@ -2389,4 +2378,4 @@ function buildFfmpeg(project, options, measure) {
|
|
|
2389
2378
|
|
|
2390
2379
|
|
|
2391
2380
|
exports.VIDEO_FITS = VIDEO_FITS; exports.VIDEO_TRANSITION_TYPES = VIDEO_TRANSITION_TYPES; exports.VIDEO_WIPE_DIRECTIONS = VIDEO_WIPE_DIRECTIONS; exports.videoTransitionAudioCurve = videoTransitionAudioCurve; exports.VIDEO_BLEND_MODES = VIDEO_BLEND_MODES; exports.VIDEO_CLIP_ANIMATION_EFFECTS = VIDEO_CLIP_ANIMATION_EFFECTS; exports.VIDEO_FADE_CURVES = VIDEO_FADE_CURVES; exports.VIDEO_PLACEMENT_MODES = VIDEO_PLACEMENT_MODES; exports.VIDEO_CLIP_TYPES = VIDEO_CLIP_TYPES; exports.VIDEO_EASE_NAMES = VIDEO_EASE_NAMES; exports.VIDEO_KEYFRAME_PROPERTIES = VIDEO_KEYFRAME_PROPERTIES; exports.VIDEO_TRANSFORM_PROPERTIES = VIDEO_TRANSFORM_PROPERTIES; exports.VIDEO_KEYFRAME_LIMITS = VIDEO_KEYFRAME_LIMITS; exports.isVideoKeyframes = isVideoKeyframes; exports.videoEaseBezier = videoEaseBezier; exports.videoEaseProgress = videoEaseProgress; exports.videoValueAt = videoValueAt; exports.videoKeysOf = videoKeysOf; exports.retimeVideoAnimatable = retimeVideoAnimatable; exports.splitVideoAnimatable = splitVideoAnimatable; exports.sortVideoKeys = sortVideoKeys; exports.setVideoKey = setVideoKey; exports.removeVideoKey = removeVideoKey; exports.videoKeyframeBreakpoints = videoKeyframeBreakpoints; exports.videoKeyframeFfmpegExpr = videoKeyframeFfmpegExpr; exports.VIDEO_LUT_MAX_SIZE = VIDEO_LUT_MAX_SIZE; exports.parseVideoCubeLut = parseVideoCubeLut; exports.videoLutFromFunction = videoLutFromFunction; exports.videoLutToCube = videoLutToCube; exports.applyVideoLut = applyVideoLut; exports.applyVideoLutToPixels = applyVideoLutToPixels; exports.videoLutSvgApproximation = videoLutSvgApproximation; exports.VideoLutCache = VideoLutCache; exports.VIDEO_GRADE_CONTROLS = VIDEO_GRADE_CONTROLS; exports.VIDEO_GRADE_PRESETS = VIDEO_GRADE_PRESETS; exports.VIDEO_GRADE_PRESET_NAMES = VIDEO_GRADE_PRESET_NAMES; exports.normalizeVideoGradeLut = normalizeVideoGradeLut; exports.normalizeVideoGrade = normalizeVideoGrade; exports.videoGradePreset = videoGradePreset; exports.videoGradeLook = videoGradeLook; exports.videoGradeSteps = videoGradeSteps; exports.videoGradeStepMatrix = videoGradeStepMatrix; exports.applyVideoGrade = applyVideoGrade; exports.videoGradeStepSvgValues = videoGradeStepSvgValues; exports.videoLutSvgPrimitives = videoLutSvgPrimitives; exports.videoGradeSvgFilter = videoGradeSvgFilter; exports.videoGradeGainsFilterId = videoGradeGainsFilterId; exports.videoGradeCssFilter = videoGradeCssFilter; exports.videoGradeSvgDefs = videoGradeSvgDefs; exports.videoGradeFfmpegFilters = videoGradeFfmpegFilters; exports.videoClipSourceTime = videoClipSourceTime; exports.videoClipSpeedAt = videoClipSpeedAt; exports.videoSpeedRampKeys = videoSpeedRampKeys; exports.checkVideoTimeRemap = checkVideoTimeRemap; exports.videoTimeRemapSpan = videoTimeRemapSpan; exports.videoTimeRemapBreakpoints = videoTimeRemapBreakpoints; exports.videoSpeedRampEdit = videoSpeedRampEdit; exports.videoFreezeFrameEdit = videoFreezeFrameEdit; exports.videoSlowMotionRamp = videoSlowMotionRamp; exports.VIDEO_TIME_EPSILON = VIDEO_TIME_EPSILON; exports.videoClipEnd = videoClipEnd; exports.videoTrackSyncLocked = videoTrackSyncLocked; exports.videoClipSpeed = videoClipSpeed; exports.videoClipSourceRange = videoClipSourceRange; exports.videoFrameDuration = videoFrameDuration; exports.snapToVideoFrame = snapToVideoFrame; exports.videoFrames = videoFrames; exports.isVideoDropFrameRate = isVideoDropFrameRate; exports.videoTimecodeFrames = videoTimecodeFrames; exports.formatVideoTimecode = formatVideoTimecode; exports.formatVideoTimecodeFrames = formatVideoTimecodeFrames; exports.videoHourFrames = videoHourFrames; exports.formatVideoSeconds = formatVideoSeconds; exports.videoAssetHasSound = videoAssetHasSound; exports.videoAssetMap = videoAssetMap; exports.videoSequenceMap = videoSequenceMap; exports.videoSequenceDuration = videoSequenceDuration; exports.videoSequenceChildren = videoSequenceChildren; exports.findVideoSequenceCycle = findVideoSequenceCycle; exports.allVideoTracks = allVideoTracks; exports.sortedVideoClips = sortedVideoClips; exports.findVideoClip = findVideoClip; exports.allVideoClipIds = allVideoClipIds; exports.findVideoSequenceClip = findVideoSequenceClip; exports.videoProjectDuration = videoProjectDuration; exports.videoClipBefore = videoClipBefore; exports.videoClipAfter = videoClipAfter; exports.videoClipHandles = videoClipHandles; exports.videoClipOverhang = videoClipOverhang; exports.videoSnapPoints = videoSnapPoints; exports.snapVideoTime = snapVideoTime; exports.findVideoGaps = findVideoGaps; exports.videoOverlap = videoOverlap; exports.nextFreeVideoSlot = nextFreeVideoSlot; exports.videoClipsAt = videoClipsAt; exports.VIDEO_CLIP_ANIMATION_DURATION = VIDEO_CLIP_ANIMATION_DURATION; exports.videoClipAnimationProperties = videoClipAnimationProperties; exports.videoClipAnimationSpans = videoClipAnimationSpans; exports.videoClipAnimated = videoClipAnimated; exports.videoEffectValuesAt = videoEffectValuesAt; exports.videoTransformAt = videoTransformAt; exports.placeVideoRect = placeVideoRect; exports.videoTextStyle = videoTextStyle; exports.videoTitleFrame = videoTitleFrame; exports.videoTransitionEase = videoTransitionEase; exports.videoFadeCurveGain = videoFadeCurveGain; exports.videoClipSoundGain = videoClipSoundGain; exports.videoFrameAt = videoFrameAt; exports.videoLayersWithoutTransitionEffects = videoLayersWithoutTransitionEffects; exports.videoFrameLeafLayers = videoFrameLeafLayers; exports.videoProjectEffects = videoProjectEffects; exports.videoClipEffectUses = videoClipEffectUses; exports.videoLayersUseEffects = videoLayersUseEffects; exports.videoEffectFrameTime = videoEffectFrameTime; exports.videoEffectLayerKey = videoEffectLayerKey; exports.mixEffectPixels = mixEffectPixels; exports.overEffectPixels = overEffectPixels; exports.VideoEffectsEngine = VideoEffectsEngine; exports.VIDEO_EFFECT_PLACES = VIDEO_EFFECT_PLACES; exports.checkVideoEffectPlace = checkVideoEffectPlace; exports.checkVideoEffectValues = checkVideoEffectValues; exports.videoIrisRadius = videoIrisRadius; exports.videoWipeRect = videoWipeRect; exports.videoFrameToSvg = videoFrameToSvg; exports.videoProjectSvg = videoProjectSvg; exports.videoContactSheetSvg = videoContactSheetSvg; exports.drawVideoFrame = drawVideoFrame; exports.renderVideoFrameExact = renderVideoFrameExact; exports.toVideoEdl = toVideoEdl; exports.videoFfmpegUnsupportedEffects = videoFfmpegUnsupportedEffects; exports.parseVideoLoudnessMeasurement = parseVideoLoudnessMeasurement; exports.ffmpegFilterValue = ffmpegFilterValue; exports.videoShellQuote = videoShellQuote; exports.toVideoFfmpeg = toVideoFfmpeg; exports.toVideoLoudnessMeasure = toVideoLoudnessMeasure;
|
|
2392
|
-
//# sourceMappingURL=chunk-
|
|
2381
|
+
//# sourceMappingURL=chunk-4QQZV5Y5.cjs.map
|