werift 0.14.0 → 0.14.2-debug1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/common/src/binary.d.ts +10 -0
- package/lib/common/src/binary.js +83 -1
- package/lib/common/src/binary.js.map +1 -1
- package/lib/dtls/src/context/cipher.d.ts +1 -2
- package/lib/dtls/src/context/cipher.js +69 -68
- package/lib/dtls/src/context/cipher.js.map +1 -1
- package/lib/ice/src/ice.js +10 -4
- package/lib/ice/src/ice.js.map +1 -1
- package/lib/rtp/src/index.d.ts +12 -9
- package/lib/rtp/src/index.js +12 -18
- package/lib/rtp/src/index.js.map +1 -1
- package/lib/rtp/src/processor/jitterBuffer.js +1 -1
- package/lib/rtp/src/processor/jitterBuffer.js.map +1 -1
- package/lib/rtp/src/rtp/red/encoder.d.ts +14 -0
- package/lib/rtp/src/rtp/red/encoder.js +40 -0
- package/lib/rtp/src/rtp/red/encoder.js.map +1 -0
- package/lib/rtp/src/rtp/{red.d.ts → red/packet.d.ts} +5 -5
- package/lib/rtp/src/rtp/red/packet.js +115 -0
- package/lib/rtp/src/rtp/red/packet.js.map +1 -0
- package/lib/rtp/src/rtp/rtp.d.ts +1 -1
- package/lib/rtp/src/rtp/rtp.js +1 -1
- package/lib/rtp/src/rtp/rtp.js.map +1 -1
- package/lib/sctp/src/sctp.d.ts +2 -1
- package/lib/sctp/src/sctp.js +4 -2
- package/lib/sctp/src/sctp.js.map +1 -1
- package/lib/webrtc/src/const.d.ts +2 -0
- package/lib/webrtc/src/const.js +3 -1
- package/lib/webrtc/src/const.js.map +1 -1
- package/lib/webrtc/src/index.d.ts +1 -0
- package/lib/webrtc/src/index.js +1 -0
- package/lib/webrtc/src/index.js.map +1 -1
- package/lib/webrtc/src/media/receiver/red.js +8 -6
- package/lib/webrtc/src/media/receiver/red.js.map +1 -1
- package/lib/webrtc/src/media/rtpSender.d.ts +8 -6
- package/lib/webrtc/src/media/rtpSender.js +16 -25
- package/lib/webrtc/src/media/rtpSender.js.map +1 -1
- package/lib/webrtc/src/peerConnection.d.ts +9 -3
- package/lib/webrtc/src/peerConnection.js +17 -4
- package/lib/webrtc/src/peerConnection.js.map +1 -1
- package/lib/webrtc/src/sdp.js +2 -1
- package/lib/webrtc/src/sdp.js.map +1 -1
- package/lib/webrtc/src/transport/dtls.d.ts +5 -0
- package/lib/webrtc/src/transport/dtls.js.map +1 -1
- package/lib/webrtc/src/transport/sctp.d.ts +1 -0
- package/lib/webrtc/src/transport/sctp.js +5 -1
- package/lib/webrtc/src/transport/sctp.js.map +1 -1
- package/lib/webrtc/src/utils.d.ts +10 -0
- package/lib/webrtc/src/utils.js +8 -1
- package/lib/webrtc/src/utils.js.map +1 -1
- package/package.json +2 -1
- package/src/const.ts +6 -0
- package/src/index.ts +1 -0
- package/src/media/receiver/red.ts +11 -12
- package/src/media/rtpSender.ts +19 -42
- package/src/peerConnection.ts +28 -8
- package/src/sdp.ts +2 -1
- package/src/transport/dtls.ts +6 -0
- package/src/transport/sctp.ts +6 -1
- package/src/utils.ts +9 -0
- package/lib/rtp/src/rtp/red.js +0 -104
- package/lib/rtp/src/rtp/red.js.map +0 -1
package/src/utils.ts
CHANGED
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
uint16Add,
|
|
12
12
|
uint32Add,
|
|
13
13
|
} from "../../common/src";
|
|
14
|
+
import { CipherContext } from "../../dtls/src/context/cipher";
|
|
14
15
|
import { Address } from "../../ice/src";
|
|
15
16
|
import { RtpHeader, RtpPacket } from "../../rtp/src";
|
|
16
17
|
import { Direction, Directions } from "./media/rtpTransceiver";
|
|
@@ -128,3 +129,11 @@ export class RtpBuilder {
|
|
|
128
129
|
return rtp;
|
|
129
130
|
}
|
|
130
131
|
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
*
|
|
135
|
+
* @param signatureHash
|
|
136
|
+
* @param namedCurveAlgorithm necessary when use ecdsa
|
|
137
|
+
*/
|
|
138
|
+
export const createSelfSignedCertificate =
|
|
139
|
+
CipherContext.createSelfSignedCertificateWithKey;
|
package/lib/rtp/src/rtp/red.js
DELETED
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// rfc2198
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.RedHeader = exports.Red = void 0;
|
|
5
|
-
const src_1 = require("../../../common/src");
|
|
6
|
-
// 0 1 2 3
|
|
7
|
-
// 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
|
|
8
|
-
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
9
|
-
// |F| block PT | timestamp offset | block length |
|
|
10
|
-
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
11
|
-
// 0 1 2 3 4 5 6 7
|
|
12
|
-
// +-+-+-+-+-+-+-+-+
|
|
13
|
-
// |0| Block PT |
|
|
14
|
-
// +-+-+-+-+-+-+-+-+
|
|
15
|
-
class Red {
|
|
16
|
-
constructor() {
|
|
17
|
-
this.payloads = [];
|
|
18
|
-
}
|
|
19
|
-
static deSerialize(buf) {
|
|
20
|
-
const red = new Red();
|
|
21
|
-
let offset = 0;
|
|
22
|
-
[red.header, offset] = RedHeader.deSerialize(buf);
|
|
23
|
-
red.header.payloads.forEach(({ blockLength, timestampOffset, blockPT }) => {
|
|
24
|
-
if (blockLength && timestampOffset) {
|
|
25
|
-
const payload = buf.slice(offset, offset + blockLength);
|
|
26
|
-
red.payloads.push({ bin: payload, blockPT, timestampOffset });
|
|
27
|
-
offset += blockLength;
|
|
28
|
-
}
|
|
29
|
-
else {
|
|
30
|
-
const payload = buf.slice(offset);
|
|
31
|
-
red.payloads.push({ bin: payload, blockPT });
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
return red;
|
|
35
|
-
}
|
|
36
|
-
serialize() {
|
|
37
|
-
this.header = new RedHeader();
|
|
38
|
-
for (const { timestampOffset, blockPT, bin } of this.payloads) {
|
|
39
|
-
if (timestampOffset) {
|
|
40
|
-
this.header.payloads.push({
|
|
41
|
-
fBit: 1,
|
|
42
|
-
blockPT,
|
|
43
|
-
blockLength: bin.length,
|
|
44
|
-
timestampOffset,
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
this.header.payloads.push({ fBit: 0, blockPT });
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
let buf = this.header.serialize();
|
|
52
|
-
for (const { bin } of this.payloads) {
|
|
53
|
-
buf = Buffer.concat([buf, bin]);
|
|
54
|
-
}
|
|
55
|
-
return buf;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
exports.Red = Red;
|
|
59
|
-
class RedHeader {
|
|
60
|
-
constructor() {
|
|
61
|
-
this.payloads = [];
|
|
62
|
-
}
|
|
63
|
-
static deSerialize(buf) {
|
|
64
|
-
let offset = 0;
|
|
65
|
-
const header = new RedHeader();
|
|
66
|
-
for (;;) {
|
|
67
|
-
const payload = {};
|
|
68
|
-
header.payloads.push(payload);
|
|
69
|
-
payload.fBit = (0, src_1.getBit)(buf[offset], 0);
|
|
70
|
-
payload.blockPT = (0, src_1.getBit)(buf[offset], 1, 7);
|
|
71
|
-
offset++;
|
|
72
|
-
if (payload.fBit === 0) {
|
|
73
|
-
break;
|
|
74
|
-
}
|
|
75
|
-
payload.timestampOffset =
|
|
76
|
-
(buf[offset] << 6) + ((buf[offset + 1] & 0b11111100) >> 2);
|
|
77
|
-
offset++;
|
|
78
|
-
payload.blockLength = ((buf[offset] & 0b11) << 8) + buf[offset + 1];
|
|
79
|
-
offset += 2;
|
|
80
|
-
}
|
|
81
|
-
return [header, offset];
|
|
82
|
-
}
|
|
83
|
-
serialize() {
|
|
84
|
-
let buf = Buffer.alloc(0);
|
|
85
|
-
for (const payload of this.payloads) {
|
|
86
|
-
if (payload.timestampOffset && payload.blockLength) {
|
|
87
|
-
const a = new src_1.BitWriter2(8)
|
|
88
|
-
.set(payload.fBit)
|
|
89
|
-
.set(payload.blockPT, 7).buffer;
|
|
90
|
-
const b = Buffer.alloc(3);
|
|
91
|
-
b.writeUInt16BE((payload.timestampOffset << 2) | (payload.blockLength >> 8));
|
|
92
|
-
b.writeUInt8(payload.blockLength & 0b11111111, 2);
|
|
93
|
-
buf = Buffer.concat([buf, a, b]);
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
const chunk = new src_1.BitWriter2(8).set(0).set(payload.blockPT, 7).buffer;
|
|
97
|
-
buf = Buffer.concat([buf, chunk]);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
return buf;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
exports.RedHeader = RedHeader;
|
|
104
|
-
//# sourceMappingURL=red.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"red.js","sourceRoot":"","sources":["../../../../../rtp/src/rtp/red.ts"],"names":[],"mappings":"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","sourcesContent":["// rfc2198\n\nimport { BitWriter2, getBit } from \"../../../common/src\";\n\n// 0 1 2 3\n// 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\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// |F| block PT | timestamp offset | block length |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\n// 0 1 2 3 4 5 6 7\n// +-+-+-+-+-+-+-+-+\n// |0| Block PT |\n// +-+-+-+-+-+-+-+-+\n\nexport class Red {\n header!: RedHeader;\n payloads: {\n bin: Buffer;\n blockPT: number;\n /**14bit */\n timestampOffset?: number;\n }[] = [];\n\n static deSerialize(buf: Buffer) {\n const red = new Red();\n let offset = 0;\n [red.header, offset] = RedHeader.deSerialize(buf);\n\n red.header.payloads.forEach(({ blockLength, timestampOffset, blockPT }) => {\n if (blockLength && timestampOffset) {\n const payload = buf.slice(offset, offset + blockLength);\n red.payloads.push({ bin: payload, blockPT, timestampOffset });\n offset += blockLength;\n } else {\n const payload = buf.slice(offset);\n red.payloads.push({ bin: payload, blockPT });\n }\n });\n\n return red;\n }\n\n serialize() {\n this.header = new RedHeader();\n\n for (const { timestampOffset, blockPT, bin } of this.payloads) {\n if (timestampOffset) {\n this.header.payloads.push({\n fBit: 1,\n blockPT,\n blockLength: bin.length,\n timestampOffset,\n });\n } else {\n this.header.payloads.push({ fBit: 0, blockPT });\n }\n }\n\n let buf = this.header.serialize();\n for (const { bin } of this.payloads) {\n buf = Buffer.concat([buf, bin]);\n }\n\n return buf;\n }\n}\n\nexport class RedHeader {\n payloads: RedHeaderPayload[] = [];\n\n static deSerialize(buf: Buffer) {\n let offset = 0;\n const header = new RedHeader();\n\n for (;;) {\n const payload: RedHeaderPayload = {} as any;\n header.payloads.push(payload);\n payload.fBit = getBit(buf[offset], 0);\n payload.blockPT = getBit(buf[offset], 1, 7);\n offset++;\n\n if (payload.fBit === 0) {\n break;\n }\n\n payload.timestampOffset =\n (buf[offset] << 6) + ((buf[offset + 1] & 0b11111100) >> 2);\n offset++;\n payload.blockLength = ((buf[offset] & 0b11) << 8) + buf[offset + 1];\n offset += 2;\n }\n\n return [header, offset] as const;\n }\n\n serialize() {\n let buf = Buffer.alloc(0);\n for (const payload of this.payloads) {\n if (payload.timestampOffset && payload.blockLength) {\n const a = new BitWriter2(8)\n .set(payload.fBit)\n .set(payload.blockPT, 7).buffer;\n const b = Buffer.alloc(3);\n b.writeUInt16BE(\n (payload.timestampOffset << 2) | (payload.blockLength >> 8)\n );\n b.writeUInt8(payload.blockLength & 0b11111111, 2);\n\n buf = Buffer.concat([buf, a, b]);\n } else {\n const chunk = new BitWriter2(8).set(0).set(payload.blockPT, 7).buffer;\n buf = Buffer.concat([buf, chunk]);\n }\n }\n return buf;\n }\n}\n\ninterface RedHeaderPayload {\n fBit: number;\n blockPT: number;\n /**14bit */\n timestampOffset?: number;\n /**10bit */\n blockLength?: number;\n}\n"]}
|