mediasoup 3.27.1 → 3.29.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/CHANGELOG.md +26 -0
- package/node/lib/Consumer.d.ts.map +1 -1
- package/node/lib/Consumer.js +4 -51
- package/node/lib/PipeTransportTypes.d.ts +6 -1
- package/node/lib/PipeTransportTypes.d.ts.map +1 -1
- package/node/lib/PlainTransportTypes.d.ts +6 -1
- package/node/lib/PlainTransportTypes.d.ts.map +1 -1
- package/node/lib/Producer.d.ts.map +1 -1
- package/node/lib/Producer.js +4 -8
- package/node/lib/ProducerTypes.d.ts +4 -2
- package/node/lib/ProducerTypes.d.ts.map +1 -1
- package/node/lib/Router.d.ts +4 -4
- package/node/lib/Router.d.ts.map +1 -1
- package/node/lib/Router.js +14 -7
- package/node/lib/RouterTypes.d.ts +7 -1
- package/node/lib/RouterTypes.d.ts.map +1 -1
- package/node/lib/Transport.d.ts +2 -1
- package/node/lib/Transport.d.ts.map +1 -1
- package/node/lib/Transport.js +24 -16
- package/node/lib/TransportTypes.d.ts +12 -2
- package/node/lib/TransportTypes.d.ts.map +1 -1
- package/node/lib/WebRtcTransportTypes.d.ts +6 -1
- package/node/lib/WebRtcTransportTypes.d.ts.map +1 -1
- package/node/lib/fbs/rtp-parameters/rtp-header-extension-uri.d.ts +3 -4
- package/node/lib/fbs/rtp-parameters/rtp-header-extension-uri.d.ts.map +1 -1
- package/node/lib/fbs/rtp-parameters/rtp-header-extension-uri.js +3 -4
- package/node/lib/fbs/transport/options.d.ts +6 -2
- package/node/lib/fbs/transport/options.d.ts.map +1 -1
- package/node/lib/fbs/transport/options.js +19 -7
- package/node/lib/fbs/transport/sctp-zero-checksum.d.ts +6 -0
- package/node/lib/fbs/transport/sctp-zero-checksum.d.ts.map +1 -0
- package/node/lib/fbs/transport/sctp-zero-checksum.js +11 -0
- package/node/lib/fbs/transport/stats.d.ts +2 -8
- package/node/lib/fbs/transport/stats.d.ts.map +1 -1
- package/node/lib/fbs/transport/stats.js +5 -29
- 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 +4 -2
- package/node/lib/ortc.d.ts +0 -2
- package/node/lib/ortc.d.ts.map +1 -1
- package/node/lib/ortc.js +11 -21
- package/node/lib/rtpMappingFbsUtils.d.ts +6 -0
- package/node/lib/rtpMappingFbsUtils.d.ts.map +1 -0
- package/node/lib/rtpMappingFbsUtils.js +65 -0
- package/node/lib/rtpParametersFbsUtils.d.ts.map +1 -1
- package/node/lib/rtpParametersFbsUtils.js +0 -6
- package/node/lib/rtpParametersTypes.d.ts +1 -1
- package/node/lib/rtpParametersTypes.d.ts.map +1 -1
- package/node/lib/rtpStreamFbsUtils.d.ts +4 -0
- package/node/lib/rtpStreamFbsUtils.d.ts.map +1 -0
- package/node/lib/rtpStreamFbsUtils.js +51 -0
- package/node/lib/supportedRtpCapabilities.d.ts.map +1 -1
- package/node/lib/supportedRtpCapabilities.js +6 -13
- package/node/lib/test/test-Consumer.js +1 -13
- package/node/lib/test/test-DataConsumer.js +9 -0
- package/node/lib/test/test-DataProducer.js +38 -0
- package/node/lib/test/test-PipeTransport.js +27 -29
- package/node/lib/test/test-Producer.js +97 -0
- package/node/lib/test/test-ortc.js +34 -14
- package/npm-scripts.mjs +35 -44
- package/package.json +14 -10
- package/worker/fbs/rtpParameters.fbs +0 -1
- package/worker/fbs/transport.fbs +9 -2
- package/worker/fuzzer/src/FuzzerUtils.cpp +5 -3
- package/worker/fuzzer/src/RTC/RTP/FuzzerPacket.cpp +16 -2
- package/worker/fuzzer/src/RTC/RTP/FuzzerRetransmissionBuffer.cpp +14 -1
- package/worker/fuzzer/src/RTC/RTP/FuzzerRtpStreamSend.cpp +17 -4
- package/worker/include/DepLibUV.hpp +13 -0
- package/worker/include/RTC/BWE/AimdRateControl.hpp +9 -9
- package/worker/include/RTC/BWE/AlrDetector.hpp +97 -0
- package/worker/include/RTC/BWE/BitrateProber.hpp +217 -0
- package/worker/include/RTC/BWE/{Utils.hpp → BitrateUtils.hpp} +3 -3
- package/worker/include/RTC/BWE/BweTypes.hpp +207 -2
- package/worker/include/RTC/BWE/DelayBasedBwe.hpp +3 -3
- package/worker/include/RTC/BWE/FeedbackAdapter.hpp +2 -16
- package/worker/include/RTC/BWE/InterArrival.hpp +117 -0
- package/worker/include/RTC/BWE/IntervalBudget.hpp +81 -0
- package/worker/include/RTC/BWE/LossBasedController.hpp +109 -4
- package/worker/include/RTC/BWE/OveruseDetector.hpp +72 -0
- package/worker/include/RTC/BWE/OveruseEstimator.hpp +115 -0
- package/worker/include/RTC/BWE/ProbeBitrateEstimator.hpp +84 -0
- package/worker/include/RTC/BWE/ProbeController.hpp +379 -0
- package/worker/include/RTC/BWE/ProbePacketGenerator.hpp +126 -0
- package/worker/include/RTC/BWE/ProbingScheduler.hpp +183 -0
- package/worker/include/RTC/BWE/ReceiverTransportCongestionController.hpp +148 -0
- package/worker/include/RTC/BWE/RembGenerator.hpp +97 -0
- package/worker/include/RTC/BWE/RemoteBitrateEstimatorAbsSendTime.hpp +237 -0
- package/worker/include/RTC/BWE/RobustThroughputEstimator.hpp +26 -0
- package/worker/include/RTC/BWE/SendPacketHistory.hpp +161 -25
- package/worker/include/RTC/BWE/SenderTransportCongestionController.hpp +343 -0
- package/worker/include/RTC/BWE/TargetRateController.hpp +4 -1
- package/worker/include/RTC/BWE/TransportWideCcFeedbackGenerator.hpp +147 -0
- package/worker/include/RTC/BWE/TrendlineEstimator.hpp +18 -3
- package/worker/include/RTC/Consts.hpp +70 -0
- package/worker/include/RTC/Consumer.hpp +8 -1
- package/worker/include/RTC/DataConsumer.hpp +3 -5
- package/worker/include/RTC/DirectTransport.hpp +4 -5
- package/worker/include/RTC/PipeTransport.hpp +4 -5
- package/worker/include/RTC/PlainTransport.hpp +4 -5
- package/worker/include/RTC/RTCP/FeedbackPsRemb.hpp +6 -7
- package/worker/include/RTC/RTCP/FeedbackRtpTransport.hpp +3 -1
- package/worker/include/RTC/RTP/Codecs/Tools.hpp +1 -1
- package/worker/include/RTC/RTP/HeaderExtensionIds.hpp +0 -1
- package/worker/include/RTC/RTP/Packet.hpp +16 -4
- package/worker/include/RTC/RTP/ProbationGenerator.hpp +0 -8
- package/worker/include/RTC/RTP/RetransmissionBuffer.hpp +36 -10
- package/worker/include/RTC/RTP/RtpStream.hpp +33 -9
- package/worker/include/RTC/RTP/RtpStreamRecv.hpp +23 -4
- package/worker/include/RTC/RTP/RtpStreamSend.hpp +126 -11
- package/worker/include/RTC/RTP/RtxStream.hpp +10 -4
- package/worker/include/RTC/RateCalculator.hpp +103 -24
- package/worker/include/RTC/RemoteCaptureTimeEstimator.hpp +33 -3
- package/worker/include/RTC/{RtcLogger.hpp → RtcLogger/RtpPacket.hpp} +5 -3
- package/worker/include/RTC/RtcLogger/SendBurst.hpp +88 -0
- package/worker/include/RTC/RtpDictionaries.hpp +3 -4
- package/worker/include/RTC/SCTP/association/Association.hpp +1 -1
- package/worker/include/RTC/SCTP/packet/parameters/ZeroChecksumAcceptableParameter.hpp +12 -3
- package/worker/include/RTC/SCTP/public/AssociationMetrics.hpp +0 -1
- package/worker/include/RTC/SCTP/public/SctpTypes.hpp +4 -4
- package/worker/include/RTC/SCTP/rx/DataTracker.hpp +1 -1
- package/worker/include/RTC/SCTP/rx/ReassemblyQueue.hpp +1 -1
- package/worker/include/RTC/SctpDictionaries.hpp +2 -2
- package/worker/include/RTC/TcpConnection.hpp +2 -1
- package/worker/include/RTC/Transport.hpp +23 -8
- package/worker/include/RTC/TransportCongestionControlClient.hpp +0 -5
- package/worker/include/RTC/TransportCongestionControlServer.hpp +0 -5
- package/worker/include/RTC/TransportTuple.hpp +61 -6
- package/worker/include/RTC/WebRtcTransport.hpp +4 -5
- package/worker/include/Shared.hpp +5 -0
- package/worker/include/SharedInterface.hpp +10 -0
- package/worker/include/Utils.hpp +81 -5
- package/worker/include/common.hpp +12 -4
- package/worker/include/handles/SendCallbacks.hpp +34 -0
- package/worker/include/handles/TcpConnectionHandle.hpp +4 -12
- package/worker/include/handles/UdpSocketHandle.hpp +4 -8
- package/worker/meson.build +45 -3
- package/worker/meson_options.txt +1 -0
- package/worker/mocks/include/MockShared.hpp +16 -2
- package/worker/mocks/include/handles/MockBackoffTimerHandle.hpp +1 -1
- package/worker/scripts/package-lock.json +6 -6
- package/worker/src/RTC/BWE/AimdRateControl.cpp +26 -27
- package/worker/src/RTC/BWE/AlrDetector.cpp +80 -0
- package/worker/src/RTC/BWE/BitrateProber.cpp +256 -0
- package/worker/src/RTC/BWE/{Utils.cpp → BitrateUtils.cpp} +4 -4
- package/worker/src/RTC/BWE/DelayBasedBwe.cpp +18 -22
- package/worker/src/RTC/BWE/FeedbackAdapter.cpp +21 -38
- package/worker/src/RTC/BWE/InterArrival.cpp +216 -0
- package/worker/src/RTC/BWE/IntervalBudget.cpp +93 -0
- package/worker/src/RTC/BWE/LossBasedController.cpp +189 -41
- package/worker/src/RTC/BWE/OveruseDetector.cpp +128 -0
- package/worker/src/RTC/BWE/OveruseEstimator.cpp +166 -0
- package/worker/src/RTC/BWE/ProbeBitrateEstimator.cpp +222 -0
- package/worker/src/RTC/BWE/ProbeController.cpp +645 -0
- package/worker/src/RTC/BWE/ProbePacketGenerator.cpp +135 -0
- package/worker/src/RTC/BWE/ProbingScheduler.cpp +191 -0
- package/worker/src/RTC/BWE/ReceiverTransportCongestionController.cpp +207 -0
- package/worker/src/RTC/BWE/RembGenerator.cpp +169 -0
- package/worker/src/RTC/BWE/RemoteBitrateEstimatorAbsSendTime.cpp +497 -0
- package/worker/src/RTC/BWE/RobustThroughputEstimator.cpp +47 -0
- package/worker/src/RTC/BWE/SendPacketHistory.cpp +173 -50
- package/worker/src/RTC/BWE/SenderTransportCongestionController.cpp +599 -0
- package/worker/src/RTC/BWE/TargetRateController.cpp +12 -14
- package/worker/src/RTC/BWE/TransportWideCcFeedbackGenerator.cpp +376 -0
- package/worker/src/RTC/BWE/TrendlineEstimator.cpp +24 -5
- package/worker/src/RTC/Consumer.cpp +10 -7
- package/worker/src/RTC/DataConsumer.cpp +10 -12
- package/worker/src/RTC/DirectTransport.cpp +14 -8
- package/worker/src/RTC/DtlsTransport.cpp +8 -8
- package/worker/src/RTC/ICE/IceCandidate.cpp +4 -4
- package/worker/src/RTC/ICE/IceServer.cpp +1 -1
- package/worker/src/RTC/PipeTransport.cpp +13 -8
- package/worker/src/RTC/PlainTransport.cpp +13 -8
- package/worker/src/RTC/Producer.cpp +14 -31
- package/worker/src/RTC/RTCP/Bye.cpp +1 -1
- package/worker/src/RTC/RTCP/FeedbackPsRemb.cpp +18 -0
- package/worker/src/RTC/RTCP/FeedbackPsRpsi.cpp +2 -2
- package/worker/src/RTC/RTCP/FeedbackPsVbcm.cpp +2 -1
- package/worker/src/RTC/RTCP/FeedbackRtpTransport.cpp +2 -2
- package/worker/src/RTC/RTCP/Sdes.cpp +1 -1
- package/worker/src/RTC/RTP/Codecs/DependencyDescriptor.cpp +2 -1
- package/worker/src/RTC/RTP/Packet.cpp +26 -11
- package/worker/src/RTC/RTP/ProbationGenerator.cpp +5 -6
- package/worker/src/RTC/RTP/RetransmissionBuffer.cpp +21 -8
- package/worker/src/RTC/RTP/RtpStream.cpp +1 -4
- package/worker/src/RTC/RTP/RtpStreamRecv.cpp +109 -102
- package/worker/src/RTC/RTP/RtpStreamSend.cpp +442 -258
- package/worker/src/RTC/RTP/RtxStream.cpp +32 -22
- package/worker/src/RTC/RateCalculator.cpp +133 -28
- package/worker/src/RTC/RemoteCaptureTimeEstimator.cpp +56 -1
- package/worker/src/RTC/{RtcLogger.cpp → RtcLogger/RtpPacket.cpp} +2 -2
- package/worker/src/RTC/RtcLogger/SendBurst.cpp +124 -0
- package/worker/src/RTC/RtpDictionaries/RtpHeaderExtensionUri.cpp +2 -12
- package/worker/src/RTC/RtpDictionaries/RtpParameters.cpp +1 -1
- package/worker/src/RTC/SCTP/association/Association.cpp +4 -3
- package/worker/src/RTC/SCTP/association/StateCookie.cpp +26 -6
- package/worker/src/RTC/SCTP/packet/parameters/ZeroChecksumAcceptableParameter.cpp +4 -3
- package/worker/src/RTC/SCTP/rx/InterleavedReassemblyStreams.cpp +3 -3
- package/worker/src/RTC/SCTP/rx/ReassemblyQueue.cpp +4 -2
- package/worker/src/RTC/SCTP/rx/TraditionalReassemblyStreams.cpp +4 -4
- package/worker/src/RTC/SCTP/tx/RetransmissionQueue.cpp +4 -2
- package/worker/src/RTC/SCTP/tx/RetransmissionTimeout.cpp +4 -4
- package/worker/src/RTC/SctpDictionaries/SctpStreamParameters.cpp +6 -10
- package/worker/src/RTC/SimulcastProducerStreamManager.cpp +2 -2
- package/worker/src/RTC/SrtpSession.cpp +2 -2
- package/worker/src/RTC/SvcProducerStreamManager.cpp +2 -2
- package/worker/src/RTC/TcpConnection.cpp +2 -2
- package/worker/src/RTC/Transport.cpp +160 -113
- package/worker/src/RTC/TransportCongestionControlClient.cpp +0 -66
- package/worker/src/RTC/TransportCongestionControlServer.cpp +0 -55
- package/worker/src/RTC/TransportTuple.cpp +4 -4
- package/worker/src/RTC/WebRtcServer.cpp +4 -3
- package/worker/src/RTC/WebRtcTransport.cpp +20 -13
- package/worker/src/Utils/BitStream.cpp +24 -0
- package/worker/src/Utils/Crypto.cpp +114 -98
- package/worker/src/handles/BackoffTimerHandle.cpp +1 -1
- package/worker/src/handles/TcpConnectionHandle.cpp +13 -23
- package/worker/src/handles/UdpSocketHandle.cpp +14 -21
- package/worker/subprojects/catch2.wrap +6 -6
- package/worker/subprojects/openssl.wrap +11 -12
- package/worker/subprojects/packagefiles/ankerl-unordered-dense/meson.build +1 -1
- package/worker/subprojects/unordered-dense.wrap +4 -4
- package/worker/test/include/RTC/BWE/helpers/LinkSimulator.hpp +68 -14
- package/worker/test/include/RTC/BWE/helpers/RemoteBitrateEstimatorAbsSendTimeTestHelper.hpp +125 -0
- package/worker/test/src/RTC/BWE/TestAlrDetector.cpp +110 -0
- package/worker/test/src/RTC/BWE/TestBitrateProber.cpp +418 -0
- package/worker/test/src/RTC/BWE/TestBitrateUtils.cpp +61 -0
- package/worker/test/src/RTC/BWE/TestDelayBasedBwe.cpp +9 -9
- package/worker/test/src/RTC/BWE/TestFeedbackAdapter.cpp +79 -60
- package/worker/test/src/RTC/BWE/TestInterArrival.cpp +643 -0
- package/worker/test/src/RTC/BWE/TestInterArrivalDelta.cpp +8 -8
- package/worker/test/src/RTC/BWE/TestIntervalBudget.cpp +130 -0
- package/worker/test/src/RTC/BWE/TestOveruseDetector.cpp +519 -0
- package/worker/test/src/RTC/BWE/TestProbeBitrateEstimator.cpp +266 -0
- package/worker/test/src/RTC/BWE/TestProbeController.cpp +1685 -0
- package/worker/test/src/RTC/BWE/TestProbePacketGenerator.cpp +250 -0
- package/worker/test/src/RTC/BWE/TestProbingScheduler.cpp +236 -0
- package/worker/test/src/RTC/BWE/TestReceiverTransportCongestionController.cpp +346 -0
- package/worker/test/src/RTC/BWE/TestRembGenerator.cpp +285 -0
- package/worker/test/src/RTC/BWE/TestRemoteBitrateEstimatorAbsSendTime.cpp +414 -0
- package/worker/test/src/RTC/BWE/TestSendPacketHistory.cpp +296 -77
- package/worker/test/src/RTC/BWE/TestSenderTransportCongestionController.cpp +510 -0
- package/worker/test/src/RTC/BWE/TestTransportWideCcFeedbackGenerator.cpp +580 -0
- package/worker/test/src/RTC/BWE/TestTrendlineEstimator.cpp +6 -6
- package/worker/test/src/RTC/BWE/helpers/LinkSimulator.cpp +133 -29
- package/worker/test/src/RTC/BWE/helpers/RemoteBitrateEstimatorAbsSendTimeTestHelper.cpp +624 -0
- package/worker/test/src/RTC/RTCP/TestBye.cpp +1 -1
- package/worker/test/src/RTC/RTCP/TestFeedbackPsAfb.cpp +1 -1
- package/worker/test/src/RTC/RTCP/TestFeedbackPsFir.cpp +1 -1
- package/worker/test/src/RTC/RTCP/TestFeedbackPsLei.cpp +1 -1
- package/worker/test/src/RTC/RTCP/TestFeedbackPsPli.cpp +1 -1
- package/worker/test/src/RTC/RTCP/TestFeedbackPsRemb.cpp +20 -1
- package/worker/test/src/RTC/RTCP/TestFeedbackPsRpsi.cpp +1 -1
- package/worker/test/src/RTC/RTCP/TestFeedbackPsSli.cpp +1 -1
- package/worker/test/src/RTC/RTCP/TestFeedbackPsTst.cpp +1 -1
- package/worker/test/src/RTC/RTCP/TestFeedbackPsVbcm.cpp +1 -1
- package/worker/test/src/RTC/RTCP/TestFeedbackRtpEcn.cpp +1 -1
- package/worker/test/src/RTC/RTCP/TestFeedbackRtpNack.cpp +1 -1
- package/worker/test/src/RTC/RTCP/TestFeedbackRtpSrReq.cpp +1 -1
- package/worker/test/src/RTC/RTCP/TestFeedbackRtpTllei.cpp +1 -1
- package/worker/test/src/RTC/RTCP/TestFeedbackRtpTmmb.cpp +1 -1
- package/worker/test/src/RTC/RTCP/TestFeedbackRtpTransport.cpp +1 -1
- package/worker/test/src/RTC/RTCP/TestReceiverReport.cpp +1 -1
- package/worker/test/src/RTC/RTCP/TestSenderReport.cpp +1 -1
- package/worker/test/src/RTC/RTP/TestPacket.cpp +58 -4
- package/worker/test/src/RTC/RTP/TestProbationGenerator.cpp +3 -2
- package/worker/test/src/RTC/RTP/TestRetransmissionBuffer.cpp +60 -28
- package/worker/test/src/RTC/RTP/TestRtpStreamRecv.cpp +50 -0
- package/worker/test/src/RTC/RTP/TestRtpStreamSend.cpp +804 -23
- package/worker/test/src/RTC/RTP/TestSharedPacket.cpp +1 -1
- package/worker/test/src/RTC/SCTP/association/TestAssociation.cpp +42 -0
- package/worker/test/src/RTC/SCTP/association/TestNegotiatedCapabilities.cpp +54 -5
- package/worker/test/src/RTC/SCTP/association/TestStateCookie.cpp +80 -15
- package/worker/test/src/RTC/SCTP/association/TestStreamResetHandler.cpp +410 -3
- package/worker/test/src/RTC/SCTP/association/TestTransmissionControlBlock.cpp +1 -1
- package/worker/test/src/RTC/SCTP/packet/parameters/TestZeroChecksumAcceptableParameter.cpp +37 -5
- package/worker/test/src/RTC/SCTP/rx/TestDataTracker.cpp +5 -4
- package/worker/test/src/RTC/SCTP/rx/TestInterleavedReassemblyStreams.cpp +1 -1
- package/worker/test/src/RTC/SCTP/rx/TestReassemblyQueue.cpp +1 -1
- package/worker/test/src/RTC/SCTP/rx/TestTraditionalReassemblyStreams.cpp +1 -1
- package/worker/test/src/RTC/SCTP/tx/TestOutstandingData.cpp +1 -1
- package/worker/test/src/RTC/SCTP/tx/TestRetransmissionQueue.cpp +11 -10
- package/worker/test/src/RTC/SCTP/tx/TestRetransmissionTimeout.cpp +1 -1
- package/worker/test/src/RTC/TestNackGenerator.cpp +1 -1
- package/worker/test/src/RTC/TestPortManager.cpp +2 -2
- package/worker/test/src/RTC/TestRateCalculator.cpp +323 -61
- package/worker/test/src/RTC/TestRemoteCaptureTimeEstimator.cpp +103 -9
- package/worker/test/src/RTC/TestRemoteClockOffsetEstimator.cpp +13 -13
- package/worker/test/src/RTC/TestRtpEncodingParameters.cpp +1 -1
- package/worker/test/src/RTC/TestSimpleProducerStreamManager.cpp +34 -16
- package/worker/test/src/RTC/TestSimulcastProducerStreamManager.cpp +31 -13
- package/worker/test/src/RTC/TestSubchannelsCodec.cpp +2 -2
- package/worker/test/src/RTC/TestSvcProducerStreamManager.cpp +37 -19
- package/worker/test/src/RTC/TestTransportCongestionControlServer.cpp +11 -11
- package/worker/test/src/RTC/TestTransportTuple.cpp +3 -2
- package/worker/test/src/Utils/TestCrypto.cpp +71 -2
- package/worker/test/src/Utils/TestTime.cpp +120 -21
- package/worker/test/src/RTC/BWE/TestUtils.cpp +0 -61
|
@@ -18,12 +18,28 @@ SCENARIO("BWE FeedbackAdapter", "[bwe][feedbackadapter]")
|
|
|
18
18
|
constexpr uint32_t MediaSsrc{ 3333 };
|
|
19
19
|
constexpr size_t RtcpMtu{ 1200 };
|
|
20
20
|
|
|
21
|
+
// Take note of a packet and of it having left right away.
|
|
22
|
+
const auto sendPacket = [](
|
|
23
|
+
RTC::BWE::SendPacketHistory& sendPacketHistory,
|
|
24
|
+
uint16_t seq,
|
|
25
|
+
size_t size,
|
|
26
|
+
bool isAudio,
|
|
27
|
+
int64_t atUs) -> int64_t
|
|
28
|
+
{
|
|
29
|
+
const int64_t sequenceNumber = sendPacketHistory.AddPacket(
|
|
30
|
+
{ .ssrc = Ssrc, .seq = seq, .size = size, .isAudio = isAudio, .createdAtUs = atUs });
|
|
31
|
+
|
|
32
|
+
sendPacketHistory.ProcessSentPacket(sequenceNumber, atUs);
|
|
33
|
+
|
|
34
|
+
return sequenceNumber;
|
|
35
|
+
};
|
|
36
|
+
|
|
21
37
|
// Builds the feedback a receiver would send, reporting the given arrival
|
|
22
38
|
// times. The sequence numbers left out of them are reported as lost.
|
|
23
|
-
auto createFeedback = [SenderSsrc, MediaSsrc](
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
39
|
+
const auto createFeedback = [SenderSsrc, MediaSsrc](
|
|
40
|
+
uint16_t baseSequenceNumber,
|
|
41
|
+
int64_t baseTimeUs,
|
|
42
|
+
const std::vector<std::pair<uint16_t, int64_t>>& receivedPackets)
|
|
27
43
|
-> std::unique_ptr<RTC::RTCP::FeedbackRtpTransportPacket>
|
|
28
44
|
{
|
|
29
45
|
auto feedback = std::make_unique<RTC::RTCP::FeedbackRtpTransportPacket>(SenderSsrc, MediaSsrc);
|
|
@@ -45,9 +61,9 @@ SCENARIO("BWE FeedbackAdapter", "[bwe][feedbackadapter]")
|
|
|
45
61
|
RTC::BWE::SendPacketHistory sendPacketHistory;
|
|
46
62
|
RTC::BWE::FeedbackAdapter feedbackAdapter(&sendPacketHistory);
|
|
47
63
|
|
|
48
|
-
sendPacketHistory
|
|
49
|
-
sendPacketHistory
|
|
50
|
-
sendPacketHistory
|
|
64
|
+
sendPacket(sendPacketHistory, 100, PacketSize, false, InitialTimeUs);
|
|
65
|
+
sendPacket(sendPacketHistory, 101, PacketSize, false, InitialTimeUs + 10000);
|
|
66
|
+
sendPacket(sendPacketHistory, 102, PacketSize, false, InitialTimeUs + 20000);
|
|
51
67
|
|
|
52
68
|
const auto feedback = createFeedback(
|
|
53
69
|
0,
|
|
@@ -59,7 +75,7 @@ SCENARIO("BWE FeedbackAdapter", "[bwe][feedbackadapter]")
|
|
|
59
75
|
});
|
|
60
76
|
|
|
61
77
|
const auto processedFeedback =
|
|
62
|
-
feedbackAdapter.
|
|
78
|
+
feedbackAdapter.ProcessTransportWideCcFeedback(feedback.get(), InitialTimeUs + 50000);
|
|
63
79
|
|
|
64
80
|
REQUIRE(processedFeedback.has_value());
|
|
65
81
|
|
|
@@ -92,9 +108,9 @@ SCENARIO("BWE FeedbackAdapter", "[bwe][feedbackadapter]")
|
|
|
92
108
|
RTC::BWE::SendPacketHistory sendPacketHistory;
|
|
93
109
|
RTC::BWE::FeedbackAdapter feedbackAdapter(&sendPacketHistory);
|
|
94
110
|
|
|
95
|
-
sendPacketHistory
|
|
96
|
-
sendPacketHistory
|
|
97
|
-
sendPacketHistory
|
|
111
|
+
sendPacket(sendPacketHistory, 100, PacketSize, false, InitialTimeUs);
|
|
112
|
+
sendPacket(sendPacketHistory, 101, PacketSize, false, InitialTimeUs + 10000);
|
|
113
|
+
sendPacket(sendPacketHistory, 102, PacketSize, false, InitialTimeUs + 20000);
|
|
98
114
|
|
|
99
115
|
const auto feedback = createFeedback(
|
|
100
116
|
0,
|
|
@@ -105,7 +121,7 @@ SCENARIO("BWE FeedbackAdapter", "[bwe][feedbackadapter]")
|
|
|
105
121
|
});
|
|
106
122
|
|
|
107
123
|
const auto processedFeedback =
|
|
108
|
-
feedbackAdapter.
|
|
124
|
+
feedbackAdapter.ProcessTransportWideCcFeedback(feedback.get(), InitialTimeUs + 50000);
|
|
109
125
|
|
|
110
126
|
REQUIRE(processedFeedback.has_value());
|
|
111
127
|
|
|
@@ -123,8 +139,8 @@ SCENARIO("BWE FeedbackAdapter", "[bwe][feedbackadapter]")
|
|
|
123
139
|
RTC::BWE::SendPacketHistory sendPacketHistory;
|
|
124
140
|
RTC::BWE::FeedbackAdapter feedbackAdapter(&sendPacketHistory);
|
|
125
141
|
|
|
126
|
-
sendPacketHistory
|
|
127
|
-
sendPacketHistory
|
|
142
|
+
sendPacket(sendPacketHistory, 100, PacketSize, true, InitialTimeUs);
|
|
143
|
+
sendPacket(sendPacketHistory, 101, PacketSize, false, InitialTimeUs + 10000);
|
|
128
144
|
|
|
129
145
|
const auto feedback = createFeedback(
|
|
130
146
|
0,
|
|
@@ -135,7 +151,7 @@ SCENARIO("BWE FeedbackAdapter", "[bwe][feedbackadapter]")
|
|
|
135
151
|
});
|
|
136
152
|
|
|
137
153
|
const auto processedFeedback =
|
|
138
|
-
feedbackAdapter.
|
|
154
|
+
feedbackAdapter.ProcessTransportWideCcFeedback(feedback.get(), InitialTimeUs + 50000);
|
|
139
155
|
|
|
140
156
|
REQUIRE(processedFeedback.has_value());
|
|
141
157
|
|
|
@@ -143,8 +159,8 @@ SCENARIO("BWE FeedbackAdapter", "[bwe][feedbackadapter]")
|
|
|
143
159
|
const auto& result = processedFeedback.value();
|
|
144
160
|
|
|
145
161
|
REQUIRE(result.packetFeedbacks.size() == 2);
|
|
146
|
-
REQUIRE(result.packetFeedbacks[0].sentPacket.
|
|
147
|
-
REQUIRE(result.packetFeedbacks[1].sentPacket.
|
|
162
|
+
REQUIRE(result.packetFeedbacks[0].sentPacket.isAudio == true);
|
|
163
|
+
REQUIRE(result.packetFeedbacks[1].sentPacket.isAudio == false);
|
|
148
164
|
}
|
|
149
165
|
|
|
150
166
|
SECTION("the feedback tells the data still in flight once it's been resolved")
|
|
@@ -152,8 +168,8 @@ SCENARIO("BWE FeedbackAdapter", "[bwe][feedbackadapter]")
|
|
|
152
168
|
RTC::BWE::SendPacketHistory sendPacketHistory;
|
|
153
169
|
RTC::BWE::FeedbackAdapter feedbackAdapter(&sendPacketHistory);
|
|
154
170
|
|
|
155
|
-
sendPacketHistory
|
|
156
|
-
sendPacketHistory
|
|
171
|
+
sendPacket(sendPacketHistory, 100, 200, false, InitialTimeUs);
|
|
172
|
+
sendPacket(sendPacketHistory, 101, 300, false, InitialTimeUs + 10000);
|
|
157
173
|
|
|
158
174
|
const auto firstFeedback = createFeedback(
|
|
159
175
|
0,
|
|
@@ -169,14 +185,14 @@ SCENARIO("BWE FeedbackAdapter", "[bwe][feedbackadapter]")
|
|
|
169
185
|
});
|
|
170
186
|
|
|
171
187
|
const auto firstResult =
|
|
172
|
-
feedbackAdapter.
|
|
188
|
+
feedbackAdapter.ProcessTransportWideCcFeedback(firstFeedback.get(), InitialTimeUs + 50000);
|
|
173
189
|
|
|
174
190
|
REQUIRE(firstResult.has_value());
|
|
175
191
|
// NOLINTNEXTLINE(bugprone-unchecked-optional-access)
|
|
176
192
|
REQUIRE(firstResult->dataInFlight == 300);
|
|
177
193
|
|
|
178
194
|
const auto secondResult =
|
|
179
|
-
feedbackAdapter.
|
|
195
|
+
feedbackAdapter.ProcessTransportWideCcFeedback(secondFeedback.get(), InitialTimeUs + 60000);
|
|
180
196
|
|
|
181
197
|
REQUIRE(secondResult.has_value());
|
|
182
198
|
// NOLINTNEXTLINE(bugprone-unchecked-optional-access)
|
|
@@ -190,11 +206,10 @@ SCENARIO("BWE FeedbackAdapter", "[bwe][feedbackadapter]")
|
|
|
190
206
|
RTC::BWE::SendPacketHistory sendPacketHistory({ .windowDurationUs = WindowDurationUs });
|
|
191
207
|
RTC::BWE::FeedbackAdapter feedbackAdapter(&sendPacketHistory);
|
|
192
208
|
|
|
193
|
-
sendPacketHistory
|
|
209
|
+
sendPacket(sendPacketHistory, 100, PacketSize, false, InitialTimeUs);
|
|
194
210
|
|
|
195
211
|
// Long enough afterwards for the window to drop the first packet.
|
|
196
|
-
sendPacketHistory
|
|
197
|
-
Ssrc, 101, PacketSize, false, InitialTimeUs + WindowDurationUs + 10000);
|
|
212
|
+
sendPacket(sendPacketHistory, 101, PacketSize, false, InitialTimeUs + WindowDurationUs + 10000);
|
|
198
213
|
|
|
199
214
|
const auto feedback = createFeedback(
|
|
200
215
|
0,
|
|
@@ -204,7 +219,7 @@ SCENARIO("BWE FeedbackAdapter", "[bwe][feedbackadapter]")
|
|
|
204
219
|
{ 1, RemoteTimeUs + 10000 }
|
|
205
220
|
});
|
|
206
221
|
|
|
207
|
-
const auto processedFeedback = feedbackAdapter.
|
|
222
|
+
const auto processedFeedback = feedbackAdapter.ProcessTransportWideCcFeedback(
|
|
208
223
|
feedback.get(), InitialTimeUs + WindowDurationUs + 50000);
|
|
209
224
|
|
|
210
225
|
REQUIRE(processedFeedback.has_value());
|
|
@@ -221,8 +236,8 @@ SCENARIO("BWE FeedbackAdapter", "[bwe][feedbackadapter]")
|
|
|
221
236
|
RTC::BWE::SendPacketHistory sendPacketHistory;
|
|
222
237
|
RTC::BWE::FeedbackAdapter feedbackAdapter(&sendPacketHistory);
|
|
223
238
|
|
|
224
|
-
sendPacketHistory
|
|
225
|
-
sendPacketHistory
|
|
239
|
+
sendPacket(sendPacketHistory, 100, PacketSize, false, InitialTimeUs);
|
|
240
|
+
sendPacket(sendPacketHistory, 101, PacketSize, false, InitialTimeUs + 100000);
|
|
226
241
|
|
|
227
242
|
const auto firstFeedback = createFeedback(
|
|
228
243
|
0,
|
|
@@ -238,9 +253,9 @@ SCENARIO("BWE FeedbackAdapter", "[bwe][feedbackadapter]")
|
|
|
238
253
|
});
|
|
239
254
|
|
|
240
255
|
const auto firstProcessedFeedback =
|
|
241
|
-
feedbackAdapter.
|
|
256
|
+
feedbackAdapter.ProcessTransportWideCcFeedback(firstFeedback.get(), InitialTimeUs + 50000);
|
|
242
257
|
const auto secondProcessedFeedback =
|
|
243
|
-
feedbackAdapter.
|
|
258
|
+
feedbackAdapter.ProcessTransportWideCcFeedback(secondFeedback.get(), InitialTimeUs + 150000);
|
|
244
259
|
|
|
245
260
|
REQUIRE(firstProcessedFeedback.has_value());
|
|
246
261
|
REQUIRE(secondProcessedFeedback.has_value());
|
|
@@ -273,8 +288,8 @@ SCENARIO("BWE FeedbackAdapter", "[bwe][feedbackadapter]")
|
|
|
273
288
|
RTC::BWE::SendPacketHistory sendPacketHistory;
|
|
274
289
|
RTC::BWE::FeedbackAdapter feedbackAdapter(&sendPacketHistory);
|
|
275
290
|
|
|
276
|
-
sendPacketHistory
|
|
277
|
-
sendPacketHistory
|
|
291
|
+
sendPacket(sendPacketHistory, 100, PacketSize, false, InitialTimeUs);
|
|
292
|
+
sendPacket(sendPacketHistory, 101, PacketSize, false, InitialTimeUs + 100000);
|
|
278
293
|
|
|
279
294
|
const auto firstFeedback = createFeedback(
|
|
280
295
|
0,
|
|
@@ -291,9 +306,9 @@ SCENARIO("BWE FeedbackAdapter", "[bwe][feedbackadapter]")
|
|
|
291
306
|
|
|
292
307
|
// The second feedback is processed first, and the first one arrives late.
|
|
293
308
|
const auto secondProcessedFeedback =
|
|
294
|
-
feedbackAdapter.
|
|
309
|
+
feedbackAdapter.ProcessTransportWideCcFeedback(secondFeedback.get(), InitialTimeUs + 150000);
|
|
295
310
|
const auto firstProcessedFeedback =
|
|
296
|
-
feedbackAdapter.
|
|
311
|
+
feedbackAdapter.ProcessTransportWideCcFeedback(firstFeedback.get(), InitialTimeUs + 160000);
|
|
297
312
|
|
|
298
313
|
REQUIRE(secondProcessedFeedback.has_value());
|
|
299
314
|
REQUIRE(firstProcessedFeedback.has_value());
|
|
@@ -329,8 +344,8 @@ SCENARIO("BWE FeedbackAdapter", "[bwe][feedbackadapter]")
|
|
|
329
344
|
RTC::BWE::SendPacketHistory sendPacketHistory;
|
|
330
345
|
RTC::BWE::FeedbackAdapter feedbackAdapter(&sendPacketHistory);
|
|
331
346
|
|
|
332
|
-
sendPacketHistory
|
|
333
|
-
sendPacketHistory
|
|
347
|
+
sendPacket(sendPacketHistory, 100, PacketSize, false, InitialTimeUs);
|
|
348
|
+
sendPacket(sendPacketHistory, 101, PacketSize, false, InitialTimeUs + ElapsedUs);
|
|
334
349
|
|
|
335
350
|
const auto firstFeedback = createFeedback(
|
|
336
351
|
0,
|
|
@@ -346,8 +361,8 @@ SCENARIO("BWE FeedbackAdapter", "[bwe][feedbackadapter]")
|
|
|
346
361
|
});
|
|
347
362
|
|
|
348
363
|
const auto firstProcessedFeedback =
|
|
349
|
-
feedbackAdapter.
|
|
350
|
-
const auto secondProcessedFeedback = feedbackAdapter.
|
|
364
|
+
feedbackAdapter.ProcessTransportWideCcFeedback(firstFeedback.get(), InitialTimeUs + 50000);
|
|
365
|
+
const auto secondProcessedFeedback = feedbackAdapter.ProcessTransportWideCcFeedback(
|
|
351
366
|
secondFeedback.get(), InitialTimeUs + ElapsedUs + 50000);
|
|
352
367
|
|
|
353
368
|
REQUIRE(firstProcessedFeedback.has_value());
|
|
@@ -379,9 +394,9 @@ SCENARIO("BWE FeedbackAdapter", "[bwe][feedbackadapter]")
|
|
|
379
394
|
RTC::BWE::SendPacketHistory sendPacketHistory;
|
|
380
395
|
RTC::BWE::FeedbackAdapter feedbackAdapter(&sendPacketHistory);
|
|
381
396
|
|
|
382
|
-
sendPacketHistory
|
|
383
|
-
sendPacketHistory
|
|
384
|
-
sendPacketHistory
|
|
397
|
+
sendPacket(sendPacketHistory, 100, PacketSize, false, InitialTimeUs);
|
|
398
|
+
sendPacket(sendPacketHistory, 101, PacketSize, false, InitialTimeUs + 10000);
|
|
399
|
+
sendPacket(sendPacketHistory, 102, PacketSize, false, InitialTimeUs + 20000);
|
|
385
400
|
|
|
386
401
|
// The packets sent later arrived earlier, which is up to whoever consumes
|
|
387
402
|
// this to reorder.
|
|
@@ -395,7 +410,7 @@ SCENARIO("BWE FeedbackAdapter", "[bwe][feedbackadapter]")
|
|
|
395
410
|
});
|
|
396
411
|
|
|
397
412
|
const auto processedFeedback =
|
|
398
|
-
feedbackAdapter.
|
|
413
|
+
feedbackAdapter.ProcessTransportWideCcFeedback(feedback.get(), InitialTimeUs + 50000);
|
|
399
414
|
|
|
400
415
|
REQUIRE(processedFeedback.has_value());
|
|
401
416
|
|
|
@@ -415,9 +430,9 @@ SCENARIO("BWE FeedbackAdapter", "[bwe][feedbackadapter]")
|
|
|
415
430
|
RTC::BWE::SendPacketHistory sendPacketHistory;
|
|
416
431
|
RTC::BWE::FeedbackAdapter feedbackAdapter(&sendPacketHistory);
|
|
417
432
|
|
|
418
|
-
sendPacketHistory
|
|
419
|
-
sendPacketHistory
|
|
420
|
-
sendPacketHistory
|
|
433
|
+
sendPacket(sendPacketHistory, 100, PacketSize, false, InitialTimeUs);
|
|
434
|
+
sendPacket(sendPacketHistory, 101, PacketSize, false, InitialTimeUs + 10000);
|
|
435
|
+
sendPacket(sendPacketHistory, 102, PacketSize, false, InitialTimeUs + 20000);
|
|
421
436
|
|
|
422
437
|
// The feedback reporting on the first two packets never made it, so the next
|
|
423
438
|
// one starts at the third.
|
|
@@ -429,7 +444,7 @@ SCENARIO("BWE FeedbackAdapter", "[bwe][feedbackadapter]")
|
|
|
429
444
|
});
|
|
430
445
|
|
|
431
446
|
const auto processedFeedback =
|
|
432
|
-
feedbackAdapter.
|
|
447
|
+
feedbackAdapter.ProcessTransportWideCcFeedback(feedback.get(), InitialTimeUs + 50000);
|
|
433
448
|
|
|
434
449
|
REQUIRE(processedFeedback.has_value());
|
|
435
450
|
|
|
@@ -442,15 +457,17 @@ SCENARIO("BWE FeedbackAdapter", "[bwe][feedbackadapter]")
|
|
|
442
457
|
|
|
443
458
|
SECTION("the feedbacks are resolved although the packets being sent run far ahead of them")
|
|
444
459
|
{
|
|
445
|
-
//
|
|
446
|
-
//
|
|
447
|
-
|
|
460
|
+
// Far enough ahead that the sequence numbers on the wire are nowhere near
|
|
461
|
+
// the ones being reported on, but within half their range, which is as far
|
|
462
|
+
// as a number carrying only its lowest 16 bits can be told apart from the
|
|
463
|
+
// same number one turn of the counter away.
|
|
464
|
+
constexpr int64_t PacketCount{ 30000 };
|
|
448
465
|
|
|
449
466
|
RTC::BWE::SendPacketHistory sendPacketHistory;
|
|
450
467
|
RTC::BWE::FeedbackAdapter feedbackAdapter(&sendPacketHistory);
|
|
451
468
|
|
|
452
|
-
sendPacketHistory
|
|
453
|
-
sendPacketHistory
|
|
469
|
+
sendPacket(sendPacketHistory, 100, PacketSize, false, InitialTimeUs);
|
|
470
|
+
sendPacket(sendPacketHistory, 101, PacketSize, false, InitialTimeUs);
|
|
454
471
|
|
|
455
472
|
// The first feedback reports on the packets sent so far.
|
|
456
473
|
const auto firstFeedback = createFeedback(
|
|
@@ -462,7 +479,7 @@ SCENARIO("BWE FeedbackAdapter", "[bwe][feedbackadapter]")
|
|
|
462
479
|
});
|
|
463
480
|
|
|
464
481
|
const auto firstResult =
|
|
465
|
-
feedbackAdapter.
|
|
482
|
+
feedbackAdapter.ProcessTransportWideCcFeedback(firstFeedback.get(), InitialTimeUs + 50000);
|
|
466
483
|
|
|
467
484
|
REQUIRE(firstResult.has_value());
|
|
468
485
|
// NOLINTNEXTLINE(bugprone-unchecked-optional-access)
|
|
@@ -471,11 +488,10 @@ SCENARIO("BWE FeedbackAdapter", "[bwe][feedbackadapter]")
|
|
|
471
488
|
// And now a lot of packets are sent before the next feedback comes.
|
|
472
489
|
for (int64_t idx{ 2 }; idx < PacketCount; ++idx)
|
|
473
490
|
{
|
|
474
|
-
|
|
491
|
+
sendPacket(
|
|
492
|
+
sendPacketHistory, static_cast<uint16_t>(100 + idx), PacketSize, false, InitialTimeUs);
|
|
475
493
|
}
|
|
476
494
|
|
|
477
|
-
REQUIRE(sendPacketHistory.GetLastSequenceNumber() == PacketCount - 1);
|
|
478
|
-
|
|
479
495
|
const auto secondFeedback = createFeedback(
|
|
480
496
|
2,
|
|
481
497
|
RemoteTimeUs,
|
|
@@ -484,7 +500,7 @@ SCENARIO("BWE FeedbackAdapter", "[bwe][feedbackadapter]")
|
|
|
484
500
|
});
|
|
485
501
|
|
|
486
502
|
const auto secondProcessedFeedback =
|
|
487
|
-
feedbackAdapter.
|
|
503
|
+
feedbackAdapter.ProcessTransportWideCcFeedback(secondFeedback.get(), InitialTimeUs + 60000);
|
|
488
504
|
|
|
489
505
|
REQUIRE(secondProcessedFeedback.has_value());
|
|
490
506
|
|
|
@@ -500,13 +516,14 @@ SCENARIO("BWE FeedbackAdapter", "[bwe][feedbackadapter]")
|
|
|
500
516
|
RTC::BWE::SendPacketHistory sendPacketHistory;
|
|
501
517
|
RTC::BWE::FeedbackAdapter feedbackAdapter(&sendPacketHistory);
|
|
502
518
|
|
|
503
|
-
sendPacketHistory
|
|
519
|
+
sendPacket(sendPacketHistory, 100, PacketSize, false, InitialTimeUs);
|
|
504
520
|
|
|
505
521
|
const auto feedback = createFeedback(0, RemoteTimeUs, {});
|
|
506
522
|
|
|
507
523
|
REQUIRE(feedback->GetPacketStatusCount() == 0);
|
|
508
524
|
REQUIRE(
|
|
509
|
-
feedbackAdapter.
|
|
525
|
+
feedbackAdapter.ProcessTransportWideCcFeedback(feedback.get(), InitialTimeUs + 50000) ==
|
|
526
|
+
std::nullopt);
|
|
510
527
|
}
|
|
511
528
|
|
|
512
529
|
SECTION("a feedback received before any packet was sent yields no value")
|
|
@@ -522,7 +539,8 @@ SCENARIO("BWE FeedbackAdapter", "[bwe][feedbackadapter]")
|
|
|
522
539
|
});
|
|
523
540
|
|
|
524
541
|
REQUIRE(
|
|
525
|
-
feedbackAdapter.
|
|
542
|
+
feedbackAdapter.ProcessTransportWideCcFeedback(feedback.get(), InitialTimeUs + 50000) ==
|
|
543
|
+
std::nullopt);
|
|
526
544
|
}
|
|
527
545
|
|
|
528
546
|
SECTION("a feedback reporting on no packet the history holds yields no value")
|
|
@@ -530,7 +548,7 @@ SCENARIO("BWE FeedbackAdapter", "[bwe][feedbackadapter]")
|
|
|
530
548
|
RTC::BWE::SendPacketHistory sendPacketHistory;
|
|
531
549
|
RTC::BWE::FeedbackAdapter feedbackAdapter(&sendPacketHistory);
|
|
532
550
|
|
|
533
|
-
sendPacketHistory
|
|
551
|
+
sendPacket(sendPacketHistory, 100, PacketSize, false, InitialTimeUs);
|
|
534
552
|
|
|
535
553
|
// A sequence number this history never gave out.
|
|
536
554
|
const auto feedback = createFeedback(
|
|
@@ -541,6 +559,7 @@ SCENARIO("BWE FeedbackAdapter", "[bwe][feedbackadapter]")
|
|
|
541
559
|
});
|
|
542
560
|
|
|
543
561
|
REQUIRE(
|
|
544
|
-
feedbackAdapter.
|
|
562
|
+
feedbackAdapter.ProcessTransportWideCcFeedback(feedback.get(), InitialTimeUs + 50000) ==
|
|
563
|
+
std::nullopt);
|
|
545
564
|
}
|
|
546
565
|
}
|