@codingfactory/mediables-vue 2.7.1 → 2.7.2
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/{PixiFrameExporter-BcywK0MP.js → PixiFrameExporter-C5RSaXvT.js} +60 -59
- package/dist/{PixiFrameExporter-BcywK0MP.js.map → PixiFrameExporter-C5RSaXvT.js.map} +1 -1
- package/dist/PixiFrameExporter-n220y4aZ.cjs +2 -0
- package/dist/{PixiFrameExporter-CqKXaoCX.cjs.map → PixiFrameExporter-n220y4aZ.cjs.map} +1 -1
- package/dist/{index-DpkdpuMs.js → index-B_7DfcKr.js} +9185 -9173
- package/dist/index-B_7DfcKr.js.map +1 -0
- package/dist/index-Dx7DOxwK.cjs +342 -0
- package/dist/{index-DpkdpuMs.js.map → index-Dx7DOxwK.cjs.map} +1 -1
- package/dist/mediables-vue.cjs +1 -1
- package/dist/mediables-vue.mjs +1 -1
- package/dist/render-page/assets/{index-y90zwXpc.js → index-aDRQNAjC.js} +32 -5
- package/dist/render-page/index.html +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/dist/PixiFrameExporter-CqKXaoCX.cjs +0 -2
- package/dist/index-DNo3Kr1t.cjs +0 -342
- package/dist/index-DNo3Kr1t.cjs.map +0 -1
package/dist/mediables-vue.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-Dx7DOxwK.cjs"),i=require("./editor-BTwIhrcA.cjs");exports.AlbumBrowser=e.AlbumBrowser;exports.AlbumManager=e.AlbumManager;exports.AlbumMediaGrid=e.AlbumMediaGrid;exports.AlbumTree=e.AlbumTree;exports.ExistingMediaSelector=e.ExistingMediaSelector;exports.ImageEditor=e.ImageEditor;exports.ImageEditorModal=e.ImageEditorModal;exports.LiveStreamManager=e.LiveStreamManager;exports.ManagedMediaGallery=e.ManagedMediaGallery;exports.MediaAlbumInlineCreate=e.MediaAlbumInlineCreate;exports.MediaAlbumUnavailableState=e.MediaAlbumUnavailableState;exports.MediaAttachment=e.MediaAttachment;exports.MediaAttachmentMetadataFields=e.MediaAttachmentMetadataFields;exports.MediaAttachmentProvider=e._sfc_main$1;exports.MediaCollection=e.MediaCollection;exports.MediaCollectionDropzone=e.MediaCollectionDropzone;exports.MediaCollectionItem=e.MediaCollectionItem;exports.MediaCollectionProvider=e._sfc_main;exports.MediaHiddenFields=e._sfc_main$2;exports.MediaLibraryPicker=e.MediaLibraryPicker;exports.MediaLibraryPickerModal=e.MediaLibraryPickerModal;exports.MediaManagementView=e.MediaManagementView;exports.MediaPreviewSheet=e.MediaPreviewSheet;exports.MediaSelectionTray=e.MediaSelectionTray;exports.MediaSourceSheet=e.MediaSourceSheet;exports.MediaThumbnailCell=e.MediaThumbnailCell;exports.MediaUploadSheet=e.MediaUploadSheet;exports.MediaWorkspace=e.MediaWorkspace;exports.ModelMediaManager=e.ModelMediaManager;exports.VideoEditor=e.VideoEditor;exports.VideoEditorDialog=e.VideoEditorDialog;exports.VideoEditorSimple=e.VideoEditorSimple;exports.VideoExportPanel=e.VideoExportPanel;exports.VideoJobClient=e.VideoJobClient;exports.VideoPlayer=e.VideoPlayer;exports.VideoTimeline=e.VideoTimeline;exports.VideoToolsPanel=e.VideoToolsPanel;exports.VideoUploader=e.VideoUploader;exports.VirtualMediaGrid=e.VirtualMediaGrid;exports.applyTemporaryMediaStoreConfig=e.applyTemporaryMediaStoreConfig;exports.configureMediaStore=e.configureMediaStore;exports.createAdapter=e.createAdapter;exports.createEmptyEditorState=e.createEmptyEditorState;exports.createImageEditor=e.createImageEditor;exports.createMediablesAdapter=e.createMediablesAdapter;exports.createSpatieAdapter=e.createSpatieAdapter;exports.deserializeEditorState=e.deserializeEditorState;exports.formatFileSize=e.formatFileSize;exports.fromMediaArray=e.fromMediaArray;exports.getFileExtension=e.getFileExtension;exports.getImageDimensions=e.getImageDimensions;exports.getMediablesAdapter=e.getMediablesAdapter;exports.getSpatieAdapter=e.getSpatieAdapter;exports.isImageFile=e.isImageFile;exports.normalizeEditorState=e.normalizeEditorState;exports.normalizeRecipeForServerRender=e.normalizeRecipeForServerRender;exports.recipeHasServerRenderableEdits=e.recipeHasServerRenderableEdits;exports.recipeHasUnsupportedServerEdits=e.recipeHasUnsupportedServerEdits;exports.resetMediablesAdapter=e.resetMediablesAdapter;exports.resetSpatieAdapter=e.resetSpatieAdapter;exports.restoreMediaStoreConfig=e.restoreMediaStoreConfig;exports.serializeEditorState=e.serializeEditorState;exports.snapshotMediaStoreConfig=e.snapshotMediaStoreConfig;exports.toFormValues=e.toFormValues;exports.useAdminMediaStore=e.useAdminMediaStore;exports.useAlbumDragDrop=e.useAlbumDragDrop;exports.useAlbumStore=e.useAlbumStore;exports.useAlbums=e.useAlbums;exports.useGlobalImageEditor=e.useGlobalImageEditor;exports.useImageEditorModal=e.useImageEditorModal;exports.useMediaAttachment=e.useMediaAttachment;exports.useMediaCollection=e.useMediaCollection;exports.useMediaDeletion=e.useMediaDeletion;exports.useMediaDragSort=e.useMediaDragSort;exports.useMediaLibraryPickerController=e.useMediaLibraryPickerController;exports.useMediaLibraryQuery=e.useMediaLibraryQuery;exports.useMediaLibrarySession=e.useMediaLibrarySession;exports.useMediaLibraryStateMachine=e.useMediaLibraryStateMachine;exports.useMediaLibraryTelemetry=e.useMediaLibraryTelemetry;exports.useMediaStore=e.useMediaStore;exports.useMediaTrash=e.useMediaTrash;exports.useMediaUploadQueue=e.useMediaUploadQueue;exports.useMediaValidation=e.useMediaValidation;exports.validateFile=e.validateFile;exports.VanillaImageEditor=i.VanillaImageEditor;exports.getAllCategories=i.getAllCategories;exports.getAllFilters=i.getAllFilters;exports.getFilter=i.getFilter;exports.getFiltersByCategory=i.getFiltersByCategory;exports.hasFilter=i.hasFilter;exports.initializeFilterRegistry=i.initializeFilterRegistry;exports.registerFilter=i.registerFilter;
|
|
2
2
|
//# sourceMappingURL=mediables-vue.cjs.map
|
package/dist/mediables-vue.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { w as i, x as s, y as r, v as t, E as d, I as o, d as l, L as M, f as n, H as m, N as u, a0 as g, a4 as p, a2 as S, Z as c, $ as b, _ as A, a1 as y, a3 as E, z as V, B as h, ad as C, F, J as v, G as I, D as f, K as P, e as L, g as T, h as z, V as D, i as k, l as x, o as U, n as G, j as R, k as w, m as H, C as B, a as Q, c as j, an as q, U as J, Q as W, ao as K, ar as N, T as O, ai as X, av as Y, aj as Z, al as _, ap as $, as as aa, ak as ea, R as ia, p as sa, q as ra, t as ta, aq as da, at as oa, r as la, S as Ma, s as na, au as ma, b as ua, X as ga, Y as pa, W as Sa, P as ca, O as ba, a6 as Aa, a5 as ya, ae as Ea, ag as Va, a9 as ha, a8 as Ca, aa as Fa, ac as va, ab as Ia, u as fa, af as Pa, a7 as La, ah as Ta, am as za } from "./index-
|
|
1
|
+
import { w as i, x as s, y as r, v as t, E as d, I as o, d as l, L as M, f as n, H as m, N as u, a0 as g, a4 as p, a2 as S, Z as c, $ as b, _ as A, a1 as y, a3 as E, z as V, B as h, ad as C, F, J as v, G as I, D as f, K as P, e as L, g as T, h as z, V as D, i as k, l as x, o as U, n as G, j as R, k as w, m as H, C as B, a as Q, c as j, an as q, U as J, Q as W, ao as K, ar as N, T as O, ai as X, av as Y, aj as Z, al as _, ap as $, as as aa, ak as ea, R as ia, p as sa, q as ra, t as ta, aq as da, at as oa, r as la, S as Ma, s as na, au as ma, b as ua, X as ga, Y as pa, W as Sa, P as ca, O as ba, a6 as Aa, a5 as ya, ae as Ea, ag as Va, a9 as ha, a8 as Ca, aa as Fa, ac as va, ab as Ia, u as fa, af as Pa, a7 as La, ah as Ta, am as za } from "./index-B_7DfcKr.js";
|
|
2
2
|
import { V as ka, c as xa, g as Ua, a as Ga, b as Ra, h as wa, i as Ha, r as Ba } from "./editor-CYj5y5bp.js";
|
|
3
3
|
export {
|
|
4
4
|
i as AlbumBrowser,
|
|
@@ -70936,6 +70936,10 @@ const MAX_SEEK_RETRY_ATTEMPTS = 6;
|
|
|
70936
70936
|
const MIN_SEEK_TIMEOUT_MS = 250;
|
|
70937
70937
|
const MAX_SEEK_NUDGE_SECONDS = 0.25;
|
|
70938
70938
|
const MIN_SEEK_EPSILON_SECONDS = 1e-3;
|
|
70939
|
+
const HAVE_CURRENT_DATA = 2;
|
|
70940
|
+
function shouldSkipRedundantSeek(video, targetTime) {
|
|
70941
|
+
return video.readyState >= HAVE_CURRENT_DATA && !video.seeking && Math.abs(video.currentTime - targetTime) < MIN_SEEK_EPSILON_SECONDS;
|
|
70942
|
+
}
|
|
70939
70943
|
function normalizeSeekTimeoutMs(value) {
|
|
70940
70944
|
if (!Number.isFinite(value) || value === void 0 || value < MIN_SEEK_TIMEOUT_MS) {
|
|
70941
70945
|
return DEFAULT_SEEK_TIMEOUT_MS;
|
|
@@ -71046,7 +71050,6 @@ function resetTime(video) {
|
|
|
71046
71050
|
} catch {
|
|
71047
71051
|
}
|
|
71048
71052
|
}
|
|
71049
|
-
const HAVE_CURRENT_DATA = 2;
|
|
71050
71053
|
const PENDING_SEEK_DRAIN_TIMEOUT_MS = 1e3;
|
|
71051
71054
|
function resolveFitMode(recipe) {
|
|
71052
71055
|
var _a;
|
|
@@ -71220,7 +71223,7 @@ function seekVideoOnce(video, timeSec, timeoutMs) {
|
|
|
71220
71223
|
`Video seek timed out at ${timeSec}s after ${timeoutMs}ms (readyState=${video.readyState}, seeking=${video.seeking}, currentTime=${video.currentTime.toFixed(4)}, duration=${video.duration}, networkState=${video.networkState}, paused=${video.paused}, ended=${video.ended})`
|
|
71221
71224
|
));
|
|
71222
71225
|
}, timeoutMs);
|
|
71223
|
-
if (
|
|
71226
|
+
if (shouldSkipRedundantSeek(video, timeSec)) {
|
|
71224
71227
|
ensureFrameDecoded(video, timeoutMs).then(() => finish()).catch((error) => {
|
|
71225
71228
|
const message = error instanceof Error ? error.message : String(error);
|
|
71226
71229
|
finish(new Error(`Frame decode failed at ${timeSec}s: ${message}`));
|
|
@@ -71363,6 +71366,9 @@ async function main() {
|
|
|
71363
71366
|
width,
|
|
71364
71367
|
height,
|
|
71365
71368
|
fps,
|
|
71369
|
+
sourceFrameRate,
|
|
71370
|
+
recipeFrameRate,
|
|
71371
|
+
frameRateSource,
|
|
71366
71372
|
bitrate = 5e6,
|
|
71367
71373
|
audioBitrate = 128e3
|
|
71368
71374
|
} = config;
|
|
@@ -71377,6 +71383,18 @@ async function main() {
|
|
|
71377
71383
|
const trimEnd = resolveTrimEnd(recipe, videoDuration);
|
|
71378
71384
|
const exportDuration = Math.max(0, trimEnd - trimStart);
|
|
71379
71385
|
const totalFrames = Math.max(1, Math.ceil(exportDuration * fps));
|
|
71386
|
+
const keyFrameIntervalFrames = Math.max(1, Math.round(fps * 2));
|
|
71387
|
+
console.log("[Render] Timing resolved", {
|
|
71388
|
+
fps,
|
|
71389
|
+
frameRateSource: frameRateSource ?? "unknown",
|
|
71390
|
+
sourceFrameRate: sourceFrameRate ?? null,
|
|
71391
|
+
recipeFrameRate: recipeFrameRate ?? null,
|
|
71392
|
+
trimStart,
|
|
71393
|
+
trimEnd,
|
|
71394
|
+
exportDuration,
|
|
71395
|
+
totalFrames,
|
|
71396
|
+
keyFrameIntervalFrames
|
|
71397
|
+
});
|
|
71380
71398
|
const hasAudioEncoder = typeof AudioEncoder !== "undefined";
|
|
71381
71399
|
console.log("[RenderAudio] AudioEncoder available:", hasAudioEncoder);
|
|
71382
71400
|
if (!hasAudioEncoder) {
|
|
@@ -71511,6 +71529,14 @@ async function main() {
|
|
|
71511
71529
|
}
|
|
71512
71530
|
});
|
|
71513
71531
|
encoder.configure(encoderConfig);
|
|
71532
|
+
touchRenderHeartbeat("priming-first-frame");
|
|
71533
|
+
await seekVideo(
|
|
71534
|
+
video,
|
|
71535
|
+
trimStart,
|
|
71536
|
+
config.seekTimeoutMs ?? 4e3,
|
|
71537
|
+
config.seekRetryAttempts ?? 3,
|
|
71538
|
+
fps
|
|
71539
|
+
);
|
|
71514
71540
|
for (let frame = 0; frame < totalFrames; frame++) {
|
|
71515
71541
|
const timeSec = trimStart + frame / fps;
|
|
71516
71542
|
await seekVideo(
|
|
@@ -71523,13 +71549,14 @@ async function main() {
|
|
|
71523
71549
|
await drawCurrentVideoFrameToCanvas(video, sourceCtx, sourceWidth, sourceHeight);
|
|
71524
71550
|
videoTexture.source.update();
|
|
71525
71551
|
app.render();
|
|
71526
|
-
const timestamp = Math.
|
|
71527
|
-
const
|
|
71552
|
+
const timestamp = Math.round(frame / fps * 1e6);
|
|
71553
|
+
const nextTimestamp = Math.round((frame + 1) / fps * 1e6);
|
|
71554
|
+
const frameDuration = Math.max(1, nextTimestamp - timestamp);
|
|
71528
71555
|
const videoFrame = new VideoFrame(
|
|
71529
71556
|
app.canvas,
|
|
71530
71557
|
{ timestamp, duration: frameDuration }
|
|
71531
71558
|
);
|
|
71532
|
-
const keyFrame = frame %
|
|
71559
|
+
const keyFrame = frame % keyFrameIntervalFrames === 0;
|
|
71533
71560
|
encoder.encode(videoFrame, { keyFrame });
|
|
71534
71561
|
videoFrame.close();
|
|
71535
71562
|
if (encoder.encodeQueueSize > 5) {
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
body { margin: 0; background: #000; overflow: hidden; }
|
|
10
10
|
#render-canvas { display: block; }
|
|
11
11
|
</style>
|
|
12
|
-
<script type="module" crossorigin src="/assets/index-
|
|
12
|
+
<script type="module" crossorigin src="/assets/index-aDRQNAjC.js"></script>
|
|
13
13
|
</head>
|
|
14
14
|
<body>
|
|
15
15
|
<video id="source-video" crossorigin="anonymous" preload="auto" muted playsinline></video>
|