werift 0.22.1 → 0.22.3
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 +8 -7
- package/lib/common/src/binary.js +5 -2
- package/lib/common/src/binary.js.map +1 -1
- package/lib/common/src/event.d.ts +1 -0
- package/lib/common/src/event.js +5 -0
- package/lib/common/src/event.js.map +1 -1
- package/lib/common/src/log.d.ts +1 -2
- package/lib/common/src/transport.d.ts +4 -1
- package/lib/common/src/transport.js +35 -14
- package/lib/common/src/transport.js.map +1 -1
- package/lib/dtls/src/cipher/create.d.ts +2 -1
- package/lib/dtls/src/cipher/create.js.map +1 -1
- package/lib/dtls/src/cipher/prf.d.ts +12 -12
- package/lib/dtls/src/cipher/suites/abstract.d.ts +2 -1
- package/lib/dtls/src/cipher/suites/abstract.js.map +1 -1
- package/lib/dtls/src/cipher/suites/aead.d.ts +3 -2
- package/lib/dtls/src/cipher/suites/aead.js +34 -41
- package/lib/dtls/src/cipher/suites/aead.js.map +1 -1
- package/lib/dtls/src/context/cipher.d.ts +4 -4
- package/lib/dtls/src/context/cipher.js +25 -15
- package/lib/dtls/src/context/cipher.js.map +1 -1
- package/lib/dtls/src/context/srtp.d.ts +3 -3
- package/lib/dtls/src/context/srtp.js.map +1 -1
- package/lib/dtls/src/flight/client/flight5.js.map +1 -1
- package/lib/dtls/src/flight/server/flight2.js.map +1 -1
- package/lib/dtls/src/handshake/extensions/ellipticCurves.d.ts +1 -1
- package/lib/dtls/src/handshake/extensions/renegotiationIndication.d.ts +2 -2
- package/lib/dtls/src/handshake/extensions/signature.d.ts +2 -2
- package/lib/dtls/src/handshake/extensions/useSrtp.d.ts +1 -1
- package/lib/dtls/src/handshake/extensions/useSrtp.js +4 -7
- package/lib/dtls/src/handshake/extensions/useSrtp.js.map +1 -1
- package/lib/dtls/src/handshake/message/alert.d.ts +1 -1
- package/lib/dtls/src/handshake/message/certificate.d.ts +1 -1
- package/lib/dtls/src/handshake/message/changeCipherSpec.d.ts +1 -1
- package/lib/dtls/src/handshake/message/client/certificateVerify.d.ts +1 -1
- package/lib/dtls/src/handshake/message/client/hello.d.ts +1 -1
- package/lib/dtls/src/handshake/message/client/keyExchange.d.ts +1 -1
- package/lib/dtls/src/handshake/message/finished.d.ts +1 -1
- package/lib/dtls/src/handshake/message/server/certificateRequest.d.ts +1 -1
- package/lib/dtls/src/handshake/message/server/hello.d.ts +1 -1
- package/lib/dtls/src/handshake/message/server/helloDone.d.ts +1 -1
- package/lib/dtls/src/handshake/message/server/helloVerifyRequest.d.ts +1 -1
- package/lib/dtls/src/handshake/message/server/keyExchange.d.ts +1 -1
- package/lib/dtls/src/handshake/random.d.ts +3 -3
- package/lib/dtls/src/record/message/fragment.d.ts +1 -1
- package/lib/dtls/src/record/message/header.d.ts +2 -19
- package/lib/dtls/src/record/message/header.js +1 -60
- package/lib/dtls/src/record/message/header.js.map +1 -1
- package/lib/dtls/src/record/message/plaintext.d.ts +6 -27
- package/lib/dtls/src/record/message/plaintext.js +34 -16
- package/lib/dtls/src/record/message/plaintext.js.map +1 -1
- package/lib/dtls/src/socket.d.ts +4 -4
- package/lib/dtls/src/socket.js.map +1 -1
- package/lib/dtls/src/util/binary.d.ts +1 -1
- package/lib/ice/src/candidate.js +1 -5
- package/lib/ice/src/candidate.js.map +1 -1
- package/lib/ice/src/helper.d.ts +1 -1
- package/lib/ice/src/ice.d.ts +4 -3
- package/lib/ice/src/ice.js +93 -72
- package/lib/ice/src/ice.js.map +1 -1
- package/lib/ice/src/iceBase.d.ts +21 -2
- package/lib/ice/src/iceBase.js +47 -1
- package/lib/ice/src/iceBase.js.map +1 -1
- package/lib/ice/src/stun/attributes.d.ts +2 -2
- package/lib/ice/src/stun/attributes.js +48 -29
- package/lib/ice/src/stun/attributes.js.map +1 -1
- package/lib/ice/src/stun/message.d.ts +2 -2
- package/lib/ice/src/stun/message.js +22 -23
- package/lib/ice/src/stun/message.js.map +1 -1
- package/lib/ice/src/stun/protocol.d.ts +2 -2
- package/lib/ice/src/stun/protocol.js +6 -0
- package/lib/ice/src/stun/protocol.js.map +1 -1
- package/lib/ice/src/turn/protocol.d.ts +2 -2
- package/lib/ice/src/turn/protocol.js +3 -0
- package/lib/ice/src/turn/protocol.js.map +1 -1
- package/lib/index.mjs +2707 -1883
- package/lib/nonstandard/index.mjs +737 -698
- package/lib/rtp/src/codec/av1.d.ts +2 -2
- package/lib/rtp/src/codec/opus.d.ts +1 -1
- package/lib/rtp/src/extra/container/mp4/container.js +18 -8
- package/lib/rtp/src/extra/container/mp4/container.js.map +1 -1
- package/lib/rtp/src/extra/container/mp4/h264.d.ts +2 -2
- package/lib/rtp/src/extra/container/mp4/sps-parser.d.ts +1 -1
- package/lib/rtp/src/extra/container/ogg/parser.d.ts +1 -1
- package/lib/rtp/src/extra/container/webm/container.d.ts +9 -9
- package/lib/rtp/src/extra/container/webm/container.js +24 -12
- package/lib/rtp/src/extra/container/webm/container.js.map +1 -1
- package/lib/rtp/src/extra/container/webm/ebml/ebml.d.ts +35 -1
- package/lib/rtp/src/extra/container/webm/ebml/ebml.js +75 -1
- package/lib/rtp/src/extra/container/webm/ebml/ebml.js.map +1 -1
- package/lib/rtp/src/extra/container/webm/ebml/id.d.ts +222 -222
- package/lib/rtp/src/extra/container/webm/index.d.ts +1 -0
- package/lib/rtp/src/extra/container/webm/index.js +1 -0
- package/lib/rtp/src/extra/container/webm/index.js.map +1 -1
- package/lib/rtp/src/extra/container/webm/util.d.ts +8 -0
- package/lib/rtp/src/extra/container/webm/util.js +100 -0
- package/lib/rtp/src/extra/container/webm/util.js.map +1 -0
- package/lib/rtp/src/extra/processor/depacketizerCallback.d.ts +1 -1
- package/lib/rtp/src/extra/processor/depacketizerTransformer.d.ts +6 -1
- package/lib/rtp/src/extra/processor/dtx.d.ts +1 -1
- package/lib/rtp/src/extra/processor/dtx.js +1 -1
- package/lib/rtp/src/extra/processor/dtx.js.map +1 -1
- package/lib/rtp/src/extra/processor/dtxCallback.d.ts +1 -1
- package/lib/rtp/src/extra/processor/interface.d.ts +1 -1
- package/lib/rtp/src/extra/processor/jitterBufferCallback.d.ts +1 -1
- package/lib/rtp/src/extra/processor/lipsync.js +1 -1
- package/lib/rtp/src/extra/processor/lipsync.js.map +1 -1
- package/lib/rtp/src/extra/processor/mp4.js +3 -0
- package/lib/rtp/src/extra/processor/mp4.js.map +1 -1
- package/lib/rtp/src/extra/processor/mute.d.ts +1 -1
- package/lib/rtp/src/extra/processor/mute.js +1 -1
- package/lib/rtp/src/extra/processor/mute.js.map +1 -1
- package/lib/rtp/src/extra/processor/nackHandlerCallback.d.ts +1 -1
- package/lib/rtp/src/extra/processor/ntpTime.d.ts +1 -1
- package/lib/rtp/src/extra/processor/ntpTime.js +1 -1
- package/lib/rtp/src/extra/processor/ntpTime.js.map +1 -1
- package/lib/rtp/src/extra/processor/ntpTimeCallback.d.ts +1 -1
- package/lib/rtp/src/extra/processor/rtpTimeCallback.d.ts +1 -1
- package/lib/rtp/src/extra/processor/webm.d.ts +3 -3
- package/lib/rtp/src/extra/processor/webm.js.map +1 -1
- package/lib/rtp/src/extra/processor/webmStream.d.ts +2 -2
- package/lib/rtp/src/extra/processor/webmStream.js.map +1 -1
- package/lib/rtp/src/helper.d.ts +1 -1
- package/lib/rtp/src/rtcp/header.d.ts +2 -1
- package/lib/rtp/src/rtcp/header.js +10 -0
- package/lib/rtp/src/rtcp/header.js.map +1 -1
- package/lib/rtp/src/rtcp/psfb/fullIntraRequest.d.ts +1 -1
- package/lib/rtp/src/rtcp/psfb/index.d.ts +2 -2
- package/lib/rtp/src/rtcp/psfb/index.js +2 -2
- package/lib/rtp/src/rtcp/psfb/index.js.map +1 -1
- package/lib/rtp/src/rtcp/psfb/pictureLossIndication.d.ts +1 -1
- package/lib/rtp/src/rtcp/psfb/remb.d.ts +1 -1
- package/lib/rtp/src/rtcp/rr.d.ts +2 -2
- package/lib/rtp/src/rtcp/rr.js +2 -2
- package/lib/rtp/src/rtcp/rr.js.map +1 -1
- package/lib/rtp/src/rtcp/rtcp.d.ts +0 -1
- package/lib/rtp/src/rtcp/rtcp.js +0 -10
- package/lib/rtp/src/rtcp/rtcp.js.map +1 -1
- package/lib/rtp/src/rtcp/rtpfb/const.d.ts +1 -0
- package/lib/rtp/src/rtcp/rtpfb/const.js +5 -0
- package/lib/rtp/src/rtcp/rtpfb/const.js.map +1 -0
- package/lib/rtp/src/rtcp/rtpfb/index.d.ts +1 -1
- package/lib/rtp/src/rtcp/rtpfb/index.js +2 -1
- package/lib/rtp/src/rtcp/rtpfb/index.js.map +1 -1
- package/lib/rtp/src/rtcp/rtpfb/nack.d.ts +1 -1
- package/lib/rtp/src/rtcp/rtpfb/nack.js +2 -2
- package/lib/rtp/src/rtcp/rtpfb/nack.js.map +1 -1
- package/lib/rtp/src/rtcp/rtpfb/twcc.d.ts +4 -4
- package/lib/rtp/src/rtcp/sdes.d.ts +4 -4
- package/lib/rtp/src/rtcp/sdes.js +2 -2
- package/lib/rtp/src/rtcp/sdes.js.map +1 -1
- package/lib/rtp/src/rtcp/sr.d.ts +2 -2
- package/lib/rtp/src/rtcp/sr.js +2 -2
- package/lib/rtp/src/rtcp/sr.js.map +1 -1
- package/lib/rtp/src/rtp/headerExtension.d.ts +6 -6
- package/lib/rtp/src/rtp/red/packet.d.ts +2 -2
- package/lib/rtp/src/rtp/rtp.d.ts +2 -2
- package/lib/rtp/src/srtp/cipher/ctr.d.ts +4 -4
- package/lib/rtp/src/srtp/cipher/gcm.d.ts +4 -4
- package/lib/rtp/src/srtp/const.d.ts +3 -3
- package/lib/rtp/src/srtp/const.js.map +1 -1
- package/lib/rtp/src/srtp/context/context.d.ts +10 -10
- package/lib/rtp/src/srtp/context/context.js +10 -4
- package/lib/rtp/src/srtp/context/context.js.map +1 -1
- package/lib/rtp/src/srtp/context/srtcp.d.ts +3 -3
- package/lib/rtp/src/srtp/context/srtcp.js.map +1 -1
- package/lib/rtp/src/srtp/context/srtp.d.ts +3 -3
- package/lib/rtp/src/srtp/context/srtp.js.map +1 -1
- package/lib/rtp/src/srtp/srtcp.d.ts +2 -2
- package/lib/rtp/src/srtp/srtp.d.ts +2 -2
- package/lib/sctp/src/chunk.d.ts +12 -12
- package/lib/sctp/src/chunk.js +87 -66
- package/lib/sctp/src/chunk.js.map +1 -1
- package/lib/sctp/src/param.d.ts +3 -3
- package/lib/sctp/src/param.js +4 -5
- package/lib/sctp/src/param.js.map +1 -1
- package/lib/sctp/src/sctp.d.ts +3 -1
- package/lib/sctp/src/sctp.js +58 -15
- package/lib/sctp/src/sctp.js.map +1 -1
- package/lib/webrtc/src/dataChannel.d.ts +15 -4
- package/lib/webrtc/src/dataChannel.js +42 -7
- package/lib/webrtc/src/dataChannel.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/index.d.ts +2 -0
- package/lib/webrtc/src/media/index.js +2 -0
- package/lib/webrtc/src/media/index.js.map +1 -1
- package/lib/webrtc/src/media/parameters.d.ts +2 -2
- package/lib/webrtc/src/media/parameters.js.map +1 -1
- package/lib/webrtc/src/media/receiver/nack.js +3 -7
- package/lib/webrtc/src/media/receiver/nack.js.map +1 -1
- package/lib/webrtc/src/media/receiver/receiverTwcc.d.ts +2 -2
- package/lib/webrtc/src/media/receiver/receiverTwcc.js +1 -1
- package/lib/webrtc/src/media/receiver/receiverTwcc.js.map +1 -1
- package/lib/webrtc/src/media/router.js +2 -1
- package/lib/webrtc/src/media/router.js.map +1 -1
- package/lib/webrtc/src/media/rtpReceiver.d.ts +3 -3
- package/lib/webrtc/src/media/rtpReceiver.js +53 -4
- package/lib/webrtc/src/media/rtpReceiver.js.map +1 -1
- package/lib/webrtc/src/media/rtpSender.d.ts +6 -0
- package/lib/webrtc/src/media/rtpSender.js +64 -26
- package/lib/webrtc/src/media/rtpSender.js.map +1 -1
- package/lib/webrtc/src/media/rtpTransceiver.d.ts +12 -9
- package/lib/webrtc/src/media/rtpTransceiver.js +30 -26
- package/lib/webrtc/src/media/rtpTransceiver.js.map +1 -1
- package/lib/webrtc/src/media/stats.d.ts +279 -0
- package/lib/webrtc/src/media/stats.js +35 -1
- package/lib/webrtc/src/media/stats.js.map +1 -1
- package/lib/webrtc/src/media/track.js +3 -3
- package/lib/webrtc/src/media/track.js.map +1 -1
- package/lib/webrtc/src/nonstandard/recorder/writer/webm.js.map +1 -1
- package/lib/webrtc/src/nonstandard/userMedia.js +2 -2
- package/lib/webrtc/src/nonstandard/userMedia.js.map +1 -1
- package/lib/webrtc/src/peerConnection.d.ts +35 -64
- package/lib/webrtc/src/peerConnection.js +337 -1034
- package/lib/webrtc/src/peerConnection.js.map +1 -1
- package/lib/webrtc/src/sctpManager.d.ts +27 -0
- package/lib/webrtc/src/sctpManager.js +147 -0
- package/lib/webrtc/src/sctpManager.js.map +1 -0
- package/lib/webrtc/src/sdp.d.ts +3 -2
- package/lib/webrtc/src/sdp.js +17 -7
- package/lib/webrtc/src/sdp.js.map +1 -1
- package/lib/webrtc/src/sdpManager.d.ts +78 -0
- package/lib/webrtc/src/sdpManager.js +391 -0
- package/lib/webrtc/src/sdpManager.js.map +1 -0
- package/lib/webrtc/src/secureTransportManager.d.ts +56 -0
- package/lib/webrtc/src/secureTransportManager.js +349 -0
- package/lib/webrtc/src/secureTransportManager.js.map +1 -0
- package/lib/webrtc/src/transceiverManager.d.ts +40 -0
- package/lib/webrtc/src/transceiverManager.js +355 -0
- package/lib/webrtc/src/transceiverManager.js.map +1 -0
- package/lib/webrtc/src/transport/dtls.d.ts +18 -6
- package/lib/webrtc/src/transport/dtls.js +128 -13
- package/lib/webrtc/src/transport/dtls.js.map +1 -1
- package/lib/webrtc/src/transport/ice.d.ts +24 -0
- package/lib/webrtc/src/transport/ice.js +88 -2
- package/lib/webrtc/src/transport/ice.js.map +1 -1
- package/lib/webrtc/src/transport/sctp.js +13 -26
- package/lib/webrtc/src/transport/sctp.js.map +1 -1
- package/lib/webrtc/src/utils.d.ts +9 -4
- package/lib/webrtc/src/utils.js +34 -13
- package/lib/webrtc/src/utils.js.map +1 -1
- package/package.json +12 -26
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RtcpPayloadSpecificFeedback = void 0;
|
|
4
4
|
const common_1 = require("../../imports/common");
|
|
5
|
-
const
|
|
5
|
+
const header_1 = require("../header");
|
|
6
6
|
const fullIntraRequest_1 = require("./fullIntraRequest");
|
|
7
7
|
const pictureLossIndication_1 = require("./pictureLossIndication");
|
|
8
8
|
const remb_1 = require("./remb");
|
|
@@ -25,7 +25,7 @@ class RtcpPayloadSpecificFeedback {
|
|
|
25
25
|
}
|
|
26
26
|
serialize() {
|
|
27
27
|
const payload = this.feedback.serialize();
|
|
28
|
-
return
|
|
28
|
+
return header_1.RtcpHeader.serialize(this.type, this.feedback.count, payload, this.feedback.length);
|
|
29
29
|
}
|
|
30
30
|
static deSerialize(data, header) {
|
|
31
31
|
let feedback;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../rtp/src/rtcp/psfb/index.ts"],"names":[],"mappings":";;;AAAA,iDAA6C;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../rtp/src/rtcp/psfb/index.ts"],"names":[],"mappings":";;;AAAA,iDAA6C;AAC7C,sCAAuC;AACvC,yDAAsD;AACtD,mEAAgE;AAChE,iCAAqD;AAErD,MAAM,GAAG,GAAG,IAAA,cAAK,EAAC,8BAA8B,CAAC,CAAC;AAOlD,MAAa,2BAA2B;IAMtC,YAAY,QAA8C,EAAE;QAJnD;;;;mBAAO,2BAA2B,CAAC,IAAI;WAAC;QAEjD;;;;;WAAoB;QAGlB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,SAAS;QACP,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QAC1C,OAAO,mBAAU,CAAC,SAAS,CACzB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,QAAQ,CAAC,KAAK,EACnB,OAAO,EACP,IAAI,CAAC,QAAQ,CAAC,MAAM,CACrB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAAY,EAAE,MAAkB;QACjD,IAAI,QAA8B,CAAC;QAEnC,QAAQ,MAAM,CAAC,KAAK,EAAE,CAAC;YACrB,KAAK,mCAAgB,CAAC,KAAK;gBACzB,QAAQ,GAAG,mCAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC9C,MAAM;YACR,KAAK,6CAAqB,CAAC,KAAK;gBAC9B,QAAQ,GAAG,6CAAqB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACnD,MAAM;YACR,KAAK,kCAA2B,CAAC,KAAK;gBACpC,QAAQ,GAAG,kCAA2B,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACzD,MAAM;YACR;gBACE,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBACzC,MAAM;QACV,CAAC;QAED,OAAO,IAAI,2BAA2B,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IACvD,CAAC;;AAvCH,kEAwCC;AAvCiB;;;;WAAO,GAAG;EAAN,CAAO","sourcesContent":["import { debug } from \"../../imports/common\";\nimport { RtcpHeader } from \"../header\";\nimport { FullIntraRequest } from \"./fullIntraRequest\";\nimport { PictureLossIndication } from \"./pictureLossIndication\";\nimport { ReceiverEstimatedMaxBitrate } from \"./remb\";\n\nconst log = debug(\"werift-rtp: /rtcp/psfb/index\");\n\ntype Feedback =\n | FullIntraRequest\n | PictureLossIndication\n | ReceiverEstimatedMaxBitrate;\n\nexport class RtcpPayloadSpecificFeedback {\n static readonly type = 206;\n readonly type = RtcpPayloadSpecificFeedback.type;\n\n feedback!: Feedback;\n\n constructor(props: Partial<RtcpPayloadSpecificFeedback> = {}) {\n Object.assign(this, props);\n }\n\n serialize() {\n const payload = this.feedback.serialize();\n return RtcpHeader.serialize(\n this.type,\n this.feedback.count,\n payload,\n this.feedback.length,\n );\n }\n\n static deSerialize(data: Buffer, header: RtcpHeader) {\n let feedback: Feedback | undefined;\n\n switch (header.count) {\n case FullIntraRequest.count:\n feedback = FullIntraRequest.deSerialize(data);\n break;\n case PictureLossIndication.count:\n feedback = PictureLossIndication.deSerialize(data);\n break;\n case ReceiverEstimatedMaxBitrate.count:\n feedback = ReceiverEstimatedMaxBitrate.deSerialize(data);\n break;\n default:\n log(\"unknown psfb packet\", header.count);\n break;\n }\n\n return new RtcpPayloadSpecificFeedback({ feedback });\n }\n}\n"]}
|
|
@@ -12,5 +12,5 @@ export declare class ReceiverEstimatedMaxBitrate {
|
|
|
12
12
|
ssrcFeedbacks: number[];
|
|
13
13
|
constructor(props?: Partial<ReceiverEstimatedMaxBitrate>);
|
|
14
14
|
static deSerialize(data: Buffer): ReceiverEstimatedMaxBitrate;
|
|
15
|
-
serialize(): Buffer
|
|
15
|
+
serialize(): Buffer<ArrayBuffer>;
|
|
16
16
|
}
|
package/lib/rtp/src/rtcp/rr.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export declare class RtcpRrPacket {
|
|
|
4
4
|
static readonly type = 201;
|
|
5
5
|
readonly type = 201;
|
|
6
6
|
constructor(props?: Partial<RtcpRrPacket>);
|
|
7
|
-
serialize(): Buffer
|
|
7
|
+
serialize(): Buffer<ArrayBuffer>;
|
|
8
8
|
static deSerialize(data: Buffer, count: number): RtcpRrPacket;
|
|
9
9
|
}
|
|
10
10
|
export declare class RtcpReceiverInfo {
|
|
@@ -27,6 +27,6 @@ export declare class RtcpReceiverInfo {
|
|
|
27
27
|
lsr: number;
|
|
28
28
|
dlsr: number;
|
|
29
29
|
};
|
|
30
|
-
serialize(): Buffer
|
|
30
|
+
serialize(): Buffer<ArrayBuffer>;
|
|
31
31
|
static deSerialize(data: Buffer): RtcpReceiverInfo;
|
|
32
32
|
}
|
package/lib/rtp/src/rtcp/rr.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RtcpReceiverInfo = exports.RtcpRrPacket = void 0;
|
|
4
4
|
const src_1 = require("../../../common/src");
|
|
5
|
-
const
|
|
5
|
+
const header_1 = require("./header");
|
|
6
6
|
class RtcpRrPacket {
|
|
7
7
|
constructor(props = {}) {
|
|
8
8
|
Object.defineProperty(this, "ssrc", {
|
|
@@ -31,7 +31,7 @@ class RtcpRrPacket {
|
|
|
31
31
|
payload,
|
|
32
32
|
...this.reports.map((report) => report.serialize()),
|
|
33
33
|
]);
|
|
34
|
-
return
|
|
34
|
+
return header_1.RtcpHeader.serialize(RtcpRrPacket.type, this.reports.length, payload, Math.floor(payload.length / 4));
|
|
35
35
|
}
|
|
36
36
|
static deSerialize(data, count) {
|
|
37
37
|
const [ssrc] = (0, src_1.bufferReader)(data, [4]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rr.js","sourceRoot":"","sources":["../../../../../rtp/src/rtcp/rr.ts"],"names":[],"mappings":";;;AAAA,6CAAiE;AACjE,
|
|
1
|
+
{"version":3,"file":"rr.js","sourceRoot":"","sources":["../../../../../rtp/src/rtcp/rr.ts"],"names":[],"mappings":"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","sourcesContent":["import { bufferReader, bufferWriter } from \"../../../common/src\";\nimport { RtcpHeader } from \"./header\";\n\nexport class RtcpRrPacket {\n ssrc = 0;\n reports: RtcpReceiverInfo[] = [];\n static readonly type = 201;\n readonly type = RtcpRrPacket.type;\n\n constructor(props: Partial<RtcpRrPacket> = {}) {\n Object.assign(this, props);\n }\n\n serialize() {\n let payload = bufferWriter([4], [this.ssrc]);\n payload = Buffer.concat([\n payload,\n ...this.reports.map((report) => report.serialize()),\n ]);\n return RtcpHeader.serialize(\n RtcpRrPacket.type,\n this.reports.length,\n payload,\n Math.floor(payload.length / 4),\n );\n }\n\n static deSerialize(data: Buffer, count: number) {\n const [ssrc] = bufferReader(data, [4]);\n let pos = 4;\n const reports: RtcpReceiverInfo[] = [];\n for (let _ = 0; _ < count; _++) {\n reports.push(RtcpReceiverInfo.deSerialize(data.slice(pos, pos + 24)));\n pos += 24;\n }\n return new RtcpRrPacket({ ssrc, reports });\n }\n}\n\nexport class RtcpReceiverInfo {\n ssrc!: number;\n fractionLost!: number;\n packetsLost!: number;\n highestSequence!: number;\n jitter!: number;\n /**last SR */\n lsr!: number;\n /**delay since last SR */\n dlsr!: number;\n\n constructor(props: Partial<RtcpReceiverInfo> = {}) {\n Object.assign(this, props);\n }\n\n toJSON() {\n return {\n ssrc: this.ssrc,\n fractionLost: this.fractionLost,\n packetsLost: this.packetsLost,\n highestSequence: this.highestSequence,\n jitter: this.jitter,\n lsr: this.lsr,\n dlsr: this.dlsr,\n };\n }\n\n serialize() {\n return bufferWriter(\n [4, 1, 3, 4, 4, 4, 4],\n [\n this.ssrc,\n this.fractionLost,\n this.packetsLost,\n this.highestSequence,\n this.jitter,\n this.lsr,\n this.dlsr,\n ],\n );\n }\n\n static deSerialize(data: Buffer) {\n const [\n ssrc,\n fractionLost,\n packetsLost,\n highestSequence,\n jitter,\n lsr,\n dlsr,\n ] = bufferReader(data, [4, 1, 3, 4, 4, 4, 4]);\n\n return new RtcpReceiverInfo({\n ssrc,\n fractionLost,\n packetsLost,\n highestSequence,\n jitter,\n lsr,\n dlsr,\n });\n }\n}\n"]}
|
|
@@ -5,7 +5,6 @@ import { RtcpSourceDescriptionPacket } from "./sdes";
|
|
|
5
5
|
import { RtcpSrPacket } from "./sr";
|
|
6
6
|
export type RtcpPacket = RtcpRrPacket | RtcpSrPacket | RtcpPayloadSpecificFeedback | RtcpSourceDescriptionPacket | RtcpTransportLayerFeedback;
|
|
7
7
|
export declare class RtcpPacketConverter {
|
|
8
|
-
static serialize(type: number, count: number, payload: Buffer, length: number): Buffer;
|
|
9
8
|
static deSerialize(data: Buffer): RtcpPacket[];
|
|
10
9
|
}
|
|
11
10
|
export declare function isRtcp(buf: Buffer): boolean;
|
package/lib/rtp/src/rtcp/rtcp.js
CHANGED
|
@@ -11,16 +11,6 @@ const sdes_1 = require("./sdes");
|
|
|
11
11
|
const sr_1 = require("./sr");
|
|
12
12
|
const log = (0, common_1.debug)("werift-rtp:packages/rtp/src/rtcp/rtcp.ts");
|
|
13
13
|
class RtcpPacketConverter {
|
|
14
|
-
static serialize(type, count, payload, length) {
|
|
15
|
-
const header = new header_1.RtcpHeader({
|
|
16
|
-
type,
|
|
17
|
-
count,
|
|
18
|
-
version: 2,
|
|
19
|
-
length,
|
|
20
|
-
});
|
|
21
|
-
const buf = header.serialize();
|
|
22
|
-
return Buffer.concat([buf, payload]);
|
|
23
|
-
}
|
|
24
14
|
static deSerialize(data) {
|
|
25
15
|
let pos = 0;
|
|
26
16
|
const packets = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rtcp.js","sourceRoot":"","sources":["../../../../../rtp/src/rtcp/rtcp.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"rtcp.js","sourceRoot":"","sources":["../../../../../rtp/src/rtcp/rtcp.ts"],"names":[],"mappings":";;;AAuEA,wBAEC;AAzED,8CAA0C;AAC1C,qCAAwD;AACxD,iCAAqD;AACrD,6BAAoC;AACpC,mCAAqD;AACrD,iCAAqD;AACrD,6BAAoC;AAEpC,MAAM,GAAG,GAAG,IAAA,cAAK,EAAC,0CAA0C,CAAC,CAAC;AAS9D,MAAa,mBAAmB;IAC9B,MAAM,CAAC,WAAW,CAAC,IAAY;QAC7B,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,MAAM,OAAO,GAAiB,EAAE,CAAC;QAEjC,OAAO,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,mBAAU,CAAC,WAAW,CACnC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,yBAAgB,CAAC,CAC3C,CAAC;YACF,GAAG,IAAI,yBAAgB,CAAC;YAExB,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACjC,GAAG,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAEzB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1E,CAAC;YAED,IAAI,CAAC;gBACH,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;oBACpB,KAAK,iBAAY,CAAC,IAAI;wBACpB,OAAO,CAAC,IAAI,CAAC,iBAAY,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;wBAC9D,MAAM;oBACR,KAAK,iBAAY,CAAC,IAAI;wBACpB,OAAO,CAAC,IAAI,CAAC,iBAAY,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;wBAC9D,MAAM;oBACR,KAAK,kCAA2B,CAAC,IAAI;wBACnC,OAAO,CAAC,IAAI,CACV,kCAA2B,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CACzD,CAAC;wBACF,MAAM;oBACR,KAAK,kCAA0B,CAAC,IAAI;wBAClC,OAAO,CAAC,IAAI,CACV,kCAA0B,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CACxD,CAAC;wBACF,MAAM;oBACR,KAAK,kCAA2B,CAAC,IAAI;wBACnC,OAAO,CAAC,IAAI,CACV,kCAA2B,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CACzD,CAAC;wBACF,MAAM;oBACR;wBACE,2CAA2C;wBAC3C,MAAM;gBACV,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,GAAG,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AApDD,kDAoDC;AAED,SAAgB,MAAM,CAAC,GAAW;IAChC,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;AAC3D,CAAC","sourcesContent":["import { debug } from \"../imports/common\";\nimport { RTCP_HEADER_SIZE, RtcpHeader } from \"./header\";\nimport { RtcpPayloadSpecificFeedback } from \"./psfb\";\nimport { RtcpRrPacket } from \"./rr\";\nimport { RtcpTransportLayerFeedback } from \"./rtpfb\";\nimport { RtcpSourceDescriptionPacket } from \"./sdes\";\nimport { RtcpSrPacket } from \"./sr\";\n\nconst log = debug(\"werift-rtp:packages/rtp/src/rtcp/rtcp.ts\");\n\nexport type RtcpPacket =\n | RtcpRrPacket\n | RtcpSrPacket\n | RtcpPayloadSpecificFeedback\n | RtcpSourceDescriptionPacket\n | RtcpTransportLayerFeedback;\n\nexport class RtcpPacketConverter {\n static deSerialize(data: Buffer) {\n let pos = 0;\n const packets: RtcpPacket[] = [];\n\n while (pos < data.length) {\n const header = RtcpHeader.deSerialize(\n data.subarray(pos, pos + RTCP_HEADER_SIZE),\n );\n pos += RTCP_HEADER_SIZE;\n\n let payload = data.subarray(pos);\n pos += header.length * 4;\n\n if (header.padding) {\n payload = payload.subarray(0, payload.length - payload.subarray(-1)[0]);\n }\n\n try {\n switch (header.type) {\n case RtcpSrPacket.type:\n packets.push(RtcpSrPacket.deSerialize(payload, header.count));\n break;\n case RtcpRrPacket.type:\n packets.push(RtcpRrPacket.deSerialize(payload, header.count));\n break;\n case RtcpSourceDescriptionPacket.type:\n packets.push(\n RtcpSourceDescriptionPacket.deSerialize(payload, header),\n );\n break;\n case RtcpTransportLayerFeedback.type:\n packets.push(\n RtcpTransportLayerFeedback.deSerialize(payload, header),\n );\n break;\n case RtcpPayloadSpecificFeedback.type:\n packets.push(\n RtcpPayloadSpecificFeedback.deSerialize(payload, header),\n );\n break;\n default:\n // log(\"unknown rtcp packet\", header.type);\n break;\n }\n } catch (error) {\n log(\"deSerialize RTCP\", error);\n }\n }\n\n return packets;\n }\n}\n\nexport function isRtcp(buf: Buffer) {\n return buf.length >= 2 && buf[1] >= 192 && buf[1] <= 208;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const RtcpTransportLayerFeedbackType = 205;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"const.js","sourceRoot":"","sources":["../../../../../../rtp/src/rtcp/rtpfb/const.ts"],"names":[],"mappings":";;;AAAa,QAAA,8BAA8B,GAAG,GAAG,CAAC","sourcesContent":["export const RtcpTransportLayerFeedbackType = 205;\n"]}
|
|
@@ -8,7 +8,7 @@ export declare class RtcpTransportLayerFeedback {
|
|
|
8
8
|
feedback: Feedback;
|
|
9
9
|
header: RtcpHeader;
|
|
10
10
|
constructor(props?: Partial<RtcpTransportLayerFeedback>);
|
|
11
|
-
serialize(): Buffer
|
|
11
|
+
serialize(): Buffer<ArrayBuffer>;
|
|
12
12
|
static deSerialize(data: Buffer, header: RtcpHeader): RtcpTransportLayerFeedback;
|
|
13
13
|
}
|
|
14
14
|
export {};
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RtcpTransportLayerFeedback = void 0;
|
|
4
4
|
const common_1 = require("../../imports/common");
|
|
5
|
+
const const_1 = require("./const");
|
|
5
6
|
const nack_1 = require("./nack");
|
|
6
7
|
const twcc_1 = require("./twcc");
|
|
7
8
|
const log = (0, common_1.debug)("werift-rtp:packages/rtp/rtcp/rtpfb/index");
|
|
@@ -52,6 +53,6 @@ Object.defineProperty(RtcpTransportLayerFeedback, "type", {
|
|
|
52
53
|
enumerable: true,
|
|
53
54
|
configurable: true,
|
|
54
55
|
writable: true,
|
|
55
|
-
value:
|
|
56
|
+
value: const_1.RtcpTransportLayerFeedbackType
|
|
56
57
|
});
|
|
57
58
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../rtp/src/rtcp/rtpfb/index.ts"],"names":[],"mappings":";;;AAAA,iDAA6C;AAE7C,iCAAqC;AACrC,iCAAyC;AAEzC,MAAM,GAAG,GAAG,IAAA,cAAK,EAAC,0CAA0C,CAAC,CAAC;AAgB9D,MAAa,0BAA0B;IAMrC,YAAY,QAA6C,EAAE;QAJlD;;;;mBAAO,0BAA0B,CAAC,IAAI;WAAC;QAChD;;;;;WAAoB;QACpB;;;;;WAAoB;QAGlB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,SAAS;QACP,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QAC1C,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAAY,EAAE,MAAkB;QACjD,IAAI,QAA8B,CAAC;QAEnC,QAAQ,MAAM,CAAC,KAAK,EAAE,CAAC;YACrB,KAAK,kBAAW,CAAC,KAAK;gBACpB,QAAQ,GAAG,kBAAW,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACjD,MAAM;YACR,KAAK,sBAAe,CAAC,KAAK;gBACxB,QAAQ,GAAG,sBAAe,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACrD,MAAM;YACR;gBACE,GAAG,CAAC,sBAAsB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC1C,MAAM;QACV,CAAC;QAED,OAAO,IAAI,0BAA0B,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9D,CAAC;;AA/BH,gEAgCC;AA/BiB;;;;WAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../rtp/src/rtcp/rtpfb/index.ts"],"names":[],"mappings":";;;AAAA,iDAA6C;AAE7C,mCAAyD;AACzD,iCAAqC;AACrC,iCAAyC;AAEzC,MAAM,GAAG,GAAG,IAAA,cAAK,EAAC,0CAA0C,CAAC,CAAC;AAgB9D,MAAa,0BAA0B;IAMrC,YAAY,QAA6C,EAAE;QAJlD;;;;mBAAO,0BAA0B,CAAC,IAAI;WAAC;QAChD;;;;;WAAoB;QACpB;;;;;WAAoB;QAGlB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,SAAS;QACP,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QAC1C,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAAY,EAAE,MAAkB;QACjD,IAAI,QAA8B,CAAC;QAEnC,QAAQ,MAAM,CAAC,KAAK,EAAE,CAAC;YACrB,KAAK,kBAAW,CAAC,KAAK;gBACpB,QAAQ,GAAG,kBAAW,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACjD,MAAM;YACR,KAAK,sBAAe,CAAC,KAAK;gBACxB,QAAQ,GAAG,sBAAe,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACrD,MAAM;YACR;gBACE,GAAG,CAAC,sBAAsB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC1C,MAAM;QACV,CAAC;QAED,OAAO,IAAI,0BAA0B,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9D,CAAC;;AA/BH,gEAgCC;AA/BiB;;;;WAAO,sCAA8B;EAAjC,CAAkC","sourcesContent":["import { debug } from \"../../imports/common\";\nimport type { RtcpHeader } from \"../header\";\nimport { RtcpTransportLayerFeedbackType } from \"./const\";\nimport { GenericNack } from \"./nack\";\nimport { TransportWideCC } from \"./twcc\";\n\nconst log = debug(\"werift-rtp:packages/rtp/rtcp/rtpfb/index\");\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// |V=2|P| FMT | PT | length |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// | SSRC of packet sender |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// | SSRC of media source |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// : Feedback Control Information (FCI) :\n// : :\n\ntype Feedback = GenericNack | TransportWideCC;\n\nexport class RtcpTransportLayerFeedback {\n static readonly type = RtcpTransportLayerFeedbackType;\n readonly type = RtcpTransportLayerFeedback.type;\n feedback!: Feedback;\n header!: RtcpHeader;\n\n constructor(props: Partial<RtcpTransportLayerFeedback> = {}) {\n Object.assign(this, props);\n }\n\n serialize() {\n const payload = this.feedback.serialize();\n return payload;\n }\n\n static deSerialize(data: Buffer, header: RtcpHeader) {\n let feedback: Feedback | undefined;\n\n switch (header.count) {\n case GenericNack.count:\n feedback = GenericNack.deSerialize(data, header);\n break;\n case TransportWideCC.count:\n feedback = TransportWideCC.deSerialize(data, header);\n break;\n default:\n log(\"unknown rtpfb packet\", header.count);\n break;\n }\n\n return new RtcpTransportLayerFeedback({ feedback, header });\n }\n}\n"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.GenericNack = void 0;
|
|
4
|
-
const _1 = require(".");
|
|
5
4
|
const src_1 = require("../../../../common/src");
|
|
6
5
|
const header_1 = require("../header");
|
|
6
|
+
const const_1 = require("./const");
|
|
7
7
|
// 0 1 2 3
|
|
8
8
|
// 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
|
|
9
9
|
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
@@ -53,7 +53,7 @@ class GenericNack {
|
|
|
53
53
|
Object.assign(this, props);
|
|
54
54
|
if (!this.header) {
|
|
55
55
|
this.header = new header_1.RtcpHeader({
|
|
56
|
-
type:
|
|
56
|
+
type: const_1.RtcpTransportLayerFeedbackType,
|
|
57
57
|
count: this.count,
|
|
58
58
|
version: 2,
|
|
59
59
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nack.js","sourceRoot":"","sources":["../../../../../../rtp/src/rtcp/rtpfb/nack.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"nack.js","sourceRoot":"","sources":["../../../../../../rtp/src/rtcp/rtpfb/nack.ts"],"names":[],"mappings":"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","sourcesContent":["import { bufferReader, bufferWriter } from \"../../../../common/src\";\nimport { RtcpHeader } from \"../header\";\nimport { RtcpTransportLayerFeedbackType } from \"./const\";\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// | PID | BLP |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\n// Packet ID (PID)\n// bitmask of following lost packets (BLP):\n\nexport class GenericNack {\n static count = 1;\n readonly count = GenericNack.count;\n header!: RtcpHeader;\n senderSsrc!: number;\n mediaSourceSsrc!: number;\n lost: number[] = [];\n\n toJSON() {\n return {\n lost: this.lost,\n senderSsrc: this.senderSsrc,\n mediaSourceSsrc: this.mediaSourceSsrc,\n };\n }\n\n constructor(props: Partial<GenericNack> = {}) {\n Object.assign(this, props);\n if (!this.header) {\n this.header = new RtcpHeader({\n type: RtcpTransportLayerFeedbackType,\n count: this.count,\n version: 2,\n });\n }\n }\n\n static deSerialize(data: Buffer, header: RtcpHeader) {\n const [senderSsrc, mediaSourceSsrc] = bufferReader(data, [4, 4]);\n\n const lost: number[] = [];\n for (let pos = 8; pos < data.length; pos += 4) {\n const [pid, blp] = bufferReader(data.subarray(pos), [2, 2]);\n lost.push(pid);\n for (let diff = 0; diff < 16; diff++) {\n if ((blp >> diff) & 1) {\n lost.push(pid + diff + 1);\n }\n }\n }\n\n return new GenericNack({\n header,\n senderSsrc,\n mediaSourceSsrc,\n lost,\n });\n }\n\n serialize() {\n const ssrcPair = bufferWriter(\n [4, 4],\n [this.senderSsrc, this.mediaSourceSsrc],\n );\n\n const fci: Buffer[] = [];\n if (this.lost.length > 0) {\n let headPid = this.lost[0],\n blp = 0;\n this.lost.slice(1).forEach((pid) => {\n const diff = pid - headPid - 1;\n if (diff >= 0 && diff < 16) {\n blp |= 1 << diff;\n } else {\n fci.push(bufferWriter([2, 2], [headPid, blp]));\n headPid = pid;\n blp = 0;\n }\n });\n fci.push(bufferWriter([2, 2], [headPid, blp]));\n }\n const buf = Buffer.concat([ssrcPair, Buffer.concat(fci)]);\n this.header.length = buf.length / 4;\n return Buffer.concat([this.header.serialize(), buf]);\n }\n}\n"]}
|
|
@@ -15,7 +15,7 @@ export declare class TransportWideCC {
|
|
|
15
15
|
header: RtcpHeader;
|
|
16
16
|
constructor(props?: Partial<TransportWideCC>);
|
|
17
17
|
static deSerialize(data: Buffer, header: RtcpHeader): TransportWideCC;
|
|
18
|
-
serialize(): Buffer
|
|
18
|
+
serialize(): Buffer<ArrayBuffer>;
|
|
19
19
|
get packetResults(): PacketResult[];
|
|
20
20
|
}
|
|
21
21
|
export declare class RunLengthChunk {
|
|
@@ -25,7 +25,7 @@ export declare class RunLengthChunk {
|
|
|
25
25
|
runLength: number;
|
|
26
26
|
constructor(props?: Partial<RunLengthChunk>);
|
|
27
27
|
static deSerialize(data: Buffer): RunLengthChunk;
|
|
28
|
-
serialize(): Buffer
|
|
28
|
+
serialize(): Buffer<ArrayBuffer>;
|
|
29
29
|
results(currentSequenceNumber: number): PacketResult[];
|
|
30
30
|
}
|
|
31
31
|
export declare class StatusVectorChunk {
|
|
@@ -34,7 +34,7 @@ export declare class StatusVectorChunk {
|
|
|
34
34
|
symbolList: number[];
|
|
35
35
|
constructor(props?: Partial<StatusVectorChunk>);
|
|
36
36
|
static deSerialize(data: Buffer): StatusVectorChunk;
|
|
37
|
-
serialize(): Buffer
|
|
37
|
+
serialize(): Buffer<ArrayBuffer>;
|
|
38
38
|
}
|
|
39
39
|
export declare class RecvDelta {
|
|
40
40
|
/**optional (If undefined, it will be set automatically.)*/
|
|
@@ -46,7 +46,7 @@ export declare class RecvDelta {
|
|
|
46
46
|
deSerialize(data: Buffer): void;
|
|
47
47
|
parsed: boolean;
|
|
48
48
|
parseDelta(): void;
|
|
49
|
-
serialize(): Buffer
|
|
49
|
+
serialize(): Buffer<ArrayBuffer>;
|
|
50
50
|
}
|
|
51
51
|
export declare enum PacketChunk {
|
|
52
52
|
TypeTCCRunLengthChunk = 0,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { RtcpHeader } from "./header";
|
|
2
2
|
export declare class RtcpSourceDescriptionPacket {
|
|
3
3
|
static readonly type = 202;
|
|
4
4
|
readonly type = 202;
|
|
5
5
|
chunks: SourceDescriptionChunk[];
|
|
6
6
|
constructor(props: Partial<RtcpSourceDescriptionPacket>);
|
|
7
7
|
get length(): number;
|
|
8
|
-
serialize(): Buffer
|
|
8
|
+
serialize(): Buffer<ArrayBuffer>;
|
|
9
9
|
static deSerialize(payload: Buffer, header: RtcpHeader): RtcpSourceDescriptionPacket;
|
|
10
10
|
}
|
|
11
11
|
export declare class SourceDescriptionChunk {
|
|
@@ -13,7 +13,7 @@ export declare class SourceDescriptionChunk {
|
|
|
13
13
|
items: SourceDescriptionItem[];
|
|
14
14
|
constructor(props?: Partial<SourceDescriptionChunk>);
|
|
15
15
|
get length(): number;
|
|
16
|
-
serialize(): Buffer
|
|
16
|
+
serialize(): Buffer<ArrayBuffer>;
|
|
17
17
|
static deSerialize(data: Buffer): SourceDescriptionChunk;
|
|
18
18
|
}
|
|
19
19
|
export declare class SourceDescriptionItem {
|
|
@@ -21,6 +21,6 @@ export declare class SourceDescriptionItem {
|
|
|
21
21
|
text: string;
|
|
22
22
|
constructor(props: Partial<SourceDescriptionItem>);
|
|
23
23
|
get length(): number;
|
|
24
|
-
serialize(): Buffer
|
|
24
|
+
serialize(): Buffer<ArrayBuffer>;
|
|
25
25
|
static deSerialize(data: Buffer): SourceDescriptionItem;
|
|
26
26
|
}
|
package/lib/rtp/src/rtcp/sdes.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SourceDescriptionItem = exports.SourceDescriptionChunk = exports.RtcpSourceDescriptionPacket = void 0;
|
|
4
4
|
const src_1 = require("../../../common/src");
|
|
5
|
-
const
|
|
5
|
+
const header_1 = require("./header");
|
|
6
6
|
class RtcpSourceDescriptionPacket {
|
|
7
7
|
constructor(props) {
|
|
8
8
|
Object.defineProperty(this, "type", {
|
|
@@ -28,7 +28,7 @@ class RtcpSourceDescriptionPacket {
|
|
|
28
28
|
let payload = Buffer.concat(this.chunks.map((chunk) => chunk.serialize()));
|
|
29
29
|
while (payload.length % 4)
|
|
30
30
|
payload = Buffer.concat([payload, Buffer.from([0])]);
|
|
31
|
-
return
|
|
31
|
+
return header_1.RtcpHeader.serialize(this.type, this.chunks.length, payload, payload.length / 4);
|
|
32
32
|
}
|
|
33
33
|
static deSerialize(payload, header) {
|
|
34
34
|
const chunks = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdes.js","sourceRoot":"","sources":["../../../../../rtp/src/rtcp/sdes.ts"],"names":[],"mappings":";;;AAAA,6CAAmD;
|
|
1
|
+
{"version":3,"file":"sdes.js","sourceRoot":"","sources":["../../../../../rtp/src/rtcp/sdes.ts"],"names":[],"mappings":"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","sourcesContent":["import { bufferWriter } from \"../../../common/src\";\nimport { RtcpHeader } from \"./header\";\n\nexport class RtcpSourceDescriptionPacket {\n static readonly type = 202;\n readonly type = RtcpSourceDescriptionPacket.type;\n chunks: SourceDescriptionChunk[] = [];\n\n constructor(props: Partial<RtcpSourceDescriptionPacket>) {\n Object.assign(this, props);\n }\n\n get length() {\n let length = 0;\n this.chunks.forEach((chunk) => (length += chunk.length));\n return length;\n }\n\n serialize() {\n let payload = Buffer.concat(this.chunks.map((chunk) => chunk.serialize()));\n while (payload.length % 4)\n payload = Buffer.concat([payload, Buffer.from([0])]);\n return RtcpHeader.serialize(\n this.type,\n this.chunks.length,\n payload,\n payload.length / 4,\n );\n }\n\n static deSerialize(payload: Buffer, header: RtcpHeader) {\n const chunks: SourceDescriptionChunk[] = [];\n for (let i = 0; i < payload.length; ) {\n const chunk = SourceDescriptionChunk.deSerialize(payload.slice(i));\n chunks.push(chunk);\n i += chunk.length;\n }\n\n return new RtcpSourceDescriptionPacket({ chunks });\n }\n}\n\nexport class SourceDescriptionChunk {\n source!: number;\n items: SourceDescriptionItem[] = [];\n\n constructor(props: Partial<SourceDescriptionChunk> = {}) {\n Object.assign(this, props);\n }\n\n get length() {\n let length = 4;\n this.items.forEach((item) => (length += item.length));\n length += 1;\n length += getPadding(length);\n return length;\n }\n\n serialize() {\n const data = Buffer.concat([\n bufferWriter([4], [this.source]),\n Buffer.concat(this.items.map((item) => item.serialize())),\n ]);\n\n const res = Buffer.concat([data, Buffer.alloc(getPadding(data.length))]);\n return res;\n }\n\n static deSerialize(data: Buffer) {\n const source = data.readUInt32BE();\n const items: SourceDescriptionItem[] = [];\n for (let i = 4; i < data.length; ) {\n const type = data[i];\n if (type === 0) break;\n\n const item = SourceDescriptionItem.deSerialize(data.slice(i));\n items.push(item);\n i += item.length;\n }\n\n return new SourceDescriptionChunk({ source, items });\n }\n}\n\nexport class SourceDescriptionItem {\n type!: number;\n text!: string;\n\n constructor(props: Partial<SourceDescriptionItem>) {\n Object.assign(this, props);\n }\n\n get length() {\n return 1 + 1 + Buffer.from(this.text).length;\n }\n\n serialize() {\n const text = Buffer.from(this.text);\n return Buffer.concat([\n bufferWriter([1, 1], [this.type, text.length]),\n text,\n ]);\n }\n\n static deSerialize(data: Buffer) {\n const type = data[0];\n const octetCount = data[1];\n const text = data.slice(2, 2 + octetCount).toString();\n return new SourceDescriptionItem({ type, text });\n }\n}\n\nfunction getPadding(len: number) {\n if (len % 4 == 0) {\n return 0;\n }\n return 4 - (len % 4);\n}\n"]}
|
package/lib/rtp/src/rtcp/sr.d.ts
CHANGED
|
@@ -22,7 +22,7 @@ export declare class RtcpSrPacket {
|
|
|
22
22
|
dlsr: number;
|
|
23
23
|
}[];
|
|
24
24
|
};
|
|
25
|
-
serialize(): Buffer
|
|
25
|
+
serialize(): Buffer<ArrayBuffer>;
|
|
26
26
|
static deSerialize(payload: Buffer, count: number): RtcpSrPacket;
|
|
27
27
|
}
|
|
28
28
|
export declare class RtcpSenderInfo {
|
|
@@ -35,7 +35,7 @@ export declare class RtcpSenderInfo {
|
|
|
35
35
|
ntpTimestamp: number;
|
|
36
36
|
rtpTimestamp: number;
|
|
37
37
|
};
|
|
38
|
-
serialize(): Buffer
|
|
38
|
+
serialize(): Buffer<ArrayBuffer>;
|
|
39
39
|
static deSerialize(data: Buffer): RtcpSenderInfo;
|
|
40
40
|
}
|
|
41
41
|
export declare const ntpTime2Sec: (ntp: bigint) => number;
|
package/lib/rtp/src/rtcp/sr.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ntpTime2Sec = exports.RtcpSenderInfo = exports.RtcpSrPacket = void 0;
|
|
4
4
|
const src_1 = require("../../../common/src");
|
|
5
|
+
const header_1 = require("./header");
|
|
5
6
|
const rr_1 = require("./rr");
|
|
6
|
-
const rtcp_1 = require("./rtcp");
|
|
7
7
|
// https://datatracker.ietf.org/doc/html/rfc3550#section-6.4.1
|
|
8
8
|
// 0 1 2 3
|
|
9
9
|
// 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
|
|
@@ -83,7 +83,7 @@ class RtcpSrPacket {
|
|
|
83
83
|
payload,
|
|
84
84
|
...this.reports.map((report) => report.serialize()),
|
|
85
85
|
]);
|
|
86
|
-
return
|
|
86
|
+
return header_1.RtcpHeader.serialize(RtcpSrPacket.type, this.reports.length, payload, Math.floor(payload.length / 4));
|
|
87
87
|
}
|
|
88
88
|
static deSerialize(payload, count) {
|
|
89
89
|
const ssrc = payload.readUInt32BE();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sr.js","sourceRoot":"","sources":["../../../../../rtp/src/rtcp/sr.ts"],"names":[],"mappings":";;;AAAA,6CAAiE;AACjE,
|
|
1
|
+
{"version":3,"file":"sr.js","sourceRoot":"","sources":["../../../../../rtp/src/rtcp/sr.ts"],"names":[],"mappings":";;;AAAA,6CAAiE;AACjE,qCAAsC;AACtC,6BAAwC;AAExC,8DAA8D;AAC9D,wEAAwE;AACxE,0EAA0E;AAC1E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAE3E,MAAa,YAAY;IAOvB,YAAY,KAA+D;QAN3E;;;;mBAAO,CAAC;WAAC;QACT;;;;;WAA4B;QAC5B;;;;mBAA8B,EAAE;WAAC;QAExB;;;;mBAAO,YAAY,CAAC,IAAI;WAAC;QAGhC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACpC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SAC7C,CAAC;IACJ,CAAC;IAED,SAAS;QACP,IAAI,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9B,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAChE,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;YACtB,OAAO;YACP,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;SACpD,CAAC,CAAC;QACH,OAAO,mBAAU,CAAC,SAAS,CACzB,YAAY,CAAC,IAAI,EACjB,IAAI,CAAC,OAAO,CAAC,MAAM,EACnB,OAAO,EACP,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAC/B,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,OAAe,EAAE,KAAa;QAC/C,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,cAAc,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACvE,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAuB,EAAE,CAAC;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,OAAO,CAAC,IAAI,CACV,qBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAC9D,CAAC;YACF,GAAG,IAAI,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;QAC/D,OAAO,MAAM,CAAC;IAChB,CAAC;;AAhDH,oCAiDC;AA7CiB;;;;WAAO,GAAG;EAAN,CAAO;AA+C7B,MAAa,cAAc;IAMzB,YAAY,QAAiC,EAAE;QAL/C;;;;;WAAsB;QACtB;;;;;WAAsB;QACtB;;;;;WAAqB;QACrB;;;;;WAAoB;QAGlB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM;QACJ,OAAO;YACL,YAAY,EAAE,IAAA,mBAAW,EAAC,IAAI,CAAC,YAAY,CAAC;YAC5C,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC;IACJ,CAAC;IAED,SAAS;QACP,OAAO,IAAA,kBAAY,EACjB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACZ,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAC1E,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAAY;QAC7B,MAAM,CAAC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,CAAC,GAAG,IAAA,kBAAY,EACxE,IAAI,EACJ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CACb,CAAC;QAEF,OAAO,IAAI,cAAc,CAAC;YACxB,YAAY;YACZ,YAAY;YACZ,WAAW;YACX,UAAU;SACX,CAAC,CAAC;IACL,CAAC;CACF;AArCD,wCAqCC;AAEM,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,EAAE;IACzC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAA,kBAAY,EAAC,IAAA,kBAAY,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEzE,OAAO,MAAM,CAAC,GAAG,MAAM,IAAI,OAAO,EAAE,CAAC,CAAC;AACxC,CAAC,CAAC;AAJW,QAAA,WAAW,eAItB","sourcesContent":["import { bufferReader, bufferWriter } from \"../../../common/src\";\nimport { RtcpHeader } from \"./header\";\nimport { RtcpReceiverInfo } from \"./rr\";\n\n// https://datatracker.ietf.org/doc/html/rfc3550#section-6.4.1\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// header |V=2|P| RC | PT=SR=200 | length |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// | SSRC of sender |\n// +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+\n// sender | NTP timestamp, most significant word |\n// info +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// | NTP timestamp, least significant word |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// | RTP timestamp |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// | sender's packet count |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// | sender's octet count |\n// +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+\n// report | SSRC_1 (SSRC of first source) |\n// block +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// 1 | fraction lost | cumulative number of packets lost |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// | extended highest sequence number received |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// | interarrival jitter |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// | last SR (LSR) |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// | delay since last SR (DLSR) |\n// +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+\n// report | SSRC_2 (SSRC of second source) |\n// block +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n// 2 : ... :\n// +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+\n// | profile-specific extensions |\n// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\nexport class RtcpSrPacket {\n ssrc = 0;\n senderInfo!: RtcpSenderInfo;\n reports: RtcpReceiverInfo[] = [];\n static readonly type = 200;\n readonly type = RtcpSrPacket.type;\n\n constructor(props: Pick<RtcpSrPacket, \"senderInfo\"> & Partial<RtcpSrPacket>) {\n Object.assign(this, props);\n }\n\n toJSON() {\n return {\n ssrc: this.ssrc,\n senderInfo: this.senderInfo.toJSON(),\n reports: this.reports.map((r) => r.toJSON()),\n };\n }\n\n serialize() {\n let payload = Buffer.alloc(4);\n payload.writeUInt32BE(this.ssrc);\n payload = Buffer.concat([payload, this.senderInfo.serialize()]);\n payload = Buffer.concat([\n payload,\n ...this.reports.map((report) => report.serialize()),\n ]);\n return RtcpHeader.serialize(\n RtcpSrPacket.type,\n this.reports.length,\n payload,\n Math.floor(payload.length / 4),\n );\n }\n\n static deSerialize(payload: Buffer, count: number) {\n const ssrc = payload.readUInt32BE();\n const senderInfo = RtcpSenderInfo.deSerialize(payload.subarray(4, 24));\n let pos = 24;\n const reports: RtcpReceiverInfo[] = [];\n for (let _ = 0; _ < count; _++) {\n reports.push(\n RtcpReceiverInfo.deSerialize(payload.subarray(pos, pos + 24)),\n );\n pos += 24;\n }\n const packet = new RtcpSrPacket({ ssrc, senderInfo, reports });\n return packet;\n }\n}\n\nexport class RtcpSenderInfo {\n ntpTimestamp!: bigint;\n rtpTimestamp!: number;\n packetCount!: number;\n octetCount!: number;\n\n constructor(props: Partial<RtcpSenderInfo> = {}) {\n Object.assign(this, props);\n }\n\n toJSON() {\n return {\n ntpTimestamp: ntpTime2Sec(this.ntpTimestamp),\n rtpTimestamp: this.rtpTimestamp,\n };\n }\n\n serialize() {\n return bufferWriter(\n [8, 4, 4, 4],\n [this.ntpTimestamp, this.rtpTimestamp, this.packetCount, this.octetCount],\n );\n }\n\n static deSerialize(data: Buffer) {\n const [ntpTimestamp, rtpTimestamp, packetCount, octetCount] = bufferReader(\n data,\n [8, 4, 4, 4],\n );\n\n return new RtcpSenderInfo({\n ntpTimestamp,\n rtpTimestamp,\n packetCount,\n octetCount,\n });\n }\n}\n\nexport const ntpTime2Sec = (ntp: bigint) => {\n const [ntpSec, ntpMsec] = bufferReader(bufferWriter([8], [ntp]), [4, 4]);\n\n return Number(`${ntpSec}.${ntpMsec}`);\n};\n"]}
|
|
@@ -59,12 +59,12 @@ export interface Extensions {
|
|
|
59
59
|
export declare function rtpHeaderExtensionsParser(extensions: Extension[], extIdUriMap: {
|
|
60
60
|
[id: number]: string;
|
|
61
61
|
}): Extensions;
|
|
62
|
-
export declare function serializeSdesMid(id: string): Buffer
|
|
63
|
-
export declare function serializeSdesRTPStreamID(id: string): Buffer
|
|
64
|
-
export declare function serializeRepairedRtpStreamId(id: string): Buffer
|
|
65
|
-
export declare function serializeTransportWideCC(transportSequenceNumber: number): Buffer
|
|
66
|
-
export declare function serializeAbsSendTime(ntpTime: bigint): Buffer
|
|
67
|
-
export declare function serializeAudioLevelIndication(level: number): Buffer
|
|
62
|
+
export declare function serializeSdesMid(id: string): Buffer<ArrayBuffer>;
|
|
63
|
+
export declare function serializeSdesRTPStreamID(id: string): Buffer<ArrayBuffer>;
|
|
64
|
+
export declare function serializeRepairedRtpStreamId(id: string): Buffer<ArrayBuffer>;
|
|
65
|
+
export declare function serializeTransportWideCC(transportSequenceNumber: number): Buffer<ArrayBuffer>;
|
|
66
|
+
export declare function serializeAbsSendTime(ntpTime: bigint): Buffer<ArrayBuffer>;
|
|
67
|
+
export declare function serializeAudioLevelIndication(level: number): Buffer<ArrayBufferLike>;
|
|
68
68
|
export declare function deserializeString(buf: Buffer): string;
|
|
69
69
|
export declare function deserializeUint16BE(buf: Buffer): number;
|
|
70
70
|
export declare function deserializeAbsSendTime(buf: Buffer): any;
|
|
@@ -7,12 +7,12 @@ export declare class Red {
|
|
|
7
7
|
timestampOffset?: number;
|
|
8
8
|
}[];
|
|
9
9
|
static deSerialize(bufferOrArrayBuffer: Buffer | ArrayBuffer): Red;
|
|
10
|
-
serialize(): Buffer
|
|
10
|
+
serialize(): Buffer<ArrayBuffer>;
|
|
11
11
|
}
|
|
12
12
|
export declare class RedHeader {
|
|
13
13
|
fields: RedHeaderField[];
|
|
14
14
|
static deSerialize(buf: Buffer): readonly [RedHeader, number];
|
|
15
|
-
serialize(): Buffer
|
|
15
|
+
serialize(): Buffer<ArrayBuffer>;
|
|
16
16
|
}
|
|
17
17
|
interface RedHeaderField {
|
|
18
18
|
/**ヘッダーの最初のビットは、別のヘッダーブロックが続くかどうかを示す。 1の場合は、さらにヘッダーブロックが続き、0の場合は、これが最後のヘッダーブロックとなります。 */
|
package/lib/rtp/src/rtp/rtp.d.ts
CHANGED
|
@@ -29,7 +29,7 @@ export declare class RtpHeader {
|
|
|
29
29
|
constructor(props?: Partial<RtpHeader>);
|
|
30
30
|
static deSerialize(rawPacket: Buffer): RtpHeader;
|
|
31
31
|
get serializeSize(): number;
|
|
32
|
-
serialize(size: number): Buffer
|
|
32
|
+
serialize(size: number): Buffer<ArrayBuffer>;
|
|
33
33
|
}
|
|
34
34
|
export declare class RtpPacket {
|
|
35
35
|
header: RtpHeader;
|
|
@@ -37,7 +37,7 @@ export declare class RtpPacket {
|
|
|
37
37
|
constructor(header: RtpHeader, payload: Buffer);
|
|
38
38
|
get serializeSize(): number;
|
|
39
39
|
clone(): RtpPacket;
|
|
40
|
-
serialize(): Buffer
|
|
40
|
+
serialize(): Buffer<ArrayBuffer>;
|
|
41
41
|
static deSerialize(buf: Buffer): RtpPacket;
|
|
42
42
|
clear(): void;
|
|
43
43
|
}
|
|
@@ -6,11 +6,11 @@ export declare class CipherAesCtr extends CipherAesBase {
|
|
|
6
6
|
private srtcpSessionAuthTag;
|
|
7
7
|
readonly authTagLength = 10;
|
|
8
8
|
constructor(srtpSessionKey: Buffer, srtpSessionSalt: Buffer, srtcpSessionKey: Buffer, srtcpSessionSalt: Buffer, srtpSessionAuthTag: Buffer, srtcpSessionAuthTag: Buffer);
|
|
9
|
-
encryptRtp(header: RtpHeader, payload: Buffer, rolloverCounter: number): Buffer
|
|
9
|
+
encryptRtp(header: RtpHeader, payload: Buffer, rolloverCounter: number): Buffer<ArrayBuffer>;
|
|
10
10
|
decryptRtp(cipherText: Buffer, rolloverCounter: number): [Buffer, RtpHeader];
|
|
11
11
|
encryptRTCP(rtcpPacket: Buffer, srtcpIndex: number): Buffer;
|
|
12
12
|
decryptRTCP(encrypted: Buffer): [Buffer, RtcpHeader];
|
|
13
|
-
generateSrtcpAuthTag(buf: Buffer): Buffer
|
|
14
|
-
generateCounter(sequenceNumber: number, rolloverCounter: number, ssrc: number, sessionSalt: Buffer): Buffer
|
|
15
|
-
generateSrtpAuthTag(roc: number, ...buffers: Buffer[]): Buffer
|
|
13
|
+
generateSrtcpAuthTag(buf: Buffer): Buffer<ArrayBuffer>;
|
|
14
|
+
generateCounter(sequenceNumber: number, rolloverCounter: number, ssrc: number, sessionSalt: Buffer): Buffer<ArrayBuffer>;
|
|
15
|
+
generateSrtpAuthTag(roc: number, ...buffers: Buffer[]): Buffer<ArrayBufferLike>;
|
|
16
16
|
}
|
|
@@ -3,11 +3,11 @@ import { RtcpHeader } from "../../rtcp/header";
|
|
|
3
3
|
import { RtpHeader } from "../../rtp/rtp";
|
|
4
4
|
export declare class CipherAesGcm extends CipherAesBase {
|
|
5
5
|
readonly aeadAuthTagLen = 16;
|
|
6
|
-
readonly rtpIvWriter: (values: (number | bigint)[]) => Buffer
|
|
7
|
-
readonly rtcpIvWriter: (values: (number | bigint)[]) => Buffer
|
|
8
|
-
readonly aadWriter: (values: (number | bigint)[]) => Buffer
|
|
6
|
+
readonly rtpIvWriter: (values: (number | bigint)[]) => Buffer<ArrayBuffer>;
|
|
7
|
+
readonly rtcpIvWriter: (values: (number | bigint)[]) => Buffer<ArrayBuffer>;
|
|
8
|
+
readonly aadWriter: (values: (number | bigint)[]) => Buffer<ArrayBuffer>;
|
|
9
9
|
constructor(srtpSessionKey: Buffer, srtpSessionSalt: Buffer, srtcpSessionKey: Buffer, srtcpSessionSalt: Buffer);
|
|
10
|
-
encryptRtp(header: RtpHeader, payload: Buffer, rolloverCounter: number): Buffer
|
|
10
|
+
encryptRtp(header: RtpHeader, payload: Buffer, rolloverCounter: number): Buffer<ArrayBuffer>;
|
|
11
11
|
decryptRtp(cipherText: Buffer, rolloverCounter: number): [Buffer, RtpHeader];
|
|
12
12
|
encryptRTCP(rtcpPacket: Buffer, srtcpIndex: number): Buffer;
|
|
13
13
|
decryptRTCP(encrypted: Buffer): [Buffer, RtcpHeader];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare const ProtectionProfileAes128CmHmacSha1_80: 1;
|
|
2
2
|
export declare const ProtectionProfileAeadAes128Gcm: 7;
|
|
3
3
|
export declare const Profiles: readonly [1, 7];
|
|
4
|
-
export type
|
|
5
|
-
export declare const keyLength: (profile:
|
|
6
|
-
export declare const saltLength: (profile:
|
|
4
|
+
export type SrtpProfile = (typeof Profiles)[number];
|
|
5
|
+
export declare const keyLength: (profile: SrtpProfile) => number;
|
|
6
|
+
export declare const saltLength: (profile: SrtpProfile) => 12 | 14;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"const.js","sourceRoot":"","sources":["../../../../../rtp/src/srtp/const.ts"],"names":[],"mappings":";;;AAAa,QAAA,oCAAoC,GAAG,MAAe,CAAC;AACvD,QAAA,8BAA8B,GAAG,MAAe,CAAC;AAEjD,QAAA,QAAQ,GAAG;IACtB,4CAAoC;IACpC,sCAA8B;CACtB,CAAC;AAIJ,MAAM,SAAS,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"const.js","sourceRoot":"","sources":["../../../../../rtp/src/srtp/const.ts"],"names":[],"mappings":";;;AAAa,QAAA,oCAAoC,GAAG,MAAe,CAAC;AACvD,QAAA,8BAA8B,GAAG,MAAe,CAAC;AAEjD,QAAA,QAAQ,GAAG;IACtB,4CAAoC;IACpC,sCAA8B;CACtB,CAAC;AAIJ,MAAM,SAAS,GAAG,CAAC,OAAoB,EAAE,EAAE;IAChD,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,4CAAoC,CAAC;QAC1C,KAAK,sCAA8B;YACjC,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AANW,QAAA,SAAS,aAMpB;AAEK,MAAM,UAAU,GAAG,CAAC,OAAoB,EAAE,EAAE;IACjD,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,4CAAoC;YACvC,OAAO,EAAE,CAAC;QACZ,KAAK,sCAA8B;YACjC,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAPW,QAAA,UAAU,cAOrB","sourcesContent":["export const ProtectionProfileAes128CmHmacSha1_80 = 0x0001 as const;\nexport const ProtectionProfileAeadAes128Gcm = 0x0007 as const;\n\nexport const Profiles = [\n ProtectionProfileAes128CmHmacSha1_80,\n ProtectionProfileAeadAes128Gcm,\n] as const;\n\nexport type SrtpProfile = (typeof Profiles)[number];\n\nexport const keyLength = (profile: SrtpProfile) => {\n switch (profile) {\n case ProtectionProfileAes128CmHmacSha1_80:\n case ProtectionProfileAeadAes128Gcm:\n return 16;\n }\n};\n\nexport const saltLength = (profile: SrtpProfile) => {\n switch (profile) {\n case ProtectionProfileAes128CmHmacSha1_80:\n return 14;\n case ProtectionProfileAeadAes128Gcm:\n return 12;\n }\n};\n"]}
|