@designcombo/video 0.0.2 → 0.0.4

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.
Files changed (32) hide show
  1. package/dist/{SharedSystems-BWe03l6N.js → SharedSystems-Cv0Hv-t_.js} +1 -1
  2. package/dist/{WebGLRenderer-CKduQ9yw.js → WebGLRenderer-CeXIsNm5.js} +2 -2
  3. package/dist/{WebGPURenderer-BSX8DZj-.js → WebGPURenderer-CKsFf2P8.js} +2 -2
  4. package/dist/{browserAll-CwPYLzJJ.js → browserAll-CVO4QZK1.js} +2 -2
  5. package/dist/clips/audio-clip.d.ts +1 -4
  6. package/dist/clips/base-clip.d.ts +6 -1
  7. package/dist/clips/caption-clip.d.ts +10 -9
  8. package/dist/clips/effect-clip.d.ts +37 -0
  9. package/dist/clips/iclip.d.ts +22 -0
  10. package/dist/clips/image-clip.d.ts +2 -1
  11. package/dist/clips/index.d.ts +2 -0
  12. package/dist/clips/text-clip.d.ts +53 -52
  13. package/dist/clips/transition-clip.d.ts +37 -0
  14. package/dist/clips/video-clip.d.ts +7 -7
  15. package/dist/effect/glsl/custom-glsl.d.ts +499 -5
  16. package/dist/{index-C333riU-.js → index-CZk_O50g.js} +15065 -8677
  17. package/dist/index.d.ts +4 -1
  18. package/dist/index.es.js +20 -16
  19. package/dist/index.umd.js +5010 -162
  20. package/dist/json-serialization.d.ts +32 -4
  21. package/dist/sprite/base-sprite.d.ts +44 -21
  22. package/dist/sprite/pixi-sprite-renderer.d.ts +0 -12
  23. package/dist/studio.d.ts +152 -6
  24. package/dist/transition/fragment.d.ts +1 -0
  25. package/dist/transition/glsl/custom-glsl.d.ts +229 -0
  26. package/dist/transition/glsl/gl-transition.d.ts +14 -0
  27. package/dist/transition/transition.d.ts +5 -0
  28. package/dist/transition/types.d.ts +29 -0
  29. package/dist/transition/uniforms.d.ts +35 -0
  30. package/dist/transition/vertex.d.ts +1 -0
  31. package/dist/{webworkerAll-aNnyDpl9.js → webworkerAll-C-9pdN3u.js} +1 -1
  32. package/package.json +2 -1
@@ -1,4 +1,4 @@
1
- import { F as Ie, u as Ee, l as se, M as v, G as De, v as Oe, S as Fe, x as ae, E as u, e as D, y as S, z as Le, H as O, I as b, R as F, J as ne, K as He, t as m, b as f, i as B, w as L, L as K, N as We, c as Y, B as y, j as U, O as ze, Q as C, k as M, V as w, W as Ve, a as Ne, X as ie, Y as oe, Z as le, _ as ue, C as P, $ as je, a0 as A, a1 as J, D as H, a2 as $e, a3 as qe, P as Ke, d as Ye, T as X, a4 as Q, a5 as Je, a6 as Xe, a7 as Qe } from "./index-C333riU-.js";
1
+ import { F as Ie, u as Ee, l as se, M as v, G as De, v as Oe, S as Fe, x as ae, E as u, e as D, y as S, z as Le, H as O, I as b, R as F, J as ne, K as He, t as m, b as f, i as B, w as L, L as K, N as We, c as Y, B as y, j as U, O as ze, Q as C, k as M, V as w, W as Ve, a as Ne, X as ie, Y as oe, Z as le, _ as ue, C as P, $ as je, a0 as A, a1 as J, D as H, a2 as $e, a3 as qe, P as Ke, d as Ye, T as X, a4 as Q, a5 as Je, a6 as Xe, a7 as Qe } from "./index-CZk_O50g.js";
2
2
  import { B as de, c as Ze } from "./colorToUniform-C2jGzNe1.js";
