import { clContext as nodenCLContext } from 'nodencl'; import { Layer } from './layer'; import { RedioPipe, RedioEnd } from 'redioactive'; import { OpenCLBuffer } from 'nodencl'; import { Frame } from 'beamcoder'; import { VideoFormat } from './config'; import { ClJobs } from './clJobQueue'; export declare class CombineLayer { private readonly layer; private readonly audioPipe; private readonly videoPipe; private readonly endEvent; private audioStarted; private videoStarted; private audioEnd; private videoEnd; constructor(layer: Layer, audPipe: RedioPipe, vidPipe: RedioPipe); getLayer(): Layer; getAudioPipe(): RedioPipe; getVideoPipe(): RedioPipe; checkAudio(frame: Frame | RedioEnd): boolean; checkVideo(frame: OpenCLBuffer | RedioEnd): boolean; } export declare class Combiner { private readonly clContext; private readonly chanID; private readonly consumerFormat; private readonly clJobs; private lastNumAudLayers; private lastNumVidLayers; private numConsumers; private audCombiner; private vidCombiner; private audioPipe; private videoPipe; private combineLayers; private audLayerPipes; private vidLayerPipes; constructor(clContext: nodenCLContext, chanID: string, consumerFormat: VideoFormat, clJobs: ClJobs); initialise(): Promise; makeAudCombiner(numLayers: number): Promise; makeVidCombiner(numLayers: number): Promise; updateLayers(layers: CombineLayer[]): void; addConsumer(): void; removeConsumer(): void; getAudioPipe(): RedioPipe | undefined; getVideoPipe(): RedioPipe | undefined; }