mediasoup 3.19.18 → 3.19.19
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/package.json +7 -7
- package/worker/Makefile +9 -1
- package/worker/fuzzer/src/FuzzerUtils.cpp +26 -22
- package/worker/fuzzer/src/RTC/ICE/FuzzerStunPacket.cpp +3 -3
- package/worker/fuzzer/src/RTC/RTCP/FuzzerPacket.cpp +10 -6
- package/worker/fuzzer/src/RTC/SCTP/{FuzzerStateCookie.cpp → association/FuzzerStateCookie.cpp} +13 -13
- package/worker/fuzzer/src/fuzzer.cpp +4 -0
- package/worker/include/RTC/DataConsumer.hpp +7 -1
- package/worker/include/RTC/DirectTransport.hpp +1 -1
- package/worker/include/RTC/DtlsTransport.hpp +2 -1
- package/worker/include/RTC/ICE/IceCandidate.hpp +20 -8
- package/worker/include/RTC/ICE/StunPacket.hpp +6 -1
- package/worker/include/RTC/PipeTransport.hpp +1 -1
- package/worker/include/RTC/PlainTransport.hpp +1 -1
- package/worker/include/RTC/RTCP/Feedback.hpp +6 -1
- package/worker/include/RTC/RTCP/FeedbackPsFir.hpp +4 -0
- package/worker/include/RTC/RTCP/FeedbackPsLei.hpp +4 -0
- package/worker/include/RTC/RTCP/FeedbackPsRpsi.hpp +4 -0
- package/worker/include/RTC/RTCP/FeedbackPsSli.hpp +4 -0
- package/worker/include/RTC/RTCP/FeedbackPsTst.hpp +5 -0
- package/worker/include/RTC/RTCP/FeedbackPsVbcm.hpp +4 -0
- package/worker/include/RTC/RTCP/FeedbackRtpEcn.hpp +4 -0
- package/worker/include/RTC/RTCP/FeedbackRtpNack.hpp +4 -0
- package/worker/include/RTC/RTCP/FeedbackRtpTllei.hpp +4 -0
- package/worker/include/RTC/RTCP/FeedbackRtpTmmb.hpp +4 -0
- package/worker/include/RTC/RTCP/Packet.hpp +6 -1
- package/worker/include/RTC/RTCP/ReceiverReport.hpp +6 -1
- package/worker/include/RTC/RTCP/Sdes.hpp +8 -0
- package/worker/include/RTC/RTCP/SenderReport.hpp +6 -1
- package/worker/include/RTC/RTCP/XR.hpp +9 -4
- package/worker/include/RTC/RTCP/XrDelaySinceLastRr.hpp +4 -0
- package/worker/include/RTC/RTCP/XrReceiverReferenceTime.hpp +4 -0
- package/worker/include/RTC/RTP/Codecs/DependencyDescriptor.hpp +0 -2
- package/worker/include/RTC/RTP/Packet.hpp +31 -0
- package/worker/include/RTC/RateCalculator.hpp +0 -1
- package/worker/include/RTC/SCTP/TODO_SCTP.md +29 -8
- package/worker/include/RTC/SCTP/association/Association.hpp +491 -0
- package/worker/include/RTC/SCTP/association/AssociationDeferredListener.hpp +96 -0
- package/worker/include/RTC/SCTP/{NegotiatedCapabilities.hpp → association/NegotiatedCapabilities.hpp} +15 -11
- package/worker/include/RTC/SCTP/association/PacketSender.hpp +51 -0
- package/worker/include/RTC/SCTP/{StateCookie.hpp → association/StateCookie.hpp} +2 -2
- package/worker/include/RTC/SCTP/association/TransmissionControlBlock.hpp +178 -0
- package/worker/include/RTC/SCTP/packet/Chunk.hpp +74 -35
- package/worker/include/RTC/SCTP/packet/ErrorCause.hpp +4 -1
- package/worker/include/RTC/SCTP/packet/Packet.hpp +53 -6
- package/worker/include/RTC/SCTP/packet/Parameter.hpp +4 -1
- package/worker/include/RTC/SCTP/packet/TLV.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/UserData.hpp +140 -0
- package/worker/include/RTC/SCTP/packet/chunks/AbortAssociationChunk.hpp +5 -0
- package/worker/include/RTC/SCTP/packet/chunks/AnyDataChunk.hpp +85 -0
- package/worker/include/RTC/SCTP/packet/chunks/AnyForwardTsnChunk.hpp +80 -0
- package/worker/include/RTC/SCTP/packet/chunks/AnyInitChunk.hpp +37 -0
- package/worker/include/RTC/SCTP/packet/chunks/CookieAckChunk.hpp +10 -0
- package/worker/include/RTC/SCTP/packet/chunks/CookieEchoChunk.hpp +10 -0
- package/worker/include/RTC/SCTP/packet/chunks/DataChunk.hpp +65 -18
- package/worker/include/RTC/SCTP/packet/chunks/ForwardTsnChunk.hpp +25 -12
- package/worker/include/RTC/SCTP/packet/chunks/HeartbeatAckChunk.hpp +5 -0
- package/worker/include/RTC/SCTP/packet/chunks/HeartbeatRequestChunk.hpp +5 -0
- package/worker/include/RTC/SCTP/packet/chunks/IDataChunk.hpp +58 -19
- package/worker/include/RTC/SCTP/packet/chunks/IForwardTsnChunk.hpp +29 -16
- package/worker/include/RTC/SCTP/packet/chunks/InitAckChunk.hpp +13 -8
- package/worker/include/RTC/SCTP/packet/chunks/InitChunk.hpp +12 -7
- package/worker/include/RTC/SCTP/packet/chunks/OperationErrorChunk.hpp +5 -0
- package/worker/include/RTC/SCTP/packet/chunks/ReConfigChunk.hpp +8 -3
- package/worker/include/RTC/SCTP/packet/chunks/SackChunk.hpp +67 -23
- package/worker/include/RTC/SCTP/packet/chunks/ShutdownAckChunk.hpp +10 -0
- package/worker/include/RTC/SCTP/packet/chunks/ShutdownChunk.hpp +10 -0
- package/worker/include/RTC/SCTP/packet/chunks/ShutdownCompleteChunk.hpp +10 -0
- package/worker/include/RTC/SCTP/packet/chunks/UnknownChunk.hpp +10 -0
- package/worker/include/RTC/SCTP/packet/errorCauses/ProtocolViolationErrorCause.hpp +0 -1
- package/worker/include/RTC/SCTP/packet/errorCauses/UserInitiatedAbortErrorCause.hpp +10 -7
- package/worker/include/RTC/SCTP/packet/parameters/StateCookieParameter.hpp +1 -1
- package/worker/include/RTC/SCTP/public/AssociationInterface.hpp +172 -0
- package/worker/include/RTC/SCTP/{SocketListener.hpp → public/AssociationListener.hpp} +75 -73
- package/worker/include/RTC/SCTP/public/AssociationMetrics.hpp +136 -0
- package/worker/include/RTC/SCTP/{Message.hpp → public/Message.hpp} +11 -3
- package/worker/include/RTC/SCTP/{SocketOptions.hpp → public/SctpOptions.hpp} +21 -21
- package/worker/include/RTC/SCTP/public/SctpTypes.hpp +338 -0
- package/worker/include/RTC/SCTP/tx/RetransmissionErrorCounter.hpp +63 -0
- package/worker/include/RTC/SCTP/tx/RetransmissionTimeout.hpp +66 -0
- package/worker/include/RTC/Serializable.hpp +1 -1
- package/worker/include/RTC/SrtpSession.hpp +0 -1
- package/worker/include/RTC/Transport.hpp +36 -1
- package/worker/include/RTC/TransportTuple.hpp +7 -3
- package/worker/include/RTC/WebRtcServer.hpp +3 -1
- package/worker/include/RTC/WebRtcTransport.hpp +1 -1
- package/worker/include/Utils.hpp +0 -1
- package/worker/include/common.hpp +10 -10
- package/worker/include/handles/BackoffTimerHandle.hpp +21 -24
- package/worker/include/handles/TimerHandle.hpp +1 -0
- package/worker/meson.build +67 -46
- package/worker/meson_options.txt +1 -0
- package/worker/scripts/get-dep.sh +1 -25
- package/worker/src/Channel/ChannelSocket.cpp +5 -2
- package/worker/src/DepLibUring.cpp +3 -3
- package/worker/src/RTC/ActiveSpeakerObserver.cpp +10 -4
- package/worker/src/RTC/Consumer.cpp +6 -2
- package/worker/src/RTC/DataConsumer.cpp +27 -7
- package/worker/src/RTC/DirectTransport.cpp +3 -1
- package/worker/src/RTC/DtlsTransport.cpp +10 -8
- package/worker/src/RTC/ICE/StunPacket.cpp +8 -8
- package/worker/src/RTC/NackGenerator.cpp +3 -1
- package/worker/src/RTC/PipeTransport.cpp +16 -2
- package/worker/src/RTC/PlainTransport.cpp +13 -39
- package/worker/src/RTC/RTCP/FeedbackRtpNack.cpp +1 -0
- package/worker/src/RTC/RTCP/Packet.cpp +1 -1
- package/worker/src/RTC/RTP/Codecs/DependencyDescriptor.cpp +3 -1
- package/worker/src/RTC/RTP/Packet.cpp +2 -4
- package/worker/src/RTC/RTP/ProbationGenerator.cpp +2 -1
- package/worker/src/RTC/RTP/RtpStreamRecv.cpp +2 -1
- package/worker/src/RTC/RTP/RtpStreamSend.cpp +2 -1
- package/worker/src/RTC/RTP/SharedPacket.cpp +8 -3
- package/worker/src/RTC/RateCalculator.cpp +3 -1
- package/worker/src/RTC/SCTP/association/Association.cpp +2758 -0
- package/worker/src/RTC/SCTP/association/AssociationDeferredListener.cpp +266 -0
- package/worker/src/RTC/SCTP/association/NegotiatedCapabilities.cpp +88 -0
- package/worker/src/RTC/SCTP/association/PacketSender.cpp +46 -0
- package/worker/src/RTC/SCTP/{StateCookie.cpp → association/StateCookie.cpp} +10 -10
- package/worker/src/RTC/SCTP/association/TransmissionControlBlock.cpp +245 -0
- package/worker/src/RTC/SCTP/packet/Chunk.cpp +61 -22
- package/worker/src/RTC/SCTP/packet/Packet.cpp +41 -11
- package/worker/src/RTC/SCTP/packet/TLV.cpp +1 -1
- package/worker/src/RTC/SCTP/packet/UserData.cpp +56 -0
- package/worker/src/RTC/SCTP/packet/chunks/DataChunk.cpp +15 -15
- package/worker/src/RTC/SCTP/packet/chunks/ForwardTsnChunk.cpp +25 -7
- package/worker/src/RTC/SCTP/packet/chunks/IDataChunk.cpp +17 -18
- package/worker/src/RTC/SCTP/packet/chunks/IForwardTsnChunk.cpp +26 -8
- package/worker/src/RTC/SCTP/packet/chunks/InitAckChunk.cpp +3 -1
- package/worker/src/RTC/SCTP/packet/chunks/InitChunk.cpp +2 -1
- package/worker/src/RTC/SCTP/packet/chunks/SackChunk.cpp +121 -10
- package/worker/src/RTC/SCTP/packet/errorCauses/InvalidStreamIdentifierErrorCause.cpp +1 -0
- package/worker/src/RTC/SCTP/packet/errorCauses/MissingMandatoryParameterErrorCause.cpp +1 -0
- package/worker/src/RTC/SCTP/packet/errorCauses/NoUserDataErrorCause.cpp +1 -0
- package/worker/src/RTC/SCTP/packet/errorCauses/StaleCookieErrorCause.cpp +1 -0
- package/worker/src/RTC/SCTP/packet/errorCauses/UserInitiatedAbortErrorCause.cpp +19 -13
- package/worker/src/RTC/SCTP/packet/parameters/StateCookieParameter.cpp +2 -2
- package/worker/src/RTC/SCTP/public/AssociationMetrics.cpp +45 -0
- package/worker/src/RTC/SCTP/{Message.cpp → public/Message.cpp} +2 -3
- package/worker/src/RTC/SCTP/tx/RetransmissionErrorCounter.cpp +82 -0
- package/worker/src/RTC/SCTP/tx/RetransmissionTimeout.cpp +97 -0
- package/worker/src/RTC/SctpAssociation.cpp +6 -2
- package/worker/src/RTC/SenderBandwidthEstimator.cpp +5 -2
- package/worker/src/RTC/Serializable.cpp +1 -1
- package/worker/src/RTC/SrtpSession.cpp +2 -2
- package/worker/src/RTC/TcpConnection.cpp +5 -1
- package/worker/src/RTC/TcpServer.cpp +5 -2
- package/worker/src/RTC/Transport.cpp +347 -34
- package/worker/src/RTC/TransportCongestionControlClient.cpp +4 -2
- package/worker/src/RTC/UdpSocket.cpp +2 -1
- package/worker/src/RTC/WebRtcTransport.cpp +9 -44
- package/worker/src/Worker.cpp +6 -0
- package/worker/src/handles/BackoffTimerHandle.cpp +21 -27
- package/worker/src/handles/TimerHandle.cpp +33 -0
- package/worker/src/handles/UdpSocketHandle.cpp +5 -1
- package/worker/src/lib.cpp +6 -0
- package/worker/subprojects/catch2.wrap +6 -6
- package/worker/subprojects/liburing.wrap +10 -9
- package/worker/tasks.py +53 -9
- package/worker/test/include/RTC/SCTP/sctpCommon.hpp +1 -0
- package/worker/test/src/RTC/ICE/TestStunPacket.cpp +4 -4
- package/worker/test/src/RTC/ICE/iceCommon.cpp +8 -6
- package/worker/test/src/RTC/RTCP/TestBye.cpp +3 -3
- package/worker/test/src/RTC/RTCP/TestFeedbackPsAfb.cpp +2 -2
- package/worker/test/src/RTC/RTCP/TestFeedbackPsFir.cpp +7 -2
- package/worker/test/src/RTC/RTCP/TestFeedbackPsLei.cpp +7 -2
- package/worker/test/src/RTC/RTCP/TestFeedbackPsPli.cpp +2 -2
- package/worker/test/src/RTC/RTCP/TestFeedbackPsRemb.cpp +2 -2
- package/worker/test/src/RTC/RTCP/TestFeedbackPsRpsi.cpp +7 -2
- package/worker/test/src/RTC/RTCP/TestFeedbackPsSli.cpp +2 -2
- package/worker/test/src/RTC/RTCP/TestFeedbackPsTst.cpp +8 -2
- package/worker/test/src/RTC/RTCP/TestFeedbackPsVbcm.cpp +7 -2
- package/worker/test/src/RTC/RTCP/TestFeedbackRtpEcn.cpp +7 -2
- package/worker/test/src/RTC/RTCP/TestFeedbackRtpNack.cpp +7 -2
- package/worker/test/src/RTC/RTCP/TestFeedbackRtpSrReq.cpp +2 -2
- package/worker/test/src/RTC/RTCP/TestFeedbackRtpTllei.cpp +7 -2
- package/worker/test/src/RTC/RTCP/TestFeedbackRtpTmmb.cpp +8 -2
- package/worker/test/src/RTC/RTCP/TestFeedbackRtpTransport.cpp +17 -17
- package/worker/test/src/RTC/RTCP/TestPacket.cpp +10 -1
- package/worker/test/src/RTC/RTCP/TestReceiverReport.cpp +8 -3
- package/worker/test/src/RTC/RTCP/TestSdes.cpp +15 -10
- package/worker/test/src/RTC/RTCP/TestSenderReport.cpp +9 -4
- package/worker/test/src/RTC/RTCP/TestXr.cpp +17 -10
- package/worker/test/src/RTC/RTP/TestPacket.cpp +26 -34
- package/worker/test/src/RTC/RTP/rtpCommon.cpp +9 -5
- package/worker/test/src/RTC/SCTP/{TestNegotiatedCapabilities.cpp → association/TestNegotiatedCapabilities.cpp} +18 -18
- package/worker/test/src/RTC/SCTP/{TestStateCookie.cpp → association/TestStateCookie.cpp} +15 -15
- package/worker/test/src/RTC/SCTP/packet/TestChunk.cpp +117 -0
- package/worker/test/src/RTC/SCTP/packet/TestErrorCause.cpp +11 -0
- package/worker/test/src/RTC/SCTP/packet/TestPacket.cpp +81 -28
- package/worker/test/src/RTC/SCTP/packet/TestParameter.cpp +11 -0
- 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 +130 -63
- package/worker/test/src/RTC/SCTP/packet/chunks/TestForwardTsnChunk.cpp +32 -32
- package/worker/test/src/RTC/SCTP/packet/chunks/TestHeartbeatAckChunk.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/chunks/TestHeartbeatRequestChunk.cpp +2 -2
- package/worker/test/src/RTC/SCTP/packet/chunks/TestIDataChunk.cpp +131 -63
- package/worker/test/src/RTC/SCTP/packet/chunks/TestIForwardTsnChunk.cpp +33 -53
- 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 +41 -58
- 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 +5 -5
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestMissingMandatoryParameterErrorCause.cpp +4 -4
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestNoUserDataErrorCause.cpp +5 -5
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestOutOfResourceErrorCause.cpp +4 -4
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestProtocolViolationErrorCause.cpp +3 -3
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestRestartOfAnAssociationWithNewAddressesErrorCause.cpp +3 -3
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestStaleCookieErrorCause.cpp +5 -5
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUnknownErrorCause.cpp +3 -3
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUnrecognizedChunkTypeErrorCause.cpp +3 -3
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUnrecognizedParametersErrorCause.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUnresolvableAddressErrorCause.cpp +3 -3
- package/worker/test/src/RTC/SCTP/packet/errorCauses/TestUserInitiatedAbortErrorCause.cpp +19 -64
- 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 +5 -5
- package/worker/test/src/RTC/SCTP/packet/parameters/TestForwardTsnSupportedParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestHeartbeatInfoParameter.cpp +4 -4
- package/worker/test/src/RTC/SCTP/packet/parameters/TestIPv4AddressParameter.cpp +5 -5
- package/worker/test/src/RTC/SCTP/packet/parameters/TestIPv6AddressParameter.cpp +5 -5
- 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 +4 -4
- package/worker/test/src/RTC/SCTP/packet/parameters/TestSsnTsnResetRequestParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestStateCookieParameter.cpp +4 -4
- package/worker/test/src/RTC/SCTP/packet/parameters/TestSupportedAddressTypesParameter.cpp +2 -2
- package/worker/test/src/RTC/SCTP/packet/parameters/TestSupportedExtensionsParameter.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestUnknownParameter.cpp +3 -3
- 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/sctpCommon.cpp +8 -5
- package/worker/test/src/RTC/SCTP/tx/TestRetransmissionErrorCounter.cpp +74 -0
- package/worker/test/src/RTC/SCTP/tx/TestRetransmissionTimeout.cpp +233 -0
- package/worker/test/src/RTC/TestNackGenerator.cpp +7 -3
- package/worker/test/src/RTC/TestSimpleConsumer.cpp +3 -2
- package/worker/test/src/RTC/TestTransportCongestionControlServer.cpp +1 -1
- package/worker/test/src/Utils/TestByte.cpp +25 -29
- package/worker/test/src/tests.cpp +6 -0
- package/worker/include/RTC/SCTP/Socket.hpp +0 -194
- package/worker/include/RTC/SCTP/SocketDeferredListener.hpp +0 -100
- package/worker/include/RTC/SCTP/SocketMetrics.hpp +0 -78
- package/worker/include/RTC/SCTP/TransmissionControlBlock.hpp +0 -108
- package/worker/include/RTC/SCTP/Types.hpp +0 -149
- package/worker/src/RTC/SCTP/NegotiatedCapabilities.cpp +0 -96
- package/worker/src/RTC/SCTP/Socket.cpp +0 -1045
- package/worker/src/RTC/SCTP/SocketDeferredListener.cpp +0 -247
- package/worker/src/RTC/SCTP/SocketMetrics.cpp +0 -39
- package/worker/src/RTC/SCTP/TransmissionControlBlock.cpp +0 -52
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mediasoup",
|
|
3
|
-
"version": "3.19.
|
|
3
|
+
"version": "3.19.19",
|
|
4
4
|
"description": "Cutting Edge WebRTC Video Conferencing",
|
|
5
5
|
"contributors": [
|
|
6
6
|
"Iñaki Baz Castillo <ibc@aliax.net> (https://inakibaz.me)",
|
|
@@ -102,30 +102,30 @@
|
|
|
102
102
|
"h264-profile-level-id": "^2.3.2",
|
|
103
103
|
"node-fetch": "^3.3.2",
|
|
104
104
|
"supports-color": "^10.2.2",
|
|
105
|
-
"tar": "^7.5.
|
|
105
|
+
"tar": "^7.5.13"
|
|
106
106
|
},
|
|
107
107
|
"devDependencies": {
|
|
108
108
|
"@eslint/js": "^10.0.1",
|
|
109
109
|
"@octokit/rest": "^22.0.1",
|
|
110
|
-
"@types/debug": "^4.1.
|
|
110
|
+
"@types/debug": "^4.1.13",
|
|
111
111
|
"@types/ini": "^4.1.1",
|
|
112
112
|
"@types/jest": "^30.0.0",
|
|
113
113
|
"@types/node": "^24.10.1",
|
|
114
|
-
"eslint": "^10.0
|
|
114
|
+
"eslint": "^10.1.0",
|
|
115
115
|
"eslint-config-prettier": "^10.1.8",
|
|
116
116
|
"eslint-plugin-jest": "^29.15.0",
|
|
117
117
|
"eslint-plugin-prettier": "^5.5.5",
|
|
118
118
|
"globals": "^17.4.0",
|
|
119
119
|
"ini": "^6.0.0",
|
|
120
120
|
"jest": "^30.3.0",
|
|
121
|
-
"knip": "^
|
|
122
|
-
"marked": "^17.0.
|
|
121
|
+
"knip": "^6.0.4",
|
|
122
|
+
"marked": "^17.0.5",
|
|
123
123
|
"open-cli": "^8.0.0",
|
|
124
124
|
"pick-port": "^2.2.0",
|
|
125
125
|
"prettier": "^3.8.1",
|
|
126
126
|
"ts-jest": "^29.4.6",
|
|
127
127
|
"typescript": "^5.9.3",
|
|
128
|
-
"typescript-eslint": "^8.57.
|
|
128
|
+
"typescript-eslint": "^8.57.2",
|
|
129
129
|
"werift-sctp": "^0.0.11"
|
|
130
130
|
}
|
|
131
131
|
}
|
package/worker/Makefile
CHANGED
|
@@ -42,7 +42,9 @@ endif
|
|
|
42
42
|
docker \
|
|
43
43
|
docker-run \
|
|
44
44
|
docker-alpine \
|
|
45
|
-
docker-alpine-run
|
|
45
|
+
docker-alpine-run \
|
|
46
|
+
docker-386 \
|
|
47
|
+
docker-386-run
|
|
46
48
|
|
|
47
49
|
default: mediasoup-worker
|
|
48
50
|
|
|
@@ -131,3 +133,9 @@ docker-alpine: invoke
|
|
|
131
133
|
|
|
132
134
|
docker-alpine-run: invoke
|
|
133
135
|
"$(PYTHON)" -m invoke docker-alpine-run
|
|
136
|
+
|
|
137
|
+
docker-386: invoke
|
|
138
|
+
"$(PYTHON)" -m invoke docker-386
|
|
139
|
+
|
|
140
|
+
docker-386-run: invoke
|
|
141
|
+
"$(PYTHON)" -m invoke docker-386-run
|
|
@@ -1,33 +1,37 @@
|
|
|
1
1
|
#include "FuzzerUtils.hpp"
|
|
2
2
|
#include "MediaSoupErrors.hpp"
|
|
3
3
|
#include "Utils.hpp"
|
|
4
|
-
#include <cstring> // std::
|
|
4
|
+
#include <cstring> // std::memcpy()
|
|
5
5
|
#include <string>
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
namespace
|
|
8
8
|
{
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
alignas(4) thread_local uint8_t DataBuffer[65536];
|
|
10
|
+
}
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
void FuzzerUtils::Fuzz(const uint8_t* data, size_t len)
|
|
13
|
+
{
|
|
14
|
+
// NOTE: We need to copy given data into another buffer because we are gonna
|
|
15
|
+
// write into it.
|
|
16
|
+
std::memcpy(DataBuffer, data, len);
|
|
13
17
|
|
|
14
18
|
/* IP class. */
|
|
15
19
|
|
|
16
20
|
std::string ip;
|
|
17
21
|
|
|
18
|
-
ip = std::string(reinterpret_cast<const char*>(
|
|
22
|
+
ip = std::string(reinterpret_cast<const char*>(DataBuffer), INET6_ADDRSTRLEN / 2);
|
|
19
23
|
Utils::IP::GetFamily(ip);
|
|
20
24
|
|
|
21
|
-
ip = std::string(reinterpret_cast<const char*>(
|
|
25
|
+
ip = std::string(reinterpret_cast<const char*>(DataBuffer), INET6_ADDRSTRLEN);
|
|
22
26
|
Utils::IP::GetFamily(ip);
|
|
23
27
|
|
|
24
|
-
ip = std::string(reinterpret_cast<const char*>(
|
|
28
|
+
ip = std::string(reinterpret_cast<const char*>(DataBuffer), INET6_ADDRSTRLEN * 2);
|
|
25
29
|
Utils::IP::GetFamily(ip);
|
|
26
30
|
|
|
27
31
|
// Protect with try/catch since throws are legit.
|
|
28
32
|
try
|
|
29
33
|
{
|
|
30
|
-
auto ip = std::string(reinterpret_cast<const char*>(
|
|
34
|
+
auto ip = std::string(reinterpret_cast<const char*>(DataBuffer), len);
|
|
31
35
|
|
|
32
36
|
Utils::IP::NormalizeIp(ip);
|
|
33
37
|
}
|
|
@@ -37,16 +41,16 @@ void FuzzerUtils::Fuzz(const uint8_t* data, size_t len)
|
|
|
37
41
|
|
|
38
42
|
/* Byte class. */
|
|
39
43
|
|
|
40
|
-
Utils::Byte::Get1Byte(
|
|
41
|
-
Utils::Byte::Get2Bytes(
|
|
42
|
-
Utils::Byte::Get3Bytes(
|
|
43
|
-
Utils::Byte::Get4Bytes(
|
|
44
|
-
Utils::Byte::Get8Bytes(
|
|
45
|
-
Utils::Byte::Set1Byte(
|
|
46
|
-
Utils::Byte::Set2Bytes(
|
|
47
|
-
Utils::Byte::Set3Bytes(
|
|
48
|
-
Utils::Byte::Set4Bytes(
|
|
49
|
-
Utils::Byte::Set8Bytes(
|
|
44
|
+
Utils::Byte::Get1Byte(DataBuffer, len);
|
|
45
|
+
Utils::Byte::Get2Bytes(DataBuffer, len);
|
|
46
|
+
Utils::Byte::Get3Bytes(DataBuffer, len);
|
|
47
|
+
Utils::Byte::Get4Bytes(DataBuffer, len);
|
|
48
|
+
Utils::Byte::Get8Bytes(DataBuffer, len);
|
|
49
|
+
Utils::Byte::Set1Byte(DataBuffer, len, uint8_t{ 6u });
|
|
50
|
+
Utils::Byte::Set2Bytes(DataBuffer, len, uint16_t{ 66u });
|
|
51
|
+
Utils::Byte::Set3Bytes(DataBuffer, len, uint32_t{ 666u });
|
|
52
|
+
Utils::Byte::Set4Bytes(DataBuffer, len, uint32_t{ 666u });
|
|
53
|
+
Utils::Byte::Set8Bytes(DataBuffer, len, uint64_t{ 6666u });
|
|
50
54
|
Utils::Byte::PadTo4Bytes(static_cast<uint8_t>(len));
|
|
51
55
|
Utils::Byte::PadTo4Bytes(static_cast<uint16_t>(len));
|
|
52
56
|
Utils::Byte::PadTo4Bytes(static_cast<uint32_t>(len));
|
|
@@ -70,7 +74,7 @@ void FuzzerUtils::Fuzz(const uint8_t* data, size_t len)
|
|
|
70
74
|
static_cast<uint64_t>(len), static_cast<uint64_t>(len + 1000000));
|
|
71
75
|
Utils::Crypto::GetRandomUInt<size_t>(len, len + 1000000);
|
|
72
76
|
Utils::Crypto::GetRandomString(len);
|
|
73
|
-
Utils::Crypto::GetCRC32(
|
|
77
|
+
Utils::Crypto::GetCRC32(DataBuffer, len);
|
|
74
78
|
|
|
75
79
|
/* String class. */
|
|
76
80
|
|
|
@@ -79,8 +83,8 @@ void FuzzerUtils::Fuzz(const uint8_t* data, size_t len)
|
|
|
79
83
|
{
|
|
80
84
|
size_t outLen;
|
|
81
85
|
|
|
82
|
-
Utils::String::Base64Encode(
|
|
83
|
-
Utils::String::Base64Decode(
|
|
86
|
+
Utils::String::Base64Encode(DataBuffer, len);
|
|
87
|
+
Utils::String::Base64Decode(DataBuffer, len, outLen);
|
|
84
88
|
}
|
|
85
89
|
catch (const MediaSoupError& error) // NOLINT(bugprone-empty-catch)
|
|
86
90
|
{
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
#include <string_view>
|
|
4
4
|
|
|
5
5
|
static constexpr size_t ResponseFactoryBufferLength{ 65536 };
|
|
6
|
-
thread_local uint8_t ResponseFactoryBuffer[ResponseFactoryBufferLength];
|
|
6
|
+
alignas(4) thread_local uint8_t ResponseFactoryBuffer[ResponseFactoryBufferLength];
|
|
7
7
|
static constexpr size_t SerializeBufferLength{ 65536 };
|
|
8
|
-
thread_local uint8_t SerializeBuffer[SerializeBufferLength];
|
|
8
|
+
alignas(4) thread_local uint8_t SerializeBuffer[SerializeBufferLength];
|
|
9
9
|
static constexpr size_t CloneBufferLength{ 65536 };
|
|
10
|
-
thread_local uint8_t CloneBuffer[CloneBufferLength];
|
|
10
|
+
alignas(4) thread_local uint8_t CloneBuffer[CloneBufferLength];
|
|
11
11
|
|
|
12
12
|
void FuzzerRtcIceStunPacket::Fuzz(const uint8_t* data, size_t len)
|
|
13
13
|
{
|
|
@@ -7,6 +7,12 @@
|
|
|
7
7
|
#include "RTC/RTCP/FuzzerSenderReport.hpp"
|
|
8
8
|
#include "RTC/RTCP/FuzzerXr.hpp"
|
|
9
9
|
#include "RTC/RTCP/Packet.hpp"
|
|
10
|
+
#include <cstring> // std::memcpy()
|
|
11
|
+
|
|
12
|
+
namespace
|
|
13
|
+
{
|
|
14
|
+
alignas(4) thread_local uint8_t DataBuffer[65536];
|
|
15
|
+
} // namespace
|
|
10
16
|
|
|
11
17
|
void FuzzerRtcRtcpPacket::Fuzz(const uint8_t* data, size_t len)
|
|
12
18
|
{
|
|
@@ -15,13 +21,11 @@ void FuzzerRtcRtcpPacket::Fuzz(const uint8_t* data, size_t len)
|
|
|
15
21
|
return;
|
|
16
22
|
}
|
|
17
23
|
|
|
18
|
-
// We need to
|
|
19
|
-
//
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
std::memcpy(data2.get(), data, len);
|
|
24
|
+
// NOTE: We need to copy given data into another buffer because we are gonna
|
|
25
|
+
// write into it.
|
|
26
|
+
std::memcpy(DataBuffer, data, len);
|
|
23
27
|
|
|
24
|
-
RTC::RTCP::Packet* packet = RTC::RTCP::Packet::Parse(
|
|
28
|
+
RTC::RTCP::Packet* packet = RTC::RTCP::Packet::Parse(DataBuffer, len);
|
|
25
29
|
|
|
26
30
|
if (!packet)
|
|
27
31
|
{
|
package/worker/fuzzer/src/RTC/SCTP/{FuzzerStateCookie.cpp → association/FuzzerStateCookie.cpp}
RENAMED
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
#include "RTC/SCTP/FuzzerStateCookie.hpp"
|
|
2
2
|
#include "Utils.hpp"
|
|
3
|
-
#include "RTC/SCTP/StateCookie.hpp"
|
|
4
|
-
#include <cstdlib> // std::malloc(), std::free()
|
|
3
|
+
#include "RTC/SCTP/association/StateCookie.hpp"
|
|
5
4
|
#include <cstring> // std::memcpy()
|
|
6
5
|
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
namespace
|
|
7
|
+
{
|
|
8
|
+
alignas(4) thread_local uint8_t DataBuffer[65536];
|
|
9
|
+
alignas(4) thread_local uint8_t StateCookieSerializeBuffer[65536];
|
|
10
|
+
alignas(4) thread_local uint8_t StateCookieCloneBuffer[65536];
|
|
11
|
+
} // namespace
|
|
9
12
|
|
|
10
13
|
void FuzzerRtcSctpStateCookie::Fuzz(const uint8_t* data, size_t len)
|
|
11
14
|
{
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
std::memcpy(
|
|
15
|
+
// NOTE: We need to copy given data into another buffer because we are gonna
|
|
16
|
+
// write into it.
|
|
17
|
+
std::memcpy(DataBuffer, data, len);
|
|
15
18
|
|
|
16
19
|
// We need to force `data` to be a StateCookie since it's too hard that
|
|
17
20
|
// random data matches it.
|
|
@@ -22,20 +25,18 @@ void FuzzerRtcSctpStateCookie::Fuzz(const uint8_t* data, size_t len)
|
|
|
22
25
|
|
|
23
26
|
if (len < RTC::SCTP::StateCookie::StateCookieLength + 5)
|
|
24
27
|
{
|
|
25
|
-
Utils::Byte::Set8Bytes(
|
|
28
|
+
Utils::Byte::Set8Bytes(DataBuffer, 0, RTC::SCTP::StateCookie::Magic1);
|
|
26
29
|
Utils::Byte::Set2Bytes(
|
|
27
|
-
|
|
30
|
+
DataBuffer,
|
|
28
31
|
RTC::SCTP::StateCookie::NegotiatedCapabilitiesOffset,
|
|
29
32
|
RTC::SCTP::StateCookie::Magic2);
|
|
30
33
|
}
|
|
31
34
|
}
|
|
32
35
|
|
|
33
|
-
RTC::SCTP::StateCookie* stateCookie = RTC::SCTP::StateCookie::Parse(
|
|
36
|
+
RTC::SCTP::StateCookie* stateCookie = RTC::SCTP::StateCookie::Parse(DataBuffer, len);
|
|
34
37
|
|
|
35
38
|
if (!stateCookie)
|
|
36
39
|
{
|
|
37
|
-
std::free(clonedData);
|
|
38
|
-
|
|
39
40
|
return;
|
|
40
41
|
}
|
|
41
42
|
|
|
@@ -71,6 +72,5 @@ void FuzzerRtcSctpStateCookie::Fuzz(const uint8_t* data, size_t len)
|
|
|
71
72
|
|
|
72
73
|
clonedStateCookie->Serialize(StateCookieSerializeBuffer, len);
|
|
73
74
|
|
|
74
|
-
std::free(clonedData);
|
|
75
75
|
delete clonedStateCookie;
|
|
76
76
|
}
|
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
#include "DepLibUV.hpp"
|
|
6
6
|
#include "DepLibWebRTC.hpp"
|
|
7
7
|
#include "DepOpenSSL.hpp"
|
|
8
|
+
#ifndef MS_SCTP_STACK
|
|
8
9
|
#include "DepUsrSCTP.hpp"
|
|
10
|
+
#endif
|
|
9
11
|
#include "FuzzerUtils.hpp"
|
|
10
12
|
#include "Settings.hpp"
|
|
11
13
|
#include "Utils.hpp"
|
|
@@ -145,7 +147,9 @@ namespace
|
|
|
145
147
|
DepLibUV::ClassInit();
|
|
146
148
|
DepOpenSSL::ClassInit();
|
|
147
149
|
DepLibSRTP::ClassInit();
|
|
150
|
+
#ifndef MS_SCTP_STACK
|
|
148
151
|
DepUsrSCTP::ClassInit();
|
|
152
|
+
#endif
|
|
149
153
|
DepLibWebRTC::ClassInit();
|
|
150
154
|
Utils::Crypto::ClassInit();
|
|
151
155
|
RTC::DtlsTransport::ClassInit();
|
|
@@ -11,9 +11,11 @@
|
|
|
11
11
|
|
|
12
12
|
namespace RTC
|
|
13
13
|
{
|
|
14
|
+
#ifndef MS_SCTP_STACK
|
|
14
15
|
// Define class here such that we can use it even though we don't know what it looks like yet
|
|
15
16
|
// (this is to avoid circular dependencies).
|
|
16
17
|
class SctpAssociation;
|
|
18
|
+
#endif
|
|
17
19
|
|
|
18
20
|
class DataConsumer : public Channel::ChannelSocket::RequestHandler
|
|
19
21
|
{
|
|
@@ -48,7 +50,9 @@ namespace RTC
|
|
|
48
50
|
RTC::Shared* shared,
|
|
49
51
|
const std::string& id,
|
|
50
52
|
const std::string& dataProducerId,
|
|
53
|
+
#ifndef MS_SCTP_STACK
|
|
51
54
|
RTC::SctpAssociation* sctpAssociation,
|
|
55
|
+
#endif
|
|
52
56
|
RTC::DataConsumer::Listener* listener,
|
|
53
57
|
const FBS::Transport::ConsumeDataRequest* data,
|
|
54
58
|
size_t maxMessageSize);
|
|
@@ -98,7 +102,7 @@ namespace RTC
|
|
|
98
102
|
void SctpAssociationBufferedAmount(uint32_t bufferedAmount);
|
|
99
103
|
void SctpAssociationSendBufferFull();
|
|
100
104
|
void DataProducerClosed();
|
|
101
|
-
|
|
105
|
+
bool SendMessage(
|
|
102
106
|
const uint8_t* msg,
|
|
103
107
|
size_t len,
|
|
104
108
|
uint32_t ppid,
|
|
@@ -118,7 +122,9 @@ namespace RTC
|
|
|
118
122
|
private:
|
|
119
123
|
// Passed by argument.
|
|
120
124
|
RTC::Shared* shared{ nullptr };
|
|
125
|
+
#ifndef MS_SCTP_STACK
|
|
121
126
|
RTC::SctpAssociation* sctpAssociation{ nullptr };
|
|
127
|
+
#endif
|
|
122
128
|
RTC::DataConsumer::Listener* listener{ nullptr };
|
|
123
129
|
size_t maxMessageSize{ 0u };
|
|
124
130
|
// Others.
|
|
@@ -36,7 +36,7 @@ namespace RTC
|
|
|
36
36
|
size_t len,
|
|
37
37
|
uint32_t ppid,
|
|
38
38
|
onQueuedCallback* cb = nullptr) override;
|
|
39
|
-
|
|
39
|
+
bool SendSctpData(const uint8_t* data, size_t len) override;
|
|
40
40
|
void RecvStreamClosed(uint32_t ssrc) override;
|
|
41
41
|
void SendStreamClosed(uint32_t ssrc) override;
|
|
42
42
|
|
|
@@ -151,7 +151,8 @@ namespace RTC
|
|
|
151
151
|
{
|
|
152
152
|
return this->localRole;
|
|
153
153
|
}
|
|
154
|
-
|
|
154
|
+
// Returns a boolean indicating whether the data could be sent.
|
|
155
|
+
bool SendApplicationData(const uint8_t* data, size_t len);
|
|
155
156
|
// This method must be public since it's called within an OpenSSL callback.
|
|
156
157
|
void SendDtlsData(const uint8_t* data, size_t len);
|
|
157
158
|
|
|
@@ -37,27 +37,39 @@ namespace RTC
|
|
|
37
37
|
|
|
38
38
|
public:
|
|
39
39
|
IceCandidate(RTC::UdpSocket* udpSocket, uint32_t priority)
|
|
40
|
-
: foundation("udpcandidate"),
|
|
41
|
-
|
|
40
|
+
: foundation("udpcandidate"),
|
|
41
|
+
priority(priority),
|
|
42
|
+
address(udpSocket->GetLocalIp()),
|
|
43
|
+
protocol(Protocol::UDP),
|
|
44
|
+
port(udpSocket->GetLocalPort())
|
|
42
45
|
{
|
|
43
46
|
}
|
|
44
47
|
|
|
45
48
|
IceCandidate(RTC::UdpSocket* udpSocket, uint32_t priority, std::string& announcedAddress)
|
|
46
|
-
: foundation("udpcandidate"),
|
|
47
|
-
|
|
49
|
+
: foundation("udpcandidate"),
|
|
50
|
+
priority(priority),
|
|
51
|
+
address(announcedAddress),
|
|
52
|
+
protocol(Protocol::UDP),
|
|
53
|
+
port(udpSocket->GetLocalPort())
|
|
48
54
|
{
|
|
49
55
|
}
|
|
50
56
|
|
|
51
57
|
IceCandidate(RTC::TcpServer* tcpServer, uint32_t priority)
|
|
52
|
-
: foundation("tcpcandidate"),
|
|
53
|
-
|
|
58
|
+
: foundation("tcpcandidate"),
|
|
59
|
+
priority(priority),
|
|
60
|
+
address(tcpServer->GetLocalIp()),
|
|
61
|
+
protocol(Protocol::TCP),
|
|
62
|
+
port(tcpServer->GetLocalPort())
|
|
54
63
|
|
|
55
64
|
{
|
|
56
65
|
}
|
|
57
66
|
|
|
58
67
|
IceCandidate(RTC::TcpServer* tcpServer, uint32_t priority, std::string& announcedAddress)
|
|
59
|
-
: foundation("tcpcandidate"),
|
|
60
|
-
|
|
68
|
+
: foundation("tcpcandidate"),
|
|
69
|
+
priority(priority),
|
|
70
|
+
address(announcedAddress),
|
|
71
|
+
protocol(Protocol::TCP),
|
|
72
|
+
port(tcpServer->GetLocalPort())
|
|
61
73
|
|
|
62
74
|
{
|
|
63
75
|
}
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
#include "common.hpp"
|
|
5
5
|
#include "Utils.hpp"
|
|
6
6
|
#include "RTC/Serializable.hpp"
|
|
7
|
-
#include <cstdint>
|
|
8
7
|
#include <string_view>
|
|
9
8
|
#include <unordered_map>
|
|
10
9
|
|
|
@@ -126,6 +125,12 @@ namespace RTC
|
|
|
126
125
|
};
|
|
127
126
|
|
|
128
127
|
private:
|
|
128
|
+
/**
|
|
129
|
+
* @remarks
|
|
130
|
+
* - This struct is NOT guaranteed to be aligned to any fixed number of
|
|
131
|
+
* bytes because it contains a `size_t`, which is 4 or 8 bytes depending
|
|
132
|
+
* on the architecture. Anyway we never cast any buffer to this struct.
|
|
133
|
+
*/
|
|
129
134
|
struct Attribute
|
|
130
135
|
{
|
|
131
136
|
Attribute(AttributeType type, uint16_t len, size_t offset)
|
|
@@ -54,7 +54,7 @@ namespace RTC
|
|
|
54
54
|
size_t len,
|
|
55
55
|
uint32_t ppid,
|
|
56
56
|
onQueuedCallback* cb = nullptr) override;
|
|
57
|
-
|
|
57
|
+
bool SendSctpData(const uint8_t* data, size_t len) override;
|
|
58
58
|
void RecvStreamClosed(uint32_t ssrc) override;
|
|
59
59
|
void SendStreamClosed(uint32_t ssrc) override;
|
|
60
60
|
void OnPacketReceived(RTC::TransportTuple* tuple, const uint8_t* data, size_t len, size_t bufferLen);
|
|
@@ -48,7 +48,7 @@ namespace RTC
|
|
|
48
48
|
size_t len,
|
|
49
49
|
uint32_t ppid,
|
|
50
50
|
onQueuedCallback* cb = nullptr) override;
|
|
51
|
-
|
|
51
|
+
bool SendSctpData(const uint8_t* data, size_t len) override;
|
|
52
52
|
void RecvStreamClosed(uint32_t ssrc) override;
|
|
53
53
|
void SendStreamClosed(uint32_t ssrc) override;
|
|
54
54
|
void OnPacketReceived(RTC::TransportTuple* tuple, const uint8_t* data, size_t len, size_t bufferLen);
|
|
@@ -13,7 +13,12 @@ namespace RTC
|
|
|
13
13
|
class FeedbackPacket : public Packet
|
|
14
14
|
{
|
|
15
15
|
public:
|
|
16
|
-
|
|
16
|
+
/**
|
|
17
|
+
* Struct for RTP Feedback message.
|
|
18
|
+
*
|
|
19
|
+
* @remarks
|
|
20
|
+
* - This struct is guaranteed to be aligned to 4 bytes.
|
|
21
|
+
*/
|
|
17
22
|
struct Header
|
|
18
23
|
{
|
|
19
24
|
uint32_t senderSsrc;
|
|
@@ -30,6 +30,11 @@ namespace RTC
|
|
|
30
30
|
#else
|
|
31
31
|
#define MEDIASOUP_PACKED __attribute__((packed))
|
|
32
32
|
#endif
|
|
33
|
+
/**
|
|
34
|
+
* @remarks
|
|
35
|
+
* - This struct is guaranteed to be aligned to 1 byte due to the usage
|
|
36
|
+
* of `pack()` and `packed` macros.
|
|
37
|
+
*/
|
|
33
38
|
struct Header
|
|
34
39
|
{
|
|
35
40
|
uint32_t ssrc;
|
|
@@ -32,7 +32,12 @@ namespace RTC
|
|
|
32
32
|
class Packet
|
|
33
33
|
{
|
|
34
34
|
public:
|
|
35
|
-
|
|
35
|
+
/**
|
|
36
|
+
* Struct for RTCP common header.
|
|
37
|
+
*
|
|
38
|
+
* @remarks
|
|
39
|
+
* - This struct is guaranteed to be aligned to 2 bytes.
|
|
40
|
+
*/
|
|
36
41
|
struct CommonHeader
|
|
37
42
|
{
|
|
38
43
|
#if defined(MS_LITTLE_ENDIAN)
|
|
@@ -13,7 +13,12 @@ namespace RTC
|
|
|
13
13
|
class ReceiverReport
|
|
14
14
|
{
|
|
15
15
|
public:
|
|
16
|
-
|
|
16
|
+
/**
|
|
17
|
+
* Struct for RTCP receiver report.
|
|
18
|
+
*
|
|
19
|
+
* @remarks
|
|
20
|
+
* - This struct is guaranteed to be aligned to 4 bytes.
|
|
21
|
+
*/
|
|
17
22
|
struct Header
|
|
18
23
|
{
|
|
19
24
|
uint32_t ssrc;
|
|
@@ -12,7 +12,12 @@ namespace RTC
|
|
|
12
12
|
class SenderReport
|
|
13
13
|
{
|
|
14
14
|
public:
|
|
15
|
-
|
|
15
|
+
/**
|
|
16
|
+
* Struct for RTCP sender report.
|
|
17
|
+
*
|
|
18
|
+
* @remarks
|
|
19
|
+
* - This struct is guaranteed to be aligned to 4 bytes.
|
|
20
|
+
*/
|
|
16
21
|
struct Header
|
|
17
22
|
{
|
|
18
23
|
uint32_t ssrc;
|
|
@@ -37,12 +37,17 @@ namespace RTC
|
|
|
37
37
|
};
|
|
38
38
|
|
|
39
39
|
public:
|
|
40
|
-
|
|
40
|
+
/**
|
|
41
|
+
* Struct for Extended Report Block common header.
|
|
42
|
+
*
|
|
43
|
+
* @remarks
|
|
44
|
+
* - This struct is guaranteed to be aligned to 2 bytes.
|
|
45
|
+
*/
|
|
41
46
|
struct CommonHeader
|
|
42
47
|
{
|
|
43
|
-
uint8_t blockType
|
|
44
|
-
uint8_t reserved
|
|
45
|
-
uint16_t length
|
|
48
|
+
uint8_t blockType;
|
|
49
|
+
uint8_t reserved;
|
|
50
|
+
uint16_t length;
|
|
46
51
|
};
|
|
47
52
|
|
|
48
53
|
public:
|