UNPKG

rtp.js

Version:

RTP stack for Node.js and browser written in TypeScript

120 lines 3.44 kB
import { ExtendedReport, type ExtendedReportDump } from './extendedReports/ExtendedReport'; import { RtcpPacket, type RtcpPacketDump } from './RtcpPacket'; /** * RTCP XR packet info dump. * * @category RTCP */ export type XrPacketDump = RtcpPacketDump & { ssrc: number; reports: ExtendedReportDump[]; }; /** * RTCP XR 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|reserved | PT=XR=207 | length | * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ * | SSRC | * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ * report : report blocks : * blocks +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ * ``` * * @category RTCP * * @see * - [RFC 3611 section 2](https://datatracker.ietf.org/doc/html/rfc3611#section-2) */ export declare class XrPacket extends RtcpPacket { #private; /** * @param view - If given it will be parsed. Otherwise an empty RTCP XR packet * will be created. * * @throws * - If given `view` does not contain a valid RTCP XR packet. */ constructor(view?: DataView); /** * Dump XR packet info. */ dump(): XrPacketDump; /** * @inheritDoc */ getByteLength(): number; /** * @inheritDoc */ needsSerialization(): boolean; /** * @inheritDoc */ serialize(buffer?: ArrayBufferLike, byteOffset?: number): void; /** * @inheritDoc */ clone(buffer?: ArrayBufferLike, byteOffset?: number, serializationBuffer?: ArrayBufferLike, serializationByteOffset?: number): XrPacket; /** * Get sender SSRC. */ getSsrc(): number; /** * Set sender SSRC. */ setSsrc(ssrc: number): void; /** * Get Extended Reports. * * @remarks * - The returned value is an array of {@link ExtendedReport}, which is an * abstract class. * - By inspecting {@link ExtendedReport.getReportType} we can cast each * extended report to its specific class. * * @example * ```ts * import { packets } from 'rtp.js'; * const { XrPacket, ExtendedReportType, LrleExtendedReport } = packets; * * const packet = new XrPacket(view); * * for (const extendedReport of packet.getReports()) * { * switch (extendedReport.getReportType()) * { * case ExtendedReportType.LRLE: * { * const lrleExtendedReport = extendedReport as LrleExtendedReport; * * console.log(lrleExtendedReport.getThinning()); * * break; * } * * // etc. * } * } * ``` */ getReports(): ExtendedReport[]; /** * Set Extended Reports. * * @remarks * - Serialization is needed after calling this method. */ setReports(reports: ExtendedReport[]): void; /** * Add Extended Report. * * @remarks * - Serialization is needed after calling this method. */ addReport(report: ExtendedReport): void; } //# sourceMappingURL=XrPacket.d.ts.map