rtp.js
Version:
RTP stack for Node.js and browser written in TypeScript
160 lines • 5.55 kB
TypeScript
import { RtcpPacket, type RtcpPacketDump } from './RtcpPacket';
import { ReceptionReport, type ReceptionReportDump } from './ReceiverReportPacket';
/**
* RTCP Sender Report packet info dump.
*
* @category RTCP
*/
export type SenderReportPacketDump = RtcpPacketDump & {
ssrc: number;
ntpSeq: number;
ntpFraction: number;
rtpTimestamp: number;
packetCount: number;
octetCount: number;
reports: ReceptionReportDump[];
};
/**
* RTCP Sender 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=SR=200 | length |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | SSRC of sender |
* +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
* sender | NTP timestamp, most significant word |
* info +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | NTP timestamp, least significant word |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | RTP timestamp |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | sender's packet count |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | sender's octet count |
* +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
* 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.1](https://datatracker.ietf.org/doc/html/rfc3550#section-6.4.1)
*/
export declare class SenderReportPacket extends RtcpPacket {
#private;
/**
* @param view - If given it will be parsed. Otherwise an empty RTCP Sender
* Report packet will be created.
*
* @throws
* - If given `view` does not contain a valid RTCP Sender Report packet.
*/
constructor(view?: DataView);
/**
* Dump Sender Report packet info.
*/
dump(): SenderReportPacketDump;
/**
* @inheritDoc
*/
getByteLength(): number;
/**
* @inheritDoc
*/
needsSerialization(): boolean;
/**
* @inheritDoc
*/
serialize(buffer?: ArrayBufferLike, byteOffset?: number): void;
/**
* @inheritDoc
*/
clone(buffer?: ArrayBufferLike, byteOffset?: number, serializationBuffer?: ArrayBufferLike, serializationByteOffset?: number): SenderReportPacket;
/**
* Get sender SSRC.
*/
getSsrc(): number;
/**
* Set sender SSRC.
*/
setSsrc(ssrc: number): void;
/**
* Get NTP seconds.
*/
getNtpSeconds(): number;
/**
* Set NTP seconds.
*/
setNtpSeconds(seconds: number): void;
/**
* Get NTP fraction.
*/
getNtpFraction(): number;
/**
* Set NTP fraction.
*/
setNtpFraction(fraction: number): void;
/**
* Get RTP Timestamp.
*/
getRtpTimestamp(): number;
/**
* Set RTP Timestamp.
*/
setRtpTimestamp(timestamp: number): void;
/**
* Get RTP packet count.
*/
getPacketCount(): number;
/**
* Set RTP packet count.
*/
setPacketCount(count: number): void;
/**
* Get RTP octet count.
*/
getOctetCount(): number;
/**
* Set RTP octet count.
*/
setOctetCount(count: 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;
}
//# sourceMappingURL=SenderReportPacket.d.ts.map