yuv-rx
Version:
Reading videos as Rx Observables of decoded frames
89 lines (88 loc) • 2.4 kB
TypeScript
/// <reference types="node" />
export type Rational = {
readonly numerator: number;
readonly denominator: number;
};
export declare function parseRational(str: string): Rational;
export type Rectangle = {
x: number;
y: number;
width: number;
height: number;
};
export type Dimension = {
width: number;
height: number;
};
export interface ColorPlane {
getWidth(): number;
getHeight(): number;
getBounds(): Rectangle;
readonly data: Buffer;
getDimension(): Dimension;
getSubimage(r: Rectangle, dest?: Buffer): this;
}
export declare class Gray implements ColorPlane {
readonly width: number;
readonly height: number;
readonly data: Buffer;
constructor(width: number, height: number, data?: Buffer);
getPixel(x: number, y: number): number;
putPixel(x: number, y: number, pix: number): void;
getWidth(): number;
getHeight(): number;
getBounds(): Rectangle;
getDimension(): Dimension;
getSubimage(this: Gray, r: Rectangle, dest?: Buffer): this;
}
export declare class InterleavedPlane implements ColorPlane {
readonly width: number;
readonly height: number;
readonly data: Buffer;
readonly colorComponents: string[];
private readonly stride;
constructor(width: number, height: number, colorComponents: string[], data?: Buffer);
private colorComponentIdx;
getPixel(x: number, y: number, colorComponent: string): number;
putPixel(x: number, y: number, colorComponent: string, pix: number): void;
getWidth(): number;
getHeight(): number;
getBounds(): Rectangle;
getDimension(): Dimension;
getSubimage(this: InterleavedPlane, r: Rectangle, dest?: Buffer): this;
}
export interface FrameHeader {
width: number;
height: number;
fn: number;
}
export interface Frame {
header: FrameHeader;
colorPlanes: {
[key: string]: ColorPlane;
};
}
export interface YuvFrame extends Frame {
colorPlanes: {
y: ColorPlane;
u: ColorPlane;
v: ColorPlane;
};
}
export interface RgbFrame extends Frame {
colorPlanes: {
r: ColorPlane;
g: ColorPlane;
b: ColorPlane;
};
}
export interface InterleavedRgbFrame extends Frame {
colorPlanes: {
rgb: ColorPlane;
};
}
export interface InterleavedRgbaFrame extends Frame {
colorPlanes: {
rgba: ColorPlane;
};
}