mediasoup 3.11.24 → 3.11.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/node/lib/Worker.js +1 -1
- package/node/lib/index.d.ts +1 -1
- package/node/lib/index.js +1 -1
- package/package.json +6 -6
- package/worker/Makefile +1 -1
- package/worker/deps/libwebrtc/libwebrtc/modules/congestion_controller/goog_cc/alr_detector.cc +2 -2
- package/worker/include/RTC/RtpStream.hpp +1 -2
- package/worker/meson.build +2 -2
- package/worker/src/RTC/NackGenerator.cpp +37 -3
- package/worker/src/RTC/RtpStream.cpp +1 -1
- package/worker/src/RTC/RtpStreamRecv.cpp +3 -2
- package/worker/src/RTC/RtpStreamSend.cpp +4 -3
- package/worker/subprojects/abseil-cpp.wrap +8 -8
- package/worker/subprojects/libuv.wrap +5 -4
- package/worker/subprojects/openssl.wrap +9 -8
- package/worker/include/FBS/activeSpeakerObserver_generated.h +0 -157
- package/worker/include/FBS/audioLevelObserver_generated.h +0 -272
- package/worker/include/FBS/common_generated.h +0 -463
- package/worker/include/FBS/consumer_generated.h +0 -2390
- package/worker/include/FBS/dataConsumer_generated.h +0 -953
- package/worker/include/FBS/dataProducer_generated.h +0 -662
- package/worker/include/FBS/directTransport_generated.h +0 -298
- package/worker/include/FBS/log_generated.h +0 -95
- package/worker/include/FBS/message_generated.h +0 -362
- package/worker/include/FBS/notification_generated.h +0 -867
- package/worker/include/FBS/pipeTransport_generated.h +0 -503
- package/worker/include/FBS/plainTransport_generated.h +0 -785
- package/worker/include/FBS/producer_generated.h +0 -1331
- package/worker/include/FBS/request_generated.h +0 -1368
- package/worker/include/FBS/response_generated.h +0 -859
- package/worker/include/FBS/router_generated.h +0 -925
- package/worker/include/FBS/rtpObserver_generated.h +0 -168
- package/worker/include/FBS/rtpParameters_generated.h +0 -1853
- package/worker/include/FBS/rtpStream_generated.h +0 -1273
- package/worker/include/FBS/rtxStream_generated.h +0 -237
- package/worker/include/FBS/sctpAssociation_generated.h +0 -85
- package/worker/include/FBS/sctpParameters_generated.h +0 -328
- package/worker/include/FBS/transport_generated.h +0 -3558
- package/worker/include/FBS/webRtcServer_generated.h +0 -571
- package/worker/include/FBS/webRtcTransport_generated.h +0 -1722
- package/worker/include/FBS/worker_generated.h +0 -879
package/node/lib/Worker.js
CHANGED
|
@@ -90,7 +90,7 @@ class Worker extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
90
90
|
// options
|
|
91
91
|
{
|
|
92
92
|
env: {
|
|
93
|
-
MEDIASOUP_VERSION: '3.11.
|
|
93
|
+
MEDIASOUP_VERSION: '3.11.26',
|
|
94
94
|
// Let the worker process inherit all environment variables, useful
|
|
95
95
|
// if a custom and not in the path GCC is used so the user can set
|
|
96
96
|
// LD_LIBRARY_PATH environment variable for runtime.
|
package/node/lib/index.d.ts
CHANGED
package/node/lib/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mediasoup",
|
|
3
|
-
"version": "3.11.
|
|
3
|
+
"version": "3.11.26",
|
|
4
4
|
"description": "Cutting Edge WebRTC Video Conferencing",
|
|
5
5
|
"contributors": [
|
|
6
6
|
"Iñaki Baz Castillo <ibc@aliax.net> (https://inakibaz.me)",
|
|
@@ -92,19 +92,19 @@
|
|
|
92
92
|
},
|
|
93
93
|
"devDependencies": {
|
|
94
94
|
"@types/debug": "^4.1.7",
|
|
95
|
-
"@types/jest": "^29.5.
|
|
95
|
+
"@types/jest": "^29.5.1",
|
|
96
96
|
"@types/node": "^18.15.11",
|
|
97
97
|
"@types/uuid": "^9.0.1",
|
|
98
|
-
"@typescript-eslint/eslint-plugin": "^5.59.
|
|
99
|
-
"@typescript-eslint/parser": "^5.59.
|
|
100
|
-
"eslint": "^8.
|
|
98
|
+
"@typescript-eslint/eslint-plugin": "^5.59.6",
|
|
99
|
+
"@typescript-eslint/parser": "^5.59.6",
|
|
100
|
+
"eslint": "^8.40.0",
|
|
101
101
|
"eslint-plugin-jest": "^27.2.1",
|
|
102
102
|
"jest": "^29.5.0",
|
|
103
103
|
"open-cli": "^7.2.0",
|
|
104
104
|
"pick-port": "^1.0.1",
|
|
105
105
|
"sctp": "^1.0.0",
|
|
106
106
|
"ts-jest": "^29.1.0",
|
|
107
|
-
"tsc-watch": "^6.0.
|
|
107
|
+
"tsc-watch": "^6.0.4",
|
|
108
108
|
"typescript": "^5.0.4"
|
|
109
109
|
}
|
|
110
110
|
}
|
package/worker/Makefile
CHANGED
|
@@ -20,7 +20,7 @@ PIP_DIR = $(MEDIASOUP_OUT_DIR)/pip
|
|
|
20
20
|
INSTALL_DIR ?= $(MEDIASOUP_OUT_DIR)/$(MEDIASOUP_BUILDTYPE)
|
|
21
21
|
BUILD_DIR ?= $(INSTALL_DIR)/build
|
|
22
22
|
MESON ?= $(PIP_DIR)/bin/meson
|
|
23
|
-
MESON_VERSION ?=
|
|
23
|
+
MESON_VERSION ?= 1.1.0
|
|
24
24
|
# `MESON_ARGS` can be used to provide extra configuration parameters to Meson,
|
|
25
25
|
# such as adding defines or changing optimization options. For instance, use
|
|
26
26
|
# `MESON_ARGS="-Dms_log_trace=true -Dms_log_file_line=true" npm i` to compile
|
package/worker/deps/libwebrtc/libwebrtc/modules/congestion_controller/goog_cc/alr_detector.cc
CHANGED
|
@@ -116,11 +116,11 @@ absl::optional<int64_t> AlrDetector::GetApplicationLimitedRegionStartTime()
|
|
|
116
116
|
|
|
117
117
|
absl::optional<int64_t> AlrDetector::GetApplicationLimitedRegionStartTime(
|
|
118
118
|
int64_t at_time_ms) {
|
|
119
|
-
if (!alr_started_time_ms_ &&
|
|
119
|
+
if (!alr_started_time_ms_ && last_send_time_ms_.has_value()) {
|
|
120
120
|
int64_t delta_time_ms = at_time_ms - *last_send_time_ms_;
|
|
121
121
|
// If ALR is stopped and we haven't sent any packets for a while, force start.
|
|
122
122
|
if (delta_time_ms > alr_timeout_) {
|
|
123
|
-
MS_WARN_TAG(bwe, "large delta_time_ms: %
|
|
123
|
+
MS_WARN_TAG(bwe, "large delta_time_ms: %" PRIi64 ", forcing alr state change",
|
|
124
124
|
delta_time_ms);
|
|
125
125
|
alr_started_time_ms_.emplace(at_time_ms);
|
|
126
126
|
}
|
|
@@ -214,8 +214,7 @@ namespace RTC
|
|
|
214
214
|
uint64_t lastSenderReportNtpMs{ 0u };
|
|
215
215
|
// RTP timestamp in last Sender Report.
|
|
216
216
|
uint32_t lastSenderReportTs{ 0u };
|
|
217
|
-
float rtt{ 0 };
|
|
218
|
-
bool hasRtt{ false };
|
|
217
|
+
float rtt{ 0.0f };
|
|
219
218
|
// Instance of RtxStream.
|
|
220
219
|
RTC::RtxStream* rtxStream{ nullptr };
|
|
221
220
|
|
package/worker/meson.build
CHANGED
|
@@ -51,14 +51,18 @@ namespace RTC
|
|
|
51
51
|
this->lastSeq = seq;
|
|
52
52
|
|
|
53
53
|
if (isKeyFrame)
|
|
54
|
+
{
|
|
54
55
|
this->keyFrameList.insert(seq);
|
|
56
|
+
}
|
|
55
57
|
|
|
56
58
|
return false;
|
|
57
59
|
}
|
|
58
60
|
|
|
59
61
|
// Obviously never nacked, so ignore.
|
|
60
62
|
if (seq == this->lastSeq)
|
|
63
|
+
{
|
|
61
64
|
return false;
|
|
65
|
+
}
|
|
62
66
|
|
|
63
67
|
// May be an out of order packet, or already handled retransmitted packet,
|
|
64
68
|
// or a retransmitted packet.
|
|
@@ -80,9 +84,13 @@ namespace RTC
|
|
|
80
84
|
this->nackList.erase(it);
|
|
81
85
|
|
|
82
86
|
if (retries != 0)
|
|
87
|
+
{
|
|
83
88
|
return true;
|
|
89
|
+
}
|
|
84
90
|
else
|
|
91
|
+
{
|
|
85
92
|
return false;
|
|
93
|
+
}
|
|
86
94
|
}
|
|
87
95
|
|
|
88
96
|
// Out of order packet or already handled NACKed packet.
|
|
@@ -101,14 +109,18 @@ namespace RTC
|
|
|
101
109
|
// newer than the latest seq seen.
|
|
102
110
|
|
|
103
111
|
if (isKeyFrame)
|
|
112
|
+
{
|
|
104
113
|
this->keyFrameList.insert(seq);
|
|
114
|
+
}
|
|
105
115
|
|
|
106
116
|
// Remove old keyframes.
|
|
107
117
|
{
|
|
108
118
|
auto it = this->keyFrameList.lower_bound(seq - MaxPacketAge);
|
|
109
119
|
|
|
110
120
|
if (it != this->keyFrameList.begin())
|
|
121
|
+
{
|
|
111
122
|
this->keyFrameList.erase(this->keyFrameList.begin(), it);
|
|
123
|
+
}
|
|
112
124
|
}
|
|
113
125
|
|
|
114
126
|
if (isRecovered)
|
|
@@ -119,7 +131,9 @@ namespace RTC
|
|
|
119
131
|
auto it = this->recoveredList.lower_bound(seq - MaxPacketAge);
|
|
120
132
|
|
|
121
133
|
if (it != this->recoveredList.begin())
|
|
134
|
+
{
|
|
122
135
|
this->recoveredList.erase(this->recoveredList.begin(), it);
|
|
136
|
+
}
|
|
123
137
|
|
|
124
138
|
// Do not let a packet pass if it's newer than last seen seq and came via
|
|
125
139
|
// RTX.
|
|
@@ -134,12 +148,16 @@ namespace RTC
|
|
|
134
148
|
std::vector<uint16_t> nackBatch = GetNackBatch(NackFilter::SEQ);
|
|
135
149
|
|
|
136
150
|
if (!nackBatch.empty())
|
|
151
|
+
{
|
|
137
152
|
this->listener->OnNackGeneratorNackRequired(nackBatch);
|
|
153
|
+
}
|
|
138
154
|
|
|
139
155
|
// This is important. Otherwise the running timer (filter:TIME) would be
|
|
140
156
|
// interrupted and NACKs would never been sent more than once for each seq.
|
|
141
157
|
if (!this->timer->IsActive())
|
|
158
|
+
{
|
|
142
159
|
MayRunTimer();
|
|
160
|
+
}
|
|
143
161
|
|
|
144
162
|
return false;
|
|
145
163
|
}
|
|
@@ -187,7 +205,9 @@ namespace RTC
|
|
|
187
205
|
|
|
188
206
|
// Do not send NACK for packets that are already recovered by RTX.
|
|
189
207
|
if (this->recoveredList.find(seq) != this->recoveredList.end())
|
|
208
|
+
{
|
|
190
209
|
continue;
|
|
210
|
+
}
|
|
191
211
|
|
|
192
212
|
this->nackList.emplace(std::make_pair(
|
|
193
213
|
seq,
|
|
@@ -277,7 +297,10 @@ namespace RTC
|
|
|
277
297
|
continue;
|
|
278
298
|
}
|
|
279
299
|
|
|
280
|
-
if (
|
|
300
|
+
if (
|
|
301
|
+
filter == NackFilter::TIME &&
|
|
302
|
+
(nackInfo.sentAtMs == 0 ||
|
|
303
|
+
nowMs - nackInfo.sentAtMs >= (this->rtt > 0u ? this->rtt : DefaultRtt)))
|
|
281
304
|
{
|
|
282
305
|
nackBatch.emplace_back(seq);
|
|
283
306
|
nackInfo.retries++;
|
|
@@ -313,9 +336,13 @@ namespace RTC
|
|
|
313
336
|
seqsStream << nackBatch.back();
|
|
314
337
|
|
|
315
338
|
if (filter == NackFilter::SEQ)
|
|
339
|
+
{
|
|
316
340
|
MS_DEBUG_DEV("[filter:SEQ, asking seqs:%s]", seqsStream.str().c_str());
|
|
341
|
+
}
|
|
317
342
|
else
|
|
343
|
+
{
|
|
318
344
|
MS_DEBUG_DEV("[filter:TIME, asking seqs:%s]", seqsStream.str().c_str());
|
|
345
|
+
}
|
|
319
346
|
}
|
|
320
347
|
#endif
|
|
321
348
|
|
|
@@ -329,15 +356,20 @@ namespace RTC
|
|
|
329
356
|
this->nackList.clear();
|
|
330
357
|
this->keyFrameList.clear();
|
|
331
358
|
this->recoveredList.clear();
|
|
332
|
-
|
|
333
359
|
this->started = false;
|
|
334
360
|
this->lastSeq = 0u;
|
|
335
361
|
}
|
|
336
362
|
|
|
337
363
|
inline void NackGenerator::MayRunTimer() const
|
|
338
364
|
{
|
|
339
|
-
if (
|
|
365
|
+
if (this->nackList.empty())
|
|
366
|
+
{
|
|
367
|
+
this->timer->Stop();
|
|
368
|
+
}
|
|
369
|
+
else
|
|
370
|
+
{
|
|
340
371
|
this->timer->Start(TimerInterval);
|
|
372
|
+
}
|
|
341
373
|
}
|
|
342
374
|
|
|
343
375
|
inline void NackGenerator::OnTimer(Timer* /*timer*/)
|
|
@@ -347,7 +379,9 @@ namespace RTC
|
|
|
347
379
|
std::vector<uint16_t> nackBatch = GetNackBatch(NackFilter::TIME);
|
|
348
380
|
|
|
349
381
|
if (!nackBatch.empty())
|
|
382
|
+
{
|
|
350
383
|
this->listener->OnNackGeneratorNackRequired(nackBatch);
|
|
384
|
+
}
|
|
351
385
|
|
|
352
386
|
MayRunTimer();
|
|
353
387
|
}
|
|
@@ -608,9 +608,10 @@ namespace RTC
|
|
|
608
608
|
this->rtt = static_cast<float>(rtt >> 16) * 1000;
|
|
609
609
|
this->rtt += (static_cast<float>(rtt & 0x0000FFFF) / 65536) * 1000;
|
|
610
610
|
|
|
611
|
-
|
|
611
|
+
// Avoid negative RTT value since it doesn't make sense.
|
|
612
|
+
if (this->rtt <= 0.0f)
|
|
612
613
|
{
|
|
613
|
-
this->
|
|
614
|
+
this->rtt = 0.0f;
|
|
614
615
|
}
|
|
615
616
|
|
|
616
617
|
// Tell it to the NackGenerator.
|
|
@@ -223,9 +223,10 @@ namespace RTC
|
|
|
223
223
|
this->rtt = static_cast<float>(rtt >> 16) * 1000;
|
|
224
224
|
this->rtt += (static_cast<float>(rtt & 0x0000FFFF) / 65536) * 1000;
|
|
225
225
|
|
|
226
|
-
|
|
226
|
+
// Avoid negative RTT value since it doesn't make sense.
|
|
227
|
+
if (this->rtt <= 0.0f)
|
|
227
228
|
{
|
|
228
|
-
this->
|
|
229
|
+
this->rtt = 0.0f;
|
|
229
230
|
}
|
|
230
231
|
|
|
231
232
|
this->packetsLost = report->GetTotalLost();
|
|
@@ -399,7 +400,7 @@ namespace RTC
|
|
|
399
400
|
|
|
400
401
|
// Look for each requested packet.
|
|
401
402
|
const uint64_t nowMs = DepLibUV::GetTimeMs();
|
|
402
|
-
const uint16_t rtt = (this->rtt
|
|
403
|
+
const uint16_t rtt = (this->rtt > 0.0f ? this->rtt : DefaultRtt);
|
|
403
404
|
uint16_t currentSeq = seq;
|
|
404
405
|
bool requested{ true };
|
|
405
406
|
size_t containerIdx{ 0 };
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
[wrap-file]
|
|
2
|
-
directory = abseil-cpp-
|
|
3
|
-
source_url = https://github.com/abseil/abseil-cpp/archive/
|
|
4
|
-
source_filename = abseil-cpp-
|
|
5
|
-
source_hash =
|
|
6
|
-
patch_filename = abseil-
|
|
7
|
-
patch_url = https://wrapdb.mesonbuild.com/v2/abseil-
|
|
8
|
-
patch_hash =
|
|
2
|
+
directory = abseil-cpp-20220623.0
|
|
3
|
+
source_url = https://github.com/abseil/abseil-cpp/archive/20220623.0.tar.gz
|
|
4
|
+
source_filename = abseil-cpp-20220623.0.tar.gz
|
|
5
|
+
source_hash = 4208129b49006089ba1d6710845a45e31c59b0ab6bff9e5788a87f55c5abd602
|
|
6
|
+
patch_filename = abseil-cpp_20220623.0-2_patch.zip
|
|
7
|
+
patch_url = https://wrapdb.mesonbuild.com/v2/abseil-cpp_20220623.0-2/get_patch
|
|
8
|
+
patch_hash = d19cb16610d9310658a815ebcd87a9e2966aafbd57964341c0d1a3a3778c03b6
|
|
9
|
+
wrapdb_version = 20220623.0-2
|
|
9
10
|
|
|
10
11
|
[provide]
|
|
11
12
|
absl_base = absl_base_dep
|
|
@@ -20,4 +21,3 @@ absl_strings = absl_strings_dep
|
|
|
20
21
|
absl_synchronization = absl_synchronization_dep
|
|
21
22
|
absl_time = absl_time_dep
|
|
22
23
|
absl_types = absl_types_dep
|
|
23
|
-
|
|
@@ -3,10 +3,11 @@ directory = libuv-v1.44.2
|
|
|
3
3
|
source_url = https://dist.libuv.org/dist/v1.44.2/libuv-v1.44.2.tar.gz
|
|
4
4
|
source_filename = libuv-v1.44.2.tar.gz
|
|
5
5
|
source_hash = ccfcdc968c55673c6526d8270a9c8655a806ea92468afcbcabc2b16040f03cb4
|
|
6
|
-
patch_filename = libuv_1.44.2-
|
|
7
|
-
patch_url = https://wrapdb.mesonbuild.com/v2/libuv_1.44.2-
|
|
8
|
-
patch_hash =
|
|
9
|
-
|
|
6
|
+
patch_filename = libuv_1.44.2-2_patch.zip
|
|
7
|
+
patch_url = https://wrapdb.mesonbuild.com/v2/libuv_1.44.2-2/get_patch
|
|
8
|
+
patch_hash = 12a0850e1c925811f54bb022339d3105afaed8bc006b197351006c9c841f06ce
|
|
9
|
+
source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/libuv_1.44.2-2/libuv-v1.44.2.tar.gz
|
|
10
|
+
wrapdb_version = 1.44.2-2
|
|
10
11
|
|
|
11
12
|
[provide]
|
|
12
13
|
libuv = libuv_dep
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
[wrap-file]
|
|
2
|
-
directory = openssl-3.0.
|
|
3
|
-
source_url = https://www.openssl.org/source/openssl-3.0.
|
|
4
|
-
source_filename = openssl-3.0.
|
|
5
|
-
source_hash =
|
|
6
|
-
patch_filename = openssl_3.0.
|
|
7
|
-
patch_url = https://wrapdb.mesonbuild.com/v2/openssl_3.0.
|
|
8
|
-
patch_hash =
|
|
9
|
-
|
|
2
|
+
directory = openssl-3.0.8
|
|
3
|
+
source_url = https://www.openssl.org/source/openssl-3.0.8.tar.gz
|
|
4
|
+
source_filename = openssl-3.0.8.tar.gz
|
|
5
|
+
source_hash = 6c13d2bf38fdf31eac3ce2a347073673f5d63263398f1f69d0df4a41253e4b3e
|
|
6
|
+
patch_filename = openssl_3.0.8-1_patch.zip
|
|
7
|
+
patch_url = https://wrapdb.mesonbuild.com/v2/openssl_3.0.8-1/get_patch
|
|
8
|
+
patch_hash = 12d9c884174a91ccd1aa9230e9567c019f8a582ce46c98736f99a5200b4f2514
|
|
9
|
+
source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/openssl_3.0.8-1/openssl-3.0.8.tar.gz
|
|
10
|
+
wrapdb_version = 3.0.8-1
|
|
10
11
|
|
|
11
12
|
[provide]
|
|
12
13
|
libcrypto = libcrypto_dep
|
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
// automatically generated by the FlatBuffers compiler, do not modify
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
#ifndef FLATBUFFERS_GENERATED_ACTIVESPEAKEROBSERVER_FBS_ACTIVESPEAKEROBSERVER_H_
|
|
5
|
-
#define FLATBUFFERS_GENERATED_ACTIVESPEAKEROBSERVER_FBS_ACTIVESPEAKEROBSERVER_H_
|
|
6
|
-
|
|
7
|
-
#include "flatbuffers/flatbuffers.h"
|
|
8
|
-
|
|
9
|
-
// Ensure the included flatbuffers.h is the same version as when this file was
|
|
10
|
-
// generated, otherwise it may not be compatible.
|
|
11
|
-
static_assert(FLATBUFFERS_VERSION_MAJOR == 23 &&
|
|
12
|
-
FLATBUFFERS_VERSION_MINOR == 3 &&
|
|
13
|
-
FLATBUFFERS_VERSION_REVISION == 3,
|
|
14
|
-
"Non-compatible flatbuffers version included");
|
|
15
|
-
|
|
16
|
-
namespace FBS {
|
|
17
|
-
namespace ActiveSpeakerObserver {
|
|
18
|
-
|
|
19
|
-
struct ActiveSpeakerObserverOptions;
|
|
20
|
-
struct ActiveSpeakerObserverOptionsBuilder;
|
|
21
|
-
|
|
22
|
-
struct DominantSpeakerNotification;
|
|
23
|
-
struct DominantSpeakerNotificationBuilder;
|
|
24
|
-
|
|
25
|
-
inline const ::flatbuffers::TypeTable *ActiveSpeakerObserverOptionsTypeTable();
|
|
26
|
-
|
|
27
|
-
inline const ::flatbuffers::TypeTable *DominantSpeakerNotificationTypeTable();
|
|
28
|
-
|
|
29
|
-
struct ActiveSpeakerObserverOptions FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
|
|
30
|
-
typedef ActiveSpeakerObserverOptionsBuilder Builder;
|
|
31
|
-
static const ::flatbuffers::TypeTable *MiniReflectTypeTable() {
|
|
32
|
-
return ActiveSpeakerObserverOptionsTypeTable();
|
|
33
|
-
}
|
|
34
|
-
enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
|
|
35
|
-
VT_INTERVAL = 4
|
|
36
|
-
};
|
|
37
|
-
uint16_t interval() const {
|
|
38
|
-
return GetField<uint16_t>(VT_INTERVAL, 0);
|
|
39
|
-
}
|
|
40
|
-
bool Verify(::flatbuffers::Verifier &verifier) const {
|
|
41
|
-
return VerifyTableStart(verifier) &&
|
|
42
|
-
VerifyField<uint16_t>(verifier, VT_INTERVAL, 2) &&
|
|
43
|
-
verifier.EndTable();
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
struct ActiveSpeakerObserverOptionsBuilder {
|
|
48
|
-
typedef ActiveSpeakerObserverOptions Table;
|
|
49
|
-
::flatbuffers::FlatBufferBuilder &fbb_;
|
|
50
|
-
::flatbuffers::uoffset_t start_;
|
|
51
|
-
void add_interval(uint16_t interval) {
|
|
52
|
-
fbb_.AddElement<uint16_t>(ActiveSpeakerObserverOptions::VT_INTERVAL, interval, 0);
|
|
53
|
-
}
|
|
54
|
-
explicit ActiveSpeakerObserverOptionsBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
|
|
55
|
-
: fbb_(_fbb) {
|
|
56
|
-
start_ = fbb_.StartTable();
|
|
57
|
-
}
|
|
58
|
-
::flatbuffers::Offset<ActiveSpeakerObserverOptions> Finish() {
|
|
59
|
-
const auto end = fbb_.EndTable(start_);
|
|
60
|
-
auto o = ::flatbuffers::Offset<ActiveSpeakerObserverOptions>(end);
|
|
61
|
-
return o;
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
inline ::flatbuffers::Offset<ActiveSpeakerObserverOptions> CreateActiveSpeakerObserverOptions(
|
|
66
|
-
::flatbuffers::FlatBufferBuilder &_fbb,
|
|
67
|
-
uint16_t interval = 0) {
|
|
68
|
-
ActiveSpeakerObserverOptionsBuilder builder_(_fbb);
|
|
69
|
-
builder_.add_interval(interval);
|
|
70
|
-
return builder_.Finish();
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
struct DominantSpeakerNotification FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
|
|
74
|
-
typedef DominantSpeakerNotificationBuilder Builder;
|
|
75
|
-
static const ::flatbuffers::TypeTable *MiniReflectTypeTable() {
|
|
76
|
-
return DominantSpeakerNotificationTypeTable();
|
|
77
|
-
}
|
|
78
|
-
enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
|
|
79
|
-
VT_PRODUCERID = 4
|
|
80
|
-
};
|
|
81
|
-
const ::flatbuffers::String *producerId() const {
|
|
82
|
-
return GetPointer<const ::flatbuffers::String *>(VT_PRODUCERID);
|
|
83
|
-
}
|
|
84
|
-
bool Verify(::flatbuffers::Verifier &verifier) const {
|
|
85
|
-
return VerifyTableStart(verifier) &&
|
|
86
|
-
VerifyOffsetRequired(verifier, VT_PRODUCERID) &&
|
|
87
|
-
verifier.VerifyString(producerId()) &&
|
|
88
|
-
verifier.EndTable();
|
|
89
|
-
}
|
|
90
|
-
};
|
|
91
|
-
|
|
92
|
-
struct DominantSpeakerNotificationBuilder {
|
|
93
|
-
typedef DominantSpeakerNotification Table;
|
|
94
|
-
::flatbuffers::FlatBufferBuilder &fbb_;
|
|
95
|
-
::flatbuffers::uoffset_t start_;
|
|
96
|
-
void add_producerId(::flatbuffers::Offset<::flatbuffers::String> producerId) {
|
|
97
|
-
fbb_.AddOffset(DominantSpeakerNotification::VT_PRODUCERID, producerId);
|
|
98
|
-
}
|
|
99
|
-
explicit DominantSpeakerNotificationBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
|
|
100
|
-
: fbb_(_fbb) {
|
|
101
|
-
start_ = fbb_.StartTable();
|
|
102
|
-
}
|
|
103
|
-
::flatbuffers::Offset<DominantSpeakerNotification> Finish() {
|
|
104
|
-
const auto end = fbb_.EndTable(start_);
|
|
105
|
-
auto o = ::flatbuffers::Offset<DominantSpeakerNotification>(end);
|
|
106
|
-
fbb_.Required(o, DominantSpeakerNotification::VT_PRODUCERID);
|
|
107
|
-
return o;
|
|
108
|
-
}
|
|
109
|
-
};
|
|
110
|
-
|
|
111
|
-
inline ::flatbuffers::Offset<DominantSpeakerNotification> CreateDominantSpeakerNotification(
|
|
112
|
-
::flatbuffers::FlatBufferBuilder &_fbb,
|
|
113
|
-
::flatbuffers::Offset<::flatbuffers::String> producerId = 0) {
|
|
114
|
-
DominantSpeakerNotificationBuilder builder_(_fbb);
|
|
115
|
-
builder_.add_producerId(producerId);
|
|
116
|
-
return builder_.Finish();
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
inline ::flatbuffers::Offset<DominantSpeakerNotification> CreateDominantSpeakerNotificationDirect(
|
|
120
|
-
::flatbuffers::FlatBufferBuilder &_fbb,
|
|
121
|
-
const char *producerId = nullptr) {
|
|
122
|
-
auto producerId__ = producerId ? _fbb.CreateString(producerId) : 0;
|
|
123
|
-
return FBS::ActiveSpeakerObserver::CreateDominantSpeakerNotification(
|
|
124
|
-
_fbb,
|
|
125
|
-
producerId__);
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
inline const ::flatbuffers::TypeTable *ActiveSpeakerObserverOptionsTypeTable() {
|
|
129
|
-
static const ::flatbuffers::TypeCode type_codes[] = {
|
|
130
|
-
{ ::flatbuffers::ET_USHORT, 0, -1 }
|
|
131
|
-
};
|
|
132
|
-
static const char * const names[] = {
|
|
133
|
-
"interval"
|
|
134
|
-
};
|
|
135
|
-
static const ::flatbuffers::TypeTable tt = {
|
|
136
|
-
::flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, nullptr, names
|
|
137
|
-
};
|
|
138
|
-
return &tt;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
inline const ::flatbuffers::TypeTable *DominantSpeakerNotificationTypeTable() {
|
|
142
|
-
static const ::flatbuffers::TypeCode type_codes[] = {
|
|
143
|
-
{ ::flatbuffers::ET_STRING, 0, -1 }
|
|
144
|
-
};
|
|
145
|
-
static const char * const names[] = {
|
|
146
|
-
"producerId"
|
|
147
|
-
};
|
|
148
|
-
static const ::flatbuffers::TypeTable tt = {
|
|
149
|
-
::flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, nullptr, names
|
|
150
|
-
};
|
|
151
|
-
return &tt;
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
} // namespace ActiveSpeakerObserver
|
|
155
|
-
} // namespace FBS
|
|
156
|
-
|
|
157
|
-
#endif // FLATBUFFERS_GENERATED_ACTIVESPEAKEROBSERVER_FBS_ACTIVESPEAKEROBSERVER_H_
|