@rendley/sdk 1.14.1 → 1.14.3
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/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/libs/ffmpeg/classes.d.ts +5 -1
- package/dist/libs/ffmpeg/const.d.ts +4 -0
- package/dist/libs/ffmpeg/types.d.ts +18 -1
- package/dist/modules/clip/Clip.d.ts +3 -3
- package/dist/modules/clip/clips/audio/AudioClip.d.ts +1 -1
- package/dist/modules/clip/clips/custom/CustomClip.d.ts +1 -1
- package/dist/modules/clip/clips/htmlText/HtmlTextClip.d.ts +5 -5
- package/dist/modules/clip/clips/lottie/LottieClip.d.ts +2 -2
- package/dist/modules/clip/clips/shape/ShapeClip.d.ts +1 -1
- package/dist/modules/clip/clips/shape/ShapeStyle.d.ts +4 -4
- package/dist/modules/clip/clips/svg/SvgClip.d.ts +1 -1
- package/dist/modules/clip/clips/text/TextClip.d.ts +2 -2
- package/dist/modules/clip/clips/text/TextStyle.d.ts +4 -4
- package/dist/modules/clip/clips/video/VideoClip.d.ts +3 -1
- package/dist/modules/library/MediaData.d.ts +1 -3
- package/dist/modules/settings/Settings.d.ts +1 -8
- package/dist/modules/settings/index.d.ts +1 -0
- package/dist/utils/audio/AudioPostProcess.d.ts +19 -0
- package/dist/utils/audio/AudioPostProcess.types.d.ts +53 -0
- package/dist/utils/audio/AudioPostProcessWorker.d.ts +2 -0
- package/dist/utils/audio/AudioSampleExtractor.d.ts +19 -0
- package/package.json +1 -1
|
@@ -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, FFMessageChunkedMuxData } from "./types";
|
|
1
|
+
import { AudioDemuxerPacket, 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 = {
|
|
@@ -173,6 +173,10 @@ export declare class FFmpeg {
|
|
|
173
173
|
closeDemuxer: (id: string, { signal }?: FFMessageOptions) => Promise<OK>;
|
|
174
174
|
seekDemuxer: (id: string, time: number, { signal }?: FFMessageOptions) => Promise<OK>;
|
|
175
175
|
getNextPacketDemuxer: (id: string, { signal }?: FFMessageOptions) => Promise<DemuxerPacket | undefined>;
|
|
176
|
+
initAudioDemuxer: (id: string, path: string, audioStream?: number, { signal }?: FFMessageOptions) => Promise<OK>;
|
|
177
|
+
closeAudioDemuxer: (id: string, { signal }?: FFMessageOptions) => Promise<OK>;
|
|
178
|
+
seekAudioDemuxer: (id: string, time: number, { signal }?: FFMessageOptions) => Promise<OK>;
|
|
179
|
+
getNextPacketAudioDemuxer: (id: string, { signal }?: FFMessageOptions) => Promise<AudioDemuxerPacket | undefined>;
|
|
176
180
|
initMuxer: (initSettings: FFMessageInitMuxerData, { signal }?: FFMessageOptions) => Promise<OK>;
|
|
177
181
|
addChunkMuxer: (data: FFMessageMuxerData, { signal }?: FFMessageOptions) => Promise<OK>;
|
|
178
182
|
closeMuxer: ({ signal }?: FFMessageOptions) => Promise<OK>;
|
|
@@ -33,6 +33,10 @@ export declare enum FFMessageType {
|
|
|
33
33
|
DEMUXER_SEEK = "DEMUXER_SEEK",
|
|
34
34
|
DEMUXER_CLOSE = "DEMUXER_CLOSE",
|
|
35
35
|
DEMUXER_GET_PACKET = "DEMUXER_GET_PACKET",
|
|
36
|
+
AUDIO_DEMUXER_INIT = "AUDIO_DEMUXER_INIT",
|
|
37
|
+
AUDIO_DEMUXER_SEEK = "AUDIO_DEMUXER_SEEK",
|
|
38
|
+
AUDIO_DEMUXER_CLOSE = "AUDIO_DEMUXER_CLOSE",
|
|
39
|
+
AUDIO_DEMUXER_GET_PACKET = "AUDIO_DEMUXER_GET_PACKET",
|
|
36
40
|
MUXER_INIT = "MUXER_INIT",
|
|
37
41
|
MUXER_ADD_VIDEO_CHUNK = "MUXER_ADD_VIDEO_CHUNK",
|
|
38
42
|
MUXER_CLOSE = "MUXER_FINALIZE",
|
|
@@ -68,6 +68,18 @@ export interface FFMessageSeekDemuxerData {
|
|
|
68
68
|
export interface FFMessageIdDemuxerData {
|
|
69
69
|
id: string;
|
|
70
70
|
}
|
|
71
|
+
export interface FFMessageInitAudioDemuxerData {
|
|
72
|
+
id: string;
|
|
73
|
+
path: FFFSPath;
|
|
74
|
+
audioStream: number;
|
|
75
|
+
}
|
|
76
|
+
export interface FFMessageSeekAudioDemuxerData {
|
|
77
|
+
id: string;
|
|
78
|
+
time: number;
|
|
79
|
+
}
|
|
80
|
+
export interface FFMessageIdAudioDemuxerData {
|
|
81
|
+
id: string;
|
|
82
|
+
}
|
|
71
83
|
export interface FFMessageMuxerData {
|
|
72
84
|
packet: Uint8Array;
|
|
73
85
|
timestamp: bigint;
|
|
@@ -215,7 +227,7 @@ export interface FFMessageMountData {
|
|
|
215
227
|
export interface FFMessageUnmountData {
|
|
216
228
|
mountPoint: FFFSPath;
|
|
217
229
|
}
|
|
218
|
-
export type FFMessageData = FFMessageLoadConfig | FFMessageExecData | FFMessageWriteFileData | FFMessageReadFileData | FFMessageReadFilesAsBlobData | 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;
|
|
230
|
+
export type FFMessageData = FFMessageLoadConfig | FFMessageExecData | FFMessageWriteFileData | FFMessageReadFileData | FFMessageReadFilesAsBlobData | FFMessageDeleteFileData | FFMessageRenameData | FFMessageCreateDirData | FFMessageListDirData | FFMessageDeleteDirData | FFMessageMountData | FFMessageUnmountData | FFMessageGetInfoData | FFMessageGetSubtitlesData | FFMessageFrameData | FFMessageFrame | FFMessageRenderSettings | FFMessageChunkedMuxData | FFMessageInitDemuxerData | FFMessageSeekDemuxerData | FFMessageIdDemuxerData | FFMessageInitAudioDemuxerData | FFMessageSeekAudioDemuxerData | FFMessageIdAudioDemuxerData | FFMessageMuxerData | FFMessageAuthentificateData | FFMessageFetchTSChunksData | FFMessageTranscodeData | FFMessageCreateArchiveData | FFMessageOpenArchiveData | FFMessageSaveArchiveData | FFMessageCloseArchiveData | FFMessageAddDataToArchiveData | FFMessageReadFileFromArchiveData | FFMessageExtractAllFromArchiveData | FFMessageAddFileToArchiveData | FFMessageAddFilesToArchiveData | FFMessageListFilesFromArchiveData | FFMessageExtractFileFromArchiveData | FFMessagePathExistsData;
|
|
219
231
|
export interface Message {
|
|
220
232
|
type: string;
|
|
221
233
|
data?: FFMessageData;
|
|
@@ -240,6 +252,11 @@ export interface DemuxerPacket {
|
|
|
240
252
|
timestamp: bigint;
|
|
241
253
|
duration: bigint;
|
|
242
254
|
}
|
|
255
|
+
export interface AudioDemuxerPacket {
|
|
256
|
+
packet: Uint8Array;
|
|
257
|
+
timestamp: bigint;
|
|
258
|
+
duration: bigint;
|
|
259
|
+
}
|
|
243
260
|
export type ExitCode = number;
|
|
244
261
|
export type ErrorMessage = string;
|
|
245
262
|
export type FileData = Uint8Array | string;
|
|
@@ -919,9 +919,9 @@ export declare const ClipSchema: z.ZodObject<{
|
|
|
919
919
|
}, "strip", z.ZodTypeAny, {
|
|
920
920
|
type: string;
|
|
921
921
|
id: string;
|
|
922
|
+
duration: number;
|
|
922
923
|
subtitlesOffset: number;
|
|
923
924
|
startTime: number;
|
|
924
|
-
duration: number;
|
|
925
925
|
leftTrim: number;
|
|
926
926
|
rightTrim: number;
|
|
927
927
|
filters: {
|
|
@@ -1015,9 +1015,9 @@ export declare const ClipSchema: z.ZodObject<{
|
|
|
1015
1015
|
}, {
|
|
1016
1016
|
type: string;
|
|
1017
1017
|
id: string;
|
|
1018
|
+
duration: number;
|
|
1018
1019
|
subtitlesOffset: number;
|
|
1019
1020
|
startTime: number;
|
|
1020
|
-
duration: number;
|
|
1021
1021
|
leftTrim: number;
|
|
1022
1022
|
rightTrim: number;
|
|
1023
1023
|
filters: {
|
|
@@ -1335,9 +1335,9 @@ export declare class Clip<T extends PIXI.Sprite = PIXI.Sprite, K extends ClipSty
|
|
|
1335
1335
|
serialize(): {
|
|
1336
1336
|
type: string;
|
|
1337
1337
|
id: string;
|
|
1338
|
+
duration: number;
|
|
1338
1339
|
subtitlesOffset: number;
|
|
1339
1340
|
startTime: number;
|
|
1340
|
-
duration: number;
|
|
1341
1341
|
leftTrim: number;
|
|
1342
1342
|
rightTrim: number;
|
|
1343
1343
|
filters: {
|
|
@@ -91,10 +91,10 @@ export declare class AudioClip extends Clip {
|
|
|
91
91
|
serialize(): {
|
|
92
92
|
type: string;
|
|
93
93
|
id: string;
|
|
94
|
+
duration: number;
|
|
94
95
|
mediaDataId: string;
|
|
95
96
|
subtitlesOffset: number;
|
|
96
97
|
startTime: number;
|
|
97
|
-
duration: number;
|
|
98
98
|
leftTrim: number;
|
|
99
99
|
rightTrim: number;
|
|
100
100
|
filters: {
|
|
@@ -11,9 +11,9 @@ export declare class CustomClip extends Clip<PIXI.Sprite, ClipStyle> {
|
|
|
11
11
|
serialize(): {
|
|
12
12
|
type: string;
|
|
13
13
|
id: string;
|
|
14
|
+
duration: number;
|
|
14
15
|
subtitlesOffset: number;
|
|
15
16
|
startTime: number;
|
|
16
|
-
duration: number;
|
|
17
17
|
leftTrim: number;
|
|
18
18
|
rightTrim: number;
|
|
19
19
|
filters: {
|
|
@@ -28,6 +28,7 @@ declare const HtmlTextStyleSchema: zod.ZodObject<{
|
|
|
28
28
|
}, "strip", zod.ZodTypeAny, {
|
|
29
29
|
color: string;
|
|
30
30
|
padding: number;
|
|
31
|
+
align: "left" | "center" | "right" | "justify";
|
|
31
32
|
fontSize: number;
|
|
32
33
|
fontWeight: "normal" | "bold" | "bolder" | "lighter" | "100" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900";
|
|
33
34
|
fontFamily: string;
|
|
@@ -42,7 +43,6 @@ declare const HtmlTextStyleSchema: zod.ZodObject<{
|
|
|
42
43
|
dropShadowBlur: number;
|
|
43
44
|
dropShadowColor: string;
|
|
44
45
|
dropShadowDistance: number;
|
|
45
|
-
align: "left" | "center" | "right" | "justify";
|
|
46
46
|
breakWords: boolean;
|
|
47
47
|
fontVariant: "normal" | "small-caps";
|
|
48
48
|
stroke: string;
|
|
@@ -91,6 +91,7 @@ export declare class HtmlTextClip extends Clip<PIXI.Sprite, ClipStyle<PIXI.Sprit
|
|
|
91
91
|
getHtmlStyle(): {
|
|
92
92
|
color: string;
|
|
93
93
|
padding: number;
|
|
94
|
+
align: "left" | "center" | "right" | "justify";
|
|
94
95
|
fontSize: number;
|
|
95
96
|
fontWeight: "normal" | "bold" | "bolder" | "lighter" | "100" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900";
|
|
96
97
|
fontFamily: string;
|
|
@@ -105,7 +106,6 @@ export declare class HtmlTextClip extends Clip<PIXI.Sprite, ClipStyle<PIXI.Sprit
|
|
|
105
106
|
dropShadowBlur: number;
|
|
106
107
|
dropShadowColor: string;
|
|
107
108
|
dropShadowDistance: number;
|
|
108
|
-
align: "left" | "center" | "right" | "justify";
|
|
109
109
|
breakWords: boolean;
|
|
110
110
|
fontVariant: "normal" | "small-caps";
|
|
111
111
|
stroke: string;
|
|
@@ -120,9 +120,9 @@ export declare class HtmlTextClip extends Clip<PIXI.Sprite, ClipStyle<PIXI.Sprit
|
|
|
120
120
|
serialize(): {
|
|
121
121
|
type: string;
|
|
122
122
|
id: string;
|
|
123
|
+
duration: number;
|
|
123
124
|
subtitlesOffset: number;
|
|
124
125
|
startTime: number;
|
|
125
|
-
duration: number;
|
|
126
126
|
leftTrim: number;
|
|
127
127
|
rightTrim: number;
|
|
128
128
|
filters: {
|
|
@@ -138,6 +138,7 @@ export declare class HtmlTextClip extends Clip<PIXI.Sprite, ClipStyle<PIXI.Sprit
|
|
|
138
138
|
htmlStyle: {
|
|
139
139
|
color: string;
|
|
140
140
|
padding: number;
|
|
141
|
+
align: "left" | "center" | "right" | "justify";
|
|
141
142
|
fontSize: number;
|
|
142
143
|
fontWeight: "normal" | "bold" | "bolder" | "lighter" | "100" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900";
|
|
143
144
|
fontFamily: string;
|
|
@@ -152,7 +153,6 @@ export declare class HtmlTextClip extends Clip<PIXI.Sprite, ClipStyle<PIXI.Sprit
|
|
|
152
153
|
dropShadowBlur: number;
|
|
153
154
|
dropShadowColor: string;
|
|
154
155
|
dropShadowDistance: number;
|
|
155
|
-
align: "left" | "center" | "right" | "justify";
|
|
156
156
|
breakWords: boolean;
|
|
157
157
|
fontVariant: "normal" | "small-caps";
|
|
158
158
|
stroke: string;
|
|
@@ -163,8 +163,8 @@ export declare class HtmlTextClip extends Clip<PIXI.Sprite, ClipStyle<PIXI.Sprit
|
|
|
163
163
|
name?: string | undefined;
|
|
164
164
|
wrapMode?: import('../../../../types').WrapModeEnum | undefined;
|
|
165
165
|
blendMode?: import('../../../../types').BlendModeEnum | undefined;
|
|
166
|
-
mediaDataId?: string | undefined;
|
|
167
166
|
style?: unknown;
|
|
167
|
+
mediaDataId?: string | undefined;
|
|
168
168
|
customData?: [string, unknown][] | undefined;
|
|
169
169
|
subtitlesId?: string | undefined;
|
|
170
170
|
animationController?: {
|
|
@@ -187,9 +187,9 @@ export declare class LottieClip extends Clip<PIXI.Sprite, ClipStyle<PIXI.Sprite>
|
|
|
187
187
|
serialize(): {
|
|
188
188
|
type: string;
|
|
189
189
|
id: string;
|
|
190
|
+
duration: number;
|
|
190
191
|
subtitlesOffset: number;
|
|
191
192
|
startTime: number;
|
|
192
|
-
duration: number;
|
|
193
193
|
leftTrim: number;
|
|
194
194
|
rightTrim: number;
|
|
195
195
|
filters: {
|
|
@@ -207,8 +207,8 @@ export declare class LottieClip extends Clip<PIXI.Sprite, ClipStyle<PIXI.Sprite>
|
|
|
207
207
|
name?: string | undefined;
|
|
208
208
|
wrapMode?: WrapModeEnum | undefined;
|
|
209
209
|
blendMode?: import('../../../../types').BlendModeEnum | undefined;
|
|
210
|
-
mediaDataId?: string | undefined;
|
|
211
210
|
style?: unknown;
|
|
211
|
+
mediaDataId?: string | undefined;
|
|
212
212
|
customData?: [string, unknown][] | undefined;
|
|
213
213
|
subtitlesId?: string | undefined;
|
|
214
214
|
animationController?: {
|
|
@@ -14,9 +14,9 @@ export declare class ShapeClip extends Clip<ShapeSprite, ShapeStyle> {
|
|
|
14
14
|
serialize(): {
|
|
15
15
|
type: string;
|
|
16
16
|
id: string;
|
|
17
|
+
duration: number;
|
|
17
18
|
subtitlesOffset: number;
|
|
18
19
|
startTime: number;
|
|
19
|
-
duration: number;
|
|
20
20
|
leftTrim: number;
|
|
21
21
|
rightTrim: number;
|
|
22
22
|
filters: {
|
|
@@ -99,8 +99,8 @@ export declare const ShapeStyleSchema: z.ZodObject<{
|
|
|
99
99
|
width: z.ZodOptional<z.ZodNumber>;
|
|
100
100
|
alpha: z.ZodNumber;
|
|
101
101
|
rotation: z.ZodNumber;
|
|
102
|
-
mediaDataId: z.ZodOptional<z.ZodString>;
|
|
103
102
|
height: z.ZodOptional<z.ZodNumber>;
|
|
103
|
+
mediaDataId: z.ZodOptional<z.ZodString>;
|
|
104
104
|
clipId: z.ZodString;
|
|
105
105
|
position: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
|
|
106
106
|
crop: z.ZodDefault<z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>>;
|
|
@@ -202,8 +202,8 @@ export declare const ShapeStyleSchema: z.ZodObject<{
|
|
|
202
202
|
relativeCornerRadius: boolean;
|
|
203
203
|
hasFill: boolean;
|
|
204
204
|
width?: number | undefined;
|
|
205
|
-
mediaDataId?: string | undefined;
|
|
206
205
|
height?: number | undefined;
|
|
206
|
+
mediaDataId?: string | undefined;
|
|
207
207
|
cornerRadius?: [number, number, number, number] | undefined;
|
|
208
208
|
fillColor?: string | undefined;
|
|
209
209
|
strokeColor?: string | undefined;
|
|
@@ -240,8 +240,8 @@ export declare const ShapeStyleSchema: z.ZodObject<{
|
|
|
240
240
|
position: [number, number];
|
|
241
241
|
zIndex: number;
|
|
242
242
|
width?: number | undefined;
|
|
243
|
-
mediaDataId?: string | undefined;
|
|
244
243
|
height?: number | undefined;
|
|
244
|
+
mediaDataId?: string | undefined;
|
|
245
245
|
crop?: [number, number, number, number] | undefined;
|
|
246
246
|
cropOffset?: [number, number] | undefined;
|
|
247
247
|
zoom?: [number, number] | undefined;
|
|
@@ -333,8 +333,8 @@ export declare class ShapeStyle extends ClipStyle<ShapeSprite> {
|
|
|
333
333
|
relativeCornerRadius: boolean;
|
|
334
334
|
hasFill: boolean;
|
|
335
335
|
width?: number | undefined;
|
|
336
|
-
mediaDataId?: string | undefined;
|
|
337
336
|
height?: number | undefined;
|
|
337
|
+
mediaDataId?: string | undefined;
|
|
338
338
|
cornerRadius?: [number, number, number, number] | undefined;
|
|
339
339
|
fillColor?: string | undefined;
|
|
340
340
|
strokeColor?: string | undefined;
|
|
@@ -21,9 +21,9 @@ export declare class SvgClip extends Clip<PIXI.Sprite, ClipStyle<PIXI.Sprite>> {
|
|
|
21
21
|
serialize(): {
|
|
22
22
|
type: string;
|
|
23
23
|
id: string;
|
|
24
|
+
duration: number;
|
|
24
25
|
subtitlesOffset: number;
|
|
25
26
|
startTime: number;
|
|
26
|
-
duration: number;
|
|
27
27
|
leftTrim: number;
|
|
28
28
|
rightTrim: number;
|
|
29
29
|
filters: {
|
|
@@ -23,9 +23,9 @@ export declare class TextClip extends Clip<TextSprite, TextStyle> {
|
|
|
23
23
|
type: string;
|
|
24
24
|
text: string;
|
|
25
25
|
id: string;
|
|
26
|
+
duration: number;
|
|
26
27
|
subtitlesOffset: number;
|
|
27
28
|
startTime: number;
|
|
28
|
-
duration: number;
|
|
29
29
|
leftTrim: number;
|
|
30
30
|
rightTrim: number;
|
|
31
31
|
filters: {
|
|
@@ -40,8 +40,8 @@ export declare class TextClip extends Clip<TextSprite, TextStyle> {
|
|
|
40
40
|
name?: string | undefined;
|
|
41
41
|
wrapMode?: import('../../../../index').WrapModeEnum | undefined;
|
|
42
42
|
blendMode?: import('../../../../index').BlendModeEnum | undefined;
|
|
43
|
-
mediaDataId?: string | undefined;
|
|
44
43
|
style?: unknown;
|
|
44
|
+
mediaDataId?: string | undefined;
|
|
45
45
|
customData?: [string, unknown][] | undefined;
|
|
46
46
|
subtitlesId?: string | undefined;
|
|
47
47
|
animationController?: {
|
|
@@ -28,8 +28,8 @@ export declare const TextStyleSchema: z.ZodObject<{
|
|
|
28
28
|
width: z.ZodOptional<z.ZodNumber>;
|
|
29
29
|
alpha: z.ZodNumber;
|
|
30
30
|
rotation: z.ZodNumber;
|
|
31
|
-
mediaDataId: z.ZodOptional<z.ZodString>;
|
|
32
31
|
height: z.ZodOptional<z.ZodNumber>;
|
|
32
|
+
mediaDataId: z.ZodOptional<z.ZodString>;
|
|
33
33
|
clipId: z.ZodString;
|
|
34
34
|
position: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
|
|
35
35
|
crop: z.ZodDefault<z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>>;
|
|
@@ -88,8 +88,8 @@ export declare const TextStyleSchema: z.ZodObject<{
|
|
|
88
88
|
dropShadowColor: string;
|
|
89
89
|
dropShadowDistance: number;
|
|
90
90
|
width?: number | undefined;
|
|
91
|
-
mediaDataId?: string | undefined;
|
|
92
91
|
height?: number | undefined;
|
|
92
|
+
mediaDataId?: string | undefined;
|
|
93
93
|
cornerRadius?: [number, number, number, number] | undefined;
|
|
94
94
|
}, {
|
|
95
95
|
scale: [number, number];
|
|
@@ -106,8 +106,8 @@ export declare const TextStyleSchema: z.ZodObject<{
|
|
|
106
106
|
fontStyle: "normal" | "italic" | "oblique";
|
|
107
107
|
backgroundColor: string | null;
|
|
108
108
|
width?: number | undefined;
|
|
109
|
-
mediaDataId?: string | undefined;
|
|
110
109
|
height?: number | undefined;
|
|
110
|
+
mediaDataId?: string | undefined;
|
|
111
111
|
crop?: [number, number, number, number] | undefined;
|
|
112
112
|
cropOffset?: [number, number] | undefined;
|
|
113
113
|
zoom?: [number, number] | undefined;
|
|
@@ -222,8 +222,8 @@ export declare class TextStyle extends ClipStyle<TextSprite> {
|
|
|
222
222
|
dropShadowColor: string;
|
|
223
223
|
dropShadowDistance: number;
|
|
224
224
|
width?: number | undefined;
|
|
225
|
-
mediaDataId?: string | undefined;
|
|
226
225
|
height?: number | undefined;
|
|
226
|
+
mediaDataId?: string | undefined;
|
|
227
227
|
cornerRadius?: [number, number, number, number] | undefined;
|
|
228
228
|
};
|
|
229
229
|
static deserialize(payload: object): TextStyle;
|
|
@@ -31,6 +31,7 @@ export declare class VideoClip extends Clip<PIXI.Sprite, ClipStyle<PIXI.Sprite>>
|
|
|
31
31
|
private freezeTime?;
|
|
32
32
|
private actions;
|
|
33
33
|
private isProcessing;
|
|
34
|
+
private lastProcessingAction;
|
|
34
35
|
private lastUpdateTime;
|
|
35
36
|
private lastStartTime;
|
|
36
37
|
private lastLeftTrim;
|
|
@@ -63,6 +64,7 @@ export declare class VideoClip extends Clip<PIXI.Sprite, ClipStyle<PIXI.Sprite>>
|
|
|
63
64
|
updateMediaData(newMediaId?: string, options?: ReplaceMediaOptions): Promise<boolean>;
|
|
64
65
|
preload(currentTime: number): void;
|
|
65
66
|
private addActionToQueue;
|
|
67
|
+
private setProcessingAction;
|
|
66
68
|
private processNextQueue;
|
|
67
69
|
private seekedCallback;
|
|
68
70
|
private playingCallback;
|
|
@@ -167,10 +169,10 @@ export declare class VideoClip extends Clip<PIXI.Sprite, ClipStyle<PIXI.Sprite>>
|
|
|
167
169
|
serialize(): {
|
|
168
170
|
type: string;
|
|
169
171
|
id: string;
|
|
172
|
+
duration: number;
|
|
170
173
|
mediaDataId: string;
|
|
171
174
|
subtitlesOffset: number;
|
|
172
175
|
startTime: number;
|
|
173
|
-
duration: number;
|
|
174
176
|
leftTrim: number;
|
|
175
177
|
rightTrim: number;
|
|
176
178
|
filters: {
|
|
@@ -117,9 +117,7 @@ export declare class MediaData {
|
|
|
117
117
|
private ensureWorkerFSRoot;
|
|
118
118
|
private cleanupWorkerFSMount;
|
|
119
119
|
private mountInputToWorkerFS;
|
|
120
|
-
private
|
|
121
|
-
private mixToMono;
|
|
122
|
-
private extractAudioSamples;
|
|
120
|
+
private doExtractAudioSamples;
|
|
123
121
|
getAudioSamples(startTime: number, duration?: number): Float32Array[] | null;
|
|
124
122
|
private checkPlaceholderClips;
|
|
125
123
|
setCustomData(key: string, value: unknown, overwrite?: boolean): boolean;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { HashAlgorithmEnum } from '../../types/hash.types';
|
|
3
|
+
import { MonoMixType } from '../../utils/audio/AudioPostProcess.types';
|
|
3
4
|
export declare enum PreferredAcceleration {
|
|
4
5
|
HARDWARE = "prefer-hardware",
|
|
5
6
|
SOFTWARE = "prefer-software",
|
|
@@ -24,14 +25,6 @@ export declare enum AutoLayoutMode {
|
|
|
24
25
|
PREFER_WIDTH = "prefer-width",
|
|
25
26
|
PREFER_HEIGHT = "prefer-height"
|
|
26
27
|
}
|
|
27
|
-
export declare enum MonoMixType {
|
|
28
|
-
AVERAGE = "average",
|
|
29
|
-
ABSOLUTE_AVERAGE = "absolute-average",
|
|
30
|
-
PEAK_MIN = "peak-min",
|
|
31
|
-
PEAK_MAX = "peak-max",
|
|
32
|
-
ABSOLUTE_MAX = "absolute-max",
|
|
33
|
-
ABSOLUTE_MIN = "absolute-min"
|
|
34
|
-
}
|
|
35
28
|
export declare const SettingsSchema: z.ZodObject<{
|
|
36
29
|
m3u8MaxResolution: z.ZodDefault<z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>>;
|
|
37
30
|
useInternalTranscoder: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { AudioPostProcessSettings } from "./AudioPostProcess.types";
|
|
2
|
+
export type { AudioPostProcessSettings } from "./AudioPostProcess.types";
|
|
3
|
+
export interface DecodeAndPostProcessResult {
|
|
4
|
+
channels: Float32Array[];
|
|
5
|
+
decodedChannels: number;
|
|
6
|
+
decodedDuration: number;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Send already-decoded channel data to the worker for resample + mono mix.
|
|
10
|
+
* Buffers are transferred (zero-copy) both ways.
|
|
11
|
+
*/
|
|
12
|
+
export declare function postProcessAudioChannels(channels: Float32Array[], settings: AudioPostProcessSettings): Promise<Float32Array[]>;
|
|
13
|
+
/**
|
|
14
|
+
* Send raw encoded audio data to the worker for decode + resample + mono mix.
|
|
15
|
+
* When OfflineAudioContext is available in the worker (secure context), the entire
|
|
16
|
+
* pipeline runs off the main thread. Otherwise, decoding falls back to the main
|
|
17
|
+
* thread's AudioContext, with resample + mix still handled by the worker.
|
|
18
|
+
*/
|
|
19
|
+
export declare function decodeAndPostProcessInWorker(audioData: ArrayBuffer, settings: AudioPostProcessSettings): Promise<DecodeAndPostProcessResult>;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export declare enum MonoMixType {
|
|
2
|
+
AVERAGE = "average",
|
|
3
|
+
ABSOLUTE_AVERAGE = "absolute-average",
|
|
4
|
+
PEAK_MIN = "peak-min",
|
|
5
|
+
PEAK_MAX = "peak-max",
|
|
6
|
+
ABSOLUTE_MAX = "absolute-max",
|
|
7
|
+
ABSOLUTE_MIN = "absolute-min"
|
|
8
|
+
}
|
|
9
|
+
export interface AudioPostProcessSettings {
|
|
10
|
+
inputSampleRate: number;
|
|
11
|
+
outputSampleRate: number;
|
|
12
|
+
forceMono: boolean;
|
|
13
|
+
monoMixType: MonoMixType;
|
|
14
|
+
monoChannelsWeight: number[];
|
|
15
|
+
}
|
|
16
|
+
export declare enum AudioPostProcessMsgType {
|
|
17
|
+
PROCESS = "process",
|
|
18
|
+
DECODE_AND_PROCESS = "decode_and_process",
|
|
19
|
+
RESULT = "result",
|
|
20
|
+
DECODE_UNSUPPORTED = "decode_unsupported",
|
|
21
|
+
ERROR = "error"
|
|
22
|
+
}
|
|
23
|
+
export interface AudioPostProcessRequest {
|
|
24
|
+
id: number;
|
|
25
|
+
type: AudioPostProcessMsgType.PROCESS;
|
|
26
|
+
channels: Float32Array[];
|
|
27
|
+
settings: AudioPostProcessSettings;
|
|
28
|
+
}
|
|
29
|
+
export interface AudioDecodeAndProcessRequest {
|
|
30
|
+
id: number;
|
|
31
|
+
type: AudioPostProcessMsgType.DECODE_AND_PROCESS;
|
|
32
|
+
audioData: ArrayBuffer;
|
|
33
|
+
settings: AudioPostProcessSettings;
|
|
34
|
+
}
|
|
35
|
+
export interface AudioPostProcessResultResponse {
|
|
36
|
+
id: number;
|
|
37
|
+
type: AudioPostProcessMsgType.RESULT;
|
|
38
|
+
channels: Float32Array[];
|
|
39
|
+
decodedChannels: number;
|
|
40
|
+
decodedDuration: number;
|
|
41
|
+
}
|
|
42
|
+
export interface AudioPostProcessDecodeUnsupportedResponse {
|
|
43
|
+
id: number;
|
|
44
|
+
type: AudioPostProcessMsgType.DECODE_UNSUPPORTED;
|
|
45
|
+
audioData: ArrayBuffer;
|
|
46
|
+
settings: AudioPostProcessSettings;
|
|
47
|
+
}
|
|
48
|
+
export interface AudioPostProcessErrorResponse {
|
|
49
|
+
id: number;
|
|
50
|
+
type: AudioPostProcessMsgType.ERROR;
|
|
51
|
+
error: string;
|
|
52
|
+
}
|
|
53
|
+
export type AudioPostProcessResponse = AudioPostProcessResultResponse | AudioPostProcessDecodeUnsupportedResponse | AudioPostProcessErrorResponse;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { MediaInfoStream } from '../../modules/ffmpeg/types/FFmpeg.types';
|
|
2
|
+
export interface AudioSampleExtractionParams {
|
|
3
|
+
mediaId: string;
|
|
4
|
+
mediaSource: Blob | File;
|
|
5
|
+
filename: string;
|
|
6
|
+
fileSize: number;
|
|
7
|
+
audioStream: MediaInfoStream | undefined;
|
|
8
|
+
storePath: string | undefined;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Main entry point for audio sample extraction.
|
|
12
|
+
*
|
|
13
|
+
* Strategy:
|
|
14
|
+
* 1. File < 1GB → decodeAudioData directly on the media source (no FFmpeg)
|
|
15
|
+
* 2. File >= 1GB, decoded samples fit in memory → FFmpeg demux audio stream, then decodeAudioData
|
|
16
|
+
* 3. Decoded samples would overflow or compressed audio too large → FFmpeg chunked extraction,
|
|
17
|
+
* decode + post-process per chunk, then join downsampled results
|
|
18
|
+
*/
|
|
19
|
+
export declare function extractAudioSamples(params: AudioSampleExtractionParams): Promise<Float32Array[] | null>;
|