mfx
Version:
In-browser video editing toolkit, with effects accelerated by WebGL
74 lines (73 loc) • 2.35 kB
TypeScript
import { MFXGLEffect } from "./Effect";
import type { Uniform } from "./shaders";
export type Vec3 = [number, number, number];
export type Origin = Vec3;
export declare const visual: {
adjustment: ({ saturation, brightness, contrast, }: {
saturation?: Uniform<number>;
brightness?: Uniform<number>;
contrast?: Uniform<number>;
}) => MFXGLEffect[];
mask: (video: ReadableStream<VideoFrame>) => MFXGLEffect[];
add: (video: ReadableStream<VideoFrame> | ((_: VideoFrame) => VideoFrame), { offset, normal, additive, multiply, screen, alpha, }?: {
offset?: Uniform<number[]>;
normal?: Uniform<number>;
additive?: Uniform<number>;
multiply?: Uniform<number>;
screen?: Uniform<number>;
alpha?: Uniform<number>;
}) => MFXGLEffect[];
scale: ({ values, origin, }: {
values: Uniform<Vec3>;
origin?: Uniform<Origin>;
}) => MFXGLEffect[];
crop: ({ values, origin, }: {
values: Uniform<Vec3>;
origin?: Uniform<Origin>;
}) => MFXGLEffect[];
translate: ({ values, }: {
values: Uniform<Vec3>;
}) => MFXGLEffect[];
rotate: ({ angle, values, origin, }: {
angle: Uniform<number>;
values: Uniform<Vec3>;
origin?: Uniform<Origin>;
}) => MFXGLEffect[];
zoom: ({ factor, x, y, }: {
factor?: Uniform<number>;
x?: Uniform<number>;
y?: Uniform<number>;
}, { isDirty, }?: {
isDirty?: boolean;
}) => MFXGLEffect[];
blur: ({ passes, quality, dirty, }: {
dirty?: boolean;
passes?: number;
quality?: Uniform<number>;
}) => MFXGLEffect[];
edge: ({ passes }?: {
passes?: number;
}) => MFXGLEffect[];
edge1: ({ passes }?: {
passes?: number;
}) => MFXGLEffect[];
edge2: ({ passes }?: {
passes?: number;
}) => MFXGLEffect[];
sharpen: ({ passes }?: {
passes?: number;
}) => MFXGLEffect[];
boxBlur: ({ passes }?: {
passes?: number;
}) => MFXGLEffect[];
gaussianBlur: ({ passes }?: {
passes?: number;
}) => MFXGLEffect[];
emboss: ({ passes }?: {
passes?: number;
}) => MFXGLEffect[];
convolution3x3: ({ passes, kernel, }: {
passes?: number;
kernel: Uniform<number[]>;
}) => MFXGLEffect[];
};