Skip to content

Commit

Permalink
rename "UunknownXxxx" to "GenericXxxx" andproperly document binary co…
Browse files Browse the repository at this point in the history
…ntent
  • Loading branch information
ibc committed Aug 14, 2023
1 parent 6d3dce6 commit 4089e2b
Show file tree
Hide file tree
Showing 24 changed files with 404 additions and 300 deletions.
3 changes: 2 additions & 1 deletion src/Packet.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@ export type PacketDump = SerializableDump &
/**
* Parent class of all RTP and RTCP packets.
*
* @emits will-serialize - {@link WillSerializeEvent}
* @emits
* - will-serialize: {@link WillSerializeEvent}
*/
export abstract class Packet extends Serializable
{
Expand Down
32 changes: 18 additions & 14 deletions src/RTCP/ByePacket.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,18 @@ import {
} from '../utils';

/**
* RTCP BYE packet info dump.
*/
export type ByePacketDump = RtcpPacketDump &
{
ssrcs: number[];
reason?: string;
};

/**
* RTCP BYE 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
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Expand All @@ -22,21 +34,13 @@ import {
* +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
* (opt) | length | reason for leaving ...
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
*/

/**
* RTCP BYE packet info dump.
*/
export type ByePacketDump = RtcpPacketDump &
{
ssrcs: number[];
reason?: string;
};

/**
* RTCP BYE packet.
* ```
*
* @see
* - [RFC 3550 section 6.6](https://datatracker.ietf.org/doc/html/rfc3550#autoid-43)
*
* @emits will-serialize - {@link WillSerializeEvent}
* @emits
* - will-serialize: {@link WillSerializeEvent}
*/
export class ByePacket extends RtcpPacket
{
Expand Down
10 changes: 7 additions & 3 deletions src/RTCP/CompoundPacket.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import { SenderReportPacket } from './SenderReportPacket';
import { ByePacket } from './ByePacket';
import { SdesPacket } from './SdesPacket';
import { XrPacket } from './XrPacket';
import { UnknownPacket } from './UnknownPacket';
import { GenericPacket } from './GenericPacket';

/**
* RTCP Compound packet info dump.
Expand All @@ -25,7 +25,11 @@ export type CompoundPacketDump = PacketDump &
/**
* RTCP Compound packet.
*
* @emits will-serialize - {@link WillSerializeEvent}
* @see
* - [RFC 3550](https://datatracker.ietf.org/doc/html/rfc3550)
*
* @emits
* - will-serialize: {@link WillSerializeEvent}
*/
export class CompoundPacket extends Packet
{
Expand Down Expand Up @@ -117,7 +121,7 @@ export class CompoundPacket extends Packet

default:
{
packet = new UnknownPacket(packetView);
packet = new GenericPacket(packetView);
}
}

Expand Down
28 changes: 16 additions & 12 deletions src/RTCP/ExtendedReports/ExtendedReport.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,6 @@ import { assertUnreachable } from '../../utils';

export const COMMON_HEADER_LENGTH = 4;

/**
* 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
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | BT | type-specific | block length |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* : type-specific block contents :
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
*/

/**
* Extended Report types.
*/
Expand Down Expand Up @@ -153,9 +143,23 @@ export function reportTypeToString(reportType: ExtendedReportType): string
}

/**
* Parent class of all Extended Reports.
* Parent class of all {@link XrPacket} Extended Reports.
*
* ```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
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | BT | type-specific | block length |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* : type-specific block contents :
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* ```
*
* @see
* - [RFC 3611 section 3](https://datatracker.ietf.org/doc/html/rfc3611#autoid-5)
*
* @emits will-serialize - {@link WillSerializeEvent}
* @emits
* - will-serialize: {@link WillSerializeEvent}
*/
export abstract class ExtendedReport extends Serializable
{
Expand Down
42 changes: 23 additions & 19 deletions src/RTCP/ExtendedReports/ExtendedReportDLRR.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,24 +5,6 @@ import {
COMMON_HEADER_LENGTH
} from './ExtendedReport';

/**
* 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
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | BT=5 | reserved | block length |
* +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
* | SSRC_1 (SSRC of first receiver) | sub-
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ block
* | last RR (LRR) | 1
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | delay since last RR (DLRR) |
* +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
* | SSRC_2 (SSRC of second receiver) | sub-
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ block
* : ... : 2
* +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
*/

/**
* DLRR Extended Report dump.
*/
Expand Down Expand Up @@ -53,7 +35,29 @@ export type DLRRSubReport =
/**
* DLRR Extended Report.
*
* @emits will-serialize - {@link WillSerializeEvent}
* ```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
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | BT=5 | reserved | block length |
* +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
* | SSRC_1 (SSRC of first receiver) | sub-
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ block
* | last RR (LRR) | 1
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | delay since last RR (DLRR) |
* +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
* | SSRC_2 (SSRC of second receiver) | sub-
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ block
* : ... : 2
* +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
* ```
*
* @see
* - [RFC 3611 section 4.5](https://datatracker.ietf.org/doc/html/rfc3611#autoid-14)
*
* @emits
* - will-serialize: {@link WillSerializeEvent}
*/
export class ExtendedReportDLRR extends ExtendedReport
{
Expand Down
42 changes: 23 additions & 19 deletions src/RTCP/ExtendedReports/ExtendedReportDRLE.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,6 @@ import {
import { padTo4Bytes } from '../../utils';
import { readBitsInDataView, writeBitsInDataView } from '../../bitOps';

/**
* 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
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | BT=2 | rsvd. | T | block length |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | SSRC of source |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | begin_seq | end_seq |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | chunk 1 | chunk 2 |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* : ... :
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | chunk n-1 | chunk n |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
*/

// Common header + SSRC of source + begin seq + end seq.
const EXTENDED_REPORT_DRLE_MIN_LENGTH = COMMON_HEADER_LENGTH + 8;

Expand All @@ -43,7 +25,29 @@ export type ExtendedReportDRLEDump = ExtendedReportDump &
/**
* Duplicate RLE Extended Report.
*
* @emits will-serialize - {@link WillSerializeEvent}
* ```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
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | BT=2 | rsvd. | T | block length |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | SSRC of source |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | begin_seq | end_seq |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | chunk 1 | chunk 2 |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* : ... :
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | chunk n-1 | chunk n |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* ```
*
* @see
* - [RFC 3611 section 4.2](https://datatracker.ietf.org/doc/html/rfc3611#autoid-11)
*
* @emits
* - will-serialize: {@link WillSerializeEvent}
*/
export class ExtendedReportDRLE extends ExtendedReport
{
Expand Down
42 changes: 23 additions & 19 deletions src/RTCP/ExtendedReports/ExtendedReportLRLE.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,6 @@ import {
import { padTo4Bytes } from '../../utils';
import { readBitsInDataView, writeBitsInDataView } from '../../bitOps';

/**
* 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
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | BT=1 | rsvd. | T | block length |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | SSRC of source |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | begin_seq | end_seq |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | chunk 1 | chunk 2 |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* : ... :
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | chunk n-1 | chunk n |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
*/

// Common header + SSRC of source + begin seq + end seq.
const EXTENDED_REPORT_LRLE_MIN_LENGTH = COMMON_HEADER_LENGTH + 8;

Expand All @@ -43,7 +25,29 @@ export type ExtendedReportLRLEDump = ExtendedReportDump &
/**
* Loss RLE Extended Report.
*
* @emits will-serialize - {@link WillSerializeEvent}
* ```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
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | BT=1 | rsvd. | T | block length |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | SSRC of source |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | begin_seq | end_seq |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | chunk 1 | chunk 2 |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* : ... :
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | chunk n-1 | chunk n |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* ```
*
* @see
* - [RFC 3611 section 4.1](https://datatracker.ietf.org/doc/html/rfc3611#autoid-7)
*
* @emits
* - will-serialize: {@link WillSerializeEvent}
*/
export class ExtendedReportLRLE extends ExtendedReport
{
Expand Down
44 changes: 24 additions & 20 deletions src/RTCP/ExtendedReports/ExtendedReportPRT.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,25 @@ import {
} from './ExtendedReport';
import { readBitsInDataView, writeBitsInDataView } from '../../bitOps';

// Common header + SSRC of source + begin seq + end seq.
const EXTENDED_REPORT_PRT_MIN_LENGTH = COMMON_HEADER_LENGTH + 8;

/**
* Packet Receipt Times Extended Report dump.
*/
export type ExtendedReportPRTDump = ExtendedReportDump &
{
thinning: number;
ssrc: number;
beginSeq: number;
endSeq: number;
receiptTimes: number[];
};

/**
* Packet Receipt Times Extended Report.
*
* ```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
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Expand All @@ -24,27 +42,13 @@ import { readBitsInDataView, writeBitsInDataView } from '../../bitOps';
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | Receipt time of packet (end_seq - 1) mod 65536 |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
*/

// Common header + SSRC of source + begin seq + end seq.
const EXTENDED_REPORT_PRT_MIN_LENGTH = COMMON_HEADER_LENGTH + 8;

/**
* Packet Receipt Times Extended Report dump.
*/
export type ExtendedReportPRTDump = ExtendedReportDump &
{
thinning: number;
ssrc: number;
beginSeq: number;
endSeq: number;
receiptTimes: number[];
};

/**
* Packet Receipt Times Extended Report.
* ```
*
* @see
* - [RFC 3611 section 4.3](https://datatracker.ietf.org/doc/html/rfc3611#autoid-12)
*
* @emits will-serialize - {@link WillSerializeEvent}
* @emits
* - will-serialize: {@link WillSerializeEvent}
*/
export class ExtendedReportPRT extends ExtendedReport
{
Expand Down
Loading

0 comments on commit 4089e2b

Please sign in to comment.