@omnimedia/omnitool
Version:
open source video processing tools
39 lines (38 loc) • 1.68 kB
TypeScript
import { Ms } from '../../../units/ms.js';
import { Id, TimelineFile } from '../../parts/basics.js';
import { SampleContext } from './samplers/visual/parts/types.js';
import { Mat6 } from '../../utils/matrix.js';
import { ContainerItem, Item } from '../../parts/item.js';
type WalkCallbacks = {
sequence?: (x: Item.Sequence, matrix: Mat6, ancestors: AncestorAt[]) => void;
stack?: (x: Item.Stack, matrix: Mat6, ancestors: AncestorAt[]) => void;
video?: (x: Item.Video, matrix: Mat6, ancestors: AncestorAt[]) => void;
image?: (x: Item.Image, matrix: Mat6, ancestors: AncestorAt[]) => void;
text?: (x: Item.Text, matrix: Mat6, ancestors: AncestorAt[]) => void;
caption?: (x: Item.Caption, matrix: Mat6, ancestors: AncestorAt[]) => void;
audio?: (x: Item.Audio) => void;
};
interface Props {
timeline: TimelineFile;
timecode: Ms;
}
export interface AncestorAt {
item: ContainerItem;
localTime: Ms;
}
interface At {
item: Item.Any;
localTime: Ms;
ancestors: AncestorAt[];
}
export declare function itemsAt(p: Props): At[];
interface FromProps {
timeline: TimelineFile;
from: Ms;
}
export declare function itemsFrom(p: FromProps): At[];
export declare function computeWorldMatrix(items: Map<Id, Item.Any>, ancestors: AncestorAt[], item: Item.Any, localTime: Ms): Mat6;
export declare function walk(id: Id, items: Map<Id, Item.Any>, parentMatrix: Mat6, localTime: Ms, callbacks: WalkCallbacks, ancestors?: AncestorAt[]): void;
export declare function computeItemDuration(id: number, timeline: TimelineFile): Ms;
export declare function computeOpacity(ctx: SampleContext, item: Item.Any, time: Ms): number;
export {};