homebridge-plugin-eufy-security
Version:
Eufy Security homebridge plugin for video doorbell.
52 lines • 2.12 kB
TypeScript
/// <reference types="node" />
import { CameraController, CameraStreamingDelegate, PrepareStreamCallback, PrepareStreamRequest, SnapshotRequest, SnapshotRequestCallback, SRTPCryptoSuites, StreamingRequest, StreamRequestCallback } from 'homebridge';
import { Socket } from 'dgram';
import { FullDevice } from 'eufy-node-client/src/http/http-response.models';
import { EufySecurityHomebridgePlatform } from './platform';
import { FfmpegProcess } from './ffmpeg';
declare type SessionInfo = {
address: string;
localAddress: string;
ipv6: boolean;
videoPort: number;
videoReturnPort: number;
videoCryptoSuite: SRTPCryptoSuites;
videoSRTP: Buffer;
videoSSRC: number;
audioPort: number;
audioReturnPort: number;
audioCryptoSuite: SRTPCryptoSuites;
audioSRTP: Buffer;
audioSSRC: number;
};
declare type ActiveSession = {
mainProcess?: FfmpegProcess;
returnProcess?: FfmpegProcess;
timeout?: NodeJS.Timeout;
socket?: Socket;
};
export declare class EufyCameraStreamingDelegate implements CameraStreamingDelegate {
private readonly hap;
private readonly log;
private readonly cameraName;
private readonly videoProcessor;
private readonly interfaceName?;
private readonly platform;
private readonly device;
readonly controller: CameraController;
private debug;
private audio;
pendingSessions: Record<string, SessionInfo>;
ongoingSessions: Record<string, ActiveSession>;
timeouts: Record<string, NodeJS.Timeout>;
constructor(platform: EufySecurityHomebridgePlatform, device: FullDevice);
private determineResolution;
handleSnapshotRequest(request: SnapshotRequest, callback: SnapshotRequestCallback): void;
getIpAddress(ipv6: boolean, interfaceName?: string): Promise<string>;
prepareStream(request: PrepareStreamRequest, callback: PrepareStreamCallback): Promise<void>;
private startStream;
handleStreamRequest(request: StreamingRequest, callback: StreamRequestCallback): void;
stopStream(sessionId: string): void;
}
export {};
//# sourceMappingURL=new-streaming-delegate.d.ts.map