@maravilla-labs/platform 0.12.0 → 0.14.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/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  # @maravilla-labs/platform
2
2
 
3
+ ## 0.14.0
4
+
5
+ ### Minor Changes
6
+
7
+ - c92a9a3: `transforms.extractFrames` gains an optional `detach_audio` option: extract a video's audio track to a chosen storage key in the same job as the frame extraction, so a single call yields both the frame set and a detachable audio asset.
8
+
9
+ ## 0.13.0
10
+
11
+ ### Minor Changes
12
+
13
+ - 195fe65: Pre-extracted video frames for deterministic begin-frame renders.
14
+ - `@maravilla-labs/platform`: add `transforms.extractFrames(srcKey, { fps, ... })`
15
+ — decode any video to a sequence of still images at a fixed fps, returning a
16
+ `JobHandle` whose `output_key` holds a `FramesetManifest` (frames live under
17
+ `${prefix}/frame_NNNNNN.<ext>`). General capability; the frames renderer
18
+ consumes it to swap `<video>`→`<img>` per frame, and it's reusable for
19
+ thumbnails/scrubbing. Adds `ExtractFramesOpts` + `FramesetManifest` types.
20
+ - `@maravilla-labs/frames`: video timeline slots now carry an optional
21
+ `frameset` key (the `extractFrames` manifest) exposed on
22
+ `window.__mvFrames.videos[]`; the renderer sets `window.__mvFramesNoVideoSeek`
23
+ on the begin-frame path so the helper leaves `<video>` inert (live-seeking it
24
+ crashes Chromium — crbug.com/40656275) while the worker swaps in pre-extracted
25
+ frames. Editor scrubbing + the screenshot/dev path keep live video seeking.
26
+
3
27
  ## 0.12.0
4
28
 
5
29
  ### Minor Changes
package/dist/config.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { T as TransformsConfig } from './transforms-DwCPOVTn.js';
2
- export { a as TransformsPatternSpec } from './transforms-DwCPOVTn.js';
1
+ import { T as TransformsConfig } from './transforms-BHWez32E.js';
2
+ export { a as TransformsPatternSpec } from './transforms-BHWez32E.js';
3
3
 
4
4
  /**
5
5
  * @fileoverview Typed schema for `maravilla.config.{ts,yaml,json}` files.
package/dist/index.d.ts CHANGED
@@ -3,7 +3,7 @@ export { ActAsContext, AddCircleMemberOptions, AddRelationOptions, ApiKeyInfo, A
3
3
  export { b as RenClient, a as RenClientOptions, R as RenEvent, g as getOrCreateClientId, r as renFetch, c as storageDelete, s as storageUpload } from './ren-DetHRhCL.js';
4
4
  import { LocalParticipant } from 'livekit-client';
5
5
  export { RegisterPushOptions, RegisterPushResult, offsetBefore, registerPush, unregisterPush } from './push.js';
6
- export { f as DocConvertOpts, D as DocFormat, k as DocInsertQrCodeOpts, j as DocReplaceImagesOpts, m as DocTemplateMergeOpts, e as DocThumbnailOpts, h as DocToHtmlOpts, g as DocToMarkdownOpts, d as DocToPdfOpts, I as ImageFormat, i as ImageRef, o as JobHandle, J as JobStatus, p as JobStatusResponse, M as MediaInfo, O as OcrOpts, Q as QrCodeSpec, l as QrPayload, R as ResizeOpts, c as ThumbnailOpts, b as TranscodeOpts, n as TransformSpec, T as TransformsConfig, a as TransformsPatternSpec, q as TransformsService, V as VideoFormat, r as keyFor, t as transforms } from './transforms-DwCPOVTn.js';
6
+ export { D as DetachAudioOpts, h as DocConvertOpts, e as DocFormat, m as DocInsertQrCodeOpts, l as DocReplaceImagesOpts, o as DocTemplateMergeOpts, g as DocThumbnailOpts, j as DocToHtmlOpts, i as DocToMarkdownOpts, f as DocToPdfOpts, d as ExtractAudioOpts, E as ExtractFramesOpts, F as FramesetManifest, I as ImageFormat, k as ImageRef, q as JobHandle, J as JobStatus, r as JobStatusResponse, M as MediaInfo, O as OcrOpts, Q as QrCodeSpec, n as QrPayload, R as ResizeOpts, c as ThumbnailOpts, b as TranscodeOpts, p as TransformSpec, T as TransformsConfig, a as TransformsPatternSpec, s as TransformsService, V as VideoFormat, t as keyFor, u as transforms } from './transforms-BHWez32E.js';
7
7
 
8
8
  /**
9
9
  * Media service for video/audio room management.
package/dist/index.js CHANGED
@@ -1097,6 +1097,12 @@ var RemoteTransformsService = class {
1097
1097
  transcode(srcKey, opts) {
1098
1098
  return this.post("/transcode", { srcKey, opts });
1099
1099
  }
1100
+ extractFrames(srcKey, opts) {
1101
+ return this.post("/extract_frames", { srcKey, opts });
1102
+ }
1103
+ extractAudio(srcKey, opts) {
1104
+ return this.post("/extract_audio", { srcKey, opts: opts ?? {} });
1105
+ }
1100
1106
  thumbnail(srcKey, opts) {
1101
1107
  return this.post("/thumbnail", { srcKey, opts });
1102
1108
  }
@@ -2010,6 +2016,10 @@ function outputExtension(spec) {
2010
2016
  case "transcode":
2011
2017
  return spec.format;
2012
2018
  // 'mp4' | 'webm'
2019
+ case "extract_frames":
2020
+ return "json";
2021
+ case "extract_audio":
2022
+ return "m4a";
2013
2023
  case "thumbnail":
2014
2024
  case "resize": {
2015
2025
  const fmt = spec.format ?? "jpg";