mediasoup 3.19.22 → 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 +1 -1
- package/node/lib/Worker.d.ts.map +1 -1
- package/node/lib/Worker.js +63 -31
- 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 +11 -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 +5 -1
- 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 +6 -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/ChannelRequest.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 +6 -4
- package/worker/include/RTC/AudioLevelObserver.hpp +2 -2
- package/worker/include/RTC/Consumer.hpp +1 -1
- package/worker/include/RTC/DataConsumer.hpp +11 -15
- package/worker/include/RTC/DataProducer.hpp +4 -7
- package/worker/include/RTC/DirectTransport.hpp +3 -5
- package/worker/include/RTC/DtlsTransport.hpp +7 -7
- package/worker/include/RTC/ICE/IceServer.hpp +2 -2
- package/worker/include/RTC/ICE/StunPacket.hpp +1 -1
- package/worker/include/RTC/KeyFrameRequestManager.hpp +1 -1
- package/worker/include/RTC/NackGenerator.hpp +3 -2
- package/worker/include/RTC/PipeTransport.hpp +3 -5
- package/worker/include/RTC/PlainTransport.hpp +3 -5
- package/worker/include/RTC/PortManager.hpp +1 -1
- package/worker/include/RTC/Producer.hpp +1 -1
- 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 +11 -12
- package/worker/include/RTC/RTP/RtpStreamRecv.hpp +3 -2
- 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 +5 -6
- package/worker/include/RTC/RtpObserver.hpp +1 -1
- package/worker/include/RTC/SCTP/association/Association.hpp +46 -15
- package/worker/include/RTC/SCTP/association/AssociationListenerDeferrer.hpp +14 -6
- package/worker/include/RTC/SCTP/association/HeartbeatHandler.hpp +12 -11
- 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 +26 -26
- package/worker/include/RTC/SCTP/association/TransmissionControlBlock.hpp +58 -48
- package/worker/include/RTC/SCTP/association/{TCBContext.hpp → TransmissionControlBlockContextInterface.hpp} +11 -6
- 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 +39 -31
- 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 +29 -21
- 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 +48 -57
- package/worker/include/RTC/SCTP/tx/RetransmissionErrorCounter.hpp +3 -3
- package/worker/include/RTC/SCTP/tx/RetransmissionQueue.hpp +36 -43
- package/worker/include/RTC/SCTP/tx/RetransmissionTimeout.hpp +6 -6
- 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 +3 -3
- package/worker/include/RTC/TcpServer.hpp +2 -2
- package/worker/include/RTC/Transport.hpp +59 -80
- package/worker/include/RTC/TransportCongestionControlClient.hpp +2 -2
- package/worker/include/RTC/TransportCongestionControlServer.hpp +2 -2
- package/worker/include/RTC/TransportTuple.hpp +1 -1
- package/worker/include/RTC/UdpSocket.hpp +1 -1
- package/worker/include/RTC/WebRtcServer.hpp +1 -1
- package/worker/include/RTC/WebRtcTransport.hpp +3 -5
- package/worker/include/Settings.hpp +2 -3
- package/worker/include/Shared.hpp +31 -7
- package/worker/include/SharedInterface.hpp +37 -4
- package/worker/include/Utils/UnwrappedSequenceNumber.hpp +270 -0
- package/worker/include/Utils.hpp +4 -4
- package/worker/include/Worker.hpp +4 -4
- package/worker/include/common.hpp +12 -12
- package/worker/include/handles/BackoffTimerHandle.hpp +8 -9
- package/worker/include/handles/BackoffTimerHandleInterface.hpp +10 -3
- package/worker/include/handles/TimerHandle.hpp +0 -7
- package/worker/meson.build +33 -34
- package/worker/mocks/include/MockShared.hpp +56 -9
- 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/MockShared.cpp +30 -10
- 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 +1 -0
- package/worker/scripts/package-lock.json +6 -7
- package/worker/src/Channel/ChannelSocket.cpp +2 -3
- 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 +7 -7
- package/worker/src/RTC/Consumer.cpp +5 -6
- package/worker/src/RTC/DataConsumer.cpp +54 -64
- package/worker/src/RTC/DataProducer.cpp +13 -8
- package/worker/src/RTC/DirectTransport.cpp +7 -6
- package/worker/src/RTC/ICE/IceServer.cpp +2 -2
- package/worker/src/RTC/ICE/StunPacket.cpp +1 -1
- package/worker/src/RTC/NackGenerator.cpp +3 -3
- package/worker/src/RTC/PipeConsumer.cpp +1 -1
- package/worker/src/RTC/PipeTransport.cpp +6 -19
- package/worker/src/RTC/PlainTransport.cpp +6 -19
- package/worker/src/RTC/Producer.cpp +10 -11
- package/worker/src/RTC/RTCP/FeedbackPsAfb.cpp +1 -1
- 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 +9 -9
- package/worker/src/RTC/RTP/RtpStreamRecv.cpp +11 -10
- package/worker/src/RTC/RTP/RtpStreamSend.cpp +7 -7
- 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 +58 -35
- package/worker/src/RTC/RtpDictionaries/RtpCodecMimeType.cpp +1 -1
- package/worker/src/RTC/SCTP/LICENSE +44 -0
- package/worker/src/RTC/SCTP/association/Association.cpp +348 -322
- package/worker/src/RTC/SCTP/association/AssociationListenerDeferrer.cpp +46 -13
- package/worker/src/RTC/SCTP/association/HeartbeatHandler.cpp +26 -28
- package/worker/src/RTC/SCTP/association/PacketSender.cpp +8 -8
- package/worker/src/RTC/SCTP/association/StreamResetHandler.cpp +71 -56
- package/worker/src/RTC/SCTP/association/TransmissionControlBlock.cpp +176 -66
- 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 +81 -74
- package/worker/src/RTC/SCTP/tx/RetransmissionQueue.cpp +85 -98
- package/worker/src/RTC/SCTP/tx/RetransmissionTimeout.cpp +1 -1
- 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 +3 -4
- package/worker/src/RTC/SimulcastConsumer.cpp +5 -6
- package/worker/src/RTC/SrtpSession.cpp +1 -1
- package/worker/src/RTC/SvcConsumer.cpp +5 -6
- package/worker/src/RTC/TcpConnection.cpp +1 -1
- package/worker/src/RTC/Transport.cpp +475 -551
- package/worker/src/RTC/TransportCongestionControlClient.cpp +5 -6
- package/worker/src/RTC/TransportCongestionControlServer.cpp +1 -2
- package/worker/src/RTC/WebRtcServer.cpp +1 -1
- package/worker/src/RTC/WebRtcTransport.cpp +5 -13
- package/worker/src/Settings.cpp +9 -28
- package/worker/src/Shared.cpp +3 -3
- package/worker/src/Utils/Crypto.cpp +1 -1
- package/worker/src/Utils/String.cpp +1 -1
- package/worker/src/Worker.cpp +10 -26
- package/worker/src/handles/BackoffTimerHandle.cpp +24 -6
- package/worker/src/handles/UdpSocketHandle.cpp +1 -1
- package/worker/src/lib.cpp +5 -17
- package/worker/subprojects/catch2.wrap +6 -6
- package/worker/test/include/RTC/ICE/iceCommon.hpp +7 -7
- package/worker/test/include/RTC/RTP/rtpCommon.hpp +6 -6
- package/worker/test/include/RTC/SCTP/sctpCommon.hpp +10 -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 +6 -6
- package/worker/test/src/RTC/RTP/TestRtpStreamSend.cpp +6 -2
- 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 +475 -423
- 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/TestRoundRobinSendQueue.cpp +1130 -0
- package/worker/test/src/RTC/SCTP/tx/TestStreamScheduler.cpp +721 -0
- package/worker/test/src/RTC/TestKeyFrameRequestManager.cpp +9 -27
- package/worker/test/src/RTC/TestNackGenerator.cpp +7 -8
- package/worker/test/src/RTC/TestRateCalculator.cpp +6 -7
- package/worker/test/src/RTC/TestSimpleConsumer.cpp +7 -3
- package/worker/test/src/RTC/TestTransportCongestionControlServer.cpp +8 -3
- 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/DepUsrSCTP.hpp +0 -49
- package/worker/include/RTC/SCTP/TODO_SCTP.md +0 -55
- package/worker/include/RTC/SCTP/common/UnwrappedSequenceNumber.hpp +0 -274
- package/worker/include/RTC/SctpAssociation.hpp +0 -147
- package/worker/src/DepUsrSCTP.cpp +0 -283
- package/worker/src/RTC/SctpAssociation.cpp +0 -1175
- package/worker/subprojects/usrsctp.wrap +0 -8
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
#ifndef MS_RTC_SCTP_SEND_QUEUE_INTERFACE_HPP
|
|
2
|
+
#define MS_RTC_SCTP_SEND_QUEUE_INTERFACE_HPP
|
|
3
|
+
|
|
4
|
+
#include "common.hpp"
|
|
5
|
+
#include "RTC/SCTP/packet/UserData.hpp"
|
|
6
|
+
#include "RTC/SCTP/public/SctpTypes.hpp"
|
|
7
|
+
#include <vector>
|
|
8
|
+
|
|
9
|
+
namespace RTC
|
|
10
|
+
{
|
|
11
|
+
namespace SCTP
|
|
12
|
+
{
|
|
13
|
+
class SendQueueInterface
|
|
14
|
+
{
|
|
15
|
+
public:
|
|
16
|
+
/**
|
|
17
|
+
* Container for a data chunk that is produced by the send queue.
|
|
18
|
+
*/
|
|
19
|
+
struct DataToSend
|
|
20
|
+
{
|
|
21
|
+
DataToSend(uint32_t outgoingMessageId, UserData data)
|
|
22
|
+
: outgoingMessageId(outgoingMessageId), data(std::move(data))
|
|
23
|
+
{
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
uint32_t outgoingMessageId;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* The data to send, including all parameters.
|
|
30
|
+
*/
|
|
31
|
+
UserData data;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Partial reliability (RFC 3758).
|
|
35
|
+
*/
|
|
36
|
+
uint16_t maxRetransmissions{ Types::MaxRetransmitsNoLimit };
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Time when it expires.
|
|
40
|
+
*/
|
|
41
|
+
uint64_t expiresAtMs{ Types::ExpiresAtMsInfinite };
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Lifecycle. Set for the last fragment and `std::nullopt` for all
|
|
45
|
+
* other fragments.
|
|
46
|
+
*/
|
|
47
|
+
std::optional<uint64_t> lifecycleId;
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
public:
|
|
51
|
+
virtual ~SendQueueInterface() = default;
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Configures the send queue to support interleaved message sending as
|
|
55
|
+
* described in RFC 8260. Every send queue starts with this value set as
|
|
56
|
+
* disabled, but can later change it when the capabilities of the
|
|
57
|
+
* connection have been negotiated. This affects the behavior of the
|
|
58
|
+
* `Produce()` method.
|
|
59
|
+
*/
|
|
60
|
+
virtual void EnableMessageInterleaving(bool enabled) = 0;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Produce a chunk to be sent. `maxLength` refers to how many payload bytes
|
|
64
|
+
* that may be produced, not including any headers.
|
|
65
|
+
*
|
|
66
|
+
* @todo
|
|
67
|
+
* - As in dcsctp, this interface is obviously missing an "AddMessage()"
|
|
68
|
+
* method, but that is postponed a bit until the story around how to
|
|
69
|
+
* model message prioritization, which is important for any advanced
|
|
70
|
+
* stream scheduler, is further clarified.
|
|
71
|
+
*/
|
|
72
|
+
virtual std::optional<DataToSend> Produce(uint64_t nowMs, size_t maxLength) = 0;
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Discards a partially sent message identified by the parameters `streamId`
|
|
76
|
+
* and `outgoingMessageId`. The `outgoingMessageId` comes from the returned
|
|
77
|
+
* information when having called `Produce()`. A partially sent message
|
|
78
|
+
* means that it has had at least one fragment of it returned when
|
|
79
|
+
* `Produce()` was called prior to calling this method.
|
|
80
|
+
*
|
|
81
|
+
* This is used when a message has been found to be expired (by the partial
|
|
82
|
+
* reliability extension), and the retransmission queue will signal the
|
|
83
|
+
* receiver that any partially received message fragments should be
|
|
84
|
+
* skipped. This means that any remaining fragments in the send queue must
|
|
85
|
+
* be removed as well so that they are not sent.
|
|
86
|
+
*
|
|
87
|
+
* This method returns true if this message had unsent fragments still in
|
|
88
|
+
* the queue that were discarded, and false if there were no such
|
|
89
|
+
* fragments.
|
|
90
|
+
*/
|
|
91
|
+
virtual bool Discard(uint16_t streamId, uint32_t outgoingMessageId) = 0;
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Prepares the stream to be reset. This is used to close a SCTP stream
|
|
95
|
+
* and will be signaled to the other side.
|
|
96
|
+
*
|
|
97
|
+
* Concretely, it discards all whole (not partly sent) messages in the
|
|
98
|
+
* given stream and pauses that stream so that future added messages are
|
|
99
|
+
* not produced until resumed.
|
|
100
|
+
*
|
|
101
|
+
* This method can be called multiple times to add more streams to be
|
|
102
|
+
* reset, and paused while they are resetting. This is the first part of
|
|
103
|
+
* the two-phase commit protocol to reset streams, where the caller
|
|
104
|
+
* completes the procedure by either calling `CommitResetStreams()` or
|
|
105
|
+
* `RollbackResetStreams()`.
|
|
106
|
+
*
|
|
107
|
+
* @todo
|
|
108
|
+
* - As in dcsctp, investigate if it really should discard any message at
|
|
109
|
+
* all. RFC 8831 only mentions that "RFC 6525 also guarantees that all
|
|
110
|
+
* the messages are delivered (or abandoned) before the stream is reset".
|
|
111
|
+
*/
|
|
112
|
+
virtual void PrepareResetStream(uint16_t streamId) = 0;
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Indicates if there are any streams that are ready to be reset.
|
|
116
|
+
*/
|
|
117
|
+
virtual bool HasStreamsReadyToBeReset() const = 0;
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Returns a list of streams that are ready to be included in an outgoing
|
|
121
|
+
* stream reset request. Any streams that are returned here must be
|
|
122
|
+
* included in an outgoing stream reset request, and there must not be
|
|
123
|
+
* concurrent requests.
|
|
124
|
+
*/
|
|
125
|
+
virtual std::vector<uint16_t> GetStreamsReadyToBeReset() = 0;
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Called to commit to reset the streams returned by
|
|
129
|
+
* `GetStreamsReadyToBeReset()`. It will reset the stream sequence numbers
|
|
130
|
+
* (SSNs) and message identifiers (MIDs) and resume the paused streams.
|
|
131
|
+
*/
|
|
132
|
+
virtual void CommitResetStreams() = 0;
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Called to abort the resetting of streams returned by
|
|
136
|
+
* `GetStreamsReadyToBeReset()`. Will resume the paused streams without
|
|
137
|
+
* resetting the stream sequence numbers (SSNs) or message identifiers
|
|
138
|
+
* (MIDs). Note that the non-partial messages that were discarded when
|
|
139
|
+
* calling `PrepareResetStreams()` will not be recovered, to better match
|
|
140
|
+
* the intention from the sender to "close the channel".
|
|
141
|
+
*/
|
|
142
|
+
virtual void RollbackResetStreams() = 0;
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Resets all message identifier counters (MID, SSN) and makes all
|
|
146
|
+
* partially messages be ready to be re-sent in full. This is used when
|
|
147
|
+
* the peer has been detected to have restarted and is used to try to
|
|
148
|
+
* minimize the amount of data loss. However, data loss cannot be
|
|
149
|
+
* completely guaranteed when a peer restarts.
|
|
150
|
+
*/
|
|
151
|
+
virtual void Reset() = 0;
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Returns the amount of buffered data. This doesn't include packets that
|
|
155
|
+
* are e.g. inflight.
|
|
156
|
+
*/
|
|
157
|
+
virtual size_t GetStreamBufferedAmount(uint16_t streamId) const = 0;
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Returns the total amount of buffer data, for all streams.
|
|
161
|
+
*/
|
|
162
|
+
virtual size_t GetTotalBufferedAmount() const = 0;
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* Returns the limit for the `OnAssociationStreamBufferedAmountLow()`
|
|
166
|
+
* event. Default value is 0.
|
|
167
|
+
*/
|
|
168
|
+
virtual size_t GetStreamBufferedAmountLowThreshold(uint16_t streamId) const = 0;
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* Sets a limit for the `OnAssociationStreamBufferedAmountLow()` event.
|
|
172
|
+
* @param streamId [description]
|
|
173
|
+
* @param bytes [description]
|
|
174
|
+
*/
|
|
175
|
+
virtual void SetStreamBufferedAmountLowThreshold(uint16_t streamId, size_t bytes) = 0;
|
|
176
|
+
};
|
|
177
|
+
} // namespace SCTP
|
|
178
|
+
} // namespace RTC
|
|
179
|
+
|
|
180
|
+
#endif
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
#ifndef MS_RTC_SCTP_STREAM_SCHEDULER_HPP
|
|
2
|
+
#define MS_RTC_SCTP_STREAM_SCHEDULER_HPP
|
|
3
|
+
|
|
4
|
+
#include "common.hpp"
|
|
5
|
+
#include "RTC/SCTP/packet/Packet.hpp"
|
|
6
|
+
#include "RTC/SCTP/packet/chunks/IDataChunk.hpp"
|
|
7
|
+
#include "RTC/SCTP/tx/SendQueueInterface.hpp"
|
|
8
|
+
#include <set>
|
|
9
|
+
|
|
10
|
+
namespace RTC
|
|
11
|
+
{
|
|
12
|
+
namespace SCTP
|
|
13
|
+
{
|
|
14
|
+
/**
|
|
15
|
+
* A parameterized stream scheduler. Currently, it implements the round robin
|
|
16
|
+
* scheduling algorithm using virtual finish time. It is to be used as a
|
|
17
|
+
* part of a send queue and will track all active streams (streams that have
|
|
18
|
+
* any data that can be sent).
|
|
19
|
+
*
|
|
20
|
+
* The stream scheduler works with the concept of associating active streams
|
|
21
|
+
* with a "virtual finish time", which is the time when a stream is allowed
|
|
22
|
+
* to produce data. Streams are ordered by their virtual finish time, and
|
|
23
|
+
* the "current virtual time" will advance to the next following virtual
|
|
24
|
+
* finish time whenever a chunk is to be produced.
|
|
25
|
+
*
|
|
26
|
+
* In the round robin scheduling algorithm, a stream's virtual finish time
|
|
27
|
+
* will just increment by one (1) after having produced a chunk, which
|
|
28
|
+
* results in a round-robin scheduling.
|
|
29
|
+
*
|
|
30
|
+
* In WFQ scheduling algorithm, a stream's virtual finish time will be
|
|
31
|
+
* defined as the number of bytes in the next fragment to be sent, multiplied
|
|
32
|
+
* by theinverse of the stream's priority, meaning that a high priority - or
|
|
33
|
+
* a smaller fragment - results in a closer virtual finish time, compared to
|
|
34
|
+
* a stream with either a lower priority or a larger fragment to be sent.
|
|
35
|
+
*
|
|
36
|
+
* @remarks
|
|
37
|
+
* - When message interleaving is enabled, the WFQ (Weighted Fair Queueing)
|
|
38
|
+
* scheduling algorithm will be used. And when it's not, round-robin
|
|
39
|
+
* scheduling will be used instead.
|
|
40
|
+
*/
|
|
41
|
+
class StreamScheduler
|
|
42
|
+
{
|
|
43
|
+
public:
|
|
44
|
+
class StreamProducer
|
|
45
|
+
{
|
|
46
|
+
public:
|
|
47
|
+
virtual ~StreamProducer() = default;
|
|
48
|
+
|
|
49
|
+
public:
|
|
50
|
+
/**
|
|
51
|
+
* Produces a fragment of data to send. The current wall time is specified
|
|
52
|
+
* as `nowMs` and should be used to skip chunks with expired limited
|
|
53
|
+
* lifetime. The parameter `maxLength` specifies the maximum amount of
|
|
54
|
+
* actual payload that may be returned. If these constraints prevents the
|
|
55
|
+
* stream from sending some data, `std::nullopt` should be returned.
|
|
56
|
+
*/
|
|
57
|
+
virtual std::optional<SendQueueInterface::DataToSend> Produce(
|
|
58
|
+
uint64_t nowMs, size_t maxLength) = 0;
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Returns the number of payload bytes that is scheduled to be sent in the
|
|
62
|
+
* next enqueued message, or zero if there are no enqueued messages or if
|
|
63
|
+
* the stream has been actively paused.
|
|
64
|
+
*/
|
|
65
|
+
virtual size_t GetBytesToSendInNextMessage() const = 0;
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
public:
|
|
69
|
+
class Stream
|
|
70
|
+
{
|
|
71
|
+
private:
|
|
72
|
+
friend class StreamScheduler;
|
|
73
|
+
|
|
74
|
+
private:
|
|
75
|
+
Stream(StreamScheduler* parent, StreamProducer* producer, uint16_t streamId, uint16_t priority)
|
|
76
|
+
: parent(*parent),
|
|
77
|
+
producer(*producer),
|
|
78
|
+
streamId(streamId),
|
|
79
|
+
priority(priority),
|
|
80
|
+
inverseWeight(1.0 / std::max(static_cast<double>(priority), 1e-6))
|
|
81
|
+
{
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
public:
|
|
85
|
+
uint16_t GetStreamId() const
|
|
86
|
+
{
|
|
87
|
+
return this->streamId;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
uint16_t GetPriority() const
|
|
91
|
+
{
|
|
92
|
+
return this->priority;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
void SetPriority(uint16_t priority);
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Will activate the stream if it has any data to send. That is, if the
|
|
99
|
+
* callback to `GetBytesToSendInNextMessage()` returns non-zero. If the
|
|
100
|
+
* callback returns zero, the stream will not be made active.
|
|
101
|
+
*/
|
|
102
|
+
void MayMakeActive();
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Will remove the stream from the list of active streams, and will not
|
|
106
|
+
* try to produce data from it. To make it active again, call
|
|
107
|
+
* `MayMakeActive()`.
|
|
108
|
+
*/
|
|
109
|
+
void MakeInactive();
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Make the scheduler move to another message, or another stream. This
|
|
113
|
+
* is used to abort the scheduler from continuing producing fragments
|
|
114
|
+
* for the current message in case it's deleted.
|
|
115
|
+
*/
|
|
116
|
+
void ForceReschedule()
|
|
117
|
+
{
|
|
118
|
+
this->parent.ForceReschedule();
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
private:
|
|
122
|
+
/**
|
|
123
|
+
* Produces a message from this stream. This will only be called on
|
|
124
|
+
* streams that have data.
|
|
125
|
+
*/
|
|
126
|
+
std::optional<SendQueueInterface::DataToSend> Produce(uint64_t nowMs, size_t maxLength);
|
|
127
|
+
|
|
128
|
+
void MakeActive(size_t bytesToSendNext);
|
|
129
|
+
|
|
130
|
+
void ForceMarkInactive();
|
|
131
|
+
|
|
132
|
+
double GetCurrentTime() const
|
|
133
|
+
{
|
|
134
|
+
return this->currentVirtualTime;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
double GetNextFinishTime() const
|
|
138
|
+
{
|
|
139
|
+
return this->nextFinishTime;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
size_t GetBytesToSendInNextMessage() const
|
|
143
|
+
{
|
|
144
|
+
return this->producer.GetBytesToSendInNextMessage();
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
double CalculateFinishTime(size_t bytesToSendNext) const;
|
|
148
|
+
|
|
149
|
+
private:
|
|
150
|
+
StreamScheduler& parent;
|
|
151
|
+
StreamProducer& producer;
|
|
152
|
+
const uint16_t streamId;
|
|
153
|
+
uint16_t priority;
|
|
154
|
+
double inverseWeight;
|
|
155
|
+
// This outgoing stream's "current" virtual time.
|
|
156
|
+
double currentVirtualTime{ 0.0 };
|
|
157
|
+
double nextFinishTime{ 0.0 };
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
private:
|
|
161
|
+
struct ActiveStreamComparator
|
|
162
|
+
{
|
|
163
|
+
// Ordered by virtual finish time (primary), stream-id (secondary).
|
|
164
|
+
bool operator()(Stream* a, Stream* b) const
|
|
165
|
+
{
|
|
166
|
+
const double aVft = a->GetNextFinishTime();
|
|
167
|
+
const double bVft = b->GetNextFinishTime();
|
|
168
|
+
|
|
169
|
+
if (aVft == bVft)
|
|
170
|
+
{
|
|
171
|
+
return a->GetStreamId() < b->GetStreamId();
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
return aVft < bVft;
|
|
175
|
+
}
|
|
176
|
+
};
|
|
177
|
+
|
|
178
|
+
public:
|
|
179
|
+
explicit StreamScheduler(size_t mtu)
|
|
180
|
+
: maxPayloadBytes(mtu - Packet::CommonHeaderLength - IDataChunk::IDataChunkHeaderLength)
|
|
181
|
+
{
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
public:
|
|
185
|
+
std::unique_ptr<Stream> CreateStream(StreamProducer* producer, uint16_t streamId, uint16_t priority)
|
|
186
|
+
{
|
|
187
|
+
return std::unique_ptr<Stream>(new Stream(this, producer, streamId, priority));
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
void EnableMessageInterleaving(bool enabled)
|
|
191
|
+
{
|
|
192
|
+
this->enableMessageInterleaving = enabled;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Makes the scheduler stop producing message from the current stream and
|
|
197
|
+
* re-evaluates which stream to produce from.
|
|
198
|
+
*/
|
|
199
|
+
void ForceReschedule()
|
|
200
|
+
{
|
|
201
|
+
this->currentlySendingAMessage = false;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* Produces a fragment of data to send. The current wall time is specified
|
|
206
|
+
* as `nowMs` and will be used to skip chunks with expired limited
|
|
207
|
+
* lifetime. The parameter `maxLength` specifies the maximum amount of
|
|
208
|
+
* actual payload that may be returned. If no data can be produced,
|
|
209
|
+
* `std::nullopt` is returned.
|
|
210
|
+
*/
|
|
211
|
+
std::optional<SendQueueInterface::DataToSend> Produce(uint64_t nowMs, size_t maxLength);
|
|
212
|
+
|
|
213
|
+
std::set<uint16_t> GetActiveStreamsForTesting() const;
|
|
214
|
+
|
|
215
|
+
private:
|
|
216
|
+
void AssertIsConsistent() const;
|
|
217
|
+
|
|
218
|
+
private:
|
|
219
|
+
const size_t maxPayloadBytes;
|
|
220
|
+
// The current virtual time, as defined in the WFQ algorithm.
|
|
221
|
+
double virtualTime{ 0.0 };
|
|
222
|
+
// The current stream to send chunks from.
|
|
223
|
+
Stream* currentStream{ nullptr };
|
|
224
|
+
bool enableMessageInterleaving{ false };
|
|
225
|
+
// Indicates if the streams is currently sending a message, and should
|
|
226
|
+
// then (if message interleaving is not enabled) continue sending from
|
|
227
|
+
// this stream until that message has been sent in full.
|
|
228
|
+
bool currentlySendingAMessage{ false };
|
|
229
|
+
// The currently active streams, ordered by virtual finish time.
|
|
230
|
+
std::set<Stream*, ActiveStreamComparator> activeStreams;
|
|
231
|
+
};
|
|
232
|
+
} // namespace SCTP
|
|
233
|
+
} // namespace RTC
|
|
234
|
+
|
|
235
|
+
#endif
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
#include "RTC/RateCalculator.hpp"
|
|
7
7
|
#include "RTC/SeqManager.hpp"
|
|
8
8
|
#include "RTC/TrendCalculator.hpp"
|
|
9
|
+
#include "SharedInterface.hpp"
|
|
9
10
|
#include <map>
|
|
10
11
|
|
|
11
12
|
namespace RTC
|
|
@@ -82,7 +83,9 @@ namespace RTC
|
|
|
82
83
|
|
|
83
84
|
public:
|
|
84
85
|
SenderBandwidthEstimator(
|
|
85
|
-
RTC::SenderBandwidthEstimator::Listener* listener,
|
|
86
|
+
RTC::SenderBandwidthEstimator::Listener* listener,
|
|
87
|
+
SharedInterface* shared,
|
|
88
|
+
uint32_t initialAvailableBitrate);
|
|
86
89
|
virtual ~SenderBandwidthEstimator();
|
|
87
90
|
|
|
88
91
|
public:
|
|
@@ -98,6 +101,7 @@ namespace RTC
|
|
|
98
101
|
private:
|
|
99
102
|
// Passed by argument.
|
|
100
103
|
Listener* listener{ nullptr };
|
|
104
|
+
SharedInterface* shared{ nullptr };
|
|
101
105
|
// Others.
|
|
102
106
|
uint32_t initialAvailableBitrate{ 0u };
|
|
103
107
|
uint32_t availableBitrate{ 0u };
|
|
@@ -213,11 +213,11 @@ namespace RTC
|
|
|
213
213
|
|
|
214
214
|
private:
|
|
215
215
|
// Buffer holding the Serializable content.
|
|
216
|
-
uint8_t* buffer
|
|
216
|
+
uint8_t* buffer;
|
|
217
217
|
// Length of the buffer. This is the maximum length the Serializable can
|
|
218
218
|
// take.
|
|
219
|
-
size_t bufferLength
|
|
220
|
-
// Serializable exact length (includes padding bytes).
|
|
219
|
+
size_t bufferLength;
|
|
220
|
+
// Serializable current exact length (includes padding bytes).
|
|
221
221
|
size_t length{ 0u };
|
|
222
222
|
// Event listener invoked when the current buffer is released (no longer
|
|
223
223
|
// used by this Serializable)-
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
#define MS_RTC_TCP_SERVER_HPP
|
|
3
3
|
|
|
4
4
|
#include "common.hpp"
|
|
5
|
-
#include "RTC/TcpConnection.hpp"
|
|
6
|
-
#include "RTC/Transport.hpp"
|
|
7
5
|
#include "handles/TcpConnectionHandle.hpp"
|
|
8
6
|
#include "handles/TcpServerHandle.hpp"
|
|
7
|
+
#include "RTC/TcpConnection.hpp"
|
|
8
|
+
#include "RTC/Transport.hpp"
|
|
9
9
|
#include <string>
|
|
10
10
|
|
|
11
11
|
namespace RTC
|