mirror of
https://github.com/FlipsideCrypto/DefinitelyTyped.git
synced 2026-02-06 10:56:53 +00:00
[@types/rtp-parser] New Definition (#42784)
* add type definitions for https://www.npmjs.com/package/rtp-parser * added test for payloadTypesHash * make a generic version of the parseRtpPayloadType * fixed some typos * add test for generic number payload types
This commit is contained in:
parent
3dce8b667f
commit
a9a4d04925
212
types/rtp-parser/index.d.ts
vendored
Normal file
212
types/rtp-parser/index.d.ts
vendored
Normal file
@ -0,0 +1,212 @@
|
||||
// Type definitions for rtp-parser 1.0
|
||||
// Project: https://github.com/fleg/rtp-parser#readme
|
||||
// Definitions by: Matthew Smith <https://github.com/matthew-smith>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
|
||||
/// <reference types="node" />
|
||||
|
||||
interface ParsedRTPPacket {
|
||||
version: number;
|
||||
padding: number;
|
||||
extension: number;
|
||||
csrcCount: number;
|
||||
marker: number;
|
||||
payload: Buffer;
|
||||
payloadType: number;
|
||||
sequenceNumber: number;
|
||||
timestamp: number;
|
||||
ssrc: number;
|
||||
csrc: number[];
|
||||
}
|
||||
|
||||
declare function parseRtpPacket(buf: Buffer): ParsedRTPPacket;
|
||||
|
||||
declare const FIXED_HEADER_LENGTH: 12;
|
||||
|
||||
interface PayloadTypesHash {
|
||||
0: {name: 'PCMU', mediaType: 'A', clockRate: 8000, channels: 1};
|
||||
1: {name: 'reserved', mediaType: 'A'};
|
||||
2: {name: 'reserved', mediaType: 'A'};
|
||||
3: {name: 'GSM' , mediaType: 'A', clockRate: 8000, channels: 1};
|
||||
4: {name: 'G723', mediaType: 'A', clockRate: 8000, channels: 1};
|
||||
5: {name: 'DVI4', mediaType: 'A', clockRate: 8000, channels: 1};
|
||||
6: {name: 'DVI4', mediaType: 'A', clockRate: 16000, channels: 1};
|
||||
7: {name: 'LPC', mediaType: 'A', clockRate: 8000, channels: 1};
|
||||
8: {name: 'PCMA', mediaType: 'A', clockRate: 8000, channels: 1};
|
||||
9: {name: 'G722', mediaType: 'A', clockRate: 8000, channels: 1};
|
||||
10: {name: 'L16', mediaType: 'A', clockRate: 44100, channels: 2};
|
||||
11: {name: 'L16', mediaType: 'A', clockRate: 44100, channels: 1};
|
||||
12: {name: 'QCELP', mediaType: 'A', clockRate: 8000, channels: 1};
|
||||
13: {name: 'CN', mediaType: 'A', clockRate: 8000, channels: 1};
|
||||
14: {name: 'MPA', mediaType: 'A', clockRate: 90000};
|
||||
15: {name: 'G728', mediaType: 'A', clockRate: 8000, channels: 1};
|
||||
16: {name: 'DVI4', mediaType: 'A', clockRate: 11025, channels: 1};
|
||||
17: {name: 'DVI4', mediaType: 'A', clockRate: 22050, channels: 1};
|
||||
18: {name: 'G729', mediaType: 'A', clockRate: 8000, channels: 1};
|
||||
19: {name: 'reserved', mediaType: 'A'};
|
||||
20: {name: 'unassigned', mediaType: 'A'};
|
||||
21: {name: 'unassigned', mediaType: 'A'};
|
||||
22: {name: 'unassigned', mediaType: 'A'};
|
||||
23: {name: 'unassigned', mediaType: 'A'};
|
||||
24: {name: 'unassigned', mediaType: 'V'};
|
||||
25: {name: 'CelB', mediaType: 'V', clockRate: 90000};
|
||||
26: {name: 'JPEG', mediaType: 'V', clockRate: 90000};
|
||||
27: {name: 'unassigned', mediaType: 'V'};
|
||||
28: {name: 'nv', mediaType: 'V', clockRate: 90000};
|
||||
29: {name: 'unassigned', mediaType: 'V'};
|
||||
30: {name: 'unassigned', mediaType: 'V'};
|
||||
31: {name: 'H261', mediaType: 'V', clockRate: 90000};
|
||||
32: {name: 'MPV', mediaType: 'V', clockRate: 90000};
|
||||
33: {name: 'MP2T', mediaType: 'AV', clockRate: 90000};
|
||||
34: {name: 'H263', mediaType: 'V', clockRate: 90000};
|
||||
35: {name: 'unassigned'};
|
||||
36: {name: 'unassigned'};
|
||||
37: {name: 'unassigned'};
|
||||
38: {name: 'unassigned'};
|
||||
39: {name: 'unassigned'};
|
||||
40: {name: 'unassigned'};
|
||||
41: {name: 'unassigned'};
|
||||
42: {name: 'unassigned'};
|
||||
43: {name: 'unassigned'};
|
||||
44: {name: 'unassigned'};
|
||||
45: {name: 'unassigned'};
|
||||
46: {name: 'unassigned'};
|
||||
47: {name: 'unassigned'};
|
||||
48: {name: 'unassigned'};
|
||||
49: {name: 'unassigned'};
|
||||
50: {name: 'unassigned'};
|
||||
51: {name: 'unassigned'};
|
||||
52: {name: 'unassigned'};
|
||||
53: {name: 'unassigned'};
|
||||
54: {name: 'unassigned'};
|
||||
55: {name: 'unassigned'};
|
||||
56: {name: 'unassigned'};
|
||||
57: {name: 'unassigned'};
|
||||
58: {name: 'unassigned'};
|
||||
59: {name: 'unassigned'};
|
||||
60: {name: 'unassigned'};
|
||||
61: {name: 'unassigned'};
|
||||
62: {name: 'unassigned'};
|
||||
63: {name: 'unassigned'};
|
||||
64: {name: 'unassigned'};
|
||||
65: {name: 'unassigned'};
|
||||
66: {name: 'unassigned'};
|
||||
67: {name: 'unassigned'};
|
||||
68: {name: 'unassigned'};
|
||||
69: {name: 'unassigned'};
|
||||
70: {name: 'unassigned'};
|
||||
71: {name: 'unassigned'};
|
||||
72: {name: 'reserved'};
|
||||
73: {name: 'reserved'};
|
||||
74: {name: 'reserved'};
|
||||
75: {name: 'reserved'};
|
||||
76: {name: 'reserved'};
|
||||
77: {name: 'unassigned'};
|
||||
78: {name: 'unassigned'};
|
||||
79: {name: 'unassigned'};
|
||||
80: {name: 'unassigned'};
|
||||
81: {name: 'unassigned'};
|
||||
82: {name: 'unassigned'};
|
||||
83: {name: 'unassigned'};
|
||||
84: {name: 'unassigned'};
|
||||
85: {name: 'unassigned'};
|
||||
86: {name: 'unassigned'};
|
||||
87: {name: 'unassigned'};
|
||||
88: {name: 'unassigned'};
|
||||
89: {name: 'unassigned'};
|
||||
90: {name: 'unassigned'};
|
||||
91: {name: 'unassigned'};
|
||||
92: {name: 'unassigned'};
|
||||
93: {name: 'unassigned'};
|
||||
94: {name: 'unassigned'};
|
||||
95: {name: 'unassigned'};
|
||||
96: {name: 'dynamic'};
|
||||
97: {name: 'dynamic'};
|
||||
98: {name: 'dynamic'};
|
||||
99: {name: 'dynamic'};
|
||||
100: {name: 'dynamic'};
|
||||
101: {name: 'dynamic'};
|
||||
102: {name: 'dynamic'};
|
||||
103: {name: 'dynamic'};
|
||||
104: {name: 'dynamic'};
|
||||
105: {name: 'dynamic'};
|
||||
106: {name: 'dynamic'};
|
||||
107: {name: 'dynamic'};
|
||||
108: {name: 'dynamic'};
|
||||
109: {name: 'dynamic'};
|
||||
110: {name: 'dynamic'};
|
||||
111: {name: 'dynamic'};
|
||||
112: {name: 'dynamic'};
|
||||
113: {name: 'dynamic'};
|
||||
114: {name: 'dynamic'};
|
||||
115: {name: 'dynamic'};
|
||||
116: {name: 'dynamic'};
|
||||
117: {name: 'dynamic'};
|
||||
118: {name: 'dynamic'};
|
||||
119: {name: 'dynamic'};
|
||||
120: {name: 'dynamic'};
|
||||
121: {name: 'dynamic'};
|
||||
122: {name: 'dynamic'};
|
||||
123: {name: 'dynamic'};
|
||||
124: {name: 'dynamic'};
|
||||
125: {name: 'dynamic'};
|
||||
126: {name: 'dynamic'};
|
||||
127: {name: 'dynamic'};
|
||||
}
|
||||
export const payloadTypesHash: PayloadTypesHash;
|
||||
type PayloadType = keyof PayloadTypesHash;
|
||||
|
||||
interface ParsedRTPType {
|
||||
name: 'PCMU' | 'GSM' | 'G723' | 'DVI4' | 'DVI4' | 'LPC' | 'PCMA' | 'G722' | 'L16' | 'L16' | 'QCELP' | 'CN' |
|
||||
'MPA' | 'G728' | 'DVI4' | 'DVI4' | 'G729' | 'CelB' | 'JPEG' | 'nv' | 'H261' | 'MPV' | 'MP2T' | 'H263' |
|
||||
'reserved' | 'unassigned' | 'dynamic';
|
||||
mediaType?: 'A' | 'AV' | 'V';
|
||||
clockRate?: 8000 | 16000 | 44100 | 90000 | 11025 | 22050;
|
||||
channels?: 1 | 2;
|
||||
}
|
||||
|
||||
declare function parseRtpPayloadType(payloadType: 0): {name: 'PCMU', mediaType: 'A', clockRate: 8000, channels: 1};
|
||||
declare function parseRtpPayloadType(payloadType: 1 | 2 | 19): {name: 'reserved', mediaType: 'A'};
|
||||
declare function parseRtpPayloadType(payloadType: 3): {name: 'GSM' , mediaType: 'A', clockRate: 8000, channels: 1};
|
||||
declare function parseRtpPayloadType(payloadType: 4): {name: 'G723', mediaType: 'A', clockRate: 8000, channels: 1};
|
||||
declare function parseRtpPayloadType(payloadType: 5): {name: 'DVI4', mediaType: 'A', clockRate: 8000, channels: 1};
|
||||
declare function parseRtpPayloadType(payloadType: 6): {name: 'DVI4', mediaType: 'A', clockRate: 16000, channels: 1};
|
||||
declare function parseRtpPayloadType(payloadType: 7): {name: 'LPC', mediaType: 'A', clockRate: 8000, channels: 1};
|
||||
declare function parseRtpPayloadType(payloadType: 8): {name: 'PCMA', mediaType: 'A', clockRate: 8000, channels: 1};
|
||||
declare function parseRtpPayloadType(payloadType: 9): {name: 'G722', mediaType: 'A', clockRate: 8000, channels: 1};
|
||||
declare function parseRtpPayloadType(payloadType: 10): {name: 'L16', mediaType: 'A', clockRate: 44100, channels: 2};
|
||||
declare function parseRtpPayloadType(payloadType: 11): {name: 'L16', mediaType: 'A', clockRate: 44100, channels: 1};
|
||||
declare function parseRtpPayloadType(payloadType: 12): {name: 'QCELP', mediaType: 'A', clockRate: 8000, channels: 1};
|
||||
declare function parseRtpPayloadType(payloadType: 13): {name: 'CN', mediaType: 'A', clockRate: 8000, channels: 1};
|
||||
declare function parseRtpPayloadType(payloadType: 14): {name: 'MPA', mediaType: 'A', clockRate: 90000};
|
||||
declare function parseRtpPayloadType(payloadType: 15): {name: 'G728', mediaType: 'A', clockRate: 8000, channels: 1};
|
||||
declare function parseRtpPayloadType(payloadType: 16): {name: 'DVI4', mediaType: 'A', clockRate: 11025, channels: 1};
|
||||
declare function parseRtpPayloadType(payloadType: 17): {name: 'DVI4', mediaType: 'A', clockRate: 22050, channels: 1};
|
||||
declare function parseRtpPayloadType(payloadType: 18): {name: 'G729', mediaType: 'A', clockRate: 8000, channels: 1};
|
||||
declare function parseRtpPayloadType(payloadType: 20 | 21 | 22 | 23): {name: 'unassigned', mediaType: 'A'};
|
||||
declare function parseRtpPayloadType(payloadType: 24 | 27 | 29 | 30): {name: 'unassigned', mediaType: 'V'};
|
||||
declare function parseRtpPayloadType(payloadType: 25): {name: 'CelB', mediaType: 'V', clockRate: 90000};
|
||||
declare function parseRtpPayloadType(payloadType: 26): {name: 'JPEG', mediaType: 'V', clockRate: 90000};
|
||||
declare function parseRtpPayloadType(payloadType: 28): {name: 'nv', mediaType: 'V', clockRate: 90000};
|
||||
declare function parseRtpPayloadType(payloadType: 31): {name: 'H261', mediaType: 'V', clockRate: 90000};
|
||||
declare function parseRtpPayloadType(payloadType: 32): {name: 'MPV', mediaType: 'V', clockRate: 90000};
|
||||
declare function parseRtpPayloadType(payloadType: 33): {name: 'MP2T', mediaType: 'AV', clockRate: 90000};
|
||||
declare function parseRtpPayloadType(payloadType: 34): {name: 'H263', mediaType: 'V', clockRate: 90000};
|
||||
declare function parseRtpPayloadType(payloadType: 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 |
|
||||
50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 |
|
||||
65 | 66 | 67 | 68 | 69 | 70 | 71 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 |
|
||||
85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95
|
||||
): {name: 'unassigned'};
|
||||
declare function parseRtpPayloadType(payloadType: 72 | 73 | 74 | 75 | 76): {name: 'reserved'};
|
||||
declare function parseRtpPayloadType(payloadType: 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 |
|
||||
109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 |
|
||||
121 | 122 | 123 | 124 | 125 | 126 | 127
|
||||
): {name: 'dynamic'};
|
||||
declare function parseRtpPayloadType(payloadType: number): ParsedRTPType;
|
||||
|
||||
export {
|
||||
parseRtpPacket,
|
||||
parseRtpPayloadType,
|
||||
FIXED_HEADER_LENGTH,
|
||||
PayloadType,
|
||||
};
|
||||
151
types/rtp-parser/rtp-parser-tests.ts
Normal file
151
types/rtp-parser/rtp-parser-tests.ts
Normal file
@ -0,0 +1,151 @@
|
||||
import { parseRtpPacket, parseRtpPayloadType, payloadTypesHash } from 'rtp-parser';
|
||||
|
||||
const result = parseRtpPacket(new Buffer('fakeRTP'));
|
||||
result.csrc; // $ExpectType number[]
|
||||
result.payload; // $ExpectType Buffer
|
||||
|
||||
const parsed3 = parseRtpPayloadType(3);
|
||||
parsed3.name; // $ExpectType "GSM"
|
||||
parsed3.mediaType; // $ExpectType "A"
|
||||
parsed3.channels; // $ExpectType 1
|
||||
parsed3.clockRate; // $ExpectType 8000
|
||||
|
||||
const parsed35 = parseRtpPayloadType(35);
|
||||
parsed35.name; // $ExpectType "unassigned"
|
||||
|
||||
for (let i = 0; i < 200; i++) {
|
||||
const parsed = parseRtpPayloadType(i);
|
||||
if (parsed.name) {}
|
||||
if (parsed.clockRate) {}
|
||||
}
|
||||
|
||||
payloadTypesHash[0].mediaType; // $ExpectType "A"
|
||||
|
||||
parseRtpPayloadType(0);
|
||||
parseRtpPayloadType(1);
|
||||
parseRtpPayloadType(2);
|
||||
parseRtpPayloadType(3);
|
||||
parseRtpPayloadType(4);
|
||||
parseRtpPayloadType(5);
|
||||
parseRtpPayloadType(6);
|
||||
parseRtpPayloadType(7);
|
||||
parseRtpPayloadType(8);
|
||||
parseRtpPayloadType(9);
|
||||
parseRtpPayloadType(10);
|
||||
parseRtpPayloadType(11);
|
||||
parseRtpPayloadType(12);
|
||||
parseRtpPayloadType(13);
|
||||
parseRtpPayloadType(14);
|
||||
parseRtpPayloadType(15);
|
||||
parseRtpPayloadType(16);
|
||||
parseRtpPayloadType(17);
|
||||
parseRtpPayloadType(18);
|
||||
parseRtpPayloadType(19);
|
||||
parseRtpPayloadType(20);
|
||||
parseRtpPayloadType(21);
|
||||
parseRtpPayloadType(22);
|
||||
parseRtpPayloadType(23);
|
||||
parseRtpPayloadType(24);
|
||||
parseRtpPayloadType(25);
|
||||
parseRtpPayloadType(26);
|
||||
parseRtpPayloadType(27);
|
||||
parseRtpPayloadType(28);
|
||||
parseRtpPayloadType(29);
|
||||
parseRtpPayloadType(30);
|
||||
parseRtpPayloadType(31);
|
||||
parseRtpPayloadType(32);
|
||||
parseRtpPayloadType(33);
|
||||
parseRtpPayloadType(34);
|
||||
parseRtpPayloadType(35);
|
||||
parseRtpPayloadType(36);
|
||||
parseRtpPayloadType(37);
|
||||
parseRtpPayloadType(38);
|
||||
parseRtpPayloadType(39);
|
||||
parseRtpPayloadType(40);
|
||||
parseRtpPayloadType(41);
|
||||
parseRtpPayloadType(42);
|
||||
parseRtpPayloadType(43);
|
||||
parseRtpPayloadType(44);
|
||||
parseRtpPayloadType(45);
|
||||
parseRtpPayloadType(46);
|
||||
parseRtpPayloadType(47);
|
||||
parseRtpPayloadType(48);
|
||||
parseRtpPayloadType(49);
|
||||
parseRtpPayloadType(50);
|
||||
parseRtpPayloadType(51);
|
||||
parseRtpPayloadType(52);
|
||||
parseRtpPayloadType(53);
|
||||
parseRtpPayloadType(54);
|
||||
parseRtpPayloadType(55);
|
||||
parseRtpPayloadType(56);
|
||||
parseRtpPayloadType(57);
|
||||
parseRtpPayloadType(58);
|
||||
parseRtpPayloadType(59);
|
||||
parseRtpPayloadType(60);
|
||||
parseRtpPayloadType(61);
|
||||
parseRtpPayloadType(62);
|
||||
parseRtpPayloadType(63);
|
||||
parseRtpPayloadType(64);
|
||||
parseRtpPayloadType(65);
|
||||
parseRtpPayloadType(66);
|
||||
parseRtpPayloadType(67);
|
||||
parseRtpPayloadType(68);
|
||||
parseRtpPayloadType(69);
|
||||
parseRtpPayloadType(70);
|
||||
parseRtpPayloadType(71);
|
||||
parseRtpPayloadType(72);
|
||||
parseRtpPayloadType(73);
|
||||
parseRtpPayloadType(74);
|
||||
parseRtpPayloadType(75);
|
||||
parseRtpPayloadType(76);
|
||||
parseRtpPayloadType(77);
|
||||
parseRtpPayloadType(78);
|
||||
parseRtpPayloadType(79);
|
||||
parseRtpPayloadType(80);
|
||||
parseRtpPayloadType(81);
|
||||
parseRtpPayloadType(82);
|
||||
parseRtpPayloadType(83);
|
||||
parseRtpPayloadType(84);
|
||||
parseRtpPayloadType(85);
|
||||
parseRtpPayloadType(86);
|
||||
parseRtpPayloadType(87);
|
||||
parseRtpPayloadType(88);
|
||||
parseRtpPayloadType(89);
|
||||
parseRtpPayloadType(90);
|
||||
parseRtpPayloadType(91);
|
||||
parseRtpPayloadType(92);
|
||||
parseRtpPayloadType(93);
|
||||
parseRtpPayloadType(94);
|
||||
parseRtpPayloadType(95);
|
||||
parseRtpPayloadType(96);
|
||||
parseRtpPayloadType(97);
|
||||
parseRtpPayloadType(98);
|
||||
parseRtpPayloadType(99);
|
||||
parseRtpPayloadType(100);
|
||||
parseRtpPayloadType(101);
|
||||
parseRtpPayloadType(102);
|
||||
parseRtpPayloadType(103);
|
||||
parseRtpPayloadType(104);
|
||||
parseRtpPayloadType(105);
|
||||
parseRtpPayloadType(106);
|
||||
parseRtpPayloadType(107);
|
||||
parseRtpPayloadType(108);
|
||||
parseRtpPayloadType(109);
|
||||
parseRtpPayloadType(110);
|
||||
parseRtpPayloadType(111);
|
||||
parseRtpPayloadType(112);
|
||||
parseRtpPayloadType(113);
|
||||
parseRtpPayloadType(114);
|
||||
parseRtpPayloadType(115);
|
||||
parseRtpPayloadType(116);
|
||||
parseRtpPayloadType(117);
|
||||
parseRtpPayloadType(118);
|
||||
parseRtpPayloadType(119);
|
||||
parseRtpPayloadType(120);
|
||||
parseRtpPayloadType(121);
|
||||
parseRtpPayloadType(122);
|
||||
parseRtpPayloadType(123);
|
||||
parseRtpPayloadType(124);
|
||||
parseRtpPayloadType(125);
|
||||
parseRtpPayloadType(126);
|
||||
parseRtpPayloadType(127);
|
||||
23
types/rtp-parser/tsconfig.json
Normal file
23
types/rtp-parser/tsconfig.json
Normal file
@ -0,0 +1,23 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"lib": [
|
||||
"es6"
|
||||
],
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictFunctionTypes": true,
|
||||
"strictNullChecks": true,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": [
|
||||
"../"
|
||||
],
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
},
|
||||
"files": [
|
||||
"index.d.ts",
|
||||
"rtp-parser-tests.ts"
|
||||
]
|
||||
}
|
||||
1
types/rtp-parser/tslint.json
Normal file
1
types/rtp-parser/tslint.json
Normal file
@ -0,0 +1 @@
|
||||
{ "extends": "dtslint/dt.json" }
|
||||
Loading…
Reference in New Issue
Block a user