3
3
  var et = `in vec2 vMaskCoord;
4
4
  in vec2 vTextureCoord;
@@ -1,6 +1,6 @@
1
- import { S as G, E as d, B as v, w as m, D as S, L as j, v as ve, s as U, t as b, a8 as Be, k as K, a9 as Ae, b as p, V as L, j as B, i as A, l as F, M as $, aa as z, ab as Ne, ac as ye, ad as Y, ae as Ce, A as De, R as Ie, e as T } from "./index-C333riU-.js";
1
+ import { S as G, E as d, B as v, w as m, D as S, L as j, v as ve, s as U, t as b, a8 as Be, k as K, a9 as Ae, b as p, V as L, j as B, i as A, l as F, M as $, aa as z, ab as Ne, ac as ye, ad as Y, ae as Ce, A as De, R as Ie, e as T } from "./index-CZk_O50g.js";
2
2
  import { b as q } from "./colorToUniform-C2jGzNe1.js";
3
- import { e as Ge, G as Ue, c as Fe, b as Oe, U as Pe, R as Me, B as Z, d as N, f as Le, S as He, a as we } from "./SharedSystems-BWe03l6N.js";
3
+ import { e as Ge, G as Ue, c as Fe, b as Oe, U as Pe, R as Me, B as Z, d as N, f as Le, S as He, a as we } from "./SharedSystems-Cv0Hv-t_.js";
4
4
  class Q {
5
5
  constructor() {
6
6
  this._tempState = G.for2d(), this._didUploadHash = {};
@@ -1,6 +1,6 @@
1
- import { S as E, g as A, E as p, f as ae, D as S, b as C, B as T, c as ue, d as L, h as M, w as v, i as x, j as ce, k as de, l as k, m as w, M as D, n as H, o as he, p as pe, q as z, s as F, t as R, A as le, R as fe, e as B } from "./index-C333riU-.js";
1
+ import { S as E, g as A, E as p, f as ae, D as S, b as C, B as T, c as ue, d as L, h as M, w as v, i as x, j as ce, k as de, l as k, m as w, M as D, n as H, o as he, p as pe, q as z, s as F, t as R, A as le, R as fe, e as B } from "./index-CZk_O50g.js";
2
2
  import { l as ge, a as me } from "./colorToUniform-C2jGzNe1.js";
3
- import { c as _e, u as be, U as xe, B as ye, G as Ge, e as Se, R as Be, t as Pe, S as Te, a as Ce } from "./SharedSystems-BWe03l6N.js";
3
+ import { c as _e, u as be, U as xe, B as ye, G as Ge, e as Se, R as Be, t as Pe, S as Te, a as Ce } from "./SharedSystems-Cv0Hv-t_.js";
4
4
  const y = E.for2d();
5
5
  class O {
6
6
  start(e, t, r) {
@@ -1,5 +1,5 @@
1
- import { T as M, U as Z, P as m, r as te, E as y, a as ie, w as g, e as P, C as V } from "./index-C333riU-.js";
2
- import "./webworkerAll-aNnyDpl9.js";
1
+ import { T as M, U as Z, P as m, r as te, E as y, a as ie, w as g, e as P, C as V } from "./index-CZk_O50g.js";
2
+ import "./webworkerAll-C-9pdN3u.js";
3
3
  class q {
4
4
  constructor(e) {
5
5
  this._lastTransform = "", this._observer = null, this._tickerAttached = !1, this.updateTranslation = () => {
@@ -21,6 +21,7 @@ interface IAudioClipOpts {
21
21
  * }),
22
22
  */
23
23
  export declare class AudioClip extends BaseClip implements IPlaybackCapable {
24
+ readonly type = "Audio";
24
25
  static ctx: AudioContext | null;
25
26
  ready: IClip['ready'];
26
27
  private _meta;
@@ -47,10 +48,6 @@ export declare class AudioClip extends BaseClip implements IPlaybackCapable {
47
48
  * Whether to loop the audio (hybrid JSON structure)
48
49
  */
49
50
  loop: boolean;
50
- /**
51
- * Audio volume level (0-1) (hybrid JSON structure)
52
- */
53
- volume: number;
54
51
  /**
55
52
  * Load an audio clip from a URL
56
53
  * @param url Audio URL
@@ -1,5 +1,5 @@
1
1
  import { BaseSprite } from '../sprite/base-sprite';
2
- import { IClip, IClipMeta } from './iclip';
2
+ import { IClip, IClipMeta, ITransitionInfo } from './iclip';
3
3
  import { ClipJSON } from '../json-serialization';
4
4
  /**
5
5
  * Base class for all clips that extends BaseSprite
@@ -7,6 +7,7 @@ import { ClipJSON } from '../json-serialization';
7
7
  * and frame management
8
8
  */
9
9
  export declare abstract class BaseClip extends BaseSprite implements IClip {
10
+ abstract readonly type: string;
10
11
  private lastVf;
11
12
  protected destroyed: boolean;
12
13
  /**
@@ -14,6 +15,10 @@ export declare abstract class BaseClip extends BaseSprite implements IClip {
14
15
  * Used for serialization and reloading from JSON
15
16
  */
16
17
  src: string;
18
+ /**
19
+ * Transition info (optional)
20
+ */
21
+ transition?: ITransitionInfo;
17
22
  abstract tick(time: number): Promise<{
18
23
  video?: VideoFrame | ImageBitmap | null;
19
24
  audio?: Float32Array[];
@@ -29,7 +29,7 @@ export interface ICaptionClipOpts {
29
29
  * @default '#ffffff'
30
30
  */
31
31
  fill?: string | number | {
32
- type: "gradient";
32
+ type: 'gradient';
33
33
  x0: number;
34
34
  y0: number;
35
35
  x1: number;
@@ -104,7 +104,7 @@ export interface ICaptionClipOpts {
104
104
  stroke?: string | number | {
105
105
  color: string | number;
106
106
  width: number;
107
- join?: "miter" | "round" | "bevel";
107
+ join?: 'miter' | 'round' | 'bevel';
108
108
  };
109
109
  /**
110
110
  * Stroke width in pixels (used when stroke is a simple color)
@@ -115,7 +115,7 @@ export interface ICaptionClipOpts {
115
115
  * Text alignment ('left', 'center', 'right')
116
116
  * @default 'center'
117
117
  */
118
- align?: "left" | "center" | "right";
118
+ align?: 'left' | 'center' | 'right';
119
119
  /**
120
120
  * Drop shadow configuration
121
121
  */
@@ -163,7 +163,8 @@ export interface ICaptionClipOpts {
163
163
  * captionClip.duration = 3e6; // 3 seconds
164
164
  */
165
165
  export declare class CaptionClip extends BaseClip implements IClip {
166
- ready: IClip["ready"];
166
+ readonly type = "Caption";
167
+ ready: IClip['ready'];
167
168
  private _meta;
168
169
  get meta(): {
169
170
  duration: number;
@@ -208,8 +209,8 @@ export declare class CaptionClip extends BaseClip implements IClip {
208
209
  color: string | number;
209
210
  alpha: number;
210
211
  blur: number;
211
- offsetX: number;
212
- offsetY: number;
212
+ distance: number;
213
+ angle: number;
213
214
  } | undefined;
214
215
  };
215
216
  /**
@@ -239,7 +240,7 @@ export declare class CaptionClip extends BaseClip implements IClip {
239
240
  private externalRenderer;
240
241
  private pixiApp;
241
242
  private originalOpts;
242
- constructor(text: string, opts?: ICaptionClipOpts, renderer?: Application["renderer"]);
243
+ constructor(text: string, opts?: ICaptionClipOpts, renderer?: Application['renderer']);
243
244
  private lastLoggedTime;
244
245
  updateState(currentTime: number): void;
245
246
  /**
@@ -252,11 +253,11 @@ export declare class CaptionClip extends BaseClip implements IClip {
252
253
  /**
253
254
  * Set an external renderer (e.g., from Studio) to avoid creating our own Pixi App
254
255
  */
255
- setRenderer(renderer: Application["renderer"]): void;
256
+ setRenderer(renderer: Application['renderer']): void;
256
257
  private getRenderer;
257
258
  tick(time: number): Promise<{
258
259
  video: ImageBitmap;
259
- state: "success";
260
+ state: 'success';
260
261
  }>;
261
262
  split(_time: number): Promise<[this, this]>;
262
263
  addEffect(effect: {
@@ -0,0 +1,37 @@
1
+ import { BaseClip } from './base-clip';
2
+ import { IClip } from './iclip';
3
+ import { EffectKey } from '../effect/glsl/gl-effect';
4
+ export declare class EffectClip extends BaseClip {
5
+ readonly type = "Effect";
6
+ ready: IClip['ready'];
7
+ private _meta;
8
+ get meta(): {
9
+ duration: number;
10
+ width: number;
11
+ height: number;
12
+ };
13
+ /**
14
+ * Unique identifier for this clip instance
15
+ */
16
+ id: string;
17
+ /**
18
+ * The effect configuration
19
+ */
20
+ effect: {
21
+ id: string;
22
+ key: EffectKey;
23
+ name: string;
24
+ };
25
+ constructor(effectKey: EffectKey);
26
+ clone(): Promise<this>;
27
+ tick(_time: number): Promise<{
28
+ video: ImageBitmap | undefined;
29
+ state: 'success';
30
+ }>;
31
+ split(_time: number): Promise<[this, this]>;
32
+ toJSON(main?: boolean): any;
33
+ /**
34
+ * Create an EffectClip instance from a JSON object
35
+ */
36
+ static fromObject(json: any): Promise<EffectClip>;
37
+ }
@@ -4,6 +4,16 @@ export interface IClipMeta {
4
4
  height: number;
5
5
  duration: number;
6
6
  }
7
+ export interface ITransitionInfo {
8
+ name: string;
9
+ duration: number;
10
+ textureUrl?: string;
11
+ prevClipId?: string;
12
+ fromClipId?: string;
13
+ toClipId?: string;
14
+ start?: number;
15
+ end?: number;
16
+ }
7
17
  /**
8
18
  * Interface that all clips must implement
9
19
  *
@@ -18,6 +28,10 @@ export interface IClipMeta {
18
28
  export interface IClip extends Omit<BaseSprite, 'destroy' | 'ready'> {
19
29
  destroy: () => void;
20
30
  readonly ready: Promise<IClipMeta>;
31
+ /**
32
+ * Clip type (e.g., 'video', 'image', 'text', 'audio')
33
+ */
34
+ readonly type: string;
21
35
  /**
22
36
  * Extract data from clip at specified time
23
37
  * @param time Time in microseconds
@@ -65,6 +79,14 @@ export interface IClip extends Omit<BaseSprite, 'destroy' | 'ready'> {
65
79
  * @param renderer The PixiJS renderer to use
66
80
  */
67
81
  setRenderer?(renderer: any): void;
82
+ /**
83
+ * Transition info (optional)
84
+ */
85
+ transition?: ITransitionInfo;
86
+ /**
87
+ * Audio volume level (0-1)
88
+ */
89
+ volume: number;
68
90
  }
69
91
  /**
70
92
  * Optional interface for clips that support HTML media element playback
@@ -26,7 +26,8 @@ type AnimateImgType = 'avif' | 'webp' | 'png' | 'gif';
26
26
  *
27
27
  * @see [Video composition](https://webav-tech.github.io/WebAV/demo/2_1-concat-video)
28
28
  */
29
- export declare class ImageClip extends BaseClip {
29
+ export declare class ImageClip extends BaseClip implements IClip {
30
+ readonly type = "Image";
30
31
  ready: IClip['ready'];
31
32
  private _meta;
32
33
  /**
@@ -6,3 +6,5 @@ export * from './video-clip';
6
6
  export { VideoClip } from './video-clip';
7
7
  export type { IMP4ClipOpts } from './video-clip';
8
8
  export * from './text-clip';
9
+ export * from './effect-clip';
10
+ export * from './transition-clip';
@@ -10,7 +10,7 @@ export interface ITextClipOpts {
10
10
  fontSize?: number;
11
11
  /**
12
12
  * Font family
13
- * @default 'Arial'
13
+ * @default 'Roboto'
14
14
  */
15
15
  fontFamily?: string;
16
16
  /**
@@ -28,7 +28,7 @@ export interface ITextClipOpts {
28
28
  * @default '#ffffff'
29
29
  */
30
30
  fill?: string | number | {
31
- type: "gradient";
31
+ type: 'gradient';
32
32
  x0: number;
33
33
  y0: number;
34
34
  x1: number;
@@ -44,8 +44,8 @@ export interface ITextClipOpts {
44
44
  stroke?: string | number | {
45
45
  color: string | number;
46
46
  width: number;
47
- join?: "miter" | "round" | "bevel";
48
- cap?: "butt" | "round" | "square";
47
+ join?: 'miter' | 'round' | 'bevel';
48
+ cap?: 'butt' | 'round' | 'square';
49
49
  miterLimit?: number;
50
50
  };
51
51
  /**
@@ -57,7 +57,16 @@ export interface ITextClipOpts {
57
57
  * Text alignment ('left', 'center', 'right')
58
58
  * @default 'left'
59
59
  */
60
- align?: "left" | "center" | "right";
60
+ align?: 'left' | 'center' | 'right';
61
+ /**
62
+ * Alias for align to match UI property naming
63
+ */
64
+ textAlign?: 'left' | 'center' | 'right';
65
+ /**
66
+ * Vertical alignment ('top', 'center', 'bottom')
67
+ * @default 'top'
68
+ */
69
+ verticalAlign?: 'top' | 'center' | 'bottom' | 'underline' | 'overline' | 'strikethrough';
61
70
  /**
62
71
  * Drop shadow configuration
63
72
  */
@@ -88,6 +97,16 @@ export interface ITextClipOpts {
88
97
  * @default 0
89
98
  */
90
99
  letterSpacing?: number;
100
+ /**
101
+ * Text case transformation
102
+ * @default 'none'
103
+ */
104
+ textCase?: 'none' | 'uppercase' | 'lowercase' | 'title';
105
+ /**
106
+ * Text decoration ('none', 'underline', 'line-through', 'overline')
107
+ * @default 'none'
108
+ */
109
+ textDecoration?: 'none' | 'underline' | 'line-through' | 'overline';
91
110
  }
92
111
  /**
93
112
  * Text clip using PixiJS Text for rendering
@@ -108,63 +127,45 @@ export interface ITextClipOpts {
108
127
  * textClip.duration = 5e6; // 5 seconds
109
128
  */
110
129
  export declare class TextClip extends BaseClip {
111
- ready: IClip["ready"];
130
+ readonly type = "Text";
131
+ ready: IClip['ready'];
112
132
  private _meta;
113
133
  get meta(): {
114
134
  duration: number;
115
135
  width: number;
116
136
  height: number;
117
137
  };
138
+ get width(): number;
139
+ set width(v: number);
140
+ get height(): number;
141
+ set height(v: number);
142
+ private _text;
118
143
  /**
119
144
  * Text content (hybrid JSON structure)
120
145
  */
121
- text: string;
146
+ get text(): string;
147
+ set text(v: string);
122
148
  /**
123
149
  * Text styling (hybrid JSON structure)
124
150
  * Provides direct access to styling properties
125
151
  */
126
- get style(): {
127
- fontSize: number | undefined;
128
- fontFamily: string | undefined;
129
- fontWeight: string | undefined;
130
- fontStyle: string | undefined;
131
- color: string | number | {
132
- type: "gradient";
133
- x0: number;
134
- y0: number;
135
- x1: number;
136
- y1: number;
137
- colors: Array<{
138
- ratio: number;
139
- color: string | number;
140
- }>;
141
- } | undefined;
142
- align: "center" | "left" | "right" | undefined;
143
- stroke: {
144
- color: string | number;
145
- width: number;
146
- join: "miter" | "round" | "bevel" | undefined;
147
- cap: "round" | "butt" | "square" | undefined;
148
- miterLimit: number | undefined;
149
- } | {
150
- color: string | number;
151
- width: number;
152
- join?: undefined;
153
- cap?: undefined;
154
- miterLimit?: undefined;
155
- } | undefined;
156
- shadow: {
157
- color: string | number;
158
- alpha: number;
159
- blur: number;
160
- offsetX: number;
161
- offsetY: number;
162
- } | undefined;
163
- wordWrap: boolean | undefined;
164
- wordWrapWidth: number | undefined;
165
- lineHeight: number | undefined;
166
- letterSpacing: number | undefined;
167
- };
152
+ get style(): any;
153
+ set style(opts: Partial<ITextClipOpts>);
154
+ /**
155
+ * Text alignment proxy for compatibility with UI
156
+ */
157
+ get textAlign(): 'left' | 'center' | 'right';
158
+ set textAlign(v: 'left' | 'center' | 'right');
159
+ /**
160
+ * Vertical alignment or decoration proxy
161
+ */
162
+ get verticalAlign(): string;
163
+ set verticalAlign(v: string);
164
+ /**
165
+ * Text case proxy
166
+ */
167
+ get textCase(): string;
168
+ set textCase(v: 'none' | 'uppercase' | 'lowercase' | 'title');
168
169
  private pixiText;
169
170
  private textStyle;
170
171
  private renderTexture;
@@ -185,13 +186,13 @@ export declare class TextClip extends BaseClip {
185
186
  startTime: number;
186
187
  duration: number;
187
188
  }>;
188
- constructor(text: string, opts?: ITextClipOpts, renderer?: Application["renderer"]);
189
+ constructor(text: string, opts?: ITextClipOpts, renderer?: Application['renderer']);
189
190
  /**
190
191
  * Set an external renderer (e.g., from Studio) to avoid creating our own Pixi App
191
192
  * This is an optimization for Studio preview
192
193
  * Can be called before ready() completes
193
194
  */
194
- setRenderer(renderer: Application["renderer"]): void;
195
+ setRenderer(renderer: Application['renderer']): void;
195
196
  /**
196
197
  * Get the renderer for rendering text to RenderTexture
197
198
  * Creates a minimal renderer as fallback if no external renderer is provided
@@ -206,7 +207,7 @@ export declare class TextClip extends BaseClip {
206
207
  getTexture(): Promise<Texture | null>;
207
208
  tick(_time: number): Promise<{
208
209
  video: ImageBitmap;
209
- state: "success";
210
+ state: 'success';
210
211
  }>;
211
212
  split(_time: number): Promise<[this, this]>;
212
213
  addEffect(effect: {
@@ -0,0 +1,37 @@
1
+ import { BaseClip } from './base-clip';
2
+ import { IClip } from './iclip';
3
+ import { TransitionKey } from '../transition/glsl/gl-transition';
4
+ export declare class TransitionClip extends BaseClip {
5
+ readonly type = "Transition";
6
+ ready: IClip['ready'];
7
+ private _meta;
8
+ get meta(): {
9
+ duration: number;
10
+ width: number;
11
+ height: number;
12
+ };
13
+ /**
14
+ * Unique identifier for this clip instance
15
+ */
16
+ id: string;
17
+ /**
18
+ * The transition configuration
19
+ */
20
+ transitionEffect: {
21
+ id: string;
22
+ key: TransitionKey;
23
+ name: string;
24
+ };
25
+ constructor(transitionKey: TransitionKey);
26
+ clone(): Promise<this>;
27
+ tick(_time: number): Promise<{
28
+ video: ImageBitmap | undefined;
29
+ state: 'success';
30
+ }>;
31
+ split(_time: number): Promise<[this, this]>;
32
+ toJSON(main?: boolean): any;
33
+ /**
34
+ * Create a TransitionClip instance from a JSON object
35
+ */
36
+ static fromObject(json: any): Promise<TransitionClip>;
37
+ }
@@ -20,7 +20,7 @@ export interface IMP4ClipOpts {
20
20
  */
21
21
  __unsafe_hardwareAcceleration__?: HardwarePreference;
22
22
  }
23
- type ExtMP4Sample = Omit<MP4Sample, "data"> & {
23
+ type ExtMP4Sample = Omit<MP4Sample, 'data'> & {
24
24
  is_idr: boolean;
25
25
  deleted?: boolean;
26
26
  data: null | Uint8Array;
@@ -32,7 +32,7 @@ type ExtMP4Sample = Omit<MP4Sample, "data"> & {
32
32
  *
33
33
  * @example
34
34
  * // Load video clip asynchronously
35
- * const videoClip = await VideoClip.fromUrl("clip.mp4", {
35
+ * const videoClip = await VideoClip.fromUrl('clip.mp4', {
36
36
  * x: 0,
37
37
  * y: 0,
38
38
  * width: 1920,
@@ -58,9 +58,10 @@ type ExtMP4Sample = Omit<MP4Sample, "data"> & {
58
58
  * @see [Decode and play video](https://webav-tech.github.io/WebAV/demo/1_1-decode-video)
59
59
  */
60
60
  export declare class VideoClip extends BaseClip implements IPlaybackCapable {
61
+ readonly type = "Video";
61
62
  private insId;
62
63
  private logger;
63
- ready: IClip["ready"];
64
+ ready: IClip['ready'];
64
65
  private _meta;
65
66
  get meta(): {
66
67
  duration: number;
@@ -81,7 +82,6 @@ export declare class VideoClip extends BaseClip implements IPlaybackCapable {
81
82
  /** Store video transform and rotation info, currently only restores rotation */
82
83
  private parsedMatrix;
83
84
  private vfRotater;
84
- private volume;
85
85
  private videoSamples;
86
86
  private audioSamples;
87
87
  private videoFrameFinder;
@@ -113,7 +113,7 @@ export declare class VideoClip extends BaseClip implements IPlaybackCapable {
113
113
  * @returns Promise that resolves to a video clip
114
114
  *
115
115
  * @example
116
- * const videoClip = await VideoClip.fromUrl("clip.mp4", {
116
+ * const videoClip = await VideoClip.fromUrl('clip.mp4', {
117
117
  * x: 0,
118
118
  * y: 0,
119
119
  * width: 1920,
@@ -134,7 +134,7 @@ export declare class VideoClip extends BaseClip implements IPlaybackCapable {
134
134
  *
135
135
  * @see [Remove video green screen background](https://webav-tech.github.io/WebAV/demo/3_2-chromakey-video)
136
136
  */
137
- tickInterceptor: <T extends Awaited<ReturnType<VideoClip["tick"]>>>(time: number, tickRet: T) => Promise<T>;
137
+ tickInterceptor: <T extends Awaited<ReturnType<VideoClip['tick']>>>(time: number, tickRet: T) => Promise<T>;
138
138
  /**
139
139
  * Get image frame and audio data at specified time
140
140
  * @param time Time in microseconds
@@ -142,7 +142,7 @@ export declare class VideoClip extends BaseClip implements IPlaybackCapable {
142
142
  tick(time: number): Promise<{
143
143
  video?: VideoFrame;
144
144
  audio: Float32Array[];
145
- state: "success" | "done";
145
+ state: 'success' | 'done';
146
146
  }>;
147
147
  split(time: number): Promise<[this, this]>;
148
148
  addEffect(effect: {