mediasoup 3.19.21 → 3.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/node/lib/ActiveSpeakerObserver.js +34 -1
- package/node/lib/AudioLevelObserver.js +35 -2
- package/node/lib/Channel.d.ts.map +1 -1
- package/node/lib/Channel.js +37 -5
- package/node/lib/Consumer.js +39 -6
- package/node/lib/DataConsumer.d.ts.map +1 -1
- package/node/lib/DataConsumer.js +39 -5
- package/node/lib/DataConsumerTypes.d.ts +1 -0
- package/node/lib/DataConsumerTypes.d.ts.map +1 -1
- package/node/lib/DataProducer.js +37 -4
- package/node/lib/DirectTransport.js +37 -4
- package/node/lib/DirectTransportTypes.d.ts +7 -2
- package/node/lib/DirectTransportTypes.d.ts.map +1 -1
- package/node/lib/Logger.js +4 -1
- package/node/lib/PipeTransport.d.ts +3 -1
- package/node/lib/PipeTransport.d.ts.map +1 -1
- package/node/lib/PipeTransport.js +56 -5
- package/node/lib/PipeTransportTypes.d.ts +28 -8
- package/node/lib/PipeTransportTypes.d.ts.map +1 -1
- package/node/lib/PlainTransport.d.ts +3 -1
- package/node/lib/PlainTransport.d.ts.map +1 -1
- package/node/lib/PlainTransport.js +54 -3
- package/node/lib/PlainTransportTypes.d.ts +27 -7
- package/node/lib/PlainTransportTypes.d.ts.map +1 -1
- package/node/lib/Producer.js +40 -7
- package/node/lib/Router.d.ts +5 -5
- package/node/lib/Router.d.ts.map +1 -1
- package/node/lib/Router.js +81 -36
- package/node/lib/RouterTypes.d.ts +25 -3
- package/node/lib/RouterTypes.d.ts.map +1 -1
- package/node/lib/RtpObserver.js +36 -3
- package/node/lib/Transport.d.ts +3 -1
- package/node/lib/Transport.d.ts.map +1 -1
- package/node/lib/Transport.js +74 -22
- package/node/lib/TransportTypes.d.ts +2 -1
- package/node/lib/TransportTypes.d.ts.map +1 -1
- package/node/lib/WebRtcServer.js +36 -3
- package/node/lib/WebRtcTransport.d.ts +3 -1
- package/node/lib/WebRtcTransport.d.ts.map +1 -1
- package/node/lib/WebRtcTransport.js +55 -4
- package/node/lib/WebRtcTransportTypes.d.ts +27 -7
- package/node/lib/WebRtcTransportTypes.d.ts.map +1 -1
- package/node/lib/Worker.d.ts +2 -1
- package/node/lib/Worker.d.ts.map +1 -1
- package/node/lib/Worker.js +71 -25
- package/node/lib/WorkerTypes.d.ts +0 -4
- package/node/lib/WorkerTypes.d.ts.map +1 -1
- package/node/lib/enhancedEvents.d.ts +2 -2
- package/node/lib/enhancedEvents.d.ts.map +1 -1
- package/node/lib/enhancedEvents.js +0 -2
- package/node/lib/fbs/active-speaker-observer/active-speaker-observer-options.js +34 -1
- package/node/lib/fbs/active-speaker-observer/dominant-speaker-notification.js +34 -1
- package/node/lib/fbs/audio-level-observer/audio-level-observer-options.js +34 -1
- package/node/lib/fbs/audio-level-observer/volume.js +34 -1
- package/node/lib/fbs/audio-level-observer/volumes-notification.js +34 -1
- package/node/lib/fbs/common/string-string-array.js +34 -1
- package/node/lib/fbs/common/string-string.js +34 -1
- package/node/lib/fbs/common/string-uint8.js +34 -1
- package/node/lib/fbs/common/uint16-string.js +34 -1
- package/node/lib/fbs/common/uint32-string.js +34 -1
- package/node/lib/fbs/consumer/base-consumer-dump.js +34 -1
- package/node/lib/fbs/consumer/consumer-dump.js +34 -1
- package/node/lib/fbs/consumer/consumer-layers.js +34 -1
- package/node/lib/fbs/consumer/consumer-score.js +34 -1
- package/node/lib/fbs/consumer/dump-response.js +34 -1
- package/node/lib/fbs/consumer/enable-trace-event-request.js +34 -1
- package/node/lib/fbs/consumer/fir-trace-info.js +34 -1
- package/node/lib/fbs/consumer/get-stats-response.js +34 -1
- package/node/lib/fbs/consumer/key-frame-trace-info.js +34 -1
- package/node/lib/fbs/consumer/layers-change-notification.js +34 -1
- package/node/lib/fbs/consumer/pli-trace-info.js +34 -1
- package/node/lib/fbs/consumer/rtp-notification.js +34 -1
- package/node/lib/fbs/consumer/rtp-trace-info.js +34 -1
- package/node/lib/fbs/consumer/score-notification.js +34 -1
- package/node/lib/fbs/consumer/set-preferred-layers-request.js +34 -1
- package/node/lib/fbs/consumer/set-preferred-layers-response.js +34 -1
- package/node/lib/fbs/consumer/set-priority-request.js +34 -1
- package/node/lib/fbs/consumer/set-priority-response.js +34 -1
- package/node/lib/fbs/consumer/trace-notification.js +34 -1
- package/node/lib/fbs/data-consumer/add-subchannel-request.js +34 -1
- package/node/lib/fbs/data-consumer/add-subchannel-response.js +34 -1
- package/node/lib/fbs/data-consumer/buffered-amount-low-notification.js +34 -1
- package/node/lib/fbs/data-consumer/dump-response.d.ts +5 -2
- package/node/lib/fbs/data-consumer/dump-response.d.ts.map +1 -1
- package/node/lib/fbs/data-consumer/dump-response.js +60 -16
- package/node/lib/fbs/data-consumer/get-buffered-amount-response.js +34 -1
- package/node/lib/fbs/data-consumer/get-stats-response.js +34 -1
- package/node/lib/fbs/data-consumer/message-notification.js +34 -1
- package/node/lib/fbs/data-consumer/remove-subchannel-request.js +34 -1
- package/node/lib/fbs/data-consumer/remove-subchannel-response.js +34 -1
- package/node/lib/fbs/data-consumer/send-request.js +34 -1
- package/node/lib/fbs/data-consumer/set-buffered-amount-low-threshold-request.js +34 -1
- package/node/lib/fbs/data-consumer/set-subchannels-request.js +34 -1
- package/node/lib/fbs/data-consumer/set-subchannels-response.js +34 -1
- package/node/lib/fbs/data-consumer/type.d.ts +5 -0
- package/node/lib/fbs/data-consumer/type.d.ts.map +1 -0
- package/node/lib/fbs/data-consumer/type.js +10 -0
- package/node/lib/fbs/data-consumer.d.ts +1 -0
- package/node/lib/fbs/data-consumer.d.ts.map +1 -1
- package/node/lib/fbs/data-consumer.js +3 -1
- package/node/lib/fbs/data-producer/dump-response.js +34 -1
- package/node/lib/fbs/data-producer/get-stats-response.js +34 -1
- package/node/lib/fbs/data-producer/send-notification.js +34 -1
- package/node/lib/fbs/direct-transport/direct-transport-options.js +34 -1
- package/node/lib/fbs/direct-transport/dump-response.js +34 -1
- package/node/lib/fbs/direct-transport/get-stats-response.js +34 -1
- package/node/lib/fbs/direct-transport/rtcp-notification.js +34 -1
- package/node/lib/fbs/lib-uring/dump.js +34 -1
- package/node/lib/fbs/log/log.js +34 -1
- package/node/lib/fbs/message/message.js +34 -1
- package/node/lib/fbs/notification/body.d.ts +24 -22
- package/node/lib/fbs/notification/body.d.ts.map +1 -1
- package/node/lib/fbs/notification/body.js +24 -20
- package/node/lib/fbs/notification/event.d.ts +27 -26
- package/node/lib/fbs/notification/event.d.ts.map +1 -1
- package/node/lib/fbs/notification/event.js +27 -26
- package/node/lib/fbs/notification/notification.d.ts +3 -2
- package/node/lib/fbs/notification/notification.d.ts.map +1 -1
- package/node/lib/fbs/notification/notification.js +34 -1
- package/node/lib/fbs/pipe-transport/connect-request.js +34 -1
- package/node/lib/fbs/pipe-transport/connect-response.js +34 -1
- package/node/lib/fbs/pipe-transport/dump-response.js +34 -1
- package/node/lib/fbs/pipe-transport/get-stats-response.js +34 -1
- package/node/lib/fbs/pipe-transport/pipe-transport-options.js +34 -1
- package/node/lib/fbs/plain-transport/connect-request.js +34 -1
- package/node/lib/fbs/plain-transport/connect-response.js +34 -1
- package/node/lib/fbs/plain-transport/dump-response.js +34 -1
- package/node/lib/fbs/plain-transport/get-stats-response.js +34 -1
- package/node/lib/fbs/plain-transport/plain-transport-options.js +34 -1
- package/node/lib/fbs/plain-transport/rtcp-tuple-notification.js +34 -1
- package/node/lib/fbs/plain-transport/tuple-notification.js +34 -1
- package/node/lib/fbs/producer/dump-response.js +34 -1
- package/node/lib/fbs/producer/enable-trace-event-request.js +34 -1
- package/node/lib/fbs/producer/fir-trace-info.js +34 -1
- package/node/lib/fbs/producer/get-stats-response.js +34 -1
- package/node/lib/fbs/producer/key-frame-trace-info.js +34 -1
- package/node/lib/fbs/producer/pli-trace-info.js +34 -1
- package/node/lib/fbs/producer/rtp-trace-info.js +34 -1
- package/node/lib/fbs/producer/score-notification.js +34 -1
- package/node/lib/fbs/producer/score.js +34 -1
- package/node/lib/fbs/producer/send-notification.js +34 -1
- package/node/lib/fbs/producer/sr-trace-info.js +34 -1
- package/node/lib/fbs/producer/trace-notification.js +34 -1
- package/node/lib/fbs/producer/video-orientation-change-notification.js +34 -1
- package/node/lib/fbs/request/request.js +34 -1
- package/node/lib/fbs/response/response.js +34 -1
- package/node/lib/fbs/router/close-rtp-observer-request.js +34 -1
- package/node/lib/fbs/router/close-transport-request.js +34 -1
- package/node/lib/fbs/router/create-active-speaker-observer-request.js +34 -1
- package/node/lib/fbs/router/create-audio-level-observer-request.js +34 -1
- package/node/lib/fbs/router/create-direct-transport-request.js +34 -1
- package/node/lib/fbs/router/create-pipe-transport-request.js +34 -1
- package/node/lib/fbs/router/create-plain-transport-request.js +34 -1
- package/node/lib/fbs/router/create-web-rtc-transport-request.js +34 -1
- package/node/lib/fbs/router/dump-response.js +34 -1
- package/node/lib/fbs/rtp-observer/add-producer-request.js +34 -1
- package/node/lib/fbs/rtp-observer/remove-producer-request.js +34 -1
- package/node/lib/fbs/rtp-packet/dump.js +34 -1
- package/node/lib/fbs/rtp-parameters/boolean.js +34 -1
- package/node/lib/fbs/rtp-parameters/codec-mapping.js +34 -1
- package/node/lib/fbs/rtp-parameters/double.js +34 -1
- package/node/lib/fbs/rtp-parameters/encoding-mapping.js +34 -1
- package/node/lib/fbs/rtp-parameters/integer32-array.js +34 -1
- package/node/lib/fbs/rtp-parameters/integer32.js +34 -1
- package/node/lib/fbs/rtp-parameters/parameter.js +34 -1
- package/node/lib/fbs/rtp-parameters/rtcp-feedback.js +34 -1
- package/node/lib/fbs/rtp-parameters/rtcp-parameters.js +34 -1
- package/node/lib/fbs/rtp-parameters/rtp-codec-parameters.js +34 -1
- package/node/lib/fbs/rtp-parameters/rtp-encoding-parameters.js +34 -1
- package/node/lib/fbs/rtp-parameters/rtp-header-extension-parameters.js +34 -1
- package/node/lib/fbs/rtp-parameters/rtp-mapping.js +34 -1
- package/node/lib/fbs/rtp-parameters/rtp-parameters.js +34 -1
- package/node/lib/fbs/rtp-parameters/rtx.js +34 -1
- package/node/lib/fbs/rtp-parameters/string.js +34 -1
- package/node/lib/fbs/rtp-stream/base-stats.js +34 -1
- package/node/lib/fbs/rtp-stream/bitrate-by-layer.js +34 -1
- package/node/lib/fbs/rtp-stream/dump.js +34 -1
- package/node/lib/fbs/rtp-stream/params.js +34 -1
- package/node/lib/fbs/rtp-stream/recv-stats.js +34 -1
- package/node/lib/fbs/rtp-stream/send-stats.js +34 -1
- package/node/lib/fbs/rtp-stream/stats.js +34 -1
- package/node/lib/fbs/rtx-stream/params.js +34 -1
- package/node/lib/fbs/rtx-stream/rtx-dump.js +34 -1
- package/node/lib/fbs/sctp-association/sctp-negotiated-capabilities.d.ts +24 -0
- package/node/lib/fbs/sctp-association/sctp-negotiated-capabilities.d.ts.map +1 -0
- package/node/lib/fbs/sctp-association/sctp-negotiated-capabilities.js +102 -0
- package/node/lib/fbs/sctp-association.d.ts +1 -0
- package/node/lib/fbs/sctp-association.d.ts.map +1 -1
- package/node/lib/fbs/sctp-association.js +4 -1
- package/node/lib/fbs/sctp-parameters/num-sctp-streams.js +34 -1
- package/node/lib/fbs/sctp-parameters/sctp-parameters.d.ts +14 -14
- package/node/lib/fbs/sctp-parameters/sctp-parameters.d.ts.map +1 -1
- package/node/lib/fbs/sctp-parameters/sctp-parameters.js +73 -40
- package/node/lib/fbs/sctp-parameters/sctp-stream-parameters.js +34 -1
- package/node/lib/fbs/sctp-parameters.d.ts +0 -1
- package/node/lib/fbs/sctp-parameters.d.ts.map +1 -1
- package/node/lib/fbs/sctp-parameters.js +1 -4
- package/node/lib/fbs/srtp-parameters/srtp-parameters.js +34 -1
- package/node/lib/fbs/transport/bwe-trace-info.js +34 -1
- package/node/lib/fbs/transport/close-consumer-request.js +34 -1
- package/node/lib/fbs/transport/close-data-consumer-request.js +34 -1
- package/node/lib/fbs/transport/close-data-producer-request.js +34 -1
- package/node/lib/fbs/transport/close-producer-request.js +34 -1
- package/node/lib/fbs/transport/consume-data-request.d.ts +1 -1
- package/node/lib/fbs/transport/consume-data-request.js +35 -2
- package/node/lib/fbs/transport/consume-request.js +34 -1
- package/node/lib/fbs/transport/consume-response.js +34 -1
- package/node/lib/fbs/transport/dump.d.ts +7 -4
- package/node/lib/fbs/transport/dump.d.ts.map +1 -1
- package/node/lib/fbs/transport/dump.js +66 -22
- package/node/lib/fbs/transport/enable-trace-event-request.js +34 -1
- package/node/lib/fbs/transport/listen-info.js +34 -1
- package/node/lib/fbs/transport/options.d.ts +14 -14
- package/node/lib/fbs/transport/options.d.ts.map +1 -1
- package/node/lib/fbs/transport/options.js +92 -51
- package/node/lib/fbs/transport/port-range.js +34 -1
- package/node/lib/fbs/transport/produce-data-request.js +34 -1
- package/node/lib/fbs/transport/produce-request.js +34 -1
- package/node/lib/fbs/transport/produce-response.js +34 -1
- package/node/lib/fbs/transport/recv-rtp-header-extensions.js +34 -1
- package/node/lib/fbs/transport/restart-ice-response.js +34 -1
- package/node/lib/fbs/transport/rtp-listener.js +34 -1
- package/node/lib/fbs/transport/sctp-listener.js +34 -1
- package/node/lib/fbs/transport/sctp-negotiated-capabilities-notification.d.ts +22 -0
- package/node/lib/fbs/transport/sctp-negotiated-capabilities-notification.d.ts.map +1 -0
- package/node/lib/fbs/transport/sctp-negotiated-capabilities-notification.js +93 -0
- package/node/lib/fbs/transport/sctp-state-change-notification.js +34 -1
- package/node/lib/fbs/transport/send-rtcp-notification.js +34 -1
- package/node/lib/fbs/transport/set-max-incoming-bitrate-request.js +34 -1
- package/node/lib/fbs/transport/set-max-outgoing-bitrate-request.js +34 -1
- package/node/lib/fbs/transport/set-min-outgoing-bitrate-request.js +34 -1
- package/node/lib/fbs/transport/socket-flags.js +34 -1
- package/node/lib/fbs/transport/stats.js +34 -1
- package/node/lib/fbs/transport/trace-notification.js +34 -1
- package/node/lib/fbs/transport/tuple.js +34 -1
- package/node/lib/fbs/transport.d.ts +1 -0
- package/node/lib/fbs/transport.d.ts.map +1 -1
- package/node/lib/fbs/transport.js +5 -2
- package/node/lib/fbs/web-rtc-server/dump-response.js +34 -1
- package/node/lib/fbs/web-rtc-server/ice-user-name-fragment.js +34 -1
- package/node/lib/fbs/web-rtc-server/ip-port.js +34 -1
- package/node/lib/fbs/web-rtc-server/tuple-hash.js +34 -1
- package/node/lib/fbs/web-rtc-transport/connect-request.js +34 -1
- package/node/lib/fbs/web-rtc-transport/connect-response.js +34 -1
- package/node/lib/fbs/web-rtc-transport/dtls-parameters.js +34 -1
- package/node/lib/fbs/web-rtc-transport/dtls-state-change-notification.js +34 -1
- package/node/lib/fbs/web-rtc-transport/dump-response.js +34 -1
- package/node/lib/fbs/web-rtc-transport/fingerprint.js +34 -1
- package/node/lib/fbs/web-rtc-transport/get-stats-response.js +34 -1
- package/node/lib/fbs/web-rtc-transport/ice-candidate.js +34 -1
- package/node/lib/fbs/web-rtc-transport/ice-parameters.js +34 -1
- package/node/lib/fbs/web-rtc-transport/ice-selected-tuple-change-notification.js +34 -1
- package/node/lib/fbs/web-rtc-transport/ice-state-change-notification.js +34 -1
- package/node/lib/fbs/web-rtc-transport/listen-individual.js +34 -1
- package/node/lib/fbs/web-rtc-transport/listen-server.js +34 -1
- package/node/lib/fbs/web-rtc-transport/web-rtc-transport-options.js +34 -1
- package/node/lib/fbs/worker/channel-message-handlers.js +34 -1
- package/node/lib/fbs/worker/close-router-request.js +34 -1
- package/node/lib/fbs/worker/close-web-rtc-server-request.js +34 -1
- package/node/lib/fbs/worker/create-router-request.js +34 -1
- package/node/lib/fbs/worker/create-web-rtc-server-request.js +34 -1
- package/node/lib/fbs/worker/dump-response.js +34 -1
- package/node/lib/fbs/worker/resource-usage-response.js +34 -1
- package/node/lib/fbs/worker/update-settings-request.js +34 -1
- package/node/lib/index.d.ts +1 -1
- package/node/lib/index.d.ts.map +1 -1
- package/node/lib/index.js +37 -5
- package/node/lib/ortc.js +36 -3
- package/node/lib/rtpParametersFbsUtils.js +34 -1
- package/node/lib/rtpStreamStatsFbsUtils.js +35 -2
- package/node/lib/sctpParametersFbsUtils.d.ts +2 -2
- package/node/lib/sctpParametersFbsUtils.d.ts.map +1 -1
- package/node/lib/sctpParametersFbsUtils.js +44 -7
- package/node/lib/sctpParametersTypes.d.ts +10 -46
- package/node/lib/sctpParametersTypes.d.ts.map +1 -1
- package/node/lib/srtpParametersFbsUtils.js +34 -1
- package/node/lib/test/test-ActiveSpeakerObserver.js +35 -2
- package/node/lib/test/test-AudioLevelObserver.js +35 -2
- package/node/lib/test/test-Consumer.js +37 -4
- package/node/lib/test/test-DataConsumer.js +35 -2
- package/node/lib/test/test-DataProducer.js +35 -2
- package/node/lib/test/test-DirectTransport.js +36 -8
- package/node/lib/test/test-PipeTransport.js +35 -2
- package/node/lib/test/test-PlainTransport.js +45 -12
- package/node/lib/test/test-Producer.js +37 -4
- package/node/lib/test/test-Router.js +35 -2
- package/node/lib/test/test-WebRtcServer.js +34 -1
- package/node/lib/test/test-WebRtcTransport.js +51 -22
- package/node/lib/test/test-Worker.js +37 -4
- package/node/lib/test/test-mediasoup.js +36 -3
- package/node/lib/test/test-multiopus.js +35 -2
- package/node/lib/test/test-ortc.js +34 -1
- package/node/lib/test/test-werift-sctp.js +39 -5
- package/npm-scripts.mjs +2 -2
- package/package.json +13 -11
- package/worker/deps/libwebrtc/LICENSE +5 -0
- package/worker/deps/libwebrtc/README.md +3 -3
- package/worker/deps/libwebrtc/libwebrtc/mediasoup_helpers.h +13 -10
- package/worker/fbs/dataConsumer.fbs +7 -2
- package/worker/fbs/dataProducer.fbs +1 -0
- package/worker/fbs/notification.fbs +2 -0
- package/worker/fbs/sctpAssociation.fbs +4 -0
- package/worker/fbs/sctpParameters.fbs +5 -12
- package/worker/fbs/transport.fbs +12 -8
- package/worker/fuzzer/src/RTC/FuzzerDtlsTransport.cpp +13 -3
- package/worker/fuzzer/src/RTC/FuzzerRateCalculator.cpp +2 -2
- package/worker/fuzzer/src/RTC/FuzzerSeqManager.cpp +1 -1
- package/worker/fuzzer/src/RTC/FuzzerTrendCalculator.cpp +5 -5
- package/worker/fuzzer/src/RTC/ICE/FuzzerStunPacket.cpp +9 -6
- package/worker/fuzzer/src/RTC/RTP/FuzzerRetransmissionBuffer.cpp +1 -1
- package/worker/fuzzer/src/RTC/RTP/FuzzerRtpStreamSend.cpp +14 -2
- package/worker/fuzzer/src/RTC/SCTP/association/FuzzerStateCookie.cpp +1 -1
- package/worker/fuzzer/src/RTC/SCTP/packet/FuzzerPacket.cpp +5 -2
- package/worker/fuzzer/src/fuzzer.cpp +3 -10
- package/worker/include/Channel/ChannelMessageRegistrator.hpp +39 -0
- package/worker/include/Channel/ChannelMessageRegistratorInterface.hpp +32 -0
- package/worker/include/Channel/ChannelRequest.hpp +1 -1
- package/worker/include/Channel/ChannelSocket.hpp +1 -1
- package/worker/include/DepLibUV.hpp +1 -1
- package/worker/include/DepLibUring.hpp +3 -3
- package/worker/include/Logger.hpp +4 -4
- package/worker/include/MediaSoupErrors.hpp +1 -1
- package/worker/include/RTC/ActiveSpeakerObserver.hpp +11 -9
- package/worker/include/RTC/AudioLevelObserver.hpp +7 -7
- package/worker/include/RTC/Consumer.hpp +3 -3
- package/worker/include/RTC/DataConsumer.hpp +13 -17
- package/worker/include/RTC/DataProducer.hpp +6 -9
- package/worker/include/RTC/DirectTransport.hpp +4 -6
- package/worker/include/RTC/DtlsTransport.hpp +13 -11
- package/worker/include/RTC/ICE/IceServer.hpp +8 -5
- package/worker/include/RTC/ICE/StunPacket.hpp +1 -1
- package/worker/include/RTC/KeyFrameRequestManager.hpp +15 -12
- package/worker/include/RTC/NackGenerator.hpp +8 -6
- package/worker/include/RTC/PipeConsumer.hpp +1 -2
- package/worker/include/RTC/PipeTransport.hpp +4 -6
- package/worker/include/RTC/PlainTransport.hpp +4 -6
- package/worker/include/RTC/PortManager.hpp +1 -1
- package/worker/include/RTC/Producer.hpp +3 -3
- package/worker/include/RTC/RTCP/FeedbackPs.hpp +1 -1
- package/worker/include/RTC/RTCP/FeedbackRtp.hpp +1 -1
- package/worker/include/RTC/RTCP/FeedbackRtpNack.hpp +1 -1
- package/worker/include/RTC/RTCP/ReceiverReport.hpp +1 -1
- package/worker/include/RTC/RTP/Packet.hpp +2 -2
- package/worker/include/RTC/RTP/RtpStream.hpp +17 -12
- package/worker/include/RTC/RTP/RtpStreamRecv.hpp +8 -6
- package/worker/include/RTC/RTP/RtpStreamSend.hpp +4 -1
- package/worker/include/RTC/RTP/RtxStream.hpp +3 -1
- package/worker/include/RTC/RTP/SharedPacket.hpp +1 -1
- package/worker/include/RTC/RateCalculator.hpp +5 -2
- package/worker/include/RTC/Router.hpp +7 -8
- package/worker/include/RTC/RtpObserver.hpp +3 -3
- package/worker/include/RTC/SCTP/association/Association.hpp +53 -19
- package/worker/include/RTC/SCTP/association/AssociationListenerDeferrer.hpp +14 -6
- package/worker/include/RTC/SCTP/association/HeartbeatHandler.hpp +18 -14
- package/worker/include/RTC/SCTP/association/PacketSender.hpp +3 -3
- package/worker/include/RTC/SCTP/association/StateCookie.hpp +1 -1
- package/worker/include/RTC/SCTP/association/StreamResetHandler.hpp +49 -35
- package/worker/include/RTC/SCTP/association/TransmissionControlBlock.hpp +114 -31
- package/worker/include/RTC/SCTP/association/{TCBContext.hpp → TransmissionControlBlockContextInterface.hpp} +14 -8
- package/worker/include/RTC/SCTP/packet/Chunk.hpp +3 -3
- package/worker/include/RTC/SCTP/packet/TLV.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/UserData.hpp +61 -17
- package/worker/include/RTC/SCTP/packet/chunks/AnyDataChunk.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/chunks/AnyForwardTsnChunk.hpp +9 -9
- package/worker/include/RTC/SCTP/packet/chunks/AnyInitChunk.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/chunks/DataChunk.hpp +4 -2
- package/worker/include/RTC/SCTP/packet/chunks/ForwardTsnChunk.hpp +3 -3
- package/worker/include/RTC/SCTP/packet/chunks/IDataChunk.hpp +4 -2
- package/worker/include/RTC/SCTP/packet/chunks/IForwardTsnChunk.hpp +3 -3
- package/worker/include/RTC/SCTP/packet/chunks/InitAckChunk.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/chunks/InitChunk.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/chunks/SackChunk.hpp +10 -3
- package/worker/include/RTC/SCTP/packet/chunks/ShutdownChunk.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/errorCauses/InvalidStreamIdentifierErrorCause.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/errorCauses/MissingMandatoryParameterErrorCause.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/errorCauses/NoUserDataErrorCause.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/errorCauses/StaleCookieErrorCause.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/parameters/AddIncomingStreamsRequestParameter.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/parameters/AddOutgoingStreamsRequestParameter.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/parameters/CookiePreservativeParameter.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/parameters/IncomingSsnResetRequestParameter.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/parameters/OutgoingSsnResetRequestParameter.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/parameters/ReconfigurationResponseParameter.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/parameters/SsnTsnResetRequestParameter.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/parameters/SupportedAddressTypesParameter.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/parameters/SupportedExtensionsParameter.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/parameters/ZeroChecksumAcceptableParameter.hpp +1 -1
- package/worker/include/RTC/SCTP/public/AssociationInterface.hpp +22 -2
- package/worker/include/RTC/SCTP/public/{AssociationListener.hpp → AssociationListenerInterface.hpp} +5 -5
- package/worker/include/RTC/SCTP/public/Message.hpp +26 -10
- package/worker/include/RTC/SCTP/public/SctpOptions.hpp +28 -19
- package/worker/include/RTC/SCTP/public/SctpTypes.hpp +21 -0
- package/worker/include/RTC/SCTP/rx/DataTracker.hpp +277 -0
- package/worker/include/RTC/SCTP/rx/InterleavedReassemblyStreams.hpp +116 -0
- package/worker/include/RTC/SCTP/rx/ReassemblyQueue.hpp +202 -0
- package/worker/include/RTC/SCTP/rx/ReassemblyStreamsInterface.hpp +83 -0
- package/worker/include/RTC/SCTP/rx/TraditionalReassemblyStreams.hpp +183 -0
- package/worker/include/RTC/SCTP/tx/OutstandingData.hpp +595 -0
- package/worker/include/RTC/SCTP/tx/RetransmissionErrorCounter.hpp +3 -3
- package/worker/include/RTC/SCTP/tx/RetransmissionQueue.hpp +329 -0
- package/worker/include/RTC/SCTP/tx/RetransmissionTimeout.hpp +11 -10
- package/worker/include/RTC/SCTP/tx/RoundRobinSendQueue.hpp +356 -0
- package/worker/include/RTC/SCTP/tx/SendQueueInterface.hpp +180 -0
- package/worker/include/RTC/SCTP/tx/StreamScheduler.hpp +235 -0
- package/worker/include/RTC/SenderBandwidthEstimator.hpp +5 -1
- package/worker/include/RTC/Serializable.hpp +11 -3
- package/worker/include/RTC/SimpleConsumer.hpp +1 -2
- package/worker/include/RTC/SimulcastConsumer.hpp +1 -2
- package/worker/include/RTC/SvcConsumer.hpp +1 -2
- package/worker/include/RTC/TcpServer.hpp +2 -2
- package/worker/include/RTC/Transport.hpp +65 -86
- package/worker/include/RTC/TransportCongestionControlClient.hpp +8 -5
- package/worker/include/RTC/TransportCongestionControlServer.hpp +8 -5
- package/worker/include/RTC/TransportTuple.hpp +1 -1
- package/worker/include/RTC/UdpSocket.hpp +1 -1
- package/worker/include/RTC/WebRtcServer.hpp +3 -3
- package/worker/include/RTC/WebRtcTransport.hpp +5 -7
- package/worker/include/Settings.hpp +2 -3
- package/worker/include/Shared.hpp +64 -0
- package/worker/include/SharedInterface.hpp +77 -0
- package/worker/include/Utils/UnwrappedSequenceNumber.hpp +270 -0
- package/worker/include/Utils.hpp +10 -4
- package/worker/include/Worker.hpp +6 -6
- package/worker/include/common.hpp +12 -12
- package/worker/include/handles/BackoffTimerHandle.hpp +28 -67
- package/worker/include/handles/BackoffTimerHandleInterface.hpp +123 -0
- package/worker/include/handles/TimerHandle.hpp +29 -20
- package/worker/include/handles/TimerHandleInterface.hpp +43 -0
- package/worker/meson.build +45 -29
- package/worker/meson_options.txt +2 -1
- package/worker/mocks/include/Channel/MockChannelMessageRegistrator.hpp +45 -0
- package/worker/mocks/include/MockShared.hpp +90 -0
- package/worker/mocks/include/RTC/SCTP/association/MockAssociationListener.hpp +308 -0
- package/worker/mocks/include/RTC/SCTP/association/MockTransmissionControlBlockContext.hpp +183 -0
- package/worker/mocks/include/RTC/SCTP/tx/MockSendQueue.hpp +262 -0
- package/worker/mocks/include/handles/MockBackoffTimerHandle.hpp +153 -0
- package/worker/mocks/include/handles/MockTimerHandle.hpp +74 -0
- package/worker/mocks/include/mockTypes.hpp +15 -0
- package/worker/mocks/src/Channel/MockChannelMessageRegistrator.cpp +128 -0
- package/worker/mocks/src/MockShared.cpp +46 -0
- package/worker/mocks/src/RTC/SCTP/association/MockTransmissionControlBlockContext.cpp +39 -0
- package/worker/mocks/src/handles/MockBackoffTimerHandle.cpp +127 -0
- package/worker/scripts/clang-scripts.mjs +5 -1
- package/worker/scripts/package-lock.json +6 -7
- package/worker/src/Channel/ChannelMessageRegistrator.cpp +125 -0
- package/worker/src/Channel/ChannelSocket.cpp +3 -4
- package/worker/src/DepLibUV.cpp +1 -1
- package/worker/src/DepLibUring.cpp +3 -1
- package/worker/src/Logger.cpp +1 -1
- package/worker/src/MediaSoupErrors.cpp +2 -0
- package/worker/src/RTC/ActiveSpeakerObserver.cpp +14 -14
- package/worker/src/RTC/AudioLevelObserver.cpp +12 -10
- package/worker/src/RTC/Consumer.cpp +28 -26
- package/worker/src/RTC/DataConsumer.cpp +61 -71
- package/worker/src/RTC/DataProducer.cpp +16 -11
- package/worker/src/RTC/DirectTransport.cpp +21 -20
- package/worker/src/RTC/DtlsTransport.cpp +4 -4
- package/worker/src/RTC/ICE/IceServer.cpp +6 -5
- package/worker/src/RTC/ICE/StunPacket.cpp +1 -1
- package/worker/src/RTC/KeyFrameRequestManager.cpp +15 -15
- package/worker/src/RTC/NackGenerator.cpp +6 -6
- package/worker/src/RTC/PipeConsumer.cpp +6 -5
- package/worker/src/RTC/PipeTransport.cpp +9 -22
- package/worker/src/RTC/PlainTransport.cpp +16 -28
- package/worker/src/RTC/Producer.cpp +40 -39
- package/worker/src/RTC/RTCP/FeedbackPsAfb.cpp +1 -1
- package/worker/src/RTC/RTCP/FeedbackPsRpsi.cpp +1 -2
- package/worker/src/RTC/RTCP/FeedbackRtpTransport.cpp +1 -1
- package/worker/src/RTC/RTCP/XR.cpp +1 -1
- package/worker/src/RTC/RTP/Packet.cpp +3 -1
- package/worker/src/RTC/RTP/ProbationGenerator.cpp +4 -4
- package/worker/src/RTC/RTP/RetransmissionBuffer.cpp +1 -1
- package/worker/src/RTC/RTP/RtpStream.cpp +17 -10
- package/worker/src/RTC/RTP/RtpStreamRecv.cpp +16 -14
- package/worker/src/RTC/RTP/RtpStreamSend.cpp +12 -9
- package/worker/src/RTC/RTP/RtxStream.cpp +7 -7
- package/worker/src/RTC/RTP/SharedPacket.cpp +3 -3
- package/worker/src/RTC/RateCalculator.cpp +1 -2
- package/worker/src/RTC/Router.cpp +61 -38
- package/worker/src/RTC/RtpDictionaries/RtpCodecMimeType.cpp +1 -1
- package/worker/src/RTC/RtpObserver.cpp +2 -1
- package/worker/src/RTC/SCTP/LICENSE +44 -0
- package/worker/src/RTC/SCTP/association/Association.cpp +417 -411
- package/worker/src/RTC/SCTP/association/AssociationListenerDeferrer.cpp +46 -13
- package/worker/src/RTC/SCTP/association/HeartbeatHandler.cpp +47 -43
- package/worker/src/RTC/SCTP/association/PacketSender.cpp +8 -8
- package/worker/src/RTC/SCTP/association/StreamResetHandler.cpp +113 -101
- package/worker/src/RTC/SCTP/association/TransmissionControlBlock.cpp +291 -62
- package/worker/src/RTC/SCTP/packet/Chunk.cpp +5 -1
- package/worker/src/RTC/SCTP/packet/Packet.cpp +8 -1
- package/worker/src/RTC/SCTP/packet/chunks/DataChunk.cpp +17 -0
- package/worker/src/RTC/SCTP/packet/chunks/ForwardTsnChunk.cpp +4 -4
- package/worker/src/RTC/SCTP/packet/chunks/IDataChunk.cpp +25 -0
- package/worker/src/RTC/SCTP/packet/chunks/IForwardTsnChunk.cpp +10 -7
- package/worker/src/RTC/SCTP/packet/chunks/SackChunk.cpp +21 -4
- package/worker/src/RTC/SCTP/packet/chunks/ShutdownCompleteChunk.cpp +1 -1
- package/worker/src/RTC/SCTP/packet/errorCauses/NoUserDataErrorCause.cpp +1 -1
- package/worker/src/RTC/SCTP/packet/errorCauses/ProtocolViolationErrorCause.cpp +2 -2
- package/worker/src/RTC/SCTP/packet/errorCauses/UserInitiatedAbortErrorCause.cpp +1 -1
- package/worker/src/RTC/SCTP/public/Message.cpp +8 -0
- package/worker/src/RTC/SCTP/public/SctpOptions.cpp +90 -0
- package/worker/src/RTC/SCTP/rx/DataTracker.cpp +471 -0
- package/worker/src/RTC/SCTP/rx/InterleavedReassemblyStreams.cpp +327 -0
- package/worker/src/RTC/SCTP/rx/ReassemblyQueue.cpp +288 -0
- package/worker/src/RTC/SCTP/rx/TraditionalReassemblyStreams.cpp +453 -0
- package/worker/src/RTC/SCTP/tx/OutstandingData.cpp +912 -0
- package/worker/src/RTC/SCTP/tx/RetransmissionQueue.cpp +786 -0
- package/worker/src/RTC/SCTP/tx/RetransmissionTimeout.cpp +2 -2
- package/worker/src/RTC/SCTP/tx/RoundRobinSendQueue.cpp +752 -0
- package/worker/src/RTC/SCTP/tx/StreamScheduler.cpp +257 -0
- package/worker/src/RTC/SenderBandwidthEstimator.cpp +7 -5
- package/worker/src/RTC/SimpleConsumer.cpp +11 -11
- package/worker/src/RTC/SimulcastConsumer.cpp +16 -16
- package/worker/src/RTC/SrtpSession.cpp +1 -1
- package/worker/src/RTC/SvcConsumer.cpp +16 -16
- package/worker/src/RTC/TcpConnection.cpp +1 -1
- package/worker/src/RTC/Transport.cpp +497 -563
- package/worker/src/RTC/TransportCongestionControlClient.cpp +9 -8
- package/worker/src/RTC/TransportCongestionControlServer.cpp +5 -5
- package/worker/src/RTC/WebRtcServer.cpp +5 -4
- package/worker/src/RTC/WebRtcTransport.cpp +44 -39
- package/worker/src/Settings.cpp +9 -28
- package/worker/src/Shared.cpp +35 -0
- package/worker/src/Utils/Crypto.cpp +1 -1
- package/worker/src/Utils/String.cpp +1 -1
- package/worker/src/Worker.cpp +19 -48
- package/worker/src/handles/BackoffTimerHandle.cpp +34 -21
- package/worker/src/handles/TimerHandle.cpp +5 -4
- package/worker/src/handles/UdpSocketHandle.cpp +1 -1
- package/worker/src/lib.cpp +17 -16
- package/worker/subprojects/catch2.wrap +6 -6
- package/worker/tasks.py +1 -1
- package/worker/test/include/RTC/ICE/iceCommon.hpp +8 -7
- package/worker/test/include/RTC/RTP/rtpCommon.hpp +7 -6
- package/worker/test/include/RTC/SCTP/sctpCommon.hpp +16 -10
- package/worker/test/include/catch2Macros.hpp +31 -0
- package/worker/test/src/RTC/ICE/TestStunPacket.cpp +3 -3
- package/worker/test/src/RTC/ICE/iceCommon.cpp +2 -2
- package/worker/test/src/RTC/RTP/Codecs/TestVP8.cpp +1 -1
- package/worker/test/src/RTC/RTP/Codecs/TestVP9.cpp +1 -1
- package/worker/test/src/RTC/RTP/TestPacket.cpp +3 -3
- package/worker/test/src/RTC/RTP/TestRtpStreamRecv.cpp +16 -9
- package/worker/test/src/RTC/RTP/TestRtpStreamSend.cpp +38 -23
- package/worker/test/src/RTC/RTP/TestSharedPacket.cpp +1 -1
- package/worker/test/src/RTC/RTP/rtpCommon.cpp +2 -2
- package/worker/test/src/RTC/SCTP/association/TestHeartbeatHandler.cpp +292 -0
- package/worker/test/src/RTC/SCTP/association/TestNegotiatedCapabilities.cpp +1 -1
- package/worker/test/src/RTC/SCTP/association/TestStateCookie.cpp +1 -1
- package/worker/test/src/RTC/SCTP/association/TestTransmissionControlBlock.cpp +99 -0
- package/worker/test/src/RTC/SCTP/packet/TestChunk.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/TestPacket.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/chunks/TestAbortAssociationChunk.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/chunks/TestCookieAckChunk.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/chunks/TestCookieEchoChunk.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/chunks/TestDataChunk.cpp +77 -7
- package/worker/test/src/RTC/SCTP/packet/chunks/TestForwardTsnChunk.cpp +35 -26
- package/worker/test/src/RTC/SCTP/packet/chunks/TestHeartbeatAckChunk.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/chunks/TestHeartbeatRequestChunk.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/chunks/TestIDataChunk.cpp +77 -7
- package/worker/test/src/RTC/SCTP/packet/chunks/TestIForwardTsnChunk.cpp +59 -27
- package/worker/test/src/RTC/SCTP/packet/chunks/TestInitAckChunk.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/chunks/TestInitChunk.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/chunks/TestOperationErrorChunk.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/chunks/TestReConfigChunk.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/chunks/TestSackChunk.cpp +73 -35
- package/worker/test/src/RTC/SCTP/packet/chunks/TestShutdownAckChunk.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/chunks/TestShutdownChunk.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/chunks/TestShutdownCompleteChunk.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/chunks/TestUnknownChunk.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestCookieReceivedWhileShuttingDownErrorCause.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestInvalidMandatoryParameterErrorCause.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestInvalidStreamIdentifierErrorCause.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestMissingMandatoryParameterErrorCause.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestNoUserDataErrorCause.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestOutOfResourceErrorCause.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestProtocolViolationErrorCause.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestRestartOfAnAssociationWithNewAddressesErrorCause.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestStaleCookieErrorCause.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUnknownErrorCause.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUnrecognizedChunkTypeErrorCause.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUnrecognizedParametersErrorCause.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUnresolvableAddressErrorCause.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUserInitiatedAbortErrorCause.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestAddIncomingStreamsRequestParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestAddOutgoingStreamsRequestParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestCookiePreservativeParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestForwardTsnSupportedParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestHeartbeatInfoParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestIPv4AddressParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestIPv6AddressParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestIncomingSsnResetRequestParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestOutgoingSsnResetRequestParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestReconfigurationResponseParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestSsnTsnResetRequestParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestStateCookieParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestSupportedAddressTypesParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestSupportedExtensionsParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestUnknownParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestUnrecognizedParameterParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestZeroChecksumAcceptableParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/rx/TestDataTracker.cpp +1117 -0
- package/worker/test/src/RTC/SCTP/rx/TestInterleavedReassemblyStreams.cpp +565 -0
- package/worker/test/src/RTC/SCTP/rx/TestReassemblyQueue.cpp +557 -0
- package/worker/test/src/RTC/SCTP/rx/TestTraditionalReassemblyStreams.cpp +555 -0
- package/worker/test/src/RTC/SCTP/sctpCommon.cpp +2 -2
- package/worker/test/src/RTC/SCTP/tx/TestOutstandingData.cpp +1248 -0
- package/worker/test/src/RTC/SCTP/tx/TestRetransmissionErrorCounter.cpp +4 -0
- package/worker/test/src/RTC/SCTP/tx/TestRetransmissionQueue.cpp +2218 -0
- package/worker/test/src/RTC/SCTP/tx/TestRetransmissionTimeout.cpp +33 -33
- package/worker/test/src/RTC/SCTP/tx/TestRoundRobinSendQueue.cpp +1130 -0
- package/worker/test/src/RTC/SCTP/tx/TestStreamScheduler.cpp +721 -0
- package/worker/test/src/RTC/TestKeyFrameRequestManager.cpp +20 -30
- package/worker/test/src/RTC/TestNackGenerator.cpp +11 -8
- package/worker/test/src/RTC/TestRateCalculator.cpp +6 -7
- package/worker/test/src/RTC/TestSimpleConsumer.cpp +11 -11
- package/worker/test/src/RTC/TestTransportCongestionControlServer.cpp +15 -3
- package/worker/test/src/Utils/TestByte.cpp +98 -0
- package/worker/test/src/{RTC/SCTP/common → Utils}/TestUnwrappedSequenceNumber.cpp +2 -2
- package/worker/test/src/testHelpers.cpp +1 -1
- package/worker/test/src/tests.cpp +0 -12
- package/node/lib/fbs/consumer/degrade-request.d.ts +0 -30
- package/node/lib/fbs/consumer/degrade-request.d.ts.map +0 -1
- package/node/lib/fbs/consumer/degrade-request.js +0 -91
- package/node/lib/fbs/consumer/enable-delay-and-loss-request.d.ts +0 -24
- package/node/lib/fbs/consumer/enable-delay-and-loss-request.d.ts.map +0 -1
- package/node/lib/fbs/consumer/enable-delay-and-loss-request.js +0 -69
- package/node/lib/fbs/producer/degrade-request.d.ts +0 -30
- package/node/lib/fbs/producer/degrade-request.d.ts.map +0 -1
- package/node/lib/fbs/producer/degrade-request.js +0 -91
- package/node/lib/fbs/worker/close-notification.d.ts +0 -18
- package/node/lib/fbs/worker/close-notification.d.ts.map +0 -1
- package/node/lib/fbs/worker/close-notification.js +0 -45
- package/node/lib/fbs/worker/close-request.d.ts +0 -18
- package/node/lib/fbs/worker/close-request.d.ts.map +0 -1
- package/node/lib/fbs/worker/close-request.js +0 -45
- package/node/lib/fbs/worker/close-worker-notification.d.ts +0 -18
- package/node/lib/fbs/worker/close-worker-notification.d.ts.map +0 -1
- package/node/lib/fbs/worker/close-worker-notification.js +0 -45
- package/worker/include/ChannelMessageRegistrator.hpp +0 -30
- package/worker/include/DepUsrSCTP.hpp +0 -48
- package/worker/include/RTC/SCTP/TODO_SCTP.md +0 -43
- package/worker/include/RTC/SCTP/common/UnwrappedSequenceNumber.hpp +0 -274
- package/worker/include/RTC/SctpAssociation.hpp +0 -147
- package/worker/include/RTC/Shared.hpp +0 -23
- package/worker/src/ChannelMessageRegistrator.cpp +0 -119
- package/worker/src/DepUsrSCTP.cpp +0 -277
- package/worker/src/RTC/SctpAssociation.cpp +0 -1175
- package/worker/src/RTC/Shared.cpp +0 -23
- package/worker/subprojects/usrsctp.wrap +0 -8
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
#include "common.hpp"
|
|
5
5
|
#include "Channel/ChannelRequest.hpp"
|
|
6
6
|
#include "Channel/ChannelSocket.hpp"
|
|
7
|
+
#include "RTC/SCTP/public/Message.hpp"
|
|
7
8
|
#include "RTC/SctpDictionaries.hpp"
|
|
8
|
-
#include "
|
|
9
|
+
#include "SharedInterface.hpp"
|
|
9
10
|
#include <absl/container/flat_hash_set.h>
|
|
10
11
|
#include <string>
|
|
11
12
|
|
|
@@ -24,13 +25,13 @@ namespace RTC
|
|
|
24
25
|
|
|
25
26
|
public:
|
|
26
27
|
virtual void OnDataConsumerSendMessage(
|
|
27
|
-
RTC::DataConsumer* dataConsumer,
|
|
28
|
-
const uint8_t* msg,
|
|
29
|
-
size_t len,
|
|
30
|
-
uint32_t ppid,
|
|
31
|
-
onQueuedCallback* cb) = 0;
|
|
28
|
+
RTC::DataConsumer* dataConsumer, RTC::SCTP::Message message, onQueuedCallback* cb) = 0;
|
|
32
29
|
virtual void OnDataConsumerNeedBufferedAmount(
|
|
33
|
-
RTC::DataConsumer* dataConsumer, uint32_t& bufferedAmount)
|
|
30
|
+
const RTC::DataConsumer* dataConsumer, uint32_t& bufferedAmount) const = 0;
|
|
31
|
+
virtual void OnDataConsumerNeedBufferedAmountLowThreshold(
|
|
32
|
+
const RTC::DataConsumer* dataConsumer, uint32_t& bufferedAmountLowThreshold) const = 0;
|
|
33
|
+
virtual void OnDataConsumerSetBufferedAmountLowThreshold(
|
|
34
|
+
const RTC::DataConsumer* dataConsumer, uint32_t bytes) const = 0;
|
|
34
35
|
virtual void OnDataConsumerDataProducerClosed(RTC::DataConsumer* dataConsumer) = 0;
|
|
35
36
|
};
|
|
36
37
|
|
|
@@ -43,7 +44,7 @@ namespace RTC
|
|
|
43
44
|
|
|
44
45
|
public:
|
|
45
46
|
DataConsumer(
|
|
46
|
-
|
|
47
|
+
SharedInterface* shared,
|
|
47
48
|
const std::string& id,
|
|
48
49
|
const std::string& dataProducerId,
|
|
49
50
|
RTC::DataConsumer::Listener* listener,
|
|
@@ -92,13 +93,11 @@ namespace RTC
|
|
|
92
93
|
void DataProducerResumed();
|
|
93
94
|
void SctpAssociationConnected();
|
|
94
95
|
void SctpAssociationClosed();
|
|
95
|
-
void
|
|
96
|
-
void
|
|
96
|
+
void SctpBufferedAmountLow(uint32_t bufferedAmount) const;
|
|
97
|
+
void SctpSendBufferFull() const;
|
|
97
98
|
void DataProducerClosed();
|
|
98
99
|
bool SendMessage(
|
|
99
|
-
|
|
100
|
-
size_t len,
|
|
101
|
-
uint32_t ppid,
|
|
100
|
+
RTC::SCTP::Message message,
|
|
102
101
|
std::vector<uint16_t>& subchannels,
|
|
103
102
|
std::optional<uint16_t> requiredSubchannel,
|
|
104
103
|
const onQueuedCallback* cb = nullptr);
|
|
@@ -114,7 +113,7 @@ namespace RTC
|
|
|
114
113
|
|
|
115
114
|
private:
|
|
116
115
|
// Passed by argument.
|
|
117
|
-
|
|
116
|
+
SharedInterface* shared{ nullptr };
|
|
118
117
|
RTC::DataConsumer::Listener* listener{ nullptr };
|
|
119
118
|
size_t maxMessageSize{ 0u };
|
|
120
119
|
// Others.
|
|
@@ -130,9 +129,6 @@ namespace RTC
|
|
|
130
129
|
bool dataProducerClosed{ false };
|
|
131
130
|
size_t messagesSent{ 0u };
|
|
132
131
|
size_t bytesSent{ 0u };
|
|
133
|
-
uint32_t bufferedAmount{ 0u };
|
|
134
|
-
uint32_t bufferedAmountLowThreshold{ 0u };
|
|
135
|
-
bool forceTriggerBufferedAmountLow{ false };
|
|
136
132
|
};
|
|
137
133
|
} // namespace RTC
|
|
138
134
|
|
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
#include "common.hpp"
|
|
5
5
|
#include "Channel/ChannelRequest.hpp"
|
|
6
6
|
#include "Channel/ChannelSocket.hpp"
|
|
7
|
+
#include "RTC/SCTP/public/Message.hpp"
|
|
7
8
|
#include "RTC/SctpDictionaries.hpp"
|
|
8
|
-
#include "
|
|
9
|
+
#include "SharedInterface.hpp"
|
|
9
10
|
#include <string>
|
|
10
11
|
#include <vector>
|
|
11
12
|
|
|
@@ -24,9 +25,7 @@ namespace RTC
|
|
|
24
25
|
virtual void OnDataProducerReceiveData(RTC::DataProducer* producer, size_t len) = 0;
|
|
25
26
|
virtual void OnDataProducerMessageReceived(
|
|
26
27
|
RTC::DataProducer* dataProducer,
|
|
27
|
-
|
|
28
|
-
size_t len,
|
|
29
|
-
uint32_t ppid,
|
|
28
|
+
RTC::SCTP::Message message,
|
|
30
29
|
std::vector<uint16_t>& subchannels,
|
|
31
30
|
std::optional<uint16_t> requiredSubchannel) = 0;
|
|
32
31
|
virtual void OnDataProducerPaused(RTC::DataProducer* dataProducer) = 0;
|
|
@@ -42,7 +41,7 @@ namespace RTC
|
|
|
42
41
|
|
|
43
42
|
public:
|
|
44
43
|
DataProducer(
|
|
45
|
-
|
|
44
|
+
SharedInterface* shared,
|
|
46
45
|
const std::string& id,
|
|
47
46
|
size_t maxMessageSize,
|
|
48
47
|
RTC::DataProducer::Listener* listener,
|
|
@@ -67,9 +66,7 @@ namespace RTC
|
|
|
67
66
|
return this->paused;
|
|
68
67
|
}
|
|
69
68
|
void ReceiveMessage(
|
|
70
|
-
|
|
71
|
-
size_t len,
|
|
72
|
-
uint32_t ppid,
|
|
69
|
+
RTC::SCTP::Message message,
|
|
73
70
|
std::vector<uint16_t>& subchannels,
|
|
74
71
|
std::optional<uint16_t> requiredSubchannel);
|
|
75
72
|
|
|
@@ -87,7 +84,7 @@ namespace RTC
|
|
|
87
84
|
|
|
88
85
|
private:
|
|
89
86
|
// Passed by argument.
|
|
90
|
-
|
|
87
|
+
SharedInterface* shared{ nullptr };
|
|
91
88
|
size_t maxMessageSize{ 0u };
|
|
92
89
|
RTC::DataProducer::Listener* listener{ nullptr };
|
|
93
90
|
// Others.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#ifndef MS_RTC_DIRECT_TRANSPORT_HPP
|
|
2
2
|
#define MS_RTC_DIRECT_TRANSPORT_HPP
|
|
3
3
|
|
|
4
|
-
#include "RTC/Shared.hpp"
|
|
5
4
|
#include "RTC/Transport.hpp"
|
|
5
|
+
#include "SharedInterface.hpp"
|
|
6
6
|
|
|
7
7
|
namespace RTC
|
|
8
8
|
{
|
|
@@ -10,7 +10,7 @@ namespace RTC
|
|
|
10
10
|
{
|
|
11
11
|
public:
|
|
12
12
|
DirectTransport(
|
|
13
|
-
|
|
13
|
+
SharedInterface* shared,
|
|
14
14
|
const std::string& id,
|
|
15
15
|
RTC::Transport::Listener* listener,
|
|
16
16
|
const FBS::DirectTransport::DirectTransportOptions* options);
|
|
@@ -32,11 +32,9 @@ namespace RTC
|
|
|
32
32
|
void SendRtcpCompoundPacket(RTC::RTCP::CompoundPacket* packet) override;
|
|
33
33
|
void SendMessage(
|
|
34
34
|
RTC::DataConsumer* dataConsumer,
|
|
35
|
-
|
|
36
|
-
size_t len,
|
|
37
|
-
uint32_t ppid,
|
|
35
|
+
RTC::SCTP::Message message,
|
|
38
36
|
onQueuedCallback* cb = nullptr) override;
|
|
39
|
-
bool
|
|
37
|
+
bool SendData(const uint8_t* data, size_t len) override;
|
|
40
38
|
void RecvStreamClosed(uint32_t ssrc) override;
|
|
41
39
|
void SendStreamClosed(uint32_t ssrc) override;
|
|
42
40
|
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
|
|
4
4
|
#include "common.hpp"
|
|
5
5
|
#include "FBS/webRtcTransport.h"
|
|
6
|
+
#include "handles/TimerHandleInterface.hpp"
|
|
6
7
|
#include "RTC/SrtpSession.hpp"
|
|
7
|
-
#include "
|
|
8
|
+
#include "SharedInterface.hpp"
|
|
8
9
|
#include <openssl/bio.h>
|
|
9
10
|
#include <openssl/ssl.h>
|
|
10
11
|
#include <openssl/x509.h>
|
|
@@ -14,7 +15,7 @@
|
|
|
14
15
|
|
|
15
16
|
namespace RTC
|
|
16
17
|
{
|
|
17
|
-
class DtlsTransport : public
|
|
18
|
+
class DtlsTransport : public TimerHandleInterface::Listener
|
|
18
19
|
{
|
|
19
20
|
public:
|
|
20
21
|
enum class DtlsState : uint8_t
|
|
@@ -124,18 +125,18 @@ namespace RTC
|
|
|
124
125
|
static void GenerateFingerprints();
|
|
125
126
|
|
|
126
127
|
private:
|
|
127
|
-
thread_local
|
|
128
|
-
thread_local
|
|
129
|
-
thread_local
|
|
130
|
-
thread_local
|
|
128
|
+
static thread_local X509* certificate;
|
|
129
|
+
static thread_local EVP_PKEY* privateKey;
|
|
130
|
+
static thread_local SSL_CTX* sslCtx;
|
|
131
|
+
static thread_local uint8_t sslReadBuffer[];
|
|
131
132
|
static const absl::flat_hash_map<std::string, Role> String2Role;
|
|
132
133
|
static const absl::flat_hash_map<std::string, FingerprintAlgorithm> String2FingerprintAlgorithm;
|
|
133
134
|
static const absl::flat_hash_map<FingerprintAlgorithm, std::string> FingerprintAlgorithm2String;
|
|
134
|
-
thread_local
|
|
135
|
+
static thread_local std::vector<Fingerprint> localFingerprints;
|
|
135
136
|
static const std::vector<SrtpCryptoSuiteMapEntry> SrtpCryptoSuites;
|
|
136
137
|
|
|
137
138
|
public:
|
|
138
|
-
explicit DtlsTransport(Listener* listener);
|
|
139
|
+
explicit DtlsTransport(Listener* listener, SharedInterface* shared);
|
|
139
140
|
~DtlsTransport() override;
|
|
140
141
|
|
|
141
142
|
public:
|
|
@@ -195,18 +196,19 @@ namespace RTC
|
|
|
195
196
|
public:
|
|
196
197
|
void OnSslInfo(int where, int ret);
|
|
197
198
|
|
|
198
|
-
/* Pure virtual methods inherited from
|
|
199
|
+
/* Pure virtual methods inherited from TimerHandleInterface::Listener. */
|
|
199
200
|
public:
|
|
200
|
-
void OnTimer(
|
|
201
|
+
void OnTimer(TimerHandleInterface* timer) override;
|
|
201
202
|
|
|
202
203
|
private:
|
|
203
204
|
// Passed by argument.
|
|
204
205
|
Listener* listener{ nullptr };
|
|
206
|
+
SharedInterface* shared{ nullptr };
|
|
205
207
|
// Allocated by this.
|
|
206
208
|
SSL* ssl{ nullptr };
|
|
207
209
|
BIO* sslBioFromNetwork{ nullptr }; // The BIO from which ssl reads.
|
|
208
210
|
BIO* sslBioToNetwork{ nullptr }; // The BIO in which ssl writes.
|
|
209
|
-
|
|
211
|
+
TimerHandleInterface* timer{ nullptr };
|
|
210
212
|
// Others.
|
|
211
213
|
DtlsState state{ DtlsState::NEW };
|
|
212
214
|
std::optional<Role> localRole;
|
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
|
|
4
4
|
#include "common.hpp"
|
|
5
5
|
#include "FBS/webRtcTransport.h"
|
|
6
|
+
#include "handles/TimerHandleInterface.hpp"
|
|
6
7
|
#include "RTC/ICE/StunPacket.hpp"
|
|
7
8
|
#include "RTC/TransportTuple.hpp"
|
|
8
|
-
#include "
|
|
9
|
+
#include "SharedInterface.hpp"
|
|
9
10
|
#include <list>
|
|
10
11
|
#include <string>
|
|
11
12
|
#include <unordered_map>
|
|
@@ -14,7 +15,7 @@ namespace RTC
|
|
|
14
15
|
{
|
|
15
16
|
namespace ICE
|
|
16
17
|
{
|
|
17
|
-
class IceServer : public
|
|
18
|
+
class IceServer : public TimerHandleInterface::Listener
|
|
18
19
|
{
|
|
19
20
|
public:
|
|
20
21
|
enum class IceState : uint8_t
|
|
@@ -65,6 +66,7 @@ namespace RTC
|
|
|
65
66
|
public:
|
|
66
67
|
IceServer(
|
|
67
68
|
Listener* listener,
|
|
69
|
+
SharedInterface* shared,
|
|
68
70
|
const std::string& usernameFragment,
|
|
69
71
|
const std::string& password,
|
|
70
72
|
uint8_t consentTimeoutSec);
|
|
@@ -129,13 +131,14 @@ namespace RTC
|
|
|
129
131
|
void RestartConsentCheck();
|
|
130
132
|
void StopConsentCheck();
|
|
131
133
|
|
|
132
|
-
/* Pure virtual methods inherited from
|
|
134
|
+
/* Pure virtual methods inherited from TimerHandleInterface::Listener. */
|
|
133
135
|
public:
|
|
134
|
-
void OnTimer(
|
|
136
|
+
void OnTimer(TimerHandleInterface* timer) override;
|
|
135
137
|
|
|
136
138
|
private:
|
|
137
139
|
// Passed by argument.
|
|
138
140
|
Listener* listener{ nullptr };
|
|
141
|
+
SharedInterface* shared{ nullptr };
|
|
139
142
|
std::string usernameFragment;
|
|
140
143
|
std::string password;
|
|
141
144
|
uint16_t consentTimeoutMs{ 30000u };
|
|
@@ -146,7 +149,7 @@ namespace RTC
|
|
|
146
149
|
uint32_t remoteNomination{ 0u };
|
|
147
150
|
std::list<RTC::TransportTuple> tuples;
|
|
148
151
|
RTC::TransportTuple* selectedTuple{ nullptr };
|
|
149
|
-
|
|
152
|
+
TimerHandleInterface* consentCheckTimer{ nullptr };
|
|
150
153
|
bool isRemovingTuples{ false };
|
|
151
154
|
};
|
|
152
155
|
} // namespace ICE
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
#ifndef MS_KEY_FRAME_REQUEST_MANAGER_HPP
|
|
2
2
|
#define MS_KEY_FRAME_REQUEST_MANAGER_HPP
|
|
3
3
|
|
|
4
|
-
#include "handles/
|
|
4
|
+
#include "handles/TimerHandleInterface.hpp"
|
|
5
|
+
#include "SharedInterface.hpp"
|
|
5
6
|
#include <absl/container/flat_hash_map.h>
|
|
6
7
|
|
|
7
8
|
namespace RTC
|
|
8
9
|
{
|
|
9
|
-
class PendingKeyFrameInfo : public
|
|
10
|
+
class PendingKeyFrameInfo : public TimerHandleInterface::Listener
|
|
10
11
|
{
|
|
11
12
|
public:
|
|
12
13
|
class Listener
|
|
@@ -19,7 +20,7 @@ namespace RTC
|
|
|
19
20
|
};
|
|
20
21
|
|
|
21
22
|
public:
|
|
22
|
-
PendingKeyFrameInfo(Listener* listener, uint32_t ssrc);
|
|
23
|
+
PendingKeyFrameInfo(Listener* listener, SharedInterface* shared, uint32_t ssrc);
|
|
23
24
|
~PendingKeyFrameInfo() override;
|
|
24
25
|
|
|
25
26
|
uint32_t GetSsrc() const
|
|
@@ -39,18 +40,18 @@ namespace RTC
|
|
|
39
40
|
this->timer->Restart();
|
|
40
41
|
}
|
|
41
42
|
|
|
42
|
-
/* Pure virtual methods inherited from
|
|
43
|
+
/* Pure virtual methods inherited from TimerHandleInterface::Listener. */
|
|
43
44
|
public:
|
|
44
|
-
void OnTimer(
|
|
45
|
+
void OnTimer(TimerHandleInterface* timer) override;
|
|
45
46
|
|
|
46
47
|
private:
|
|
47
48
|
Listener* listener{ nullptr };
|
|
48
49
|
uint32_t ssrc;
|
|
49
|
-
|
|
50
|
+
TimerHandleInterface* timer{ nullptr };
|
|
50
51
|
bool retryOnTimeout{ true };
|
|
51
52
|
};
|
|
52
53
|
|
|
53
|
-
class KeyFrameRequestDelayer : public
|
|
54
|
+
class KeyFrameRequestDelayer : public TimerHandleInterface::Listener
|
|
54
55
|
{
|
|
55
56
|
public:
|
|
56
57
|
class Listener
|
|
@@ -63,7 +64,7 @@ namespace RTC
|
|
|
63
64
|
};
|
|
64
65
|
|
|
65
66
|
public:
|
|
66
|
-
KeyFrameRequestDelayer(Listener* listener, uint32_t ssrc, uint32_t delay);
|
|
67
|
+
KeyFrameRequestDelayer(Listener* listener, SharedInterface* shared, uint32_t ssrc, uint32_t delay);
|
|
67
68
|
~KeyFrameRequestDelayer() override;
|
|
68
69
|
|
|
69
70
|
uint32_t GetSsrc() const
|
|
@@ -79,14 +80,14 @@ namespace RTC
|
|
|
79
80
|
this->keyFrameRequested = flag;
|
|
80
81
|
}
|
|
81
82
|
|
|
82
|
-
/* Pure virtual methods inherited from
|
|
83
|
+
/* Pure virtual methods inherited from TimerHandleInterface::Listener. */
|
|
83
84
|
public:
|
|
84
|
-
void OnTimer(
|
|
85
|
+
void OnTimer(TimerHandleInterface* timer) override;
|
|
85
86
|
|
|
86
87
|
private:
|
|
87
88
|
Listener* listener{ nullptr };
|
|
88
89
|
uint32_t ssrc;
|
|
89
|
-
|
|
90
|
+
TimerHandleInterface* timer{ nullptr };
|
|
90
91
|
bool keyFrameRequested{ false };
|
|
91
92
|
};
|
|
92
93
|
|
|
@@ -104,7 +105,8 @@ namespace RTC
|
|
|
104
105
|
};
|
|
105
106
|
|
|
106
107
|
public:
|
|
107
|
-
explicit KeyFrameRequestManager(
|
|
108
|
+
explicit KeyFrameRequestManager(
|
|
109
|
+
Listener* listener, SharedInterface* shared, uint32_t keyFrameRequestDelay);
|
|
108
110
|
~KeyFrameRequestManager() override;
|
|
109
111
|
|
|
110
112
|
void KeyFrameNeeded(uint32_t ssrc);
|
|
@@ -121,6 +123,7 @@ namespace RTC
|
|
|
121
123
|
|
|
122
124
|
private:
|
|
123
125
|
Listener* listener{ nullptr };
|
|
126
|
+
SharedInterface* shared{ nullptr };
|
|
124
127
|
uint32_t keyFrameRequestDelay{ 0u }; // 0 means disabled.
|
|
125
128
|
absl::flat_hash_map<uint32_t, PendingKeyFrameInfo*> mapSsrcPendingKeyFrameInfo;
|
|
126
129
|
absl::flat_hash_map<uint32_t, KeyFrameRequestDelayer*> mapSsrcKeyFrameRequestDelayer;
|
|
@@ -2,16 +2,17 @@
|
|
|
2
2
|
#define MS_RTC_NACK_GENERATOR_HPP
|
|
3
3
|
|
|
4
4
|
#include "common.hpp"
|
|
5
|
+
#include "handles/TimerHandleInterface.hpp"
|
|
5
6
|
#include "RTC/RTP/Packet.hpp"
|
|
6
7
|
#include "RTC/SeqManager.hpp"
|
|
7
|
-
#include "
|
|
8
|
+
#include "SharedInterface.hpp"
|
|
8
9
|
#include <map>
|
|
9
10
|
#include <set>
|
|
10
11
|
#include <vector>
|
|
11
12
|
|
|
12
13
|
namespace RTC
|
|
13
14
|
{
|
|
14
|
-
class NackGenerator : public
|
|
15
|
+
class NackGenerator : public TimerHandleInterface::Listener
|
|
15
16
|
{
|
|
16
17
|
public:
|
|
17
18
|
class Listener
|
|
@@ -47,7 +48,7 @@ namespace RTC
|
|
|
47
48
|
};
|
|
48
49
|
|
|
49
50
|
public:
|
|
50
|
-
explicit NackGenerator(Listener* listener, unsigned int sendNackDelayMs);
|
|
51
|
+
explicit NackGenerator(Listener* listener, SharedInterface* shared, unsigned int sendNackDelayMs);
|
|
51
52
|
~NackGenerator() override;
|
|
52
53
|
|
|
53
54
|
bool ReceivePacket(const RTC::RTP::Packet* packet, bool isRecovered);
|
|
@@ -67,16 +68,17 @@ namespace RTC
|
|
|
67
68
|
std::vector<uint16_t> GetNackBatch(NackFilter filter);
|
|
68
69
|
void MayRunTimer() const;
|
|
69
70
|
|
|
70
|
-
/* Pure virtual methods inherited from
|
|
71
|
+
/* Pure virtual methods inherited from TimerHandleInterface::Listener. */
|
|
71
72
|
public:
|
|
72
|
-
void OnTimer(
|
|
73
|
+
void OnTimer(TimerHandleInterface* timer) override;
|
|
73
74
|
|
|
74
75
|
private:
|
|
75
76
|
// Passed by argument.
|
|
76
77
|
Listener* listener{ nullptr };
|
|
78
|
+
SharedInterface* shared{ nullptr };
|
|
77
79
|
unsigned int sendNackDelayMs{ 0u };
|
|
78
80
|
// Allocated by this.
|
|
79
|
-
|
|
81
|
+
TimerHandleInterface* timer{ nullptr };
|
|
80
82
|
// Others.
|
|
81
83
|
std::map<uint16_t, NackInfo, RTC::SeqManager<uint16_t>::SeqLowerThan> nackList;
|
|
82
84
|
std::set<uint16_t, RTC::SeqManager<uint16_t>::SeqLowerThan> keyFrameList;
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
|
|
4
4
|
#include "RTC/Consumer.hpp"
|
|
5
5
|
#include "RTC/SeqManager.hpp"
|
|
6
|
-
#include "RTC/Shared.hpp"
|
|
7
6
|
#include <map>
|
|
8
7
|
|
|
9
8
|
namespace RTC
|
|
@@ -19,7 +18,7 @@ namespace RTC
|
|
|
19
18
|
|
|
20
19
|
public:
|
|
21
20
|
PipeConsumer(
|
|
22
|
-
|
|
21
|
+
SharedInterface* shared,
|
|
23
22
|
const std::string& id,
|
|
24
23
|
const std::string& producerId,
|
|
25
24
|
RTC::Consumer::Listener* listener,
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
#define MS_RTC_PIPE_TRANSPORT_HPP
|
|
3
3
|
|
|
4
4
|
#include "FBS/pipeTransport.h"
|
|
5
|
-
#include "RTC/Shared.hpp"
|
|
6
5
|
#include "RTC/SrtpSession.hpp"
|
|
7
6
|
#include "RTC/Transport.hpp"
|
|
8
7
|
#include "RTC/TransportTuple.hpp"
|
|
9
8
|
#include "RTC/UdpSocket.hpp"
|
|
9
|
+
#include "SharedInterface.hpp"
|
|
10
10
|
|
|
11
11
|
namespace RTC
|
|
12
12
|
{
|
|
@@ -19,7 +19,7 @@ namespace RTC
|
|
|
19
19
|
|
|
20
20
|
public:
|
|
21
21
|
PipeTransport(
|
|
22
|
-
|
|
22
|
+
SharedInterface* shared,
|
|
23
23
|
const std::string& id,
|
|
24
24
|
RTC::Transport::Listener* listener,
|
|
25
25
|
const FBS::PipeTransport::PipeTransportOptions* options);
|
|
@@ -50,11 +50,9 @@ namespace RTC
|
|
|
50
50
|
void SendRtcpCompoundPacket(RTC::RTCP::CompoundPacket* packet) override;
|
|
51
51
|
void SendMessage(
|
|
52
52
|
RTC::DataConsumer* dataConsumer,
|
|
53
|
-
|
|
54
|
-
size_t len,
|
|
55
|
-
uint32_t ppid,
|
|
53
|
+
RTC::SCTP::Message message,
|
|
56
54
|
onQueuedCallback* cb = nullptr) override;
|
|
57
|
-
bool
|
|
55
|
+
bool SendData(const uint8_t* data, size_t len) override;
|
|
58
56
|
void RecvStreamClosed(uint32_t ssrc) override;
|
|
59
57
|
void SendStreamClosed(uint32_t ssrc) override;
|
|
60
58
|
void OnPacketReceived(RTC::TransportTuple* tuple, const uint8_t* data, size_t len, size_t bufferLen);
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
#define MS_RTC_PLAIN_TRANSPORT_HPP
|
|
3
3
|
|
|
4
4
|
#include "FBS/plainTransport.h"
|
|
5
|
-
#include "RTC/Shared.hpp"
|
|
6
5
|
#include "RTC/SrtpSession.hpp"
|
|
7
6
|
#include "RTC/Transport.hpp"
|
|
8
7
|
#include "RTC/TransportTuple.hpp"
|
|
9
8
|
#include "RTC/UdpSocket.hpp"
|
|
9
|
+
#include "SharedInterface.hpp"
|
|
10
10
|
#include <absl/container/flat_hash_map.h>
|
|
11
11
|
|
|
12
12
|
namespace RTC
|
|
@@ -15,7 +15,7 @@ namespace RTC
|
|
|
15
15
|
{
|
|
16
16
|
public:
|
|
17
17
|
PlainTransport(
|
|
18
|
-
|
|
18
|
+
SharedInterface* shared,
|
|
19
19
|
const std::string& id,
|
|
20
20
|
RTC::Transport::Listener* listener,
|
|
21
21
|
const FBS::PlainTransport::PlainTransportOptions* options);
|
|
@@ -44,11 +44,9 @@ namespace RTC
|
|
|
44
44
|
void SendRtcpCompoundPacket(RTC::RTCP::CompoundPacket* packet) override;
|
|
45
45
|
void SendMessage(
|
|
46
46
|
RTC::DataConsumer* dataConsumer,
|
|
47
|
-
|
|
48
|
-
size_t len,
|
|
49
|
-
uint32_t ppid,
|
|
47
|
+
RTC::SCTP::Message message,
|
|
50
48
|
onQueuedCallback* cb = nullptr) override;
|
|
51
|
-
bool
|
|
49
|
+
bool SendData(const uint8_t* data, size_t len) override;
|
|
52
50
|
void RecvStreamClosed(uint32_t ssrc) override;
|
|
53
51
|
void SendStreamClosed(uint32_t ssrc) override;
|
|
54
52
|
void OnPacketReceived(RTC::TransportTuple* tuple, const uint8_t* data, size_t len, size_t bufferLen);
|
|
@@ -78,7 +78,7 @@ namespace RTC
|
|
|
78
78
|
static uint8_t ConvertSocketFlags(RTC::Transport::SocketFlags& flags, Protocol protocol, int family);
|
|
79
79
|
|
|
80
80
|
private:
|
|
81
|
-
thread_local
|
|
81
|
+
static thread_local absl::flat_hash_map<uint64_t, PortRange> mapPortRanges;
|
|
82
82
|
};
|
|
83
83
|
} // namespace RTC
|
|
84
84
|
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
#include "RTC/RTP/Packet.hpp"
|
|
14
14
|
#include "RTC/RTP/RtpStreamRecv.hpp"
|
|
15
15
|
#include "RTC/RtpDictionaries.hpp"
|
|
16
|
-
#include "
|
|
16
|
+
#include "SharedInterface.hpp"
|
|
17
17
|
#include <string>
|
|
18
18
|
#include <vector>
|
|
19
19
|
|
|
@@ -94,7 +94,7 @@ namespace RTC
|
|
|
94
94
|
|
|
95
95
|
public:
|
|
96
96
|
Producer(
|
|
97
|
-
|
|
97
|
+
SharedInterface* shared,
|
|
98
98
|
const std::string& id,
|
|
99
99
|
RTC::Producer::Listener* listener,
|
|
100
100
|
const FBS::Transport::ProduceRequest* data);
|
|
@@ -179,7 +179,7 @@ namespace RTC
|
|
|
179
179
|
|
|
180
180
|
private:
|
|
181
181
|
// Passed by argument.
|
|
182
|
-
|
|
182
|
+
SharedInterface* shared{ nullptr };
|
|
183
183
|
RTC::Producer::Listener* listener{ nullptr };
|
|
184
184
|
// Allocated by this.
|
|
185
185
|
absl::flat_hash_map<uint32_t, RTC::RTP::RtpStreamRecv*> mapSsrcRtpStream;
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
#define MS_RTC_RTP_PACKET_HPP
|
|
3
3
|
|
|
4
4
|
#include "common.hpp"
|
|
5
|
-
#include "Utils.hpp"
|
|
6
5
|
#include "FBS/rtpPacket.h"
|
|
7
6
|
#include "RTC/RTP/Codecs/DependencyDescriptor.hpp"
|
|
8
7
|
#include "RTC/RTP/Codecs/PayloadDescriptorHandler.hpp"
|
|
9
8
|
#include "RTC/RTP/HeaderExtensionIds.hpp"
|
|
10
9
|
#include "RTC/RtpDictionaries.hpp"
|
|
11
10
|
#include "RTC/Serializable.hpp"
|
|
11
|
+
#include "Utils.hpp"
|
|
12
12
|
#ifdef MS_RTC_LOGGER_RTP
|
|
13
13
|
#include "RTC/RtcLogger.hpp"
|
|
14
14
|
#endif
|
|
@@ -229,7 +229,7 @@ namespace RTC
|
|
|
229
229
|
static uint32_t GetNextMediasoupPacketId();
|
|
230
230
|
|
|
231
231
|
private:
|
|
232
|
-
thread_local
|
|
232
|
+
static thread_local uint32_t nextMediasoupPacketId;
|
|
233
233
|
|
|
234
234
|
private:
|
|
235
235
|
/**
|