|
|
@@ -514,34 +514,33 @@ StatsCollector.prototype.processStatsReport = function () {
|
|
514
|
514
|
|
|
515
|
515
|
var isDownloadStream = true;
|
|
516
|
516
|
var key = 'packetsReceived';
|
|
517
|
|
- if (!getStatValue(now, key))
|
|
518
|
|
- {
|
|
|
517
|
+ var packetsNow = getStatValue(now, key);
|
|
|
518
|
+ if (typeof packetsNow === 'undefined' || packetsNow === null) {
|
|
519
|
519
|
isDownloadStream = false;
|
|
520
|
520
|
key = 'packetsSent';
|
|
521
|
|
- if (!getStatValue(now, key))
|
|
522
|
|
- {
|
|
523
|
|
- console.warn("No packetsReceived nor packetSent stat found");
|
|
|
521
|
+ packetsNow = getStatValue(now, key);
|
|
|
522
|
+ if (typeof packetsNow === 'undefined' || packetsNow === null) {
|
|
|
523
|
+ console.warn("No packetsReceived nor packetsSent stat found");
|
|
524
|
524
|
continue;
|
|
525
|
525
|
}
|
|
526
|
526
|
}
|
|
527
|
|
- var packetsNow = getStatValue(now, key);
|
|
528
|
|
- if(!packetsNow || packetsNow < 0)
|
|
|
527
|
+ if (!packetsNow || packetsNow < 0)
|
|
529
|
528
|
packetsNow = 0;
|
|
530
|
529
|
|
|
531
|
530
|
var packetsBefore = getStatValue(before, key);
|
|
532
|
|
- if(!packetsBefore || packetsBefore < 0)
|
|
|
531
|
+ if (!packetsBefore || packetsBefore < 0)
|
|
533
|
532
|
packetsBefore = 0;
|
|
534
|
533
|
var packetRate = packetsNow - packetsBefore;
|
|
535
|
|
- if(!packetRate || packetRate < 0)
|
|
|
534
|
+ if (!packetRate || packetRate < 0)
|
|
536
|
535
|
packetRate = 0;
|
|
537
|
536
|
var currentLoss = getStatValue(now, 'packetsLost');
|
|
538
|
|
- if(!currentLoss || currentLoss < 0)
|
|
|
537
|
+ if (!currentLoss || currentLoss < 0)
|
|
539
|
538
|
currentLoss = 0;
|
|
540
|
539
|
var previousLoss = getStatValue(before, 'packetsLost');
|
|
541
|
|
- if(!previousLoss || previousLoss < 0)
|
|
|
540
|
+ if (!previousLoss || previousLoss < 0)
|
|
542
|
541
|
previousLoss = 0;
|
|
543
|
542
|
var lossRate = currentLoss - previousLoss;
|
|
544
|
|
- if(!lossRate || lossRate < 0)
|
|
|
543
|
+ if (!lossRate || lossRate < 0)
|
|
545
|
544
|
lossRate = 0;
|
|
546
|
545
|
var packetsTotal = (packetRate + lossRate);
|
|
547
|
546
|
|
|
|
@@ -552,34 +551,26 @@ StatsCollector.prototype.processStatsReport = function () {
|
|
552
|
551
|
|
|
553
|
552
|
|
|
554
|
553
|
var bytesReceived = 0, bytesSent = 0;
|
|
555
|
|
- if(getStatValue(now, "bytesReceived"))
|
|
556
|
|
- {
|
|
|
554
|
+ if(getStatValue(now, "bytesReceived")) {
|
|
557
|
555
|
bytesReceived = getStatValue(now, "bytesReceived") -
|
|
558
|
556
|
getStatValue(before, "bytesReceived");
|
|
559
|
557
|
}
|
|
560
|
558
|
|
|
561
|
|
- if(getStatValue(now, "bytesSent"))
|
|
562
|
|
- {
|
|
|
559
|
+ if(getStatValue(now, "bytesSent")) {
|
|
563
|
560
|
bytesSent = getStatValue(now, "bytesSent") -
|
|
564
|
561
|
getStatValue(before, "bytesSent");
|
|
565
|
562
|
}
|
|
566
|
563
|
|
|
567
|
564
|
var time = Math.round((now.timestamp - before.timestamp) / 1000);
|
|
568
|
|
- if(bytesReceived <= 0 || time <= 0)
|
|
569
|
|
- {
|
|
|
565
|
+ if(bytesReceived <= 0 || time <= 0) {
|
|
570
|
566
|
bytesReceived = 0;
|
|
571
|
|
- }
|
|
572
|
|
- else
|
|
573
|
|
- {
|
|
|
567
|
+ } else {
|
|
574
|
568
|
bytesReceived = Math.round(((bytesReceived * 8) / time) / 1000);
|
|
575
|
569
|
}
|
|
576
|
570
|
|
|
577
|
|
- if(bytesSent <= 0 || time <= 0)
|
|
578
|
|
- {
|
|
|
571
|
+ if(bytesSent <= 0 || time <= 0) {
|
|
579
|
572
|
bytesSent = 0;
|
|
580
|
|
- }
|
|
581
|
|
- else
|
|
582
|
|
- {
|
|
|
573
|
+ } else {
|
|
583
|
574
|
bytesSent = Math.round(((bytesSent * 8) / time) / 1000);
|
|
584
|
575
|
}
|
|
585
|
576
|
|
|
|
@@ -602,16 +593,11 @@ StatsCollector.prototype.processStatsReport = function () {
|
|
602
|
593
|
}
|
|
603
|
594
|
catch(e){/*not supported*/}
|
|
604
|
595
|
|
|
605
|
|
- if(resolution.height && resolution.width)
|
|
606
|
|
- {
|
|
|
596
|
+ if(resolution.height && resolution.width) {
|
|
607
|
597
|
jidStats.setSsrcResolution(ssrc, resolution);
|
|
608
|
|
- }
|
|
609
|
|
- else
|
|
610
|
|
- {
|
|
|
598
|
+ } else {
|
|
611
|
599
|
jidStats.setSsrcResolution(ssrc, null);
|
|
612
|
600
|
}
|
|
613
|
|
-
|
|
614
|
|
-
|
|
615
|
601
|
}
|
|
616
|
602
|
|
|
617
|
603
|
var self = this;
|
|
|
@@ -622,11 +608,9 @@ StatsCollector.prototype.processStatsReport = function () {
|
|
622
|
608
|
var bitrateUpload = 0;
|
|
623
|
609
|
var resolutions = {};
|
|
624
|
610
|
Object.keys(this.jid2stats).forEach(
|
|
625
|
|
- function (jid)
|
|
626
|
|
- {
|
|
|
611
|
+ function (jid) {
|
|
627
|
612
|
Object.keys(self.jid2stats[jid].ssrc2Loss).forEach(
|
|
628
|
|
- function (ssrc)
|
|
629
|
|
- {
|
|
|
613
|
+ function (ssrc) {
|
|
630
|
614
|
var type = "upload";
|
|
631
|
615
|
if(self.jid2stats[jid].ssrc2Loss[ssrc].isDownloadStream)
|
|
632
|
616
|
type = "download";
|