media-stream-library
Version:
Media stream library for Node & the Web.
81 lines (80 loc) • 2.59 kB
TypeScript
import { RtcpMessage } from '../../components/message';
export declare enum RTCPPacketType {
SR = 200,
RR = 201,
SDES = 202,
BYE = 203,
APP = 204
}
export interface Rtcp {
readonly version: number;
readonly padding: boolean;
readonly count: number;
readonly packetType: RTCPPacketType | number;
readonly length: number;
}
export declare const parseRtcp: (buffer: Buffer) => Rtcp | RtcpSR | RtcpRR | RtcpSDES | RtcpBye | RtcpApp;
export declare const rtcpMessageFromBuffer: (channel: number, buffer: Buffer) => RtcpMessage;
export declare const SR: {
packetType: number;
};
export interface RtcpReportBlock {
readonly syncSource: number;
readonly fractionLost: number;
readonly cumulativeNumberOfPacketsLost: number;
readonly extendedHighestSequenceNumberReceived: number;
readonly interarrivalJitter: number;
readonly lastSRTimestamp: number;
readonly delaySinceLastSR: number;
}
export interface RtcpSR extends Rtcp {
readonly version: RTCPPacketType.SR;
readonly syncSource: number;
readonly ntpMost: number;
readonly ntpLeast: number;
readonly rtpTimestamp: number;
readonly sendersPacketCount: number;
readonly sendersOctetCount: number;
readonly reports: readonly RtcpReportBlock[];
}
export declare const isRtcpSR: (rtcp: Rtcp) => rtcp is RtcpSR;
export interface RtcpRR extends Rtcp {
readonly version: RTCPPacketType.RR;
readonly syncSource: number;
readonly reports: readonly RtcpReportBlock[];
}
export declare const isRtcpRR: (rtcp: Rtcp) => rtcp is RtcpRR;
export declare enum SDESItem {
CNAME = 1,
NAME = 2,
EMAIL = 3,
PHONE = 4,
LOC = 5,
TOOL = 6,
NOTE = 7,
PRIV = 8
}
export interface RtcpSDESBlock {
readonly source: number;
readonly items: Array<[number, string] | [SDESItem.PRIV, string, string]>;
}
export interface RtcpSDES extends Rtcp {
readonly version: RTCPPacketType.SDES;
readonly syncSource: number;
readonly sourceDescriptions: readonly RtcpSDESBlock[];
}
export declare const isRtcpSDES: (rtcp: Rtcp) => rtcp is RtcpSDES;
export interface RtcpBye extends Rtcp {
readonly version: RTCPPacketType.BYE;
readonly sources: number[];
readonly reason?: string;
}
export declare const isRtcpBye: (rtcp: Rtcp) => rtcp is RtcpBye;
export interface RtcpApp extends Rtcp {
readonly version: RTCPPacketType.APP;
readonly subtype: number;
readonly source: number;
readonly name: string;
readonly data: Buffer;
}
export declare const isRtcpApp: (rtcp: Rtcp) => rtcp is RtcpApp;