werift 0.19.3 → 0.19.5
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 +0 -1
- package/lib/common/src/binary.js +14 -14
- package/lib/common/src/binary.js.map +1 -1
- package/lib/common/src/network.d.ts +1 -2
- package/lib/common/src/network.js +4 -4
- package/lib/common/src/network.js.map +1 -1
- package/lib/common/src/number.js +10 -10
- package/lib/common/src/number.js.map +1 -1
- package/lib/dtls/src/cipher/create.d.ts +1 -1
- package/lib/dtls/src/cipher/create.js +2 -3
- package/lib/dtls/src/cipher/create.js.map +1 -1
- package/lib/dtls/src/cipher/ec.d.ts +0 -1
- package/lib/dtls/src/cipher/key-exchange.js +7 -7
- package/lib/dtls/src/cipher/key-exchange.js.map +1 -1
- package/lib/dtls/src/cipher/namedCurve.d.ts +1 -2
- package/lib/dtls/src/cipher/namedCurve.js +1 -2
- package/lib/dtls/src/cipher/namedCurve.js.map +1 -1
- package/lib/dtls/src/cipher/prf.d.ts +1 -2
- package/lib/dtls/src/cipher/prf.js +11 -12
- package/lib/dtls/src/cipher/prf.js.map +1 -1
- package/lib/dtls/src/cipher/suites/abstract.d.ts +1 -2
- package/lib/dtls/src/cipher/suites/abstract.js.map +1 -1
- package/lib/dtls/src/cipher/suites/aead.d.ts +1 -2
- package/lib/dtls/src/cipher/suites/aead.js.map +1 -1
- package/lib/dtls/src/client.d.ts +1 -1
- package/lib/dtls/src/client.js.map +1 -1
- package/lib/dtls/src/context/cipher.d.ts +6 -7
- package/lib/dtls/src/context/cipher.js +5 -3
- package/lib/dtls/src/context/cipher.js.map +1 -1
- package/lib/dtls/src/context/dtls.d.ts +5 -6
- package/lib/dtls/src/context/dtls.js +1 -2
- package/lib/dtls/src/context/dtls.js.map +1 -1
- package/lib/dtls/src/context/transport.d.ts +1 -2
- package/lib/dtls/src/context/transport.js.map +1 -1
- package/lib/dtls/src/flight/client/flight1.d.ts +4 -4
- package/lib/dtls/src/flight/client/flight1.js.map +1 -1
- package/lib/dtls/src/flight/client/flight3.d.ts +3 -3
- package/lib/dtls/src/flight/client/flight3.js +6 -0
- package/lib/dtls/src/flight/client/flight3.js.map +1 -1
- package/lib/dtls/src/flight/client/flight5.d.ts +4 -4
- package/lib/dtls/src/flight/client/flight5.js.map +1 -1
- package/lib/dtls/src/flight/flight.d.ts +3 -4
- package/lib/dtls/src/flight/flight.js.map +1 -1
- package/lib/dtls/src/flight/server/flight2.d.ts +4 -4
- package/lib/dtls/src/flight/server/flight2.js +9 -2
- package/lib/dtls/src/flight/server/flight2.js.map +1 -1
- package/lib/dtls/src/flight/server/flight4.d.ts +5 -5
- package/lib/dtls/src/flight/server/flight4.js.map +1 -1
- package/lib/dtls/src/flight/server/flight6.d.ts +4 -4
- package/lib/dtls/src/flight/server/flight6.js.map +1 -1
- package/lib/dtls/src/handshake/extensions/ellipticCurves.d.ts +1 -2
- package/lib/dtls/src/handshake/extensions/ellipticCurves.js.map +1 -1
- package/lib/dtls/src/handshake/extensions/renegotiationIndication.d.ts +0 -1
- package/lib/dtls/src/handshake/extensions/signature.d.ts +1 -2
- package/lib/dtls/src/handshake/extensions/signature.js.map +1 -1
- package/lib/dtls/src/handshake/extensions/useSrtp.d.ts +1 -2
- package/lib/dtls/src/handshake/extensions/useSrtp.js.map +1 -1
- package/lib/dtls/src/handshake/message/alert.d.ts +0 -1
- package/lib/dtls/src/handshake/message/alert.js.map +1 -1
- package/lib/dtls/src/handshake/message/certificate.d.ts +1 -2
- package/lib/dtls/src/handshake/message/certificate.js.map +1 -1
- package/lib/dtls/src/handshake/message/changeCipherSpec.d.ts +0 -1
- package/lib/dtls/src/handshake/message/client/certificateVerify.d.ts +2 -3
- package/lib/dtls/src/handshake/message/client/certificateVerify.js.map +1 -1
- package/lib/dtls/src/handshake/message/client/hello.d.ts +1 -2
- package/lib/dtls/src/handshake/message/client/hello.js.map +1 -1
- package/lib/dtls/src/handshake/message/client/keyExchange.d.ts +1 -2
- package/lib/dtls/src/handshake/message/client/keyExchange.js.map +1 -1
- package/lib/dtls/src/handshake/message/finished.d.ts +1 -2
- package/lib/dtls/src/handshake/message/finished.js.map +1 -1
- package/lib/dtls/src/handshake/message/server/certificateRequest.d.ts +2 -3
- package/lib/dtls/src/handshake/message/server/certificateRequest.js.map +1 -1
- package/lib/dtls/src/handshake/message/server/hello.d.ts +2 -3
- package/lib/dtls/src/handshake/message/server/hello.js.map +1 -1
- package/lib/dtls/src/handshake/message/server/helloDone.d.ts +1 -2
- package/lib/dtls/src/handshake/message/server/helloDone.js.map +1 -1
- package/lib/dtls/src/handshake/message/server/helloVerifyRequest.d.ts +1 -2
- package/lib/dtls/src/handshake/message/server/helloVerifyRequest.js.map +1 -1
- package/lib/dtls/src/handshake/message/server/keyExchange.d.ts +2 -3
- package/lib/dtls/src/handshake/message/server/keyExchange.js.map +1 -1
- package/lib/dtls/src/handshake/random.d.ts +0 -1
- package/lib/dtls/src/helper.d.ts +0 -1
- package/lib/dtls/src/helper.js +3 -3
- package/lib/dtls/src/helper.js.map +1 -1
- package/lib/dtls/src/record/builder.d.ts +2 -3
- package/lib/dtls/src/record/builder.js +2 -4
- package/lib/dtls/src/record/builder.js.map +1 -1
- package/lib/dtls/src/record/message/fragment.d.ts +1 -2
- package/lib/dtls/src/record/message/fragment.js.map +1 -1
- package/lib/dtls/src/record/message/header.d.ts +0 -1
- package/lib/dtls/src/record/message/plaintext.d.ts +0 -1
- package/lib/dtls/src/record/receive.d.ts +2 -3
- package/lib/dtls/src/record/receive.js.map +1 -1
- package/lib/dtls/src/server.d.ts +1 -1
- package/lib/dtls/src/server.js.map +1 -1
- package/lib/dtls/src/socket.d.ts +5 -6
- package/lib/dtls/src/socket.js +17 -23
- package/lib/dtls/src/socket.js.map +1 -1
- package/lib/dtls/src/transport.d.ts +1 -3
- package/lib/dtls/src/transport.js.map +1 -1
- package/lib/dtls/src/typings/domain.d.ts +2 -3
- package/lib/dtls/src/typings/domain.js.map +1 -1
- package/lib/dtls/src/util/binary.d.ts +0 -1
- package/lib/dtls/src/util/binary.js +1 -2
- package/lib/dtls/src/util/binary.js.map +1 -1
- package/lib/ice/src/candidate.js +3 -3
- package/lib/ice/src/candidate.js.map +1 -1
- package/lib/ice/src/dns/lookup.d.ts +1 -1
- package/lib/ice/src/dns/lookup.js +1 -0
- package/lib/ice/src/dns/lookup.js.map +1 -1
- package/lib/ice/src/exceptions.js.map +1 -1
- package/lib/ice/src/helper.d.ts +0 -1
- package/lib/ice/src/helper.js +5 -5
- package/lib/ice/src/helper.js.map +1 -1
- package/lib/ice/src/ice.d.ts +3 -2
- package/lib/ice/src/ice.js +25 -16
- package/lib/ice/src/ice.js.map +1 -1
- package/lib/ice/src/stun/attributes.d.ts +0 -1
- package/lib/ice/src/stun/attributes.js +5 -5
- package/lib/ice/src/stun/attributes.js.map +1 -1
- package/lib/ice/src/stun/message.d.ts +0 -1
- package/lib/ice/src/stun/message.js +2 -2
- package/lib/ice/src/stun/message.js.map +1 -1
- package/lib/ice/src/stun/protocol.d.ts +0 -1
- package/lib/ice/src/stun/transaction.d.ts +1 -1
- package/lib/ice/src/transport.d.ts +1 -4
- package/lib/ice/src/turn/protocol.d.ts +1 -2
- package/lib/ice/src/turn/protocol.js +5 -4
- package/lib/ice/src/turn/protocol.js.map +1 -1
- package/lib/ice/src/types/model.d.ts +0 -1
- package/lib/ice/src/utils.js +3 -4
- package/lib/ice/src/utils.js.map +1 -1
- package/lib/rtp/src/codec/av1.d.ts +1 -2
- package/lib/rtp/src/codec/av1.js +2 -2
- package/lib/rtp/src/codec/av1.js.map +1 -1
- package/lib/rtp/src/codec/base.d.ts +1 -2
- package/lib/rtp/src/codec/base.js.map +1 -1
- package/lib/rtp/src/codec/h264.d.ts +2 -3
- package/lib/rtp/src/codec/h264.js.map +1 -1
- package/lib/rtp/src/codec/index.d.ts +1 -2
- package/lib/rtp/src/codec/index.js +2 -2
- package/lib/rtp/src/codec/index.js.map +1 -1
- package/lib/rtp/src/codec/opus.d.ts +2 -3
- package/lib/rtp/src/codec/opus.js.map +1 -1
- package/lib/rtp/src/codec/vp8.d.ts +2 -3
- package/lib/rtp/src/codec/vp8.js +1 -1
- package/lib/rtp/src/codec/vp8.js.map +1 -1
- package/lib/rtp/src/codec/vp9.d.ts +2 -3
- package/lib/rtp/src/codec/vp9.js +1 -1
- package/lib/rtp/src/codec/vp9.js.map +1 -1
- package/lib/rtp/src/extra/container/mp4/h264.d.ts +0 -1
- package/lib/rtp/src/extra/container/mp4/h264.js +2 -2
- package/lib/rtp/src/extra/container/mp4/h264.js.map +1 -1
- package/lib/rtp/src/extra/container/mp4/mp4box.d.ts +1 -1
- package/lib/rtp/src/extra/container/mp4/mp4box.js +3 -3
- package/lib/rtp/src/extra/container/mp4/mp4box.js.map +1 -1
- package/lib/rtp/src/extra/container/ogg/parser.d.ts +0 -1
- package/lib/rtp/src/extra/container/webm/container.d.ts +0 -1
- package/lib/rtp/src/extra/container/webm/container.js +2 -3
- package/lib/rtp/src/extra/container/webm/container.js.map +1 -1
- package/lib/rtp/src/extra/container/webm/ebml/typedArrayUtils.js +2 -2
- package/lib/rtp/src/extra/container/webm/ebml/typedArrayUtils.js.map +1 -1
- package/lib/rtp/src/extra/processor/depacketizer.d.ts +2 -3
- package/lib/rtp/src/extra/processor/depacketizer.js.map +1 -1
- package/lib/rtp/src/extra/processor/depacketizerCallback.d.ts +1 -1
- package/lib/rtp/src/extra/processor/depacketizerCallback.js.map +1 -1
- package/lib/rtp/src/extra/processor/depacketizerTransformer.d.ts +2 -3
- package/lib/rtp/src/extra/processor/depacketizerTransformer.js.map +1 -1
- package/lib/rtp/src/extra/processor/dtx.d.ts +2 -3
- package/lib/rtp/src/extra/processor/dtx.js.map +1 -1
- package/lib/rtp/src/extra/processor/dtxCallback.js.map +1 -1
- package/lib/rtp/src/extra/processor/interface.d.ts +2 -2
- package/lib/rtp/src/extra/processor/jitterBuffer.d.ts +2 -2
- package/lib/rtp/src/extra/processor/jitterBuffer.js.map +1 -1
- package/lib/rtp/src/extra/processor/jitterBufferCallback.d.ts +1 -1
- package/lib/rtp/src/extra/processor/jitterBufferCallback.js.map +1 -1
- package/lib/rtp/src/extra/processor/jitterBufferTransformer.d.ts +1 -2
- package/lib/rtp/src/extra/processor/jitterBufferTransformer.js.map +1 -1
- package/lib/rtp/src/extra/processor/lipsync.d.ts +3 -4
- package/lib/rtp/src/extra/processor/lipsync.js +2 -2
- package/lib/rtp/src/extra/processor/lipsync.js.map +1 -1
- package/lib/rtp/src/extra/processor/lipsyncCallback.d.ts +1 -1
- package/lib/rtp/src/extra/processor/lipsyncCallback.js.map +1 -1
- package/lib/rtp/src/extra/processor/mp4.d.ts +2 -3
- package/lib/rtp/src/extra/processor/mp4.js.map +1 -1
- package/lib/rtp/src/extra/processor/mp4Callback.d.ts +2 -2
- package/lib/rtp/src/extra/processor/mp4Callback.js.map +1 -1
- package/lib/rtp/src/extra/processor/mute.d.ts +2 -3
- package/lib/rtp/src/extra/processor/mute.js.map +1 -1
- package/lib/rtp/src/extra/processor/muteCallback.d.ts +2 -2
- package/lib/rtp/src/extra/processor/muteCallback.js.map +1 -1
- package/lib/rtp/src/extra/processor/nack.d.ts +2 -2
- package/lib/rtp/src/extra/processor/nack.js.map +1 -1
- package/lib/rtp/src/extra/processor/nackHandlerCallback.js.map +1 -1
- package/lib/rtp/src/extra/processor/ntpTime.d.ts +2 -2
- 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/ntpTimeCallback.js.map +1 -1
- package/lib/rtp/src/extra/processor/rtcpCallback.d.ts +2 -2
- package/lib/rtp/src/extra/processor/rtcpCallback.js.map +1 -1
- package/lib/rtp/src/extra/processor/rtpCallback.d.ts +1 -2
- package/lib/rtp/src/extra/processor/rtpCallback.js.map +1 -1
- package/lib/rtp/src/extra/processor/rtpStream.d.ts +2 -4
- package/lib/rtp/src/extra/processor/rtpStream.js.map +1 -1
- package/lib/rtp/src/extra/processor/rtpTime.d.ts +2 -2
- package/lib/rtp/src/extra/processor/rtpTime.js.map +1 -1
- package/lib/rtp/src/extra/processor/rtpTimeCallback.d.ts +1 -1
- package/lib/rtp/src/extra/processor/rtpTimeCallback.js.map +1 -1
- package/lib/rtp/src/extra/processor/webm.d.ts +2 -3
- package/lib/rtp/src/extra/processor/webm.js +2 -2
- package/lib/rtp/src/extra/processor/webm.js.map +1 -1
- package/lib/rtp/src/extra/processor/webmCallback.d.ts +2 -2
- package/lib/rtp/src/extra/processor/webmCallback.js.map +1 -1
- package/lib/rtp/src/extra/processor/webmStream.d.ts +2 -3
- package/lib/rtp/src/extra/processor/webmStream.js.map +1 -1
- package/lib/rtp/src/helper.d.ts +0 -1
- package/lib/rtp/src/helper.js +6 -6
- package/lib/rtp/src/helper.js.map +1 -1
- package/lib/rtp/src/index.d.ts +0 -1
- package/lib/rtp/src/rtcp/header.d.ts +0 -1
- package/lib/rtp/src/rtcp/psfb/fullIntraRequest.d.ts +0 -1
- package/lib/rtp/src/rtcp/psfb/index.d.ts +1 -2
- package/lib/rtp/src/rtcp/psfb/index.js.map +1 -1
- package/lib/rtp/src/rtcp/psfb/pictureLossIndication.d.ts +0 -1
- package/lib/rtp/src/rtcp/psfb/remb.d.ts +0 -1
- package/lib/rtp/src/rtcp/rr.d.ts +0 -1
- package/lib/rtp/src/rtcp/rtcp.d.ts +0 -1
- package/lib/rtp/src/rtcp/rtcp.js +2 -2
- package/lib/rtp/src/rtcp/rtcp.js.map +1 -1
- package/lib/rtp/src/rtcp/rtpfb/index.d.ts +1 -2
- package/lib/rtp/src/rtcp/rtpfb/index.js.map +1 -1
- package/lib/rtp/src/rtcp/rtpfb/nack.d.ts +0 -1
- package/lib/rtp/src/rtcp/rtpfb/twcc.d.ts +0 -1
- package/lib/rtp/src/rtcp/rtpfb/twcc.js +1 -2
- package/lib/rtp/src/rtcp/rtpfb/twcc.js.map +1 -1
- package/lib/rtp/src/rtcp/sdes.d.ts +1 -2
- package/lib/rtp/src/rtcp/sdes.js.map +1 -1
- package/lib/rtp/src/rtcp/sr.d.ts +0 -1
- package/lib/rtp/src/rtp/headerExtension.d.ts +1 -2
- package/lib/rtp/src/rtp/headerExtension.js +12 -12
- package/lib/rtp/src/rtp/headerExtension.js.map +1 -1
- package/lib/rtp/src/rtp/red/encoder.d.ts +0 -1
- package/lib/rtp/src/rtp/red/handler.d.ts +1 -1
- package/lib/rtp/src/rtp/red/handler.js.map +1 -1
- package/lib/rtp/src/rtp/red/packet.d.ts +0 -1
- package/lib/rtp/src/rtp/rtp.d.ts +0 -1
- package/lib/rtp/src/rtp/rtp.js.map +1 -1
- package/lib/rtp/src/rtp/rtx.js +2 -3
- package/lib/rtp/src/rtp/rtx.js.map +1 -1
- package/lib/rtp/src/srtp/cipher/ctr.d.ts +0 -1
- package/lib/rtp/src/srtp/cipher/gcm.d.ts +0 -1
- package/lib/rtp/src/srtp/cipher/index.d.ts +2 -3
- package/lib/rtp/src/srtp/cipher/index.js.map +1 -1
- package/lib/rtp/src/srtp/context/context.d.ts +3 -5
- package/lib/rtp/src/srtp/context/context.js.map +1 -1
- package/lib/rtp/src/srtp/context/srtcp.d.ts +2 -3
- package/lib/rtp/src/srtp/context/srtcp.js.map +1 -1
- package/lib/rtp/src/srtp/context/srtp.d.ts +1 -2
- package/lib/rtp/src/srtp/context/srtp.js.map +1 -1
- package/lib/rtp/src/srtp/session.d.ts +1 -2
- package/lib/rtp/src/srtp/session.js.map +1 -1
- package/lib/rtp/src/srtp/srtcp.d.ts +1 -2
- package/lib/rtp/src/srtp/srtcp.js.map +1 -1
- package/lib/rtp/src/srtp/srtp.d.ts +2 -3
- package/lib/rtp/src/srtp/srtp.js.map +1 -1
- package/lib/rtp/src/util.d.ts +0 -1
- package/lib/sctp/src/chunk.d.ts +0 -1
- package/lib/sctp/src/chunk.js +4 -4
- package/lib/sctp/src/chunk.js.map +1 -1
- package/lib/sctp/src/helper.js +2 -3
- package/lib/sctp/src/helper.js.map +1 -1
- package/lib/sctp/src/param.d.ts +0 -1
- package/lib/sctp/src/param.js.map +1 -1
- package/lib/sctp/src/sctp.d.ts +5 -6
- package/lib/sctp/src/sctp.js.map +1 -1
- package/lib/sctp/src/transport.d.ts +1 -3
- package/lib/sctp/src/transport.js.map +1 -1
- package/lib/webrtc/src/const.d.ts +1 -1
- package/lib/webrtc/src/const.js.map +1 -1
- package/lib/webrtc/src/dataChannel.d.ts +2 -3
- package/lib/webrtc/src/dataChannel.js.map +1 -1
- package/lib/webrtc/src/helper.d.ts +0 -1
- package/lib/webrtc/src/helper.js +3 -3
- package/lib/webrtc/src/helper.js.map +1 -1
- package/lib/webrtc/src/media/extension/rtcpFeedback.d.ts +1 -1
- package/lib/webrtc/src/media/extension/rtcpFeedback.js.map +1 -1
- package/lib/webrtc/src/media/extension/rtpExtension.js +7 -8
- package/lib/webrtc/src/media/extension/rtpExtension.js.map +1 -1
- package/lib/webrtc/src/media/parameters.d.ts +1 -1
- package/lib/webrtc/src/media/parameters.js.map +1 -1
- package/lib/webrtc/src/media/receiver/nack.d.ts +2 -2
- package/lib/webrtc/src/media/receiver/nack.js.map +1 -1
- package/lib/webrtc/src/media/receiver/receiverTwcc.d.ts +1 -1
- package/lib/webrtc/src/media/receiver/receiverTwcc.js.map +1 -1
- package/lib/webrtc/src/media/receiver/statistics.d.ts +1 -1
- package/lib/webrtc/src/media/receiver/statistics.js.map +1 -1
- package/lib/webrtc/src/media/router.d.ts +4 -4
- package/lib/webrtc/src/media/router.js.map +1 -1
- package/lib/webrtc/src/media/rtpReceiver.d.ts +7 -7
- package/lib/webrtc/src/media/rtpReceiver.js.map +1 -1
- package/lib/webrtc/src/media/rtpSender.d.ts +5 -6
- package/lib/webrtc/src/media/rtpSender.js.map +1 -1
- package/lib/webrtc/src/media/rtpTransceiver.d.ts +6 -6
- package/lib/webrtc/src/media/rtpTransceiver.js.map +1 -1
- package/lib/webrtc/src/media/sender/senderBWE.d.ts +1 -1
- package/lib/webrtc/src/media/sender/senderBWE.js.map +1 -1
- package/lib/webrtc/src/media/track.d.ts +6 -5
- package/lib/webrtc/src/media/track.js +14 -1
- package/lib/webrtc/src/media/track.js.map +1 -1
- package/lib/webrtc/src/nonstandard/index.d.ts +2 -0
- package/lib/webrtc/src/nonstandard/index.js +2 -0
- package/lib/webrtc/src/nonstandard/index.js.map +1 -1
- package/lib/webrtc/src/nonstandard/navigator.d.ts +73 -0
- package/lib/webrtc/src/nonstandard/navigator.js +88 -0
- package/lib/webrtc/src/nonstandard/navigator.js.map +1 -0
- package/lib/webrtc/src/nonstandard/recorder/index.d.ts +23 -7
- package/lib/webrtc/src/nonstandard/recorder/index.js +30 -27
- package/lib/webrtc/src/nonstandard/recorder/index.js.map +1 -1
- package/lib/webrtc/src/nonstandard/recorder/writer/index.d.ts +17 -5
- package/lib/webrtc/src/nonstandard/recorder/writer/index.js +3 -9
- package/lib/webrtc/src/nonstandard/recorder/writer/index.js.map +1 -1
- package/lib/webrtc/src/nonstandard/recorder/writer/webm.d.ts +1 -1
- package/lib/webrtc/src/nonstandard/recorder/writer/webm.js +23 -12
- package/lib/webrtc/src/nonstandard/recorder/writer/webm.js.map +1 -1
- package/lib/webrtc/src/nonstandard/userMedia.d.ts +4 -5
- package/lib/webrtc/src/nonstandard/userMedia.js.map +1 -1
- package/lib/webrtc/src/peerConnection.d.ts +10 -10
- package/lib/webrtc/src/peerConnection.js +15 -21
- package/lib/webrtc/src/peerConnection.js.map +1 -1
- package/lib/webrtc/src/sdp.d.ts +4 -4
- package/lib/webrtc/src/sdp.js +21 -21
- package/lib/webrtc/src/sdp.js.map +1 -1
- package/lib/webrtc/src/transport/dtls.d.ts +8 -8
- package/lib/webrtc/src/transport/dtls.js +16 -3
- package/lib/webrtc/src/transport/dtls.js.map +1 -1
- package/lib/webrtc/src/transport/ice.d.ts +1 -1
- package/lib/webrtc/src/transport/ice.js +3 -3
- package/lib/webrtc/src/transport/ice.js.map +1 -1
- package/lib/webrtc/src/transport/sctp.d.ts +1 -2
- package/lib/webrtc/src/transport/sctp.js +1 -1
- package/lib/webrtc/src/transport/sctp.js.map +1 -1
- package/lib/webrtc/src/utils.d.ts +5 -5
- package/lib/webrtc/src/utils.js +16 -10
- package/lib/webrtc/src/utils.js.map +1 -1
- package/package.json +12 -8
- package/src/const.ts +1 -1
- package/src/dataChannel.ts +2 -2
- package/src/media/extension/rtcpFeedback.ts +1 -1
- package/src/media/parameters.ts +1 -1
- package/src/media/receiver/nack.ts +9 -6
- package/src/media/receiver/receiverTwcc.ts +3 -3
- package/src/media/receiver/statistics.ts +1 -1
- package/src/media/router.ts +45 -39
- package/src/media/rtpReceiver.ts +30 -19
- package/src/media/rtpSender.ts +84 -71
- package/src/media/rtpTransceiver.ts +6 -6
- package/src/media/sender/senderBWE.ts +1 -1
- package/src/media/track.ts +19 -5
- package/src/nonstandard/index.ts +2 -0
- package/src/nonstandard/navigator.ts +118 -0
- package/src/nonstandard/recorder/index.ts +47 -19
- package/src/nonstandard/recorder/writer/index.ts +7 -4
- package/src/nonstandard/recorder/writer/webm.ts +25 -14
- package/src/nonstandard/userMedia.ts +1 -1
- package/src/peerConnection.ts +43 -51
- package/src/sdp.ts +108 -94
- package/src/transport/dtls.ts +28 -14
- package/src/transport/ice.ts +1 -1
- package/src/transport/sctp.ts +75 -67
- package/src/utils.ts +13 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webm.js","sourceRoot":"","sources":["../../../../../../src/nonstandard/recorder/writer/webm.ts"],"names":[],"mappings":";;;AAAA,0CAAqC;AACrC,qCAAwC;AAExC,wBAAgC;AAChC,
|
|
1
|
+
{"version":3,"file":"webm.js","sourceRoot":"","sources":["../../../../../../src/nonstandard/recorder/writer/webm.ts"],"names":[],"mappings":"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","sourcesContent":["import { unlink } from \"fs/promises\";\nimport { EventDisposer } from \"rx.mini\";\n\nimport { MediaWriter } from \".\";\nimport { type MediaStreamTrack, WeriftError } from \"../../..\";\nimport {\n DepacketizeCallback,\n JitterBufferCallback,\n LipsyncCallback,\n NtpTimeCallback,\n RtcpSourceCallback,\n RtpSourceCallback,\n RtpTimeCallback,\n type SupportedCodec,\n WebmCallback,\n saveToFileSystem,\n} from \"../../../../../rtp/src/extra\";\n\nconst sourcePath = \"packages/webrtc/src/nonstandard/recorder/writer/webm.ts\";\n\nexport class WebmFactory extends MediaWriter {\n rtpSources: RtpSourceCallback[] = [];\n\n unSubscribers = new EventDisposer();\n\n async start(tracks: MediaStreamTrack[]) {\n if (this.props.path) {\n await unlink(this.props.path).catch((e) => e);\n }\n\n const inputTracks = tracks.map((track, i) => {\n const trackNumber = i + 1;\n const payloadType = track.codec!.payloadType;\n\n if (track.kind === \"video\") {\n const codec = ((): SupportedCodec => {\n switch (track.codec?.name.toLowerCase() as SupportedVideoCodec) {\n case \"vp8\":\n return \"VP8\";\n case \"vp9\":\n return \"VP9\";\n case \"h264\":\n return \"MPEG4/ISO/AVC\";\n case \"av1x\":\n return \"AV1\";\n default:\n throw new WeriftError({\n message: \"unsupported codec\",\n payload: { track, path: sourcePath },\n });\n }\n })();\n return {\n kind: \"video\" as const,\n codec,\n clockRate: 90000,\n trackNumber,\n width: this.props.width ?? 640,\n height: this.props.height ?? 360,\n payloadType,\n track,\n };\n } else {\n return {\n kind: \"audio\" as const,\n codec: \"OPUS\" as const,\n clockRate: 48000,\n trackNumber,\n payloadType,\n track,\n };\n }\n });\n\n const webm = new WebmCallback(inputTracks, {\n duration: this.props.defaultDuration ?? 1000 * 60 * 60 * 24,\n });\n const lipsync = new LipsyncCallback();\n\n this.rtpSources = inputTracks.map(({ track, clockRate, codec }) => {\n const rtpSource = new RtpSourceCallback();\n const rtcpSource = new RtcpSourceCallback();\n track.onReceiveRtp\n .subscribe((rtp) => {\n rtpSource.input(rtp.clone());\n })\n .disposer(this.unSubscribers);\n track.onReceiveRtcp\n .subscribe((rtcp) => {\n rtcpSource.input(rtcp);\n })\n .disposer(this.unSubscribers);\n const time = this.props.disableNtp\n ? new RtpTimeCallback(clockRate)\n : new NtpTimeCallback(clockRate);\n\n if (track.kind === \"video\") {\n const depacketizer = new DepacketizeCallback(codec, {\n isFinalPacketInSequence: (h) => h.marker,\n });\n const jitterBuffer = new JitterBufferCallback(clockRate);\n\n rtpSource.pipe(jitterBuffer.input);\n rtcpSource.pipe(time.input);\n\n jitterBuffer.pipe(time.input);\n time.pipe(depacketizer.input);\n depacketizer.pipe(lipsync.inputVideo);\n lipsync.pipeVideo(webm.inputVideo);\n } else {\n const depacketizer = new DepacketizeCallback(codec);\n\n rtpSource.pipe(time.input);\n rtcpSource.pipe(time.input);\n\n time.pipe(depacketizer.input);\n depacketizer.pipe(lipsync.inputAudio);\n lipsync.pipeAudio(webm.inputAudio);\n }\n\n return rtpSource;\n });\n if (this.props.path) {\n webm.pipe(saveToFileSystem(this.props.path));\n } else if (this.props.stream) {\n webm.pipe(async (o) => {\n this.props.stream.write(o);\n });\n }\n }\n\n async stop() {\n await Promise.all(this.rtpSources.map((r) => r.stop()));\n this.unSubscribers.dispose();\n }\n}\n\nconst supportedVideoCodecs = [\"h264\", \"vp8\", \"vp9\", \"av1x\"] as const;\ntype SupportedVideoCodec = (typeof supportedVideoCodecs)[number];\n"]}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
import { ChildProcess } from "child_process";
|
|
1
|
+
import { type ChildProcess } from "child_process";
|
|
3
2
|
import { MediaStreamTrack } from "../media/track";
|
|
4
3
|
export declare const getUserMedia: ({ path, loop, width, height, }: {
|
|
5
4
|
path: string;
|
|
6
|
-
loop?: boolean
|
|
7
|
-
width?: number
|
|
8
|
-
height?: number
|
|
5
|
+
loop?: boolean;
|
|
6
|
+
width?: number;
|
|
7
|
+
height?: number;
|
|
9
8
|
}) => Promise<MediaPlayerMp4 | MediaPlayerWebm>;
|
|
10
9
|
declare abstract class MediaPlayer {
|
|
11
10
|
protected props: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userMedia.js","sourceRoot":"","sources":["../../../../src/nonstandard/userMedia.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"userMedia.js","sourceRoot":"","sources":["../../../../src/nonstandard/userMedia.ts"],"names":[],"mappings":"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","sourcesContent":["import { type ChildProcess, exec } from \"child_process\";\nimport { createSocket } from \"dgram\";\nimport { setImmediate } from \"timers/promises\";\nimport { v4 } from \"uuid\";\n\nimport { randomPort } from \"../../../common/src\";\nimport { RtpPacket } from \"../../../rtp/src\";\nimport { MediaStreamTrack } from \"../media/track\";\n\nexport const getUserMedia = async ({\n path,\n loop,\n width,\n height,\n}: {\n path: string;\n loop?: boolean;\n width?: number;\n height?: number;\n}) => {\n const audioPort = await randomPort();\n const videoPort = await randomPort();\n\n if (path.endsWith(\".mp4\")) {\n return new MediaPlayerMp4({\n audioPort,\n videoPort,\n path,\n loop,\n width,\n height,\n });\n } else {\n return new MediaPlayerWebm({\n audioPort,\n videoPort,\n path,\n loop,\n width,\n height,\n });\n }\n};\n\nabstract class MediaPlayer {\n protected streamId = v4();\n audio = new MediaStreamTrack({ kind: \"audio\", streamId: this.streamId });\n video = new MediaStreamTrack({ kind: \"video\", streamId: this.streamId });\n protected process!: ChildProcess;\n stopped = false;\n\n constructor(\n protected props: {\n videoPort: number;\n audioPort: number;\n path: string;\n loop?: boolean;\n width?: number;\n height?: number;\n },\n ) {\n this.setupTrack(props.audioPort, this.audio);\n this.setupTrack(props.videoPort, this.video);\n }\n\n private setupTrack = (port: number, track: MediaStreamTrack) => {\n let payloadType = 0;\n\n const socket = createSocket(\"udp4\");\n socket.bind(port);\n socket.on(\"message\", async (buf) => {\n const rtp = RtpPacket.deSerialize(buf);\n if (!payloadType) {\n payloadType = rtp.header.payloadType;\n }\n\n // detect gStreamer restarted\n if (payloadType !== rtp.header.payloadType) {\n payloadType = rtp.header.payloadType;\n track.onSourceChanged.execute(rtp.header);\n }\n\n track.writeRtp(buf);\n });\n };\n\n stop() {\n this.stopped = true;\n this.process.kill(\"SIGINT\");\n }\n}\n\nexport class MediaPlayerMp4 extends MediaPlayer {\n async start() {\n let payloadType = 96;\n const run = async () => {\n if (payloadType > 100) payloadType = 96;\n\n let cmd = \"\";\n if (this.props.width && this.props.height) {\n cmd = `gst-launch-1.0 filesrc location= ${this.props.path} ! \\\ndecodebin ! videoscale ! video/x-raw,width=${this.props.width},height=${\n this.props.height\n } ! x264enc ! \\\nh264parse ! rtph264pay config-interval=10 pt=${payloadType++} ! \\\nudpsink host=127.0.0.1 port=${this.props.videoPort}`;\n } else {\n cmd = `gst-launch-1.0 filesrc location= ${this.props.path} ! \\\nqtdemux name=d ! \\\nqueue ! h264parse ! rtph264pay config-interval=10 pt=${payloadType++} ! \\\nudpsink host=127.0.0.1 port=${this.props.videoPort} d. ! \\\nqueue ! aacparse ! avdec_aac ! audioresample ! audioconvert ! opusenc ! rtpopuspay pt=${payloadType++} ! \\\nudpsink host=127.0.0.1 port=${this.props.audioPort}`;\n }\n console.log(cmd);\n this.process = exec(cmd);\n this.process.on(\"error\", (e) => console.error(\"gst error\", e));\n\n if (this.props.loop) {\n await new Promise((r) => this.process.on(\"close\", r));\n if (!this.stopped) {\n run();\n }\n }\n };\n await setImmediate();\n run();\n }\n}\n\nexport class MediaPlayerWebm extends MediaPlayer {\n async start() {\n let payloadType = 96;\n const run = async () => {\n if (payloadType > 100) payloadType = 96;\n\n const cmd = `gst-launch-1.0 filesrc location=${this.props.path} ! matroskademux name=d \\\nd.video_0 ! queue ! rtpvp8pay pt=${payloadType++} ! \\\nudpsink host=127.0.0.1 port=${this.props.videoPort} \\\nd.audio_0 ! queue ! rtpopuspay pt=${payloadType++} ! \\\nudpsink host=127.0.0.1 port=${this.props.audioPort}`;\n this.process = exec(cmd);\n\n if (this.props.loop) {\n await new Promise((r) => this.process.on(\"close\", r));\n if (!this.stopped) {\n run();\n }\n }\n };\n await setImmediate();\n run();\n }\n}\n"]}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import Event from "rx.mini";
|
|
2
|
-
import { Address, CandidatePair, InterfaceAddresses } from ".";
|
|
3
|
-
import { DtlsKeys } from ".";
|
|
4
|
-
import { Message } from "../../ice/src/stun/message";
|
|
5
|
-
import { Protocol } from "../../ice/src/types/model";
|
|
2
|
+
import { type Address, type CandidatePair, type InterfaceAddresses } from ".";
|
|
3
|
+
import { type DtlsKeys } from ".";
|
|
4
|
+
import type { Message } from "../../ice/src/stun/message";
|
|
5
|
+
import type { Protocol } from "../../ice/src/types/model";
|
|
6
6
|
import { RTCDataChannel } from "./dataChannel";
|
|
7
7
|
import { EventTarget } from "./helper";
|
|
8
|
-
import { RTCRtpCodecParameters, RTCRtpHeaderExtensionParameters } from "./media/parameters";
|
|
8
|
+
import { RTCRtpCodecParameters, type RTCRtpHeaderExtensionParameters } from "./media/parameters";
|
|
9
9
|
import { RTCRtpReceiver } from "./media/rtpReceiver";
|
|
10
10
|
import { RTCRtpSender } from "./media/rtpSender";
|
|
11
|
-
import { Direction, RTCRtpTransceiver, TransceiverOptions } from "./media/rtpTransceiver";
|
|
12
|
-
import { MediaStream, MediaStreamTrack } from "./media/track";
|
|
11
|
+
import { type Direction, RTCRtpTransceiver, type TransceiverOptions } from "./media/rtpTransceiver";
|
|
12
|
+
import { MediaStream, type MediaStreamTrack } from "./media/track";
|
|
13
13
|
import { GroupDescription, MediaDescription, SessionDescription } from "./sdp";
|
|
14
14
|
import { RTCDtlsTransport } from "./transport/dtls";
|
|
15
|
-
import { IceGathererState, RTCIceCandidate, RTCIceConnectionState, RTCIceTransport } from "./transport/ice";
|
|
15
|
+
import { type IceGathererState, type RTCIceCandidate, type RTCIceConnectionState, RTCIceTransport } from "./transport/ice";
|
|
16
16
|
import { RTCSctpTransport } from "./transport/sctp";
|
|
17
|
-
import { ConnectionState, Kind, RTCSignalingState } from "./types/domain";
|
|
18
|
-
import { Callback, CallbackWithValue } from "./types/util";
|
|
17
|
+
import type { ConnectionState, Kind, RTCSignalingState } from "./types/domain";
|
|
18
|
+
import type { Callback, CallbackWithValue } from "./types/util";
|
|
19
19
|
export declare class RTCPeerConnection extends EventTarget {
|
|
20
20
|
readonly cname: string;
|
|
21
21
|
sctpTransport?: RTCSctpTransport;
|
|
@@ -26,7 +26,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.defaultPeerConfig = exports.findCodecByMimeType = exports.
|
|
29
|
+
exports.defaultPeerConfig = exports.findCodecByMimeType = exports.RTCPeerConnection = void 0;
|
|
30
|
+
exports.createMediaDescriptionForTransceiver = createMediaDescriptionForTransceiver;
|
|
31
|
+
exports.createMediaDescriptionForSctp = createMediaDescriptionForSctp;
|
|
32
|
+
exports.addTransportDescription = addTransportDescription;
|
|
33
|
+
exports.allocateMid = allocateMid;
|
|
30
34
|
const debug_1 = __importDefault(require("debug"));
|
|
31
35
|
const cloneDeep_1 = __importDefault(require("lodash/cloneDeep"));
|
|
32
36
|
const isEqual_1 = __importDefault(require("lodash/isEqual"));
|
|
@@ -594,8 +598,10 @@ class RTCPeerConnection extends helper_1.EventTarget {
|
|
|
594
598
|
this.updateIceConnectionState();
|
|
595
599
|
});
|
|
596
600
|
iceTransport.iceGather.onIceCandidate = (candidate) => {
|
|
597
|
-
if (!this.localDescription)
|
|
601
|
+
if (!this.localDescription) {
|
|
602
|
+
log("localDescription not found when ice candidate was gathered");
|
|
598
603
|
return;
|
|
604
|
+
}
|
|
599
605
|
if (this.config.bundlePolicy === "max-bundle" || this.remoteIsBundled) {
|
|
600
606
|
candidate.sdpMLineIndex = 0;
|
|
601
607
|
const media = this._localDescription?.media[0];
|
|
@@ -711,13 +717,6 @@ class RTCPeerConnection extends helper_1.EventTarget {
|
|
|
711
717
|
}
|
|
712
718
|
// for trickle ice
|
|
713
719
|
this.setLocal(description);
|
|
714
|
-
// connect transports
|
|
715
|
-
if (description.type === "answer") {
|
|
716
|
-
this.connect().catch((err) => {
|
|
717
|
-
log("connect failed", err);
|
|
718
|
-
this.setConnectionState("failed");
|
|
719
|
-
});
|
|
720
|
-
}
|
|
721
720
|
// # gather candidates
|
|
722
721
|
const connected = this.iceTransports.find((transport) => transport.state === "connected");
|
|
723
722
|
if (this.remoteIsBundled && connected) {
|
|
@@ -727,6 +726,13 @@ class RTCPeerConnection extends helper_1.EventTarget {
|
|
|
727
726
|
else {
|
|
728
727
|
await Promise.allSettled(this.iceTransports.map((iceTransport) => iceTransport.iceGather.gather()));
|
|
729
728
|
}
|
|
729
|
+
// connect transports
|
|
730
|
+
if (description.type === "answer") {
|
|
731
|
+
this.connect().catch((err) => {
|
|
732
|
+
log("connect failed", err);
|
|
733
|
+
this.setConnectionState("failed");
|
|
734
|
+
});
|
|
735
|
+
}
|
|
730
736
|
description.media
|
|
731
737
|
.filter((m) => ["audio", "video"].includes(m.kind))
|
|
732
738
|
.forEach((m, i) => {
|
|
@@ -984,14 +990,6 @@ class RTCPeerConnection extends helper_1.EventTarget {
|
|
|
984
990
|
this.setConnectionState("failed");
|
|
985
991
|
});
|
|
986
992
|
}
|
|
987
|
-
const connected = this.iceTransports.find((transport) => transport.state === "connected");
|
|
988
|
-
if (this.remoteIsBundled && connected) {
|
|
989
|
-
// no need to gather ice candidates on an existing bundled connection
|
|
990
|
-
await connected.iceGather.gather();
|
|
991
|
-
}
|
|
992
|
-
else {
|
|
993
|
-
await Promise.allSettled(transports.map((iceTransport) => iceTransport.iceGather.gather()));
|
|
994
|
-
}
|
|
995
993
|
this.negotiationneeded = false;
|
|
996
994
|
if (this.shouldNegotiationneeded) {
|
|
997
995
|
this.needNegotiation();
|
|
@@ -1431,7 +1429,6 @@ function createMediaDescriptionForTransceiver(transceiver, cname, direction) {
|
|
|
1431
1429
|
addTransportDescription(media, transceiver.dtlsTransport);
|
|
1432
1430
|
return media;
|
|
1433
1431
|
}
|
|
1434
|
-
exports.createMediaDescriptionForTransceiver = createMediaDescriptionForTransceiver;
|
|
1435
1432
|
function createMediaDescriptionForSctp(sctp) {
|
|
1436
1433
|
const media = new sdp_1.MediaDescription("application", const_1.DISCARD_PORT, "UDP/DTLS/SCTP", ["webrtc-datachannel"]);
|
|
1437
1434
|
media.sctpPort = sctp.port;
|
|
@@ -1440,7 +1437,6 @@ function createMediaDescriptionForSctp(sctp) {
|
|
|
1440
1437
|
addTransportDescription(media, sctp.dtlsTransport);
|
|
1441
1438
|
return media;
|
|
1442
1439
|
}
|
|
1443
|
-
exports.createMediaDescriptionForSctp = createMediaDescriptionForSctp;
|
|
1444
1440
|
function addTransportDescription(media, dtlsTransport) {
|
|
1445
1441
|
const iceTransport = dtlsTransport.iceTransport;
|
|
1446
1442
|
const iceGatherer = iceTransport.iceGather;
|
|
@@ -1462,7 +1458,6 @@ function addTransportDescription(media, dtlsTransport) {
|
|
|
1462
1458
|
}
|
|
1463
1459
|
}
|
|
1464
1460
|
}
|
|
1465
|
-
exports.addTransportDescription = addTransportDescription;
|
|
1466
1461
|
function allocateMid(mids, type) {
|
|
1467
1462
|
let mid = "";
|
|
1468
1463
|
for (let i = 0;;) {
|
|
@@ -1475,7 +1470,6 @@ function allocateMid(mids, type) {
|
|
|
1475
1470
|
mids.add(mid);
|
|
1476
1471
|
return mid;
|
|
1477
1472
|
}
|
|
1478
|
-
exports.allocateMid = allocateMid;
|
|
1479
1473
|
const findCodecByMimeType = (codecs, target) => codecs.find((localCodec) => localCodec.mimeType.toLowerCase() === target.mimeType.toLowerCase())
|
|
1480
1474
|
? target
|
|
1481
1475
|
: undefined;
|