werift 0.14.4-debug0 → 0.15.0-alpha.0

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 (64) hide show
  1. package/lib/common/src/binary.d.ts +0 -1
  2. package/lib/common/src/binary.js +1 -2
  3. package/lib/common/src/binary.js.map +1 -1
  4. package/lib/dtls/src/context/cipher.js +5 -2
  5. package/lib/dtls/src/context/cipher.js.map +1 -1
  6. package/lib/dtls/src/handshake/extensions/useSrtp.js +5 -2
  7. package/lib/dtls/src/handshake/extensions/useSrtp.js.map +1 -1
  8. package/lib/ice/src/candidate.js +5 -2
  9. package/lib/ice/src/candidate.js.map +1 -1
  10. package/lib/ice/src/ice.d.ts +2 -2
  11. package/lib/ice/src/ice.js +6 -5
  12. package/lib/ice/src/ice.js.map +1 -1
  13. package/lib/ice/src/stun/attributes.js +5 -2
  14. package/lib/ice/src/stun/attributes.js.map +1 -1
  15. package/lib/rtp/src/rtcp/rr.js +5 -2
  16. package/lib/rtp/src/rtcp/rr.js.map +1 -1
  17. package/lib/rtp/src/rtcp/rtpfb/nack.js +6 -3
  18. package/lib/rtp/src/rtcp/rtpfb/nack.js.map +1 -1
  19. package/lib/rtp/src/rtcp/rtpfb/twcc.js +6 -6
  20. package/lib/rtp/src/rtcp/rtpfb/twcc.js.map +1 -1
  21. package/lib/rtp/src/rtcp/sr.js +5 -2
  22. package/lib/rtp/src/rtcp/sr.js.map +1 -1
  23. package/lib/rtp/src/srtp/cipher/ctr.js +5 -2
  24. package/lib/rtp/src/srtp/cipher/ctr.js.map +1 -1
  25. package/lib/rtp/src/srtp/cipher/gcm.js +6 -3
  26. package/lib/rtp/src/srtp/cipher/gcm.js.map +1 -1
  27. package/lib/sctp/src/param.js +5 -2
  28. package/lib/sctp/src/param.js.map +1 -1
  29. package/lib/sctp/src/sctp.js +5 -5
  30. package/lib/sctp/src/sctp.js.map +1 -1
  31. package/lib/webrtc/src/media/receiver/nack.js +2 -2
  32. package/lib/webrtc/src/media/receiver/nack.js.map +1 -1
  33. package/lib/webrtc/src/media/rtpReceiver.d.ts +3 -2
  34. package/lib/webrtc/src/media/rtpReceiver.js +4 -2
  35. package/lib/webrtc/src/media/rtpReceiver.js.map +1 -1
  36. package/lib/webrtc/src/media/rtpSender.d.ts +4 -2
  37. package/lib/webrtc/src/media/rtpSender.js +15 -7
  38. package/lib/webrtc/src/media/rtpSender.js.map +1 -1
  39. package/lib/webrtc/src/media/rtpTransceiver.d.ts +7 -6
  40. package/lib/webrtc/src/media/rtpTransceiver.js +8 -3
  41. package/lib/webrtc/src/media/rtpTransceiver.js.map +1 -1
  42. package/lib/webrtc/src/nonstandard/recorder/writer/webm.js +1 -1
  43. package/lib/webrtc/src/nonstandard/recorder/writer/webm.js.map +1 -1
  44. package/lib/webrtc/src/peerConnection.d.ts +10 -10
  45. package/lib/webrtc/src/peerConnection.js +324 -188
  46. package/lib/webrtc/src/peerConnection.js.map +1 -1
  47. package/lib/webrtc/src/sdp.js +5 -2
  48. package/lib/webrtc/src/sdp.js.map +1 -1
  49. package/lib/webrtc/src/transport/dtls.d.ts +3 -2
  50. package/lib/webrtc/src/transport/dtls.js +3 -0
  51. package/lib/webrtc/src/transport/dtls.js.map +1 -1
  52. package/lib/webrtc/src/transport/sctp.d.ts +5 -3
  53. package/lib/webrtc/src/transport/sctp.js +46 -34
  54. package/lib/webrtc/src/transport/sctp.js.map +1 -1
  55. package/package.json +2 -2
  56. package/src/media/receiver/nack.ts +1 -1
  57. package/src/media/rtpReceiver.ts +6 -5
  58. package/src/media/rtpSender.ts +18 -9
  59. package/src/media/rtpTransceiver.ts +13 -6
  60. package/src/nonstandard/recorder/writer/webm.ts +1 -1
  61. package/src/peerConnection.ts +386 -223
  62. package/src/sdp.ts +1 -1
  63. package/src/transport/dtls.ts +4 -1
  64. package/src/transport/sctp.ts +53 -33
@@ -93,21 +93,15 @@ export class RTCRtpSender {
93
93
  private seqOffset = 0;
94
94
  private rtpCache: RtpPacket[] = [];
95
95
  codec?: RTCRtpCodecParameters;
96
+ public dtlsTransport!: RTCDtlsTransport;
97
+ private dtlsDisposer: (() => void)[] = [];
96
98
 
97
99
  track?: MediaStreamTrack;
98
100
  stopped = false;
99
101
  rtcpRunning = false;
100
102
  private rtcpCancel = new AbortController();
101
103
 
102
- constructor(
103
- public trackOrKind: Kind | MediaStreamTrack,
104
- public dtlsTransport: RTCDtlsTransport
105
- ) {
106
- dtlsTransport.onStateChange.subscribe((state) => {
107
- if (state === "connected") {
108
- this.onReady.execute();
109
- }
110
- });
104
+ constructor(public trackOrKind: Kind | MediaStreamTrack) {
111
105
  if (trackOrKind instanceof MediaStreamTrack) {
112
106
  if (trackOrKind.streamId) {
113
107
  this.streamId = trackOrKind.streamId;
@@ -116,6 +110,21 @@ export class RTCRtpSender {
116
110
  }
117
111
  }
118
112
 
113
+ setDtlsTransport(dtlsTransport: RTCDtlsTransport) {
114
+ if (this.dtlsTransport) {
115
+ this.dtlsDisposer.forEach((dispose) => dispose());
116
+ }
117
+
118
+ this.dtlsTransport = dtlsTransport;
119
+ this.dtlsDisposer = [
120
+ this.dtlsTransport.onStateChange.subscribe((state) => {
121
+ if (state === "connected") {
122
+ this.onReady.execute();
123
+ }
124
+ }).unSubscribe,
125
+ ];
126
+ }
127
+
119
128
  get redDistance() {
120
129
  return this._redDistance;
121
130
  }
@@ -1,8 +1,8 @@
1
1
  import Event from "rx.mini";
2
2
  import * as uuid from "uuid";
3
3
 
4
+ import { RTCDtlsTransport } from "..";
4
5
  import { SenderDirections } from "../const";
5
- import { RTCDtlsTransport } from "../transport/dtls";
6
6
  import { Kind } from "../types/domain";
7
7
  import {
8
8
  RTCRtpCodecParameters,
@@ -39,12 +39,19 @@ export class RTCRtpTransceiver {
39
39
 
40
40
  constructor(
41
41
  public readonly kind: Kind,
42
- public readonly receiver: RTCRtpReceiver,
43
- public readonly sender: RTCRtpSender,
42
+ public dtlsTransport: RTCDtlsTransport,
43
+ public receiver: RTCRtpReceiver,
44
+ public sender: RTCRtpSender,
44
45
  /**RFC 8829 4.2.4. direction the transceiver was initialized with */
45
- public direction: Direction,
46
- public dtlsTransport: RTCDtlsTransport
47
- ) {}
46
+ public direction: Direction
47
+ ) {
48
+ this.setDtlsTransport(dtlsTransport);
49
+ }
50
+
51
+ setDtlsTransport(dtls: RTCDtlsTransport) {
52
+ this.receiver.setDtlsTransport(dtls);
53
+ this.sender.setDtlsTransport(dtls);
54
+ }
48
55
 
49
56
  get msid() {
50
57
  return `${this.sender.streamId} ${this.sender.trackId}`;
@@ -15,7 +15,7 @@ export class WebmFactory extends MediaWriter {
15
15
  start(tracks: MediaStreamTrack[]) {
16
16
  this.webm = new WebmOutput(
17
17
  fs,
18
- "./test.webm",
18
+ this.path,
19
19
  tracks.map((track, i) => {
20
20
  const trackNumber = i + 1;
21
21
  const payloadType = track.codec!.payloadType;