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.
Files changed (61) hide show
  1. package/lib/common/src/binary.d.ts +10 -0
  2. package/lib/common/src/binary.js +83 -1
  3. package/lib/common/src/binary.js.map +1 -1
  4. package/lib/dtls/src/context/cipher.d.ts +1 -2
  5. package/lib/dtls/src/context/cipher.js +69 -68
  6. package/lib/dtls/src/context/cipher.js.map +1 -1
  7. package/lib/ice/src/ice.js +10 -4
  8. package/lib/ice/src/ice.js.map +1 -1
  9. package/lib/rtp/src/index.d.ts +12 -9
  10. package/lib/rtp/src/index.js +12 -18
  11. package/lib/rtp/src/index.js.map +1 -1
  12. package/lib/rtp/src/processor/jitterBuffer.js +1 -1
  13. package/lib/rtp/src/processor/jitterBuffer.js.map +1 -1
  14. package/lib/rtp/src/rtp/red/encoder.d.ts +14 -0
  15. package/lib/rtp/src/rtp/red/encoder.js +40 -0
  16. package/lib/rtp/src/rtp/red/encoder.js.map +1 -0
  17. package/lib/rtp/src/rtp/{red.d.ts → red/packet.d.ts} +5 -5
  18. package/lib/rtp/src/rtp/red/packet.js +115 -0
  19. package/lib/rtp/src/rtp/red/packet.js.map +1 -0
  20. package/lib/rtp/src/rtp/rtp.d.ts +1 -1
  21. package/lib/rtp/src/rtp/rtp.js +1 -1
  22. package/lib/rtp/src/rtp/rtp.js.map +1 -1
  23. package/lib/sctp/src/sctp.d.ts +2 -1
  24. package/lib/sctp/src/sctp.js +4 -2
  25. package/lib/sctp/src/sctp.js.map +1 -1
  26. package/lib/webrtc/src/const.d.ts +2 -0
  27. package/lib/webrtc/src/const.js +3 -1
  28. package/lib/webrtc/src/const.js.map +1 -1
  29. package/lib/webrtc/src/index.d.ts +1 -0
  30. package/lib/webrtc/src/index.js +1 -0
  31. package/lib/webrtc/src/index.js.map +1 -1
  32. package/lib/webrtc/src/media/receiver/red.js +8 -6
  33. package/lib/webrtc/src/media/receiver/red.js.map +1 -1
  34. package/lib/webrtc/src/media/rtpSender.d.ts +8 -6
  35. package/lib/webrtc/src/media/rtpSender.js +16 -25
  36. package/lib/webrtc/src/media/rtpSender.js.map +1 -1
  37. package/lib/webrtc/src/peerConnection.d.ts +9 -3
  38. package/lib/webrtc/src/peerConnection.js +17 -4
  39. package/lib/webrtc/src/peerConnection.js.map +1 -1
  40. package/lib/webrtc/src/sdp.js +2 -1
  41. package/lib/webrtc/src/sdp.js.map +1 -1
  42. package/lib/webrtc/src/transport/dtls.d.ts +5 -0
  43. package/lib/webrtc/src/transport/dtls.js.map +1 -1
  44. package/lib/webrtc/src/transport/sctp.d.ts +1 -0
  45. package/lib/webrtc/src/transport/sctp.js +5 -1
  46. package/lib/webrtc/src/transport/sctp.js.map +1 -1
  47. package/lib/webrtc/src/utils.d.ts +10 -0
  48. package/lib/webrtc/src/utils.js +8 -1
  49. package/lib/webrtc/src/utils.js.map +1 -1
  50. package/package.json +2 -1
  51. package/src/const.ts +6 -0
  52. package/src/index.ts +1 -0
  53. package/src/media/receiver/red.ts +11 -12
  54. package/src/media/rtpSender.ts +19 -42
  55. package/src/peerConnection.ts +28 -8
  56. package/src/sdp.ts +2 -1
  57. package/src/transport/dtls.ts +6 -0
  58. package/src/transport/sctp.ts +6 -1
  59. package/src/utils.ts +9 -0
  60. package/lib/rtp/src/rtp/red.js +0 -104
  61. 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;
@@ -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"]}