Don't treat 0 as false (avoid a warning when the receivedPackets or

sentPackets stat is 0, and possibly fixes misinterpreting a remove
stream as a local).
This commit is contained in:
Boris Grozev 2015-09-01 11:22:28 -05:00
parent ff199a4d78
commit 47bb9439db
1 changed files with 21 additions and 37 deletions

View File

@ -514,17 +514,16 @@ StatsCollector.prototype.processStatsReport = function () {
var isDownloadStream = true; var isDownloadStream = true;
var key = 'packetsReceived'; var key = 'packetsReceived';
if (!getStatValue(now, key)) var packetsNow = getStatValue(now, key);
{ if (typeof packetsNow === 'undefined' || packetsNow === null) {
isDownloadStream = false; isDownloadStream = false;
key = 'packetsSent'; key = 'packetsSent';
if (!getStatValue(now, key)) packetsNow = getStatValue(now, key);
{ if (typeof packetsNow === 'undefined' || packetsNow === null) {
console.warn("No packetsReceived nor packetSent stat found"); console.warn("No packetsReceived nor packetsSent stat found");
continue; continue;
} }
} }
var packetsNow = getStatValue(now, key);
if (!packetsNow || packetsNow < 0) if (!packetsNow || packetsNow < 0)
packetsNow = 0; packetsNow = 0;
@ -552,34 +551,26 @@ StatsCollector.prototype.processStatsReport = function () {
var bytesReceived = 0, bytesSent = 0; var bytesReceived = 0, bytesSent = 0;
if(getStatValue(now, "bytesReceived")) if(getStatValue(now, "bytesReceived")) {
{
bytesReceived = getStatValue(now, "bytesReceived") - bytesReceived = getStatValue(now, "bytesReceived") -
getStatValue(before, "bytesReceived"); getStatValue(before, "bytesReceived");
} }
if(getStatValue(now, "bytesSent")) if(getStatValue(now, "bytesSent")) {
{
bytesSent = getStatValue(now, "bytesSent") - bytesSent = getStatValue(now, "bytesSent") -
getStatValue(before, "bytesSent"); getStatValue(before, "bytesSent");
} }
var time = Math.round((now.timestamp - before.timestamp) / 1000); var time = Math.round((now.timestamp - before.timestamp) / 1000);
if(bytesReceived <= 0 || time <= 0) if(bytesReceived <= 0 || time <= 0) {
{
bytesReceived = 0; bytesReceived = 0;
} } else {
else
{
bytesReceived = Math.round(((bytesReceived * 8) / time) / 1000); bytesReceived = Math.round(((bytesReceived * 8) / time) / 1000);
} }
if(bytesSent <= 0 || time <= 0) if(bytesSent <= 0 || time <= 0) {
{
bytesSent = 0; bytesSent = 0;
} } else {
else
{
bytesSent = Math.round(((bytesSent * 8) / time) / 1000); bytesSent = Math.round(((bytesSent * 8) / time) / 1000);
} }
@ -602,16 +593,11 @@ StatsCollector.prototype.processStatsReport = function () {
} }
catch(e){/*not supported*/} catch(e){/*not supported*/}
if(resolution.height && resolution.width) if(resolution.height && resolution.width) {
{
jidStats.setSsrcResolution(ssrc, resolution); jidStats.setSsrcResolution(ssrc, resolution);
} } else {
else
{
jidStats.setSsrcResolution(ssrc, null); jidStats.setSsrcResolution(ssrc, null);
} }
} }
var self = this; var self = this;
@ -622,11 +608,9 @@ StatsCollector.prototype.processStatsReport = function () {
var bitrateUpload = 0; var bitrateUpload = 0;
var resolutions = {}; var resolutions = {};
Object.keys(this.jid2stats).forEach( Object.keys(this.jid2stats).forEach(
function (jid) function (jid) {
{
Object.keys(self.jid2stats[jid].ssrc2Loss).forEach( Object.keys(self.jid2stats[jid].ssrc2Loss).forEach(
function (ssrc) function (ssrc) {
{
var type = "upload"; var type = "upload";
if(self.jid2stats[jid].ssrc2Loss[ssrc].isDownloadStream) if(self.jid2stats[jid].ssrc2Loss[ssrc].isDownloadStream)
type = "download"; type = "download";