UNPKG

2.01 kBTypeScriptView Raw
1import { Socket, SocketType } from "dgram";
2/**
3 * @group Camera
4 */
5export interface RTPProxyOptions {
6 disabled: boolean;
7 isIPV6?: boolean;
8 outgoingAddress: string;
9 outgoingPort: number;
10 outgoingSSRC: number;
11}
12/**
13 * RTPProxy to proxy unencrypted RTP and RTCP
14 *
15 * At early days of HomeKit camera support, HomeKit allowed for unencrypted RTP stream.
16 * The proxy was created to deal with RTCP and SSRC related stuff from external streams back in that days.
17 * Later HomeKit removed support for unencrypted stream so it’s mostly no longer useful anymore, only really for testing
18 * with a custom HAP controller.
19 * @group Camera
20 */
21export default class RTPProxy {
22 options: RTPProxyOptions;
23 startingPort: number;
24 type: SocketType;
25 outgoingAddress: string;
26 outgoingPort: number;
27 incomingPayloadType: number;
28 outgoingSSRC: number;
29 incomingSSRC: number | null;
30 outgoingPayloadType: number | null;
31 disabled: boolean;
32 incomingRTPSocket: Socket;
33 incomingRTCPSocket: Socket;
34 outgoingSocket: Socket;
35 serverAddress?: string;
36 serverRTPPort?: number;
37 serverRTCPPort?: number;
38 constructor(options: RTPProxyOptions);
39 setup(): Promise<void>;
40 destroy(): void;
41 incomingRTPPort(): number;
42 incomingRTCPPort(): number;
43 outgoingLocalPort(): number;
44 setServerAddress(address: string): void;
45 setServerRTPPort(port: number): void;
46 setServerRTCPPort(port: number): void;
47 setIncomingPayloadType(pt: number): void;
48 setOutgoingPayloadType(pt: number): void;
49 sendOut(msg: Buffer): void;
50 sendBack(msg: Buffer): void;
51 onBound(): void;
52 rtpMessage(msg: Buffer): void;
53 processRTCPMessage(msg: Buffer, transform: (pt: number, packet: Buffer) => Buffer): Buffer | null;
54 rtcpMessage(msg: Buffer): void;
55 rtcpReply(msg: Buffer): void;
56 createSocket(type: SocketType): Promise<Socket>;
57 createSocketPair(type: SocketType): Promise<Socket[]>;
58}
59//# sourceMappingURL=RTPProxy.d.ts.map
\No newline at end of file