UNPKG

homebridge-eufy-security

Version:
52 lines 2.06 kB
import { CameraController, CameraStreamingDelegate, PrepareStreamCallback, PrepareStreamRequest, SnapshotRequest, SnapshotRequestCallback, SRTPCryptoSuites, StreamingRequest, StreamRequestCallback } from 'homebridge'; import { Socket } from 'dgram'; import { FFmpeg } from '../utils/ffmpeg'; import { LocalLivestreamManager } from './LocalLivestreamManager'; import { TalkbackStream } from '../utils/Talkback'; import { CameraAccessory } from '../accessories/CameraAccessory'; import { Logger, ILogObj } from 'tslog'; export type SessionInfo = { address: string; ipv6: boolean; videoPort: number; videoReturnPort: number; videoCryptoSuite: SRTPCryptoSuites; videoSRTP: Buffer; videoSSRC: number; audioPort: number; audioReturnPort: number; audioCryptoSuite: SRTPCryptoSuites; audioSRTP: Buffer; audioSSRC: number; }; type ActiveSession = { videoProcess?: FFmpeg; audioProcess?: FFmpeg; returnProcess?: FFmpeg; timeout?: NodeJS.Timeout; socket?: Socket; talkbackStream?: TalkbackStream; }; export declare class StreamingDelegate implements CameraStreamingDelegate { private camera; private videoConfig; private controller?; private platform; private device; readonly log: Logger<ILogObj>; private localLivestreamManager; private snapshotManager; pendingSessions: Map<string, SessionInfo>; ongoingSessions: Map<string, ActiveSession>; timeouts: Map<string, NodeJS.Timeout>; constructor(camera: CameraAccessory); setController(controller: CameraController): void; getLivestreamManager(): LocalLivestreamManager; handleSnapshotRequest(request: SnapshotRequest, callback: SnapshotRequestCallback): Promise<void>; prepareStream(request: PrepareStreamRequest, callback: PrepareStreamCallback): Promise<void>; private startStream; handleStreamRequest(request: StreamingRequest, callback: StreamRequestCallback): void; stopStream(sessionId: string): void; } export {}; //# sourceMappingURL=streamingDelegate.d.ts.map