@diffusionstudio/core-v4
Version:
A fast, browser based video compositing engine powered by WebCodecs
32 lines (31 loc) • 1.17 kB
TypeScript
import { ClipProps } from '../clip';
import { VisualMixinProps } from '../visual';
import { StyleOverride, TextStyle } from '../../primitives';
import { CaptionPresetType } from './types';
import { hex, Percent } from '../../types';
import { Renderer, TextAlign, TextBaseline, Stroke, Shadow, Font } from '../../renderer';
import { WordGroup } from '../../sources';
import { CaptionClip } from './caption';
import { Background } from '../text';
export interface CaptionsClipProps extends ClipProps, Omit<VisualMixinProps, 'height'>, Partial<TextStyle> {
align?: TextAlign;
baseline?: TextBaseline;
stroke?: Stroke;
shadow?: Shadow | Shadow[];
range?: [number, number];
leading?: number;
styles?: StyleOverride[];
maxWidth?: number | Percent;
preset?: CaptionPreset<CaptionPresetType>;
}
export interface CaptionPreset<T extends CaptionPresetType> {
type: T;
font?: Font;
groups: WordGroup[];
applied: boolean;
applyStyles(clip: CaptionClip): Promise<void>;
render(clip: CaptionClip, renderer: Renderer): void;
init(clip: CaptionClip): void;
highlightColors?: hex[];
background?: Background;
}