UNPKG

yuv-rx

Version:

Reading videos as Rx Observables of decoded frames

89 lines (88 loc) 2.4 kB
/// <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; }; }