UNPKG

@eleven-am/transcoder

Version:

High-performance HLS transcoding library with hardware acceleration, intelligent client management, and distributed processing support for Node.js

57 lines 2.06 kB
import { EventEmitter } from 'events'; import { TaskEither } from '@eleven-am/fp'; import { SegmentProcessingData, SegmentProcessingResult } from './distributed'; export interface PipelineMetrics { activeSegments: number; completedSegments: number; failedSegments: number; averageProcessingTime: number; pipelineDepth: number; } /** * Pipelined segment processor that allows overlapping segment processing * for improved throughput and reduced latency */ export declare class SegmentPipelineProcessor extends EventEmitter { private readonly pipeline; private readonly processingTimes; private completedCount; private failedCount; private readonly maxPipelineDepth; private readonly maxProcessingTimes; constructor(maxPipelineDepth?: number); /** * Process a segment with pipeline management */ processSegment(segmentNumber: number, processor: (data: SegmentProcessingData) => Promise<SegmentProcessingResult>, data: SegmentProcessingData): Promise<TaskEither<SegmentProcessingResult>>; /** * Process multiple segments in batches with pipeline optimization */ processBatch(segments: Array<{ number: number; data: SegmentProcessingData; }>, processor: (data: SegmentProcessingData) => Promise<SegmentProcessingResult>): Promise<TaskEither<SegmentProcessingResult[]>>; /** * Wait for all segments in pipeline to complete */ waitForPipeline(): Promise<void>; /** * Get current pipeline metrics */ getMetrics(): PipelineMetrics; /** * Dynamically adjust pipeline depth based on performance */ adjustPipelineDepth(cpuUsage: number, memoryUsage: number): void; /** * Clear the pipeline and reset metrics */ clear(): void; private waitForPipelineSpace; private handleSegmentSuccess; private handleSegmentFailure; private cleanupSegment; private recordProcessingTime; private calculateAverageProcessingTime; } //# sourceMappingURL=segmentPipelineProcessor.d.ts.map