UNPKG

homebridge-loxone-proxy

Version:

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

46 lines 2.21 kB
/// <reference types="node" /> /// <reference types="node" /> /// <reference types="node" /> /// <reference types="node" /> import { CameraController, CameraRecordingConfiguration, CameraRecordingDelegate, HDSProtocolSpecificErrorReason, RecordingPacket } from 'homebridge'; import { ChildProcess } from 'child_process'; import { Socket, Server } from 'net'; import { Readable } from 'stream'; import { LoxonePlatform } from '../../LoxonePlatform'; export interface MP4Atom { header: Buffer; length: number; type: string; data: Buffer; } export interface FFMpegFragmentedMP4Session { socket: Socket; cp: ChildProcess; generator: AsyncGenerator<MP4Atom>; } export declare const PREBUFFER_LENGTH = 4000; export declare const FRAGMENTS_LENGTH = 4000; export declare function listenServer(server: Server): 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 { readonly platform: LoxonePlatform; private readonly hap; private readonly log; private readonly cameraName; private process; private readonly videoProcessor; readonly controller: CameraController | undefined; private preBufferSession; private preBuffer; constructor(platform: LoxonePlatform, ip: string); updateRecordingActive(active: boolean): void; updateRecordingConfiguration(configuration: CameraRecordingConfiguration | undefined): void; handleRecordingStreamRequest(streamId: number): AsyncGenerator<RecordingPacket, any, unknown>; acknowledgeStream?(streamId: number): void; closeRecordingStream(streamId: number, reason: HDSProtocolSpecificErrorReason | undefined): void; startPreBuffer(): Promise<void>; handleFragmentsRequests(configuration: CameraRecordingConfiguration): AsyncGenerator<Buffer, void, unknown>; startFFMPegFragmetedMP4Session(ffmpegPath: string, ffmpegInput: string[], audioOutputArgs: string[], videoOutputArgs: string[]): Promise<FFMpegFragmentedMP4Session>; } //# sourceMappingURL=RecordingDelegate.d.ts.map