rtp.js
Version:
RTP stack for Node.js and browser written in TypeScript
204 lines • 6.11 kB
TypeScript
import { RtcpPacket, type RtcpPacketDump } from './RtcpPacket';
import { Serializable, type SerializableDump } from '../Serializable';
export declare const RECEPTION_REPORT_LENGTH = 24;
/**
* RTCP Receiver Report packet info dump.
*
* @category RTCP
*/
export type ReceiverReportPacketDump = RtcpPacketDump & {
ssrc: number;
reports: ReceptionReportDump[];
};
/**
* Reception Report dump.
*
* @category RTCP
*/
export type ReceptionReportDump = SerializableDump & {
ssrc: number;
fractionLost: number;
totalLost: number;
highestSeq: number;
jitter: number;
lsr: number;
dlsr: number;
};
/**
* RTCP Receiver Report packet.
*
* ```text
* 0 1 2 3
* 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* header |V=2|P| RC | PT=RR=201 | length |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | SSRC of packet sender |
* +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
* report | SSRC_1 (SSRC of first source) |
* block +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* 1 | fraction lost | cumulative number of packets lost |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | extended highest sequence number received |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | interarrival jitter |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | last SR (LSR) |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | delay since last SR (DLSR) |
* +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
* report | SSRC_2 (SSRC of second source) |
* block +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* 2 : ... :
* +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
* | profile-specific extensions |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* ```
*
* @category RTCP
*
* @see
* - [RFC 3550 section 6.4.2](https://datatracker.ietf.org/doc/html/rfc3550#section-6.4.2)
*/
export declare class ReceiverReportPacket extends RtcpPacket {
#private;
/**
* @param view - If given it will be parsed. Otherwise an empty RTCP Receiver
* Report packet will be created.
*
* @throws
* - If given `view` does not contain a valid RTCP Receiver Report packet.
*/
constructor(view?: DataView);
/**
* Dump Receiver Report packet info.
*/
dump(): ReceiverReportPacketDump;
/**
* @inheritDoc
*/
getByteLength(): number;
/**
* @inheritDoc
*/
needsSerialization(): boolean;
/**
* @inheritDoc
*/
serialize(buffer?: ArrayBufferLike, byteOffset?: number): void;
/**
* @inheritDoc
*/
clone(buffer?: ArrayBufferLike, byteOffset?: number, serializationBuffer?: ArrayBufferLike, serializationByteOffset?: number): ReceiverReportPacket;
/**
* Get sender SSRC.
*/
getSsrc(): number;
/**
* Set sender SSRC.
*/
setSsrc(ssrc: number): void;
/**
* Get Reception Reports.
*/
getReports(): ReceptionReport[];
/**
* Set Reception Reports.
*
* @remarks
* - Serialization is needed after calling this method.
*/
setReports(reports: ReceptionReport[]): void;
/**
* Add Reception Report.
*
* @remarks
* - Serialization is needed after calling this method.
*/
addReport(report: ReceptionReport): void;
}
/**
* RTCP Reception Report.
*
* @category RTCP
*/
export declare class ReceptionReport extends Serializable {
/**
* @param view - If given it will be parsed. Otherwise an empty RTCP Receiver
* Report will be created.
*/
constructor(view?: DataView);
/**
* Dump Reception Report info.
*/
dump(): ReceptionReportDump;
/**
* @inheritDoc
*/
getByteLength(): number;
/**
* @inheritDoc
*/
serialize(buffer?: ArrayBufferLike, byteOffset?: number): void;
/**
* @inheritDoc
*/
clone(buffer?: ArrayBufferLike, byteOffset?: number, serializationBuffer?: ArrayBufferLike, serializationByteOffset?: number): ReceptionReport;
/**
* Get receiver SSRC.
*/
getSsrc(): number;
/**
* Set receiver SSRC.
*/
setSsrc(ssrc: number): void;
/**
* Get fraction lost.
*/
getFractionLost(): number;
/**
* Set fraction lost.
*/
setFractionLost(fractionLost: number): void;
/**
* Get total lost.
*/
getTotalLost(): number;
/**
* Set total lost.
*/
setTotalLost(totalLost: number): void;
/**
* Get highest RTP sequence number.
*/
getHighestSeqNumber(): number;
/**
* Set highest RTP sequence number.
*/
setHighestSeqNumber(seq: number): void;
/**
* Get interarrival jitter.
*/
getJitter(): number;
/**
* Set interarrival jitter.
*/
setJitter(jitter: number): void;
/**
* Set last Sender Report timestamp.
*/
getLastSRTimestamp(): number;
/**
* Set last Sender Report timestamp.
*/
setLastSRTimestamp(lsr: number): void;
/**
* Get delay since last Sender Report.
*/
getDelaySinceLastSR(): number;
/**
* Set delay since last Sender Report.
*/
setDelaySinceLastSR(dlsr: number): void;
}
//# sourceMappingURL=ReceiverReportPacket.d.ts.map