///
import * as net from "net";
import { EventEmitter } from "events";
import * as transform from "sdp-transform";
declare enum ReadStates {
SEARCHING = 0,
READING_RTSP_HEADER = 1,
READING_RTSP_PAYLOAD = 2,
READING_RAW_PACKET_SIZE = 3,
READING_RAW_PACKET = 4
}
declare type Connection = 'udp' | 'tcp';
declare type Headers = {
[key: string]: string | number | undefined;
Session?: string;
Location?: string;
CSeq?: number;
"WWW-Authenticate"?: string;
Transport?: string;
Unsupported?: string;
};
export default class RTSPClient extends EventEmitter {
username: string;
password: string;
headers: {
[key: string]: string;
};
isConnected: boolean;
_url?: string;
_client?: net.Socket;
_cSeq: number;
_unsupportedExtensions?: string[];
_session?: string;
_keepAliveID?: any;
readState: ReadStates;
messageBytes: number[];
rtspContentLength: number;
rtspStatusLine: string;
rtspHeaders: Headers;
rtspPacketLength: number;
rtspPacket: Buffer;
rtspPacketPointer: number;
clientSSRC: number;
constructor(username: string, password: string, headers: {
[key: string]: string;
});
_netConnect(hostname: string, port: number): Promise<{}>;
connect(url: string, options?: {
keepAlive: boolean;
connection: Connection;
}): Promise<{
codec: any;
mediaSource: {
type: string;
port: number;
protocol: string;
payloads?: string | undefined;
} & transform.MediaDescription;
transport: {
[key: string]: string;
};
isH264: boolean;
}>;
request(requestName: string, headersParam?: Headers, url?: string): Promise<{
headers: Headers;
mediaHeaders?: string[];
} | void>;
respond(status: string, headersParam?: Headers): void;
play(): Promise;
pause(): Promise;
close(isImmediate?: boolean): Promise;
_onData(data: Buffer): void;
_sendInterleavedData(channel: number, buffer: Buffer): void;
_sendUDPData(host: string, port: number, buffer: Buffer): void;
_emptyReceiverReport(): Buffer;
}
export { RTPPacket, RTCPPacket } from "./util";