UNPKG

homebridge-loxone-proxy

Version:

Homebridge Dynamic Platform Plugin which exposes a Loxone System to Homekit.

56 lines 2.42 kB
/// <reference types="node" /> /// <reference types="node" /> /// <reference types="node" /> /// <reference types="node" /> /// <reference types="node" /> /// <reference types="node" /> import { CameraRecordingConfiguration, CameraRecordingDelegate, HDSProtocolSpecificErrorReason, RecordingPacket } from 'homebridge'; import type { Logger } from 'homebridge'; import { ChildProcess } from 'child_process'; import { Server } from 'net'; import { Readable } from 'stream'; import { Buffer } from 'buffer'; import { LoxonePlatform } from '../../LoxonePlatform'; export interface MP4Atom { header: Buffer; length: number; type: string; data: Buffer; } export interface FFMpegFragmentedMP4Session { generator: AsyncGenerator<MP4Atom>; cp: ChildProcess; } export declare const PREBUFFER_LENGTH = 4000; export declare function listenServer(server: Server, log: Logger): Promise<number>; export declare function readLength(readable: Readable, length: number): Promise<Buffer>; export declare function parseFragmentedMP4(readable: Readable): AsyncGenerator<MP4Atom>; export declare class RecordingDelegate implements CameraRecordingDelegate { private readonly platform; private readonly hap; private readonly log; private readonly videoProcessor; private readonly streamUrl; private readonly base64auth; private readonly cameraName; private preBufferSession?; private preBuffer?; private preBufferInitPromise?; private currentRecordingConfiguration?; private activeFFmpegProcesses; private streamAbortControllers; private closedStreams; private recordingActive; private shuttingDown; constructor(platform: LoxonePlatform, streamUrl: string, base64auth: string, cameraName: string); updateRecordingActive(active: boolean): Promise<void>; updateRecordingConfiguration(config: CameraRecordingConfiguration | undefined): Promise<void>; handleRecordingStreamRequest(streamId: number): AsyncGenerator<RecordingPacket>; closeRecordingStream(streamId: number, reason?: HDSProtocolSpecificErrorReason): void; startPreBuffer(): Promise<void>; handleFragmentsRequests(config: CameraRecordingConfiguration, streamKey: string, abortSignal?: AbortSignal): AsyncGenerator<Buffer>; private startFFMPegFragmetedMP4Session; private toStreamKey; private isStreamClosed; } //# sourceMappingURL=RecordingDelegate.d.ts.map