@diffusionstudio/core-v4
Version:
A fast, browser based video compositing engine powered by WebCodecs
86 lines (85 loc) • 3.32 kB
TypeScript
import { VideoSource } from '../../sources';
import { AudioClip } from '../audio';
import { Renderer } from '../../renderer';
import { Layer } from '../../layer';
import { VideoClipAnimationOptions, VideoClipProps } from './interfaces';
declare const VideoClip_base: {
new (...args: any[]): {
source?: {
height: number;
width: number;
aspectRatio: number;
} | undefined;
_position: {
x: number;
y: number;
};
_layoutCache: import('../..').Size;
_height?: number;
_width?: number;
_aspectRatio?: number;
_keepAspectRatio: boolean;
_mask?: import('../..').Mask;
constraints: import('..').Constraints;
anchorX: number;
anchorY: number;
scaleX: number;
scaleY: number;
translateX: number;
translateY: number;
rotation: number;
opacity: number;
effects: import('..').Effect[];
blendMode?: import('../..').BlendMode;
get x(): number;
set x(value: number | import('../..').Percent);
get y(): number;
set y(value: number | import('../..').Percent);
get filter(): string;
get translate(): import('../..').Point;
set translate(value: import('../..').Point | number);
get anchor(): import('../..').Point;
set anchor(value: import('../..').Point | number);
get scale(): import('../..').Point;
set scale(value: import('../..').Point | number);
get mask(): import('../..').Mask | undefined;
set mask(value: import('../..').Mask | undefined);
get keepAspectRatio(): boolean;
set keepAspectRatio(value: boolean);
get aspectRatio(): number;
set aspectRatio(value: number | undefined);
get height(): number;
set height(value: import('../..').Percent | number | undefined);
get width(): number;
set width(value: import('../..').Percent | number | undefined);
get position(): import('../..').Point;
set position(value: import('../..').RelativePoint | "center");
animate(time: number): /*elided*/ any;
layout(next: import('../..').Size): void;
get size(): import('../..').Size;
get bounds(): [import('../..').Point, import('../..').Point, import('../..').Point, import('../..').Point];
animations: import('..').ClipAnimationOptions;
start: number;
end: number;
toJSON(exclude?: string[]): unknown;
fromJSON<K = {}>(obj: K extends string ? never : K): /*elided*/ any;
};
readonly VISUAL_MIXIN: symbol;
} & typeof AudioClip;
export declare class VideoClip extends VideoClip_base {
_keepAspectRatio: boolean;
readonly type = "VIDEO";
layer?: Layer<VideoClip>;
source: VideoSource;
private videoDecoders;
private decoderPrimed;
animations: VideoClipAnimationOptions;
constructor(source?: VideoSource, props?: VideoClipProps);
initRenderer(renderer: Renderer): Promise<void>;
update(renderer: Renderer): Promise<void>;
ambientUpdate(renderer: Renderer): void;
render(video: Renderer): void;
exit(renderer: Renderer): Promise<void>;
deinitRenderer(renderer: Renderer): Promise<void>;
}
export {};