@wireapp/avs 10.0.5 → 10.0.7
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/dist/avs_core.js +1 -1
- package/dist/avs_pc.js +100 -41
- package/package.json +1 -1
package/dist/avs_pc.js
CHANGED
|
@@ -182,26 +182,34 @@ function replace_track(pc, newTrack) {
|
|
|
182
182
|
var senders = rtc.getSenders();
|
|
183
183
|
if (!senders)
|
|
184
184
|
return false;
|
|
185
|
-
|
|
186
|
-
var sender = senders_1[_i];
|
|
185
|
+
var _loop_1 = function (sender) {
|
|
187
186
|
if (!sender)
|
|
188
|
-
continue;
|
|
187
|
+
return "continue";
|
|
189
188
|
if (!sender.track)
|
|
190
|
-
continue;
|
|
189
|
+
return "continue";
|
|
191
190
|
if (sender.track.kind === newTrack.kind) {
|
|
192
191
|
var oldTrack = sender.track;
|
|
193
192
|
if (!oldTrack) {
|
|
194
193
|
pc_log(LOG_LEVEL_INFO, 'replace_track: oldtrack null');
|
|
195
194
|
}
|
|
196
195
|
else {
|
|
197
|
-
var
|
|
198
|
-
newTrack.enabled = enabled;
|
|
199
|
-
sender.replaceTrack(newTrack)
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
196
|
+
var enabled_1 = oldTrack.enabled;
|
|
197
|
+
// newTrack.enabled = enabled;
|
|
198
|
+
sender.replaceTrack(newTrack).then(function () {
|
|
199
|
+
if (!!sender && !!sender.track) {
|
|
200
|
+
sender.track.enabled = enabled_1;
|
|
201
|
+
pc_log(LOG_LEVEL_INFO, "replace_track: kind=".concat(newTrack.kind, " enabled=").concat(sender.track.enabled));
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
return { value: true };
|
|
203
205
|
}
|
|
204
206
|
}
|
|
207
|
+
};
|
|
208
|
+
for (var _i = 0, senders_1 = senders; _i < senders_1.length; _i++) {
|
|
209
|
+
var sender = senders_1[_i];
|
|
210
|
+
var state_1 = _loop_1(sender);
|
|
211
|
+
if (typeof state_1 === "object")
|
|
212
|
+
return state_1.value;
|
|
205
213
|
}
|
|
206
214
|
return false;
|
|
207
215
|
}
|
|
@@ -255,43 +263,24 @@ function update_tracks(pc, stream) {
|
|
|
255
263
|
pc_log(LOG_LEVEL_INFO, "update_tracks: adding track of kind=".concat(track.kind, ", id=").concat(track.id));
|
|
256
264
|
if (track.kind === 'video' && pc.conv_type !== CONV_TYPE_ONEONONE) {
|
|
257
265
|
var transceivers = rtc.getTransceivers();
|
|
258
|
-
var
|
|
259
|
-
if (trans.mid === 'video') {
|
|
266
|
+
var _loop_2 = function (trans) {
|
|
267
|
+
if (trans.mid === 'video' && !!trans.sender) {
|
|
260
268
|
pc_log(LOG_LEVEL_INFO, "update_tracks: adjust");
|
|
261
|
-
var
|
|
262
|
-
|
|
263
|
-
pc_log(LOG_LEVEL_INFO, "update_tracks: no params");
|
|
264
|
-
params.encodings = [];
|
|
265
|
-
}
|
|
266
|
-
var layerFound_1 = false;
|
|
267
|
-
params.encodings.forEach(function (coding) {
|
|
268
|
-
if (coding.rid === 'l') {
|
|
269
|
-
//@ts-ignore
|
|
270
|
-
coding.scalabilityMode = 'L1T1';
|
|
271
|
-
coding.scaleResolutionDownBy = 4;
|
|
272
|
-
coding.active = true;
|
|
273
|
-
layerFound_1 = true;
|
|
274
|
-
}
|
|
275
|
-
if (coding.rid === 'h') {
|
|
276
|
-
//@ts-ignore
|
|
277
|
-
coding.scalabilityMode = 'L1T1';
|
|
278
|
-
coding.scaleResolutionDownBy = 1;
|
|
279
|
-
coding.active = true;
|
|
280
|
-
layerFound_1 = true;
|
|
281
|
-
}
|
|
282
|
-
});
|
|
269
|
+
var _a = getEncodingParameter(trans.sender, pc.vstate === PC_VIDEO_STATE_SCREENSHARE), params_1 = _a.params, layerFound = _a.layerFound;
|
|
270
|
+
pc_log(LOG_LEVEL_INFO, 'add track: ' + layerFound);
|
|
283
271
|
rtc.addTrack(track, stream);
|
|
284
|
-
if (
|
|
285
|
-
videoSenderUpdates.push(trans.sender.setParameters(
|
|
286
|
-
|
|
287
|
-
|
|
272
|
+
if (layerFound) {
|
|
273
|
+
videoSenderUpdates.push(trans.sender.setParameters(params_1).catch(function (e) { return pc_log(LOG_LEVEL_ERROR, "update_tracks: set params ".concat(e)); })
|
|
274
|
+
.then(function () {
|
|
275
|
+
pc_log(LOG_LEVEL_INFO, 'setParameters: ' + JSON.stringify(params_1));
|
|
276
|
+
})
|
|
288
277
|
.then());
|
|
289
278
|
}
|
|
290
279
|
}
|
|
291
280
|
};
|
|
292
281
|
for (var _i = 0, transceivers_1 = transceivers; _i < transceivers_1.length; _i++) {
|
|
293
282
|
var trans = transceivers_1[_i];
|
|
294
|
-
|
|
283
|
+
_loop_2(trans);
|
|
295
284
|
}
|
|
296
285
|
}
|
|
297
286
|
else {
|
|
@@ -309,6 +298,41 @@ function update_tracks(pc, stream) {
|
|
|
309
298
|
pc_log(LOG_LEVEL_ERROR, "update_tracks: error=".concat(e));
|
|
310
299
|
}).then();
|
|
311
300
|
}
|
|
301
|
+
function getEncodingParameter(sender, isScreenShare) {
|
|
302
|
+
pc_log(LOG_LEVEL_INFO, "update_tracks: adjust");
|
|
303
|
+
var params = sender.getParameters();
|
|
304
|
+
if (!params.encodings) {
|
|
305
|
+
pc_log(LOG_LEVEL_INFO, "update_tracks: no params");
|
|
306
|
+
params.encodings = [];
|
|
307
|
+
}
|
|
308
|
+
var layerFound = false;
|
|
309
|
+
params.encodings.forEach(function (coding) {
|
|
310
|
+
if (coding.rid === 'l') {
|
|
311
|
+
if (pc_env !== ENV_FIREFOX) {
|
|
312
|
+
//@ts-ignore
|
|
313
|
+
coding.scalabilityMode = 'L1T1';
|
|
314
|
+
}
|
|
315
|
+
if (pc_env === ENV_FIREFOX && isScreenShare) {
|
|
316
|
+
coding.active = false;
|
|
317
|
+
}
|
|
318
|
+
else {
|
|
319
|
+
coding.active = true;
|
|
320
|
+
}
|
|
321
|
+
coding.scaleResolutionDownBy = 4;
|
|
322
|
+
layerFound = true;
|
|
323
|
+
}
|
|
324
|
+
if (coding.rid === 'h') {
|
|
325
|
+
if (pc_env !== ENV_FIREFOX) {
|
|
326
|
+
//@ts-ignore
|
|
327
|
+
coding.scalabilityMode = 'L1T1';
|
|
328
|
+
}
|
|
329
|
+
coding.scaleResolutionDownBy = 1;
|
|
330
|
+
coding.active = true;
|
|
331
|
+
layerFound = true;
|
|
332
|
+
}
|
|
333
|
+
});
|
|
334
|
+
return { params: params, layerFound: layerFound };
|
|
335
|
+
}
|
|
312
336
|
function sigState(stateStr) {
|
|
313
337
|
var state = PC_SIG_STATE_UNKNOWN;
|
|
314
338
|
switch (stateStr) {
|
|
@@ -768,6 +792,36 @@ function sdpCbrMap(sdp) {
|
|
|
768
792
|
outline = null;
|
|
769
793
|
}
|
|
770
794
|
}
|
|
795
|
+
// reorder rids for firefox
|
|
796
|
+
else if (sdpLine.startsWith('a=simulcast:recv l;h') && pc_env === ENV_FIREFOX) {
|
|
797
|
+
outline = 'a=simulcast:recv h;l';
|
|
798
|
+
}
|
|
799
|
+
else if (sdpLine.startsWith('a=rid:l recv') && pc_env === ENV_FIREFOX) {
|
|
800
|
+
outline = 'a=rid:h recv';
|
|
801
|
+
}
|
|
802
|
+
else if (sdpLine.startsWith('a=rid:h recv') && pc_env === ENV_FIREFOX) {
|
|
803
|
+
outline = 'a=rid:l recv';
|
|
804
|
+
}
|
|
805
|
+
if (outline != null) {
|
|
806
|
+
sdpLines.push(outline);
|
|
807
|
+
}
|
|
808
|
+
});
|
|
809
|
+
return sdpLines.join('\r\n');
|
|
810
|
+
}
|
|
811
|
+
function sdpRidReOrder(sdp) {
|
|
812
|
+
var sdpLines = [];
|
|
813
|
+
sdp.split('\r\n').forEach(function (sdpLine) {
|
|
814
|
+
var outline;
|
|
815
|
+
outline = sdpLine;
|
|
816
|
+
if (sdpLine.startsWith('a=simulcast:send h;l') && pc_env === ENV_FIREFOX) {
|
|
817
|
+
outline = 'a=simulcast:send l;h';
|
|
818
|
+
}
|
|
819
|
+
else if (sdpLine.startsWith('a=rid:h send') && pc_env === ENV_FIREFOX) {
|
|
820
|
+
outline = 'a=rid:l send';
|
|
821
|
+
}
|
|
822
|
+
else if (sdpLine.startsWith('a=rid:l send') && pc_env === ENV_FIREFOX) {
|
|
823
|
+
outline = 'a=rid:h send';
|
|
824
|
+
}
|
|
771
825
|
if (outline != null) {
|
|
772
826
|
sdpLines.push(outline);
|
|
773
827
|
}
|
|
@@ -1099,6 +1153,11 @@ function pc_LocalDescription(hnd, typePtr) {
|
|
|
1099
1153
|
sdpStr = sdp.replace(' UDP/DTLS/SCTP', ' DTLS/SCTP');
|
|
1100
1154
|
sdpStr = sdpMap(sdpStr, true, false);
|
|
1101
1155
|
}
|
|
1156
|
+
/* Ensure that we force CBR on the offer */
|
|
1157
|
+
if (pc_env === ENV_FIREFOX && pc.conv_type == CONV_TYPE_CONFERENCE) {
|
|
1158
|
+
sdpStr = sdpRidReOrder(sdpStr);
|
|
1159
|
+
}
|
|
1160
|
+
pc_log(LOG_LEVEL_INFO, "pc_LocalDescription: hnd=".concat(sdpStr));
|
|
1102
1161
|
var sdpLen = em_module.lengthBytesUTF8(sdpStr) + 1; // +1 for '\0'
|
|
1103
1162
|
var ptr = em_module._malloc(sdpLen);
|
|
1104
1163
|
em_module.stringToUTF8(sdpStr, ptr, sdpLen);
|
|
@@ -1331,14 +1390,14 @@ function pc_ReplaceTrack(convid, newTrack) {
|
|
|
1331
1390
|
function pc_GetStats(convid) {
|
|
1332
1391
|
var pcs = connectionsStore.getPeerConnectionByConvid(convid);
|
|
1333
1392
|
var statsPromises = [];
|
|
1334
|
-
var
|
|
1393
|
+
var _loop_3 = function (pc) {
|
|
1335
1394
|
var rtc = pc.rtc;
|
|
1336
1395
|
if (rtc)
|
|
1337
1396
|
statsPromises.push(rtc.getStats().then(function (stats) { return ({ userid: pc.remote_userid, stats: stats }); }));
|
|
1338
1397
|
};
|
|
1339
1398
|
for (var _i = 0, pcs_2 = pcs; _i < pcs_2.length; _i++) {
|
|
1340
1399
|
var pc = pcs_2[_i];
|
|
1341
|
-
|
|
1400
|
+
_loop_3(pc);
|
|
1342
1401
|
}
|
|
1343
1402
|
return Promise.all(statsPromises);
|
|
1344
1403
|
}
|
package/package.json
CHANGED