@rendley/sdk 1.12.26 → 1.13.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.
@@ -1,4 +1,4 @@
1
- import { DemuxerPacket, FFFSMountOptions, FFFSPath, FFFSType, FFMessageFrameData, FFMessageLoadConfig, FFMessageRenderSettings, FileData, FSNode, IsFirst, LogEventCallback, OK, ProgressEventCallback, FFMessageMuxerData, FFMessageInitMuxerData, FFMessageAuthentificateData, FFMessageFetchTSChunksData, FFMessageTranscodeData, FFMessageFrame } from "./types";
1
+ import { DemuxerPacket, FFFSMountOptions, FFFSPath, FFFSType, FFMessageFrameData, FFMessageLoadConfig, FFMessageRenderSettings, FileData, FSNode, IsFirst, LogEventCallback, OK, ProgressEventCallback, FFMessageMuxerData, FFMessageInitMuxerData, FFMessageAuthentificateData, FFMessageFetchTSChunksData, FFMessageTranscodeData, FFMessageFrame, FFMessageChunkedMuxData } from "./types";
2
2
  import { MediaInfo } from '../../modules/ffmpeg/types/FFmpeg.types';
3
3
  import { HashAlgorithmEnum } from '../../types/hash.types';
4
4
  type FFMessageOptions = {
@@ -166,7 +166,8 @@ export declare class FFmpeg {
166
166
  addFrameDataToRenderer: ({ data }: FFMessageFrameData, { signal }?: FFMessageOptions) => Promise<number>;
167
167
  addFrameToRenderer: ({ frame }: FFMessageFrame, { signal }?: FFMessageOptions) => Promise<number>;
168
168
  cancelRenderer: ({ signal }?: FFMessageOptions) => Promise<OK>;
169
- finalizeRenderer: ({ signal }?: FFMessageOptions) => Promise<OK>;
169
+ finalizeRenderer: ({ signal }?: FFMessageOptions) => Promise<string[]>;
170
+ muxChunkedOutput: (data: FFMessageChunkedMuxData, { signal }?: FFMessageOptions) => Promise<string[]>;
170
171
  initDemuxer: (id: string, path: string, { signal }?: FFMessageOptions) => Promise<OK>;
171
172
  closeDemuxer: (id: string, { signal }?: FFMessageOptions) => Promise<OK>;
172
173
  seekDemuxer: (id: string, time: number, { signal }?: FFMessageOptions) => Promise<OK>;
@@ -22,6 +22,7 @@ export declare enum FFMessageType {
22
22
  RENDER_PREPARE = "RENDER_PREPARE",
23
23
  RENDER_CANCEL = "RENDER_CANCEL",
24
24
  RENDER_FINALIZE = "RENDER_FINALIZE",
25
+ MUX_CHUNKED_OUTPUT = "MUX_CHUNKED_OUTPUT",
25
26
  RENDER_ADD_FRAME_DATA = "RENDER_ADD_FRAME_DATA",
26
27
  RENDER_ADD_FRAME = "RENDER_ADD_FRAME",
27
28
  GET_INFO = "GET_INFO",
@@ -41,6 +41,15 @@ export interface FFMessageRenderSettings {
41
41
  deadline?: number;
42
42
  crf?: number;
43
43
  keyframeInterval?: number;
44
+ useChunkedOutput?: boolean;
45
+ chunkedOutputMaxSize?: number;
46
+ }
47
+ export interface FFMessageChunkedMuxData {
48
+ videoFiles: string[];
49
+ audioMix: string;
50
+ from: number;
51
+ to: number;
52
+ extension: string;
44
53
  }
45
54
  export interface FFMessageFrameData {
46
55
  data: Uint8Array;
@@ -73,6 +82,8 @@ export interface FFMessageInitMuxerData {
73
82
  codec: string;
74
83
  bitrate: number;
75
84
  codecRFC: string;
85
+ chunkedOutput: boolean;
86
+ maxChunkSize: number;
76
87
  }
77
88
  export interface FFMessageTranscodeData {
78
89
  inputPath: FFFSPath;
@@ -200,7 +211,7 @@ export interface FFMessageMountData {
200
211
  export interface FFMessageUnmountData {
201
212
  mountPoint: FFFSPath;
202
213
  }
203
- export type FFMessageData = FFMessageLoadConfig | FFMessageExecData | FFMessageWriteFileData | FFMessageReadFileData | FFMessageDeleteFileData | FFMessageRenameData | FFMessageCreateDirData | FFMessageListDirData | FFMessageDeleteDirData | FFMessageMountData | FFMessageUnmountData | FFMessageGetInfoData | FFMessageGetSubtitlesData | FFMessageFrameData | FFMessageFrame | FFMessageRenderSettings | FFMessageInitDemuxerData | FFMessageSeekDemuxerData | FFMessageIdDemuxerData | FFMessageMuxerData | FFMessageAuthentificateData | FFMessageFetchTSChunksData | FFMessageTranscodeData | FFMessageCreateArchiveData | FFMessageOpenArchiveData | FFMessageSaveArchiveData | FFMessageCloseArchiveData | FFMessageAddDataToArchiveData | FFMessageReadFileFromArchiveData | FFMessageExtractAllFromArchiveData | FFMessageAddFileToArchiveData | FFMessageAddFilesToArchiveData | FFMessageListFilesFromArchiveData | FFMessageExtractFileFromArchiveData | FFMessagePathExistsData;
214
+ export type FFMessageData = FFMessageLoadConfig | FFMessageExecData | FFMessageWriteFileData | FFMessageReadFileData | FFMessageDeleteFileData | FFMessageRenameData | FFMessageCreateDirData | FFMessageListDirData | FFMessageDeleteDirData | FFMessageMountData | FFMessageUnmountData | FFMessageGetInfoData | FFMessageGetSubtitlesData | FFMessageFrameData | FFMessageFrame | FFMessageRenderSettings | FFMessageChunkedMuxData | FFMessageInitDemuxerData | FFMessageSeekDemuxerData | FFMessageIdDemuxerData | FFMessageMuxerData | FFMessageAuthentificateData | FFMessageFetchTSChunksData | FFMessageTranscodeData | FFMessageCreateArchiveData | FFMessageOpenArchiveData | FFMessageSaveArchiveData | FFMessageCloseArchiveData | FFMessageAddDataToArchiveData | FFMessageReadFileFromArchiveData | FFMessageExtractAllFromArchiveData | FFMessageAddFileToArchiveData | FFMessageAddFilesToArchiveData | FFMessageListFilesFromArchiveData | FFMessageExtractFileFromArchiveData | FFMessagePathExistsData;
204
215
  export interface Message {
205
216
  type: string;
206
217
  data?: FFMessageData;
@@ -46,6 +46,7 @@ export declare class VideoClip extends Clip<PIXI.Sprite, ClipStyle<PIXI.Sprite>>
46
46
  private forceSoftwareDecoder;
47
47
  private ffmpeg;
48
48
  private callbacks;
49
+ private createUncachedVideoTexture;
49
50
  constructor(options: VideoClipOptions);
50
51
  init(layerId: string): Promise<void>;
51
52
  private updateRenderFlags;
@@ -156,6 +157,7 @@ export declare class VideoClip extends Clip<PIXI.Sprite, ClipStyle<PIXI.Sprite>>
156
157
  */
157
158
  extractMonoAudioData(startTime: number, endTime: number): Promise<Float32Array | null>;
158
159
  private applyFirefoxRotationFix;
160
+ private clearSpriteTextureCache;
159
161
  destroy(): void;
160
162
  clone(): VideoClip;
161
163
  serialize(): {
@@ -27,18 +27,30 @@ export declare const EffectDataSchema: z.ZodObject<{
27
27
  label: z.ZodOptional<z.ZodString>;
28
28
  description: z.ZodOptional<z.ZodString>;
29
29
  defaultValue: z.ZodType<Required<any>, z.ZodTypeDef, Required<any>>;
30
+ min: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
31
+ max: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
32
+ step: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
33
+ initOnly: z.ZodOptional<z.ZodBoolean>;
30
34
  }, "strip", z.ZodTypeAny, {
31
35
  type: import(".").PropertyDescriptionTypeEnum;
32
36
  name: string;
33
37
  defaultValue: Required<any>;
34
38
  label?: string | undefined;
35
39
  description?: string | undefined;
40
+ min?: number | number[] | undefined;
41
+ max?: number | number[] | undefined;
42
+ step?: number | number[] | undefined;
43
+ initOnly?: boolean | undefined;
36
44
  }, {
37
45
  type: import(".").PropertyDescriptionTypeEnum;
38
46
  name: string;
39
47
  defaultValue: Required<any>;
40
48
  label?: string | undefined;
41
49
  description?: string | undefined;
50
+ min?: number | number[] | undefined;
51
+ max?: number | number[] | undefined;
52
+ step?: number | number[] | undefined;
53
+ initOnly?: boolean | undefined;
42
54
  }>, "many">;
43
55
  inputTextures: z.ZodOptional<z.ZodArray<z.ZodObject<{
44
56
  name: z.ZodString;
@@ -71,6 +83,10 @@ export declare const EffectDataSchema: z.ZodObject<{
71
83
  defaultValue: Required<any>;
72
84
  label?: string | undefined;
73
85
  description?: string | undefined;
86
+ min?: number | number[] | undefined;
87
+ max?: number | number[] | undefined;
88
+ step?: number | number[] | undefined;
89
+ initOnly?: boolean | undefined;
74
90
  }[];
75
91
  id: string;
76
92
  provider: string;
@@ -94,6 +110,10 @@ export declare const EffectDataSchema: z.ZodObject<{
94
110
  defaultValue: Required<any>;
95
111
  label?: string | undefined;
96
112
  description?: string | undefined;
113
+ min?: number | number[] | undefined;
114
+ max?: number | number[] | undefined;
115
+ step?: number | number[] | undefined;
116
+ initOnly?: boolean | undefined;
97
117
  }[];
98
118
  id: string;
99
119
  provider: string;
@@ -147,6 +167,10 @@ export declare class EffectData {
147
167
  defaultValue: Required<any>;
148
168
  label?: string | undefined;
149
169
  description?: string | undefined;
170
+ min?: number | number[] | undefined;
171
+ max?: number | number[] | undefined;
172
+ step?: number | number[] | undefined;
173
+ initOnly?: boolean | undefined;
150
174
  }[];
151
175
  id: string;
152
176
  provider: string;
@@ -109,18 +109,30 @@ export declare const LibrarySchema: z.ZodObject<{
109
109
  label: z.ZodOptional<z.ZodString>;
110
110
  description: z.ZodOptional<z.ZodString>;
111
111
  defaultValue: z.ZodType<Required<any>, z.ZodTypeDef, Required<any>>;
112
+ min: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
113
+ max: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
114
+ step: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
115
+ initOnly: z.ZodOptional<z.ZodBoolean>;
112
116
  }, "strip", z.ZodTypeAny, {
113
117
  type: import('../../index').PropertyDescriptionTypeEnum;
114
118
  name: string;
115
119
  defaultValue: Required<any>;
116
120
  label?: string | undefined;
117
121
  description?: string | undefined;
122
+ min?: number | number[] | undefined;
123
+ max?: number | number[] | undefined;
124
+ step?: number | number[] | undefined;
125
+ initOnly?: boolean | undefined;
118
126
  }, {
119
127
  type: import('../../index').PropertyDescriptionTypeEnum;
120
128
  name: string;
121
129
  defaultValue: Required<any>;
122
130
  label?: string | undefined;
123
131
  description?: string | undefined;
132
+ min?: number | number[] | undefined;
133
+ max?: number | number[] | undefined;
134
+ step?: number | number[] | undefined;
135
+ initOnly?: boolean | undefined;
124
136
  }>, "many">;
125
137
  inputTextures: z.ZodOptional<z.ZodArray<z.ZodObject<{
126
138
  name: z.ZodString;
@@ -153,6 +165,10 @@ export declare const LibrarySchema: z.ZodObject<{
153
165
  defaultValue: Required<any>;
154
166
  label?: string | undefined;
155
167
  description?: string | undefined;
168
+ min?: number | number[] | undefined;
169
+ max?: number | number[] | undefined;
170
+ step?: number | number[] | undefined;
171
+ initOnly?: boolean | undefined;
156
172
  }[];
157
173
  id: string;
158
174
  provider: string;
@@ -176,6 +192,10 @@ export declare const LibrarySchema: z.ZodObject<{
176
192
  defaultValue: Required<any>;
177
193
  label?: string | undefined;
178
194
  description?: string | undefined;
195
+ min?: number | number[] | undefined;
196
+ max?: number | number[] | undefined;
197
+ step?: number | number[] | undefined;
198
+ initOnly?: boolean | undefined;
179
199
  }[];
180
200
  id: string;
181
201
  provider: string;
@@ -219,18 +239,30 @@ export declare const LibrarySchema: z.ZodObject<{
219
239
  label: z.ZodOptional<z.ZodString>;
220
240
  description: z.ZodOptional<z.ZodString>;
221
241
  defaultValue: z.ZodType<Required<any>, z.ZodTypeDef, Required<any>>;
242
+ min: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
243
+ max: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
244
+ step: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
245
+ initOnly: z.ZodOptional<z.ZodBoolean>;
222
246
  }, "strip", z.ZodTypeAny, {
223
247
  type: import('../../index').PropertyDescriptionTypeEnum;
224
248
  name: string;
225
249
  defaultValue: Required<any>;
226
250
  label?: string | undefined;
227
251
  description?: string | undefined;
252
+ min?: number | number[] | undefined;
253
+ max?: number | number[] | undefined;
254
+ step?: number | number[] | undefined;
255
+ initOnly?: boolean | undefined;
228
256
  }, {
229
257
  type: import('../../index').PropertyDescriptionTypeEnum;
230
258
  name: string;
231
259
  defaultValue: Required<any>;
232
260
  label?: string | undefined;
233
261
  description?: string | undefined;
262
+ min?: number | number[] | undefined;
263
+ max?: number | number[] | undefined;
264
+ step?: number | number[] | undefined;
265
+ initOnly?: boolean | undefined;
234
266
  }>, "many">;
235
267
  inputTextures: z.ZodOptional<z.ZodArray<z.ZodObject<{
236
268
  name: z.ZodString;
@@ -259,6 +291,10 @@ export declare const LibrarySchema: z.ZodObject<{
259
291
  defaultValue: Required<any>;
260
292
  label?: string | undefined;
261
293
  description?: string | undefined;
294
+ min?: number | number[] | undefined;
295
+ max?: number | number[] | undefined;
296
+ step?: number | number[] | undefined;
297
+ initOnly?: boolean | undefined;
262
298
  }[];
263
299
  id: string;
264
300
  provider: string;
@@ -278,6 +314,10 @@ export declare const LibrarySchema: z.ZodObject<{
278
314
  defaultValue: Required<any>;
279
315
  label?: string | undefined;
280
316
  description?: string | undefined;
317
+ min?: number | number[] | undefined;
318
+ max?: number | number[] | undefined;
319
+ step?: number | number[] | undefined;
320
+ initOnly?: boolean | undefined;
281
321
  }[];
282
322
  id: string;
283
323
  provider: string;
@@ -311,6 +351,10 @@ export declare const LibrarySchema: z.ZodObject<{
311
351
  defaultValue: Required<any>;
312
352
  label?: string | undefined;
313
353
  description?: string | undefined;
354
+ min?: number | number[] | undefined;
355
+ max?: number | number[] | undefined;
356
+ step?: number | number[] | undefined;
357
+ initOnly?: boolean | undefined;
314
358
  }[];
315
359
  id: string;
316
360
  provider: string;
@@ -337,6 +381,10 @@ export declare const LibrarySchema: z.ZodObject<{
337
381
  defaultValue: Required<any>;
338
382
  label?: string | undefined;
339
383
  description?: string | undefined;
384
+ min?: number | number[] | undefined;
385
+ max?: number | number[] | undefined;
386
+ step?: number | number[] | undefined;
387
+ initOnly?: boolean | undefined;
340
388
  }[];
341
389
  id: string;
342
390
  provider: string;
@@ -385,6 +433,10 @@ export declare const LibrarySchema: z.ZodObject<{
385
433
  defaultValue: Required<any>;
386
434
  label?: string | undefined;
387
435
  description?: string | undefined;
436
+ min?: number | number[] | undefined;
437
+ max?: number | number[] | undefined;
438
+ step?: number | number[] | undefined;
439
+ initOnly?: boolean | undefined;
388
440
  }[];
389
441
  id: string;
390
442
  provider: string;
@@ -411,6 +463,10 @@ export declare const LibrarySchema: z.ZodObject<{
411
463
  defaultValue: Required<any>;
412
464
  label?: string | undefined;
413
465
  description?: string | undefined;
466
+ min?: number | number[] | undefined;
467
+ max?: number | number[] | undefined;
468
+ step?: number | number[] | undefined;
469
+ initOnly?: boolean | undefined;
414
470
  }[];
415
471
  id: string;
416
472
  provider: string;
@@ -534,6 +590,10 @@ export declare class Library {
534
590
  defaultValue: Required<any>;
535
591
  label?: string | undefined;
536
592
  description?: string | undefined;
593
+ min?: number | number[] | undefined;
594
+ max?: number | number[] | undefined;
595
+ step?: number | number[] | undefined;
596
+ initOnly?: boolean | undefined;
537
597
  }[];
538
598
  id: string;
539
599
  provider: string;
@@ -560,6 +620,10 @@ export declare class Library {
560
620
  defaultValue: Required<any>;
561
621
  label?: string | undefined;
562
622
  description?: string | undefined;
623
+ min?: number | number[] | undefined;
624
+ max?: number | number[] | undefined;
625
+ step?: number | number[] | undefined;
626
+ initOnly?: boolean | undefined;
563
627
  }[];
564
628
  id: string;
565
629
  provider: string;
@@ -22,18 +22,30 @@ export declare const TransitionDataSchema: z.ZodObject<{
22
22
  label: z.ZodOptional<z.ZodString>;
23
23
  description: z.ZodOptional<z.ZodString>;
24
24
  defaultValue: z.ZodType<Required<any>, z.ZodTypeDef, Required<any>>;
25
+ min: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
26
+ max: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
27
+ step: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
28
+ initOnly: z.ZodOptional<z.ZodBoolean>;
25
29
  }, "strip", z.ZodTypeAny, {
26
30
  type: import(".").PropertyDescriptionTypeEnum;
27
31
  name: string;
28
32
  defaultValue: Required<any>;
29
33
  label?: string | undefined;
30
34
  description?: string | undefined;
35
+ min?: number | number[] | undefined;
36
+ max?: number | number[] | undefined;
37
+ step?: number | number[] | undefined;
38
+ initOnly?: boolean | undefined;
31
39
  }, {
32
40
  type: import(".").PropertyDescriptionTypeEnum;
33
41
  name: string;
34
42
  defaultValue: Required<any>;
35
43
  label?: string | undefined;
36
44
  description?: string | undefined;
45
+ min?: number | number[] | undefined;
46
+ max?: number | number[] | undefined;
47
+ step?: number | number[] | undefined;
48
+ initOnly?: boolean | undefined;
37
49
  }>, "many">;
38
50
  inputTextures: z.ZodOptional<z.ZodArray<z.ZodObject<{
39
51
  name: z.ZodString;
@@ -62,6 +74,10 @@ export declare const TransitionDataSchema: z.ZodObject<{
62
74
  defaultValue: Required<any>;
63
75
  label?: string | undefined;
64
76
  description?: string | undefined;
77
+ min?: number | number[] | undefined;
78
+ max?: number | number[] | undefined;
79
+ step?: number | number[] | undefined;
80
+ initOnly?: boolean | undefined;
65
81
  }[];
66
82
  id: string;
67
83
  provider: string;
@@ -81,6 +97,10 @@ export declare const TransitionDataSchema: z.ZodObject<{
81
97
  defaultValue: Required<any>;
82
98
  label?: string | undefined;
83
99
  description?: string | undefined;
100
+ min?: number | number[] | undefined;
101
+ max?: number | number[] | undefined;
102
+ step?: number | number[] | undefined;
103
+ initOnly?: boolean | undefined;
84
104
  }[];
85
105
  id: string;
86
106
  provider: string;
@@ -125,6 +145,10 @@ export declare class TransitionData {
125
145
  defaultValue: Required<any>;
126
146
  label?: string | undefined;
127
147
  description?: string | undefined;
148
+ min?: number | number[] | undefined;
149
+ max?: number | number[] | undefined;
150
+ step?: number | number[] | undefined;
151
+ initOnly?: boolean | undefined;
128
152
  }[];
129
153
  id: string;
130
154
  provider: string;
@@ -43,16 +43,28 @@ export declare const PropertyDescriptionSchema: z.ZodObject<{
43
43
  label: z.ZodOptional<z.ZodString>;
44
44
  description: z.ZodOptional<z.ZodString>;
45
45
  defaultValue: z.ZodType<Required<any>, z.ZodTypeDef, Required<any>>;
46
+ min: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
47
+ max: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
48
+ step: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>>;
49
+ initOnly: z.ZodOptional<z.ZodBoolean>;
46
50
  }, "strip", z.ZodTypeAny, {
47
51
  type: PropertyDescriptionTypeEnum;
48
52
  name: string;
49
53
  defaultValue: Required<any>;
50
54
  label?: string | undefined;
51
55
  description?: string | undefined;
56
+ min?: number | number[] | undefined;
57
+ max?: number | number[] | undefined;
58
+ step?: number | number[] | undefined;
59
+ initOnly?: boolean | undefined;
52
60
  }, {
53
61
  type: PropertyDescriptionTypeEnum;
54
62
  name: string;
55
63
  defaultValue: Required<any>;
56
64
  label?: string | undefined;
57
65
  description?: string | undefined;
66
+ min?: number | number[] | undefined;
67
+ max?: number | number[] | undefined;
68
+ step?: number | number[] | undefined;
69
+ initOnly?: boolean | undefined;
58
70
  }>;
@@ -0,0 +1,106 @@
1
+ export interface OutputChunkFileDesc {
2
+ filename: string;
3
+ path: string;
4
+ chunkId: number;
5
+ }
6
+ export declare class OutputChunkHelper {
7
+ chunks: OutputChunkFileDesc[];
8
+ mimeType: string;
9
+ extension: string;
10
+ constructor(chunks: OutputChunkFileDesc[], mimeType: string, extension: string);
11
+ /**
12
+ * Reads the raw bytes for a chunk by its numeric identifier.
13
+ *
14
+ * Attempts to read the chunk as Uint8Array from the chunkId. If the chunk exists and the read succeeds, the promise resolves to a
15
+ * Uint8Array containing the file bytes. If the chunk is missing or an error occurs
16
+ * during reading, the error is logged and the promise resolves to null.
17
+ *
18
+ * @param chunkId - The numeric identifier (index) of the chunk to read.
19
+ * @returns A promise that resolves to the chunk's bytes as a Uint8Array, or null if the
20
+ * chunk does not exist or could not be read.
21
+ */
22
+ readChunkAsBytes(chunkId: number): Promise<Uint8Array | null>;
23
+ /**
24
+ * Reads the specified chunk and returns it as a Blob.
25
+ *
26
+ * @remarks
27
+ * Not recommended because it will double the memory usage!
28
+ *
29
+ * If the chunk with the given id exists, this method attempts to read its bytes via readChunkBytes
30
+ * and constructs a Blob using the instance's mimeType. If the chunk does not exist or the bytes
31
+ * cannot be read, the promise resolves to null.
32
+ *
33
+ * @param chunkId - Identifier (index) of the chunk to read.
34
+ * @returns A Promise that resolves to a Blob containing the chunk's data, or null if the chunk is missing or unreadable.
35
+ * @throws Propagates any error thrown by readChunkBytes.
36
+ */
37
+ readChunkAsBlob(chunkId: number): Promise<Blob | null>;
38
+ /**
39
+ * Creates an object URL for the specified chunk if it exists.
40
+ *
41
+ * @remarks
42
+ * Not recommended because it will double the memory usage!
43
+ *
44
+ * Attempts to read the chunk as a Blob (via `readChunkAsBlob`) and, if a Blob
45
+ * is obtained, returns a URL created with `URL.createObjectURL(blob)`. If the
46
+ * chunk is not present or cannot be read, the promise resolves to `null`.
47
+ *
48
+ * Note: callers are responsible for revoking the returned URL with
49
+ * `URL.revokeObjectURL` when it is no longer needed to avoid memory leaks.
50
+ *
51
+ * @param chunkId - The identifier (index) of the chunk to read.
52
+ * @returns A `Promise` that resolves to an object URL `string` for the chunk
53
+ * Blob, or `null` if the chunk does not exist or could not be read.
54
+ */
55
+ readChunkAsUrl(chunkId: number): Promise<string | null>;
56
+ /**
57
+ * Reads and merges all chunks into a single Uint8Array.
58
+ *
59
+ * @returns {Promise<Uint8Array | null>} A promise that resolves to a merged Uint8Array containing all chunk data,
60
+ * or null if an error occurs during reading or merging.
61
+ *
62
+ * @throws Does not throw, but logs errors at ERROR level if chunk reading or merging fails.
63
+ *
64
+ * @example
65
+ * const mergedData = await helper.readMergedChunksAsBytes();
66
+ * if (mergedData) {
67
+ * // Process merged chunk data
68
+ * }
69
+ */
70
+ readMergedChunksAsBytes(): Promise<Uint8Array | null>;
71
+ /**
72
+ * Reads merged chunks and converts them to a Blob object.
73
+ * @remarks
74
+ * Not recommended because it will double the memory usage!
75
+ * @returns A promise that resolves to a Blob if chunks are successfully read and merged,
76
+ * or null if no bytes are available.
77
+ */
78
+ readMergedChunksAsBlob(): Promise<Blob | null>;
79
+ /**
80
+ * Reads merged chunks and returns them as a URL object reference.
81
+ * @remarks
82
+ * Not recommended because it will double the memory usage!
83
+ * Don't forget to revoke the URL after usage!
84
+ * @returns A promise that resolves to a blob URL string, or null if no blob data is available.
85
+ */
86
+ readMergedChunksAsUrl(): Promise<string | null>;
87
+ removeChunk(chunkId: number): Promise<void>;
88
+ removeAllChunks(): Promise<void>;
89
+ /**
90
+ * Checks whether the browser supports the File System Access save picker API.
91
+ *
92
+ * @returns `true` when `window.showSaveFilePicker` is available; otherwise `false`.
93
+ */
94
+ isSaveToFileSupported(): boolean;
95
+ /**
96
+ * Prompts the user for a save location and writes all output chunks to the selected file.
97
+ *
98
+ * Uses the File System Access API (`showSaveFilePicker`) and writes each chunk sequentially.
99
+ *
100
+ * @param fileName - Suggested filename shown in the save dialog.
101
+ * @param bufferSize - Reserved chunk step size in bytes. Defaults to `100 * 1024 * 1024` (100 MB).
102
+ * @param progressCallback - Optional callback function to receive progress updates. range [0 - 1]
103
+ * @returns A promise that resolves to `true` when all chunks are written successfully, otherwise `false`.
104
+ */
105
+ browseAndSaveToFile(fileName: string, progressCallback?: ((progress: number) => void) | null, bufferSize?: number): Promise<boolean>;
106
+ }
@@ -1,4 +1,10 @@
1
- import { ExportOptions, ExportResult } from '../../index';
1
+ import { AudioExtensions, ExportOptions, ExportResult, MediaExtensions } from '../../index';
2
+ import { FFmpeg as RootFFmpeg } from '../../libs/ffmpeg';
3
+ declare enum AudioMixResults {
4
+ SUCCESS = "success",
5
+ ERROR = "error",
6
+ NO_OUTPUT = "no_output"
7
+ }
2
8
  export declare class Renderer {
3
9
  private rendering;
4
10
  private isBackgrounded;
@@ -34,4 +40,7 @@ export declare class Renderer {
34
40
  private sleep;
35
41
  render(payload?: ExportOptions): Promise<ExportResult | null>;
36
42
  render_with_frames(payload?: ExportOptions): Promise<ExportResult | null>;
43
+ muxVideo(ffmpeg: RootFFmpeg, mixGenerated: AudioMixResults, extension: MediaExtensions, audioExtension: AudioExtensions, from: number, to: number): Promise<ExportResult>;
44
+ muxChunkedVideo(ffmpeg: RootFFmpeg, mixGenerated: AudioMixResults, extension: MediaExtensions, audioExtension: AudioExtensions, from: number, to: number, outputFiles: string[]): Promise<ExportResult>;
37
45
  }
46
+ export {};
@@ -1 +1,2 @@
1
1
  export * from "./Renderer";
2
+ export * from "./OutputChunkHelper";
@@ -55,6 +55,8 @@ export declare const SettingsSchema: z.ZodObject<{
55
55
  renderAudioUseWorker: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
56
56
  renderCancelFailTimeout: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
57
57
  renderVideoUseDirectFrames: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
58
+ renderUseChunkedOutput: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
59
+ renderChunkedOutputMaxSize: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
58
60
  decoderUseWebCodecs: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
59
61
  decoderPreferredAcceleration: z.ZodDefault<z.ZodOptional<z.ZodNativeEnum<typeof PreferredAcceleration>>>;
60
62
  decoderUseSeparateWorker: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
@@ -97,6 +99,8 @@ export declare const SettingsSchema: z.ZodObject<{
97
99
  renderAudioUseWorker: boolean;
98
100
  renderCancelFailTimeout: number;
99
101
  renderVideoUseDirectFrames: boolean;
102
+ renderUseChunkedOutput: boolean;
103
+ renderChunkedOutputMaxSize: number;
100
104
  decoderUseWebCodecs: boolean;
101
105
  decoderPreferredAcceleration: PreferredAcceleration;
102
106
  decoderUseSeparateWorker: boolean;
@@ -139,6 +143,8 @@ export declare const SettingsSchema: z.ZodObject<{
139
143
  renderAudioUseWorker?: boolean | undefined;
140
144
  renderCancelFailTimeout?: number | undefined;
141
145
  renderVideoUseDirectFrames?: boolean | undefined;
146
+ renderUseChunkedOutput?: boolean | undefined;
147
+ renderChunkedOutputMaxSize?: number | undefined;
142
148
  decoderUseWebCodecs?: boolean | undefined;
143
149
  decoderPreferredAcceleration?: PreferredAcceleration | undefined;
144
150
  decoderUseSeparateWorker?: boolean | undefined;
@@ -197,6 +203,8 @@ export declare class Settings {
197
203
  private renderAudioUseWorker;
198
204
  private renderCancelFailTimeout;
199
205
  private renderVideoUseDirectFrames;
206
+ private renderUseChunkedOutput;
207
+ private renderChunkedOutputMaxSize;
200
208
  private subtitlesScaleOnResize;
201
209
  private subtitlesAutoWrapOnResize;
202
210
  private viewAutoLayoutOnResize;
@@ -226,6 +234,8 @@ export declare class Settings {
226
234
  renderAudioUseWorker: boolean;
227
235
  renderCancelFailTimeout: number;
228
236
  renderVideoUseDirectFrames: boolean;
237
+ renderUseChunkedOutput: boolean;
238
+ renderChunkedOutputMaxSize: number;
229
239
  decoderUseWebCodecs: boolean;
230
240
  decoderPreferredAcceleration: PreferredAcceleration;
231
241
  decoderUseSeparateWorker: boolean;
@@ -320,6 +330,10 @@ export declare class Settings {
320
330
  getRenderCancelFailTimeout(): number;
321
331
  setRenderVideoUseDirectFrames(use: boolean): void;
322
332
  getRenderVideoUseDirectFrames(): boolean;
333
+ setRenderUseChunkedOutput(use: boolean): void;
334
+ getRenderUseChunkedOutput(): boolean;
335
+ setRenderChunkedOutputMaxSize(size: number): void;
336
+ getRenderChunkedOutputMaxSize(): number;
323
337
  setDecoderUseWebCodecs(use: boolean): void;
324
338
  getDecoderUseWebCodecs(): boolean;
325
339
  setDecoderPreferredAcceleration(acceleration: PreferredAcceleration): void;
@@ -363,6 +377,8 @@ export declare class Settings {
363
377
  renderAudioUseWorker: boolean;
364
378
  renderCancelFailTimeout: number;
365
379
  renderVideoUseDirectFrames: boolean;
380
+ renderUseChunkedOutput: boolean;
381
+ renderChunkedOutputMaxSize: number;
366
382
  decoderUseWebCodecs: boolean;
367
383
  decoderPreferredAcceleration: PreferredAcceleration;
368
384
  decoderUseSeparateWorker: boolean;
@@ -1,4 +1,5 @@
1
1
  export declare enum HashAlgorithmEnum {
2
2
  SHA256 = "SHA256",
3
- XXHash128 = "XXHash128"
3
+ XXHash128 = "XXHash128",
4
+ XXHash64 = "XXHash64"
4
5
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rendley/sdk",
3
- "version": "1.12.26",
3
+ "version": "1.13.0",
4
4
  "license": "LICENSE",
5
5
  "author": "Onix Technologies",
6
6
  "homepage": "https://rendleysdk.com",