rtp.js
Version:
RTP stack for Node.js and browser written in TypeScript
113 lines • 3.39 kB
TypeScript
import { FeedbackPacket, type FeedbackPacketDump } from './FeedbackPacket';
/**
* RTCP NACK packet info dump.
*
* @category RTCP
*/
export type NackPacketDump = FeedbackPacketDump & {
items: {
pid: number;
bitmask: number;
}[];
};
/**
* RTCP NACK packet (RTCP Transport Layer Feedback).
*
* ```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
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* |V=2|P| FMT=1 | PT=RTPFB=205 | length |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | SSRC of packet sender |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | SSRC of media source |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | PID | BLP |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* : ... :
* +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
* ```
*
* @category RTCP
*
* @see
* - [RFC 4585 section 6.2.1](https://datatracker.ietf.org/doc/html/rfc4585#section-6.2.1)
*/
export declare class NackPacket extends FeedbackPacket {
#private;
/**
* @param view - If given it will be parsed. Otherwise an empty RTCP NACK
* packet will be created.
*
* @throws
* - If given `view` does not contain a valid RTCP NACK packet.
*/
constructor(view?: DataView);
/**
* Dump RTCP NACK packet info.
*/
dump(): NackPacketDump;
/**
* @inheritDoc
*/
getByteLength(): number;
/**
* @inheritDoc
*/
serialize(buffer?: ArrayBufferLike, byteOffset?: number): void;
/**
* @inheritDoc
*/
clone(buffer?: ArrayBufferLike, byteOffset?: number, serializationBuffer?: ArrayBufferLike, serializationByteOffset?: number): NackPacket;
/**
* Get NACK items.
*
* @remarks
* - Use {@link parseNackItem} to parse returned NACK items.
*/
getItems(): {
pid: number;
bitmask: number;
}[];
/**
* Set NACK items.
*
* @remarks
* - Use {@link createNackItem} to create NACK items.
* - Serialization is needed after calling this method.
*/
setItems(items: {
pid: number;
bitmask: number;
}[]): void;
/**
* Add NACK item value.
*
* @remarks
* - Use {@link createNackItem} to create the NACK item.
* - Serialization is needed after calling this method.
*/
addItem(pid: number, bitmask: number): void;
}
/**
* Parse a NACK item. It returns an array with RTP sequence numbers that are
* included in the item (lost packets).
*
* @category RTCP
*/
export declare function parseNackItem(pid: number, bitmask: number): number[];
/**
* Create a NACK item.
*
* @param seqs - RTP sequence number of lost packets. As per NACK rules, there
* can be up to 17 seq numbers and max diff between lowest and highest must
* be 17.
*
* @category RTCP
*/
export declare function createNackItem(seqs: number[]): {
pid: number;
bitmask: number;
};
//# sourceMappingURL=NackPacket.d.ts.map