mediasoup 3.23.2 → 3.24.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 +4 -0
- package/node/lib/DataProducer.d.ts +1 -1
- package/node/lib/DataProducer.d.ts.map +1 -1
- package/node/lib/DataProducer.js +2 -2
- package/node/lib/DataProducerTypes.d.ts +1 -1
- package/node/lib/DataProducerTypes.d.ts.map +1 -1
- package/node/lib/fbs/data-producer/send-notification.d.ts +5 -2
- package/node/lib/fbs/data-producer/send-notification.d.ts.map +1 -1
- package/node/lib/fbs/data-producer/send-notification.js +17 -5
- package/node/lib/test/test-PipeTransport.js +18 -4
- package/package.json +3 -3
- package/worker/fbs/dataProducer.fbs +1 -0
- package/worker/include/RTC/DataConsumer.hpp +1 -0
- package/worker/include/RTC/DataProducer.hpp +4 -2
- package/worker/include/RTC/RateCalculator.hpp +5 -5
- package/worker/include/RTC/Router.hpp +2 -1
- package/worker/include/RTC/SubchannelsCodec.hpp +27 -17
- package/worker/include/RTC/Transport.hpp +4 -2
- package/worker/src/Channel/ChannelMessageRegistrator.cpp +2 -0
- package/worker/src/Channel/ChannelRequest.cpp +2 -0
- package/worker/src/Channel/ChannelSocket.cpp +4 -0
- package/worker/src/DepLibUV.cpp +6 -3
- package/worker/src/RTC/ActiveSpeakerObserver.cpp +8 -0
- package/worker/src/RTC/AudioLevelObserver.cpp +4 -0
- package/worker/src/RTC/DataConsumer.cpp +19 -2
- package/worker/src/RTC/DataProducer.cpp +11 -4
- package/worker/src/RTC/DirectTransport.cpp +4 -0
- package/worker/src/RTC/DtlsTransport.cpp +16 -0
- package/worker/src/RTC/ICE/IceCandidate.cpp +8 -0
- package/worker/src/RTC/ICE/StunPacket.cpp +2 -0
- package/worker/src/RTC/NackGenerator.cpp +2 -0
- package/worker/src/RTC/PipeTransport.cpp +4 -0
- package/worker/src/RTC/PlainTransport.cpp +10 -0
- package/worker/src/RTC/PortManager.cpp +8 -0
- package/worker/src/RTC/Producer.cpp +4 -0
- package/worker/src/RTC/RTCP/CompoundPacket.cpp +8 -0
- package/worker/src/RTC/RTCP/Feedback.cpp +8 -0
- package/worker/src/RTC/RTCP/FeedbackPsRemb.cpp +2 -0
- package/worker/src/RTC/RTCP/FeedbackPsSli.cpp +2 -0
- package/worker/src/RTC/RTCP/FeedbackPsVbcm.cpp +2 -0
- package/worker/src/RTC/RTCP/FeedbackRtpNack.cpp +2 -0
- package/worker/src/RTC/RTCP/FeedbackRtpTllei.cpp +2 -0
- package/worker/src/RTC/RTCP/FeedbackRtpTmmb.cpp +5 -0
- package/worker/src/RTC/RTCP/FeedbackRtpTransport.cpp +8 -0
- package/worker/src/RTC/RTCP/Sdes.cpp +2 -0
- package/worker/src/RTC/RTP/Codecs/AV1.cpp +2 -0
- package/worker/src/RTC/RTP/Codecs/DependencyDescriptor.cpp +6 -0
- package/worker/src/RTC/RTP/Codecs/VP8.cpp +2 -0
- package/worker/src/RTC/RateCalculator.cpp +42 -37
- package/worker/src/RTC/Router.cpp +12 -3
- package/worker/src/RTC/RtpDictionaries/RtpHeaderExtensionUri.cpp +5 -0
- package/worker/src/RTC/RtpDictionaries/RtpParameters.cpp +2 -0
- package/worker/src/RTC/SCTP/association/Association.cpp +2 -0
- package/worker/src/RTC/SCTP/rx/DataTracker.cpp +2 -0
- package/worker/src/RTC/SeqManager.cpp +12 -0
- package/worker/src/RTC/SrtpSession.cpp +6 -0
- package/worker/src/RTC/SubchannelsCodec.cpp +38 -6
- package/worker/src/RTC/Transport.cpp +12 -6
- package/worker/src/RTC/TransportCongestionControlClient.cpp +12 -0
- package/worker/src/RTC/TransportCongestionControlServer.cpp +2 -0
- package/worker/src/Utils/BitStream.cpp +2 -0
- package/worker/src/Worker.cpp +2 -0
- package/worker/src/handles/SignalHandle.cpp +4 -0
- package/worker/src/handles/TcpConnectionHandle.cpp +12 -0
- package/worker/src/handles/TcpServerHandle.cpp +6 -0
- package/worker/src/handles/TimerHandle.cpp +4 -0
- package/worker/src/handles/UdpSocketHandle.cpp +10 -0
- package/worker/src/handles/UnixStreamSocketHandle.cpp +10 -0
- package/worker/test/src/RTC/TestRateCalculator.cpp +45 -45
- package/worker/test/src/RTC/TestSubchannelsCodec.cpp +161 -19
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
#include "RTC/DataProducer.hpp"
|
|
5
5
|
#include "Logger.hpp"
|
|
6
6
|
#include "MediaSoupErrors.hpp"
|
|
7
|
-
#include "Settings.hpp"
|
|
8
7
|
#include <vector>
|
|
9
8
|
|
|
10
9
|
namespace RTC
|
|
@@ -229,6 +228,13 @@ namespace RTC
|
|
|
229
228
|
requiredSubchannel = body->requiredSubchannel();
|
|
230
229
|
}
|
|
231
230
|
|
|
231
|
+
std::optional<uint16_t> ignoredSubchannel{ std::nullopt };
|
|
232
|
+
|
|
233
|
+
if (body->ignoredSubchannel().has_value())
|
|
234
|
+
{
|
|
235
|
+
ignoredSubchannel = body->ignoredSubchannel();
|
|
236
|
+
}
|
|
237
|
+
|
|
232
238
|
const uint16_t streamId =
|
|
233
239
|
this->type == DataProducer::Type::SCTP ? this->sctpStreamParameters.streamId : 0;
|
|
234
240
|
|
|
@@ -236,7 +242,7 @@ namespace RTC
|
|
|
236
242
|
// move the message and pass its ownership to the SCTP stack.
|
|
237
243
|
RTC::SCTP::Message message(streamId, body->ppid(), std::vector<uint8_t>(data, data + len));
|
|
238
244
|
|
|
239
|
-
ReceiveMessage(std::move(message), subchannels, requiredSubchannel);
|
|
245
|
+
ReceiveMessage(std::move(message), subchannels, requiredSubchannel, ignoredSubchannel);
|
|
240
246
|
|
|
241
247
|
// Increase receive transmission.
|
|
242
248
|
this->listener->OnDataProducerReceiveData(this, len);
|
|
@@ -254,7 +260,8 @@ namespace RTC
|
|
|
254
260
|
void DataProducer::ReceiveMessage(
|
|
255
261
|
RTC::SCTP::Message message,
|
|
256
262
|
std::vector<uint16_t>& subchannels,
|
|
257
|
-
std::optional<uint16_t> requiredSubchannel
|
|
263
|
+
std::optional<uint16_t> requiredSubchannel,
|
|
264
|
+
std::optional<uint16_t> ignoredSubchannel)
|
|
258
265
|
{
|
|
259
266
|
MS_TRACE();
|
|
260
267
|
|
|
@@ -268,6 +275,6 @@ namespace RTC
|
|
|
268
275
|
}
|
|
269
276
|
|
|
270
277
|
this->listener->OnDataProducerMessageReceived(
|
|
271
|
-
this, std::move(message), subchannels, requiredSubchannel);
|
|
278
|
+
this, std::move(message), subchannels, requiredSubchannel, ignoredSubchannel);
|
|
272
279
|
}
|
|
273
280
|
} // namespace RTC
|
|
@@ -43,6 +43,8 @@ namespace RTC
|
|
|
43
43
|
flatbuffers::Offset<FBS::DirectTransport::DumpResponse> DirectTransport::FillBuffer(
|
|
44
44
|
flatbuffers::FlatBufferBuilder& builder) const
|
|
45
45
|
{
|
|
46
|
+
MS_TRACE();
|
|
47
|
+
|
|
46
48
|
// Add base transport dump.
|
|
47
49
|
auto base = Transport::FillBuffer(builder);
|
|
48
50
|
|
|
@@ -138,6 +140,8 @@ namespace RTC
|
|
|
138
140
|
|
|
139
141
|
inline bool DirectTransport::IsConnected() const
|
|
140
142
|
{
|
|
143
|
+
MS_TRACE();
|
|
144
|
+
|
|
141
145
|
return true;
|
|
142
146
|
}
|
|
143
147
|
|
|
@@ -45,6 +45,8 @@ inline static int onSslCertificateVerify(int /*preverifyOk*/, X509_STORE_CTX* /*
|
|
|
45
45
|
|
|
46
46
|
inline static void onSslInfo(const SSL* ssl, int where, int ret)
|
|
47
47
|
{
|
|
48
|
+
MS_TRACE();
|
|
49
|
+
|
|
48
50
|
static_cast<RTC::DtlsTransport*>(SSL_get_ex_data(ssl, 0))->OnSslInfo(where, ret);
|
|
49
51
|
}
|
|
50
52
|
|
|
@@ -66,6 +68,8 @@ inline static long onSslBioOut(
|
|
|
66
68
|
int ret,
|
|
67
69
|
size_t* /*processed*/)
|
|
68
70
|
{
|
|
71
|
+
MS_TRACE();
|
|
72
|
+
|
|
69
73
|
const long resultOfcallback = (operationType == BIO_CB_RETURN) ? static_cast<long>(ret) : 1;
|
|
70
74
|
|
|
71
75
|
// This callback is called twice for write operations:
|
|
@@ -84,6 +88,8 @@ inline static long onSslBioOut(
|
|
|
84
88
|
|
|
85
89
|
inline static unsigned int onSslDtlsTimer(SSL* /*ssl*/, unsigned int timerUs)
|
|
86
90
|
{
|
|
91
|
+
MS_TRACE();
|
|
92
|
+
|
|
87
93
|
if (timerUs == 0u)
|
|
88
94
|
{
|
|
89
95
|
return 100000u;
|
|
@@ -200,6 +206,8 @@ namespace RTC
|
|
|
200
206
|
|
|
201
207
|
DtlsTransport::Role DtlsTransport::RoleFromFbs(FBS::WebRtcTransport::DtlsRole role)
|
|
202
208
|
{
|
|
209
|
+
MS_TRACE();
|
|
210
|
+
|
|
203
211
|
switch (role)
|
|
204
212
|
{
|
|
205
213
|
case FBS::WebRtcTransport::DtlsRole::AUTO:
|
|
@@ -223,6 +231,8 @@ namespace RTC
|
|
|
223
231
|
|
|
224
232
|
FBS::WebRtcTransport::DtlsRole DtlsTransport::RoleToFbs(DtlsTransport::Role role)
|
|
225
233
|
{
|
|
234
|
+
MS_TRACE();
|
|
235
|
+
|
|
226
236
|
switch (role)
|
|
227
237
|
{
|
|
228
238
|
case DtlsTransport::Role::AUTO:
|
|
@@ -246,6 +256,8 @@ namespace RTC
|
|
|
246
256
|
|
|
247
257
|
FBS::WebRtcTransport::DtlsState DtlsTransport::StateToFbs(DtlsTransport::DtlsState state)
|
|
248
258
|
{
|
|
259
|
+
MS_TRACE();
|
|
260
|
+
|
|
249
261
|
switch (state)
|
|
250
262
|
{
|
|
251
263
|
case DtlsTransport::DtlsState::NEW:
|
|
@@ -280,6 +292,8 @@ namespace RTC
|
|
|
280
292
|
DtlsTransport::FingerprintAlgorithm DtlsTransport::AlgorithmFromFbs(
|
|
281
293
|
FBS::WebRtcTransport::FingerprintAlgorithm algorithm)
|
|
282
294
|
{
|
|
295
|
+
MS_TRACE();
|
|
296
|
+
|
|
283
297
|
switch (algorithm)
|
|
284
298
|
{
|
|
285
299
|
case FBS::WebRtcTransport::FingerprintAlgorithm::SHA1:
|
|
@@ -314,6 +328,8 @@ namespace RTC
|
|
|
314
328
|
FBS::WebRtcTransport::FingerprintAlgorithm DtlsTransport::AlgorithmToFbs(
|
|
315
329
|
DtlsTransport::FingerprintAlgorithm algorithm)
|
|
316
330
|
{
|
|
331
|
+
MS_TRACE();
|
|
332
|
+
|
|
317
333
|
switch (algorithm)
|
|
318
334
|
{
|
|
319
335
|
case DtlsTransport::FingerprintAlgorithm::SHA1:
|
|
@@ -13,6 +13,8 @@ namespace RTC
|
|
|
13
13
|
IceCandidate::CandidateType IceCandidate::CandidateTypeFromFbs(
|
|
14
14
|
FBS::WebRtcTransport::IceCandidateType type)
|
|
15
15
|
{
|
|
16
|
+
MS_TRACE();
|
|
17
|
+
|
|
16
18
|
switch (type)
|
|
17
19
|
{
|
|
18
20
|
case FBS::WebRtcTransport::IceCandidateType::HOST:
|
|
@@ -27,6 +29,8 @@ namespace RTC
|
|
|
27
29
|
FBS::WebRtcTransport::IceCandidateType IceCandidate::CandidateTypeToFbs(
|
|
28
30
|
IceCandidate::CandidateType type)
|
|
29
31
|
{
|
|
32
|
+
MS_TRACE();
|
|
33
|
+
|
|
30
34
|
switch (type)
|
|
31
35
|
{
|
|
32
36
|
case IceCandidate::CandidateType::HOST:
|
|
@@ -41,6 +45,8 @@ namespace RTC
|
|
|
41
45
|
IceCandidate::TcpCandidateType IceCandidate::TcpCandidateTypeFromFbs(
|
|
42
46
|
FBS::WebRtcTransport::IceCandidateTcpType type)
|
|
43
47
|
{
|
|
48
|
+
MS_TRACE();
|
|
49
|
+
|
|
44
50
|
switch (type)
|
|
45
51
|
{
|
|
46
52
|
case FBS::WebRtcTransport::IceCandidateTcpType::PASSIVE:
|
|
@@ -55,6 +61,8 @@ namespace RTC
|
|
|
55
61
|
FBS::WebRtcTransport::IceCandidateTcpType IceCandidate::TcpCandidateTypeToFbs(
|
|
56
62
|
IceCandidate::TcpCandidateType type)
|
|
57
63
|
{
|
|
64
|
+
MS_TRACE();
|
|
65
|
+
|
|
58
66
|
switch (type)
|
|
59
67
|
{
|
|
60
68
|
case IceCandidate::TcpCandidateType::PASSIVE:
|
|
@@ -490,11 +490,15 @@ namespace RTC
|
|
|
490
490
|
|
|
491
491
|
inline bool PipeTransport::IsConnected() const
|
|
492
492
|
{
|
|
493
|
+
MS_TRACE();
|
|
494
|
+
|
|
493
495
|
return this->tuple ? true : false;
|
|
494
496
|
}
|
|
495
497
|
|
|
496
498
|
inline bool PipeTransport::HasSrtp() const
|
|
497
499
|
{
|
|
500
|
+
MS_TRACE();
|
|
501
|
+
|
|
498
502
|
return !this->srtpKey.empty();
|
|
499
503
|
}
|
|
500
504
|
|
|
@@ -791,16 +791,22 @@ namespace RTC
|
|
|
791
791
|
|
|
792
792
|
inline bool PlainTransport::IsConnected() const
|
|
793
793
|
{
|
|
794
|
+
MS_TRACE();
|
|
795
|
+
|
|
794
796
|
return this->tuple ? true : false;
|
|
795
797
|
}
|
|
796
798
|
|
|
797
799
|
inline bool PlainTransport::HasSrtp() const
|
|
798
800
|
{
|
|
801
|
+
MS_TRACE();
|
|
802
|
+
|
|
799
803
|
return !this->srtpKey.empty();
|
|
800
804
|
}
|
|
801
805
|
|
|
802
806
|
inline bool PlainTransport::IsSrtpReady() const
|
|
803
807
|
{
|
|
808
|
+
MS_TRACE();
|
|
809
|
+
|
|
804
810
|
return HasSrtp() && this->srtpSendSession && this->srtpRecvSession;
|
|
805
811
|
}
|
|
806
812
|
|
|
@@ -1222,6 +1228,8 @@ namespace RTC
|
|
|
1222
1228
|
|
|
1223
1229
|
inline void PlainTransport::EmitTuple() const
|
|
1224
1230
|
{
|
|
1231
|
+
MS_TRACE();
|
|
1232
|
+
|
|
1225
1233
|
auto tuple = this->tuple->FillBuffer(this->shared->GetChannelNotifier()->GetBufferBuilder());
|
|
1226
1234
|
auto notification = FBS::PlainTransport::CreateTupleNotification(
|
|
1227
1235
|
this->shared->GetChannelNotifier()->GetBufferBuilder(), tuple);
|
|
@@ -1235,6 +1243,8 @@ namespace RTC
|
|
|
1235
1243
|
|
|
1236
1244
|
inline void PlainTransport::EmitRtcpTuple() const
|
|
1237
1245
|
{
|
|
1246
|
+
MS_TRACE();
|
|
1247
|
+
|
|
1238
1248
|
auto rtcpTuple =
|
|
1239
1249
|
this->rtcpTuple->FillBuffer(this->shared->GetChannelNotifier()->GetBufferBuilder());
|
|
1240
1250
|
auto notification = FBS::PlainTransport::CreateRtcpTupleNotification(
|
|
@@ -15,16 +15,22 @@
|
|
|
15
15
|
// ensuring that we call `delete xxx` with same type as `new xxx` before.
|
|
16
16
|
static inline void onCloseUdp(uv_handle_t* handle)
|
|
17
17
|
{
|
|
18
|
+
MS_TRACE();
|
|
19
|
+
|
|
18
20
|
delete reinterpret_cast<uv_udp_t*>(handle);
|
|
19
21
|
}
|
|
20
22
|
|
|
21
23
|
static inline void onCloseTcp(uv_handle_t* handle)
|
|
22
24
|
{
|
|
25
|
+
MS_TRACE();
|
|
26
|
+
|
|
23
27
|
delete reinterpret_cast<uv_tcp_t*>(handle);
|
|
24
28
|
}
|
|
25
29
|
|
|
26
30
|
inline static void onFakeConnection(uv_stream_t* /*handle*/, int /*status*/)
|
|
27
31
|
{
|
|
32
|
+
MS_TRACE();
|
|
33
|
+
|
|
28
34
|
// Do nothing.
|
|
29
35
|
}
|
|
30
36
|
|
|
@@ -641,6 +647,8 @@ namespace RTC
|
|
|
641
647
|
|
|
642
648
|
void PortManager::Dump(int indentation) const
|
|
643
649
|
{
|
|
650
|
+
MS_TRACE();
|
|
651
|
+
|
|
644
652
|
MS_DUMP_CLEAN(indentation, "<PortManager>");
|
|
645
653
|
|
|
646
654
|
for (const auto& kv : PortManager::mapPortRanges)
|
|
@@ -1642,6 +1642,8 @@ namespace RTC
|
|
|
1642
1642
|
inline void Producer::OnRtpStreamSendRtcpPacket(
|
|
1643
1643
|
RTC::RTP::RtpStreamRecv* /*rtpStream*/, RTC::RTCP::Packet* packet)
|
|
1644
1644
|
{
|
|
1645
|
+
MS_TRACE();
|
|
1646
|
+
|
|
1645
1647
|
switch (packet->GetType())
|
|
1646
1648
|
{
|
|
1647
1649
|
case RTC::RTCP::Type::PSFB:
|
|
@@ -1698,6 +1700,8 @@ namespace RTC
|
|
|
1698
1700
|
inline void Producer::OnRtpStreamNeedWorstRemoteFractionLost(
|
|
1699
1701
|
RTC::RTP::RtpStreamRecv* rtpStream, uint8_t& worstRemoteFractionLost)
|
|
1700
1702
|
{
|
|
1703
|
+
MS_TRACE();
|
|
1704
|
+
|
|
1701
1705
|
auto mappedSsrc = this->mapRtpStreamMappedSsrc.at(rtpStream);
|
|
1702
1706
|
|
|
1703
1707
|
// Notify the listener.
|
|
@@ -13,6 +13,8 @@ namespace RTC
|
|
|
13
13
|
|
|
14
14
|
size_t CompoundPacket::GetSize()
|
|
15
15
|
{
|
|
16
|
+
MS_TRACE();
|
|
17
|
+
|
|
16
18
|
size_t size{ 0 };
|
|
17
19
|
|
|
18
20
|
if (this->senderReportPacket.GetCount() > 0u)
|
|
@@ -77,6 +79,8 @@ namespace RTC
|
|
|
77
79
|
SdesChunk* sdesChunk,
|
|
78
80
|
DelaySinceLastRr::SsrcInfo* delaySinceLastRrSsrcInfo)
|
|
79
81
|
{
|
|
82
|
+
MS_TRACE();
|
|
83
|
+
|
|
80
84
|
// Add the items into the packet.
|
|
81
85
|
|
|
82
86
|
if (senderReport)
|
|
@@ -136,6 +140,8 @@ namespace RTC
|
|
|
136
140
|
std::vector<SdesChunk*>& sdesChunks,
|
|
137
141
|
std::vector<DelaySinceLastRr::SsrcInfo*>& delaySinceLastRrSsrcInfos)
|
|
138
142
|
{
|
|
143
|
+
MS_TRACE();
|
|
144
|
+
|
|
139
145
|
// Add the items into the packet.
|
|
140
146
|
|
|
141
147
|
for (auto* report : senderReports)
|
|
@@ -194,6 +200,8 @@ namespace RTC
|
|
|
194
200
|
std::vector<ReceiverReport*>& receiverReports,
|
|
195
201
|
ReceiverReferenceTime* receiverReferenceTimeReport)
|
|
196
202
|
{
|
|
203
|
+
MS_TRACE();
|
|
204
|
+
|
|
197
205
|
// Add the items into the packet.
|
|
198
206
|
|
|
199
207
|
for (auto* report : receiverReports)
|
|
@@ -28,6 +28,8 @@ namespace RTC
|
|
|
28
28
|
template<typename T>
|
|
29
29
|
const std::string& FeedbackPacket<T>::MessageTypeToString(typename T::MessageType type)
|
|
30
30
|
{
|
|
31
|
+
MS_TRACE();
|
|
32
|
+
|
|
31
33
|
static const std::string Unknown("UNKNOWN");
|
|
32
34
|
|
|
33
35
|
auto it = FeedbackPacket<T>::MessageType2String.find(type);
|
|
@@ -46,6 +48,8 @@ namespace RTC
|
|
|
46
48
|
FeedbackPacket<T>::FeedbackPacket(CommonHeader* commonHeader)
|
|
47
49
|
: Packet(commonHeader), messageType(typename T::MessageType(commonHeader->count))
|
|
48
50
|
{
|
|
51
|
+
MS_TRACE();
|
|
52
|
+
|
|
49
53
|
this->header = reinterpret_cast<Header*>(
|
|
50
54
|
reinterpret_cast<uint8_t*>(commonHeader) + Packet::CommonHeaderSize);
|
|
51
55
|
}
|
|
@@ -55,6 +59,8 @@ namespace RTC
|
|
|
55
59
|
typename T::MessageType messageType, uint32_t senderSsrc, uint32_t mediaSsrc)
|
|
56
60
|
: Packet(rtcpType), messageType(messageType)
|
|
57
61
|
{
|
|
62
|
+
MS_TRACE();
|
|
63
|
+
|
|
58
64
|
this->raw = new uint8_t[HeaderSize];
|
|
59
65
|
this->header = reinterpret_cast<Header*>(this->raw);
|
|
60
66
|
this->header->senderSsrc = htonl(senderSsrc);
|
|
@@ -64,6 +70,8 @@ namespace RTC
|
|
|
64
70
|
template<typename T>
|
|
65
71
|
FeedbackPacket<T>::~FeedbackPacket()
|
|
66
72
|
{
|
|
73
|
+
MS_TRACE();
|
|
74
|
+
|
|
67
75
|
delete[] this->raw;
|
|
68
76
|
}
|
|
69
77
|
|
|
@@ -42,6 +42,8 @@ namespace RTC
|
|
|
42
42
|
FeedbackPsRembPacket::FeedbackPsRembPacket(CommonHeader* commonHeader, size_t availableLen)
|
|
43
43
|
: FeedbackPsAfbPacket(commonHeader, FeedbackPsAfbPacket::Application::REMB)
|
|
44
44
|
{
|
|
45
|
+
MS_TRACE();
|
|
46
|
+
|
|
45
47
|
const size_t len = static_cast<size_t>(ntohs(commonHeader->length) + 1) * 4;
|
|
46
48
|
|
|
47
49
|
if (len > availableLen)
|
|
@@ -13,6 +13,8 @@ namespace RTC
|
|
|
13
13
|
FeedbackPsVbcmItem::FeedbackPsVbcmItem(
|
|
14
14
|
uint32_t ssrc, uint8_t sequenceNumber, uint8_t payloadType, uint16_t length, uint8_t* value)
|
|
15
15
|
{
|
|
16
|
+
MS_TRACE();
|
|
17
|
+
|
|
16
18
|
this->raw = new uint8_t[8 + length];
|
|
17
19
|
this->header = reinterpret_cast<Header*>(this->raw);
|
|
18
20
|
|
|
@@ -14,11 +14,14 @@ namespace RTC
|
|
|
14
14
|
FeedbackRtpTmmbItem<T>::FeedbackRtpTmmbItem(const Header* header)
|
|
15
15
|
: FeedbackRtpTmmbItem<T>(reinterpret_cast<const uint8_t*>(header))
|
|
16
16
|
{
|
|
17
|
+
MS_TRACE();
|
|
17
18
|
}
|
|
18
19
|
|
|
19
20
|
template<typename T>
|
|
20
21
|
FeedbackRtpTmmbItem<T>::FeedbackRtpTmmbItem(const uint8_t* data)
|
|
21
22
|
{
|
|
23
|
+
MS_TRACE();
|
|
24
|
+
|
|
22
25
|
this->ssrc = Utils::Byte::Get4Bytes(data, 0);
|
|
23
26
|
|
|
24
27
|
// Read the 4 bytes block.
|
|
@@ -42,6 +45,8 @@ namespace RTC
|
|
|
42
45
|
template<typename T>
|
|
43
46
|
size_t FeedbackRtpTmmbItem<T>::Serialize(uint8_t* buffer)
|
|
44
47
|
{
|
|
48
|
+
MS_TRACE();
|
|
49
|
+
|
|
45
50
|
static constexpr uint32_t MaxMantissa{ 0x1ffff }; // 17 bits.
|
|
46
51
|
|
|
47
52
|
uint64_t mantissa = this->bitrate;
|
|
@@ -556,6 +556,8 @@ namespace RTC
|
|
|
556
556
|
|
|
557
557
|
void FeedbackRtpTransportPacket::CreateRunLengthChunk(Status status, uint16_t count)
|
|
558
558
|
{
|
|
559
|
+
MS_TRACE();
|
|
560
|
+
|
|
559
561
|
auto* chunk = new RunLengthChunk(status, count);
|
|
560
562
|
|
|
561
563
|
this->chunks.push_back(chunk);
|
|
@@ -565,6 +567,8 @@ namespace RTC
|
|
|
565
567
|
|
|
566
568
|
void FeedbackRtpTransportPacket::CreateOneBitVectorChunk(std::vector<Status>& statuses)
|
|
567
569
|
{
|
|
570
|
+
MS_TRACE();
|
|
571
|
+
|
|
568
572
|
auto* chunk = new OneBitVectorChunk(statuses);
|
|
569
573
|
|
|
570
574
|
this->chunks.push_back(chunk);
|
|
@@ -574,6 +578,8 @@ namespace RTC
|
|
|
574
578
|
|
|
575
579
|
void FeedbackRtpTransportPacket::CreateTwoBitVectorChunk(std::vector<Status>& statuses)
|
|
576
580
|
{
|
|
581
|
+
MS_TRACE();
|
|
582
|
+
|
|
577
583
|
auto* chunk = new TwoBitVectorChunk(statuses);
|
|
578
584
|
|
|
579
585
|
this->chunks.push_back(chunk);
|
|
@@ -583,6 +589,8 @@ namespace RTC
|
|
|
583
589
|
|
|
584
590
|
void FeedbackRtpTransportPacket::AddPendingChunks()
|
|
585
591
|
{
|
|
592
|
+
MS_TRACE();
|
|
593
|
+
|
|
586
594
|
// No pending status packets.
|
|
587
595
|
if (this->context.statuses.empty())
|
|
588
596
|
{
|
|
@@ -110,6 +110,8 @@ namespace RTC
|
|
|
110
110
|
|
|
111
111
|
void AV1::PayloadDescriptor::Encoder::Encode(PayloadDescriptor* payloadDescriptor) const
|
|
112
112
|
{
|
|
113
|
+
MS_TRACE();
|
|
114
|
+
|
|
113
115
|
payloadDescriptor->UpdateActiveDecodeTargets(
|
|
114
116
|
this->encodingData.maxSpatialLayer, this->encodingData.maxTemporalLayer);
|
|
115
117
|
}
|
|
@@ -100,11 +100,15 @@ namespace RTC
|
|
|
100
100
|
|
|
101
101
|
uint8_t DependencyDescriptor::GetSpatialLayer() const
|
|
102
102
|
{
|
|
103
|
+
MS_TRACE();
|
|
104
|
+
|
|
103
105
|
return this->templateDependencyStructure->templateLayers[this->templateId].spatialLayer;
|
|
104
106
|
}
|
|
105
107
|
|
|
106
108
|
uint8_t DependencyDescriptor::GetTemporalLayer() const
|
|
107
109
|
{
|
|
110
|
+
MS_TRACE();
|
|
111
|
+
|
|
108
112
|
return this->templateDependencyStructure->templateLayers[this->templateId].temporalLayer;
|
|
109
113
|
}
|
|
110
114
|
|
|
@@ -188,6 +192,8 @@ namespace RTC
|
|
|
188
192
|
|
|
189
193
|
void DependencyDescriptor::UpdateListener(DependencyDescriptor::Listener* listener)
|
|
190
194
|
{
|
|
195
|
+
MS_TRACE();
|
|
196
|
+
|
|
191
197
|
this->listener = listener;
|
|
192
198
|
}
|
|
193
199
|
|
|
@@ -264,6 +264,8 @@ namespace RTC
|
|
|
264
264
|
void VP8::PayloadDescriptor::Encoder::Encode(
|
|
265
265
|
uint8_t* data, const PayloadDescriptor* payloadDescriptor) const
|
|
266
266
|
{
|
|
267
|
+
MS_TRACE();
|
|
268
|
+
|
|
267
269
|
payloadDescriptor->Encode(
|
|
268
270
|
data, this->encodingData.pictureId, this->encodingData.tl0PictureIndex);
|
|
269
271
|
}
|