ChatterBox.Client.Universal.Background.StatsManager.ProcessReports C# (CSharp) Method

ProcessReports() private method

private ProcessReports ( IList reports ) : void
reports IList
return void
        private void ProcessReports(IList<RTCStatsReport> reports)
        {
            foreach (var report in reports)
            {
                if (report.StatsType == RTCStatsType.StatsReportTypeSsrc) {
                    IDictionary<RTCStatsValueName, Object> statValues = report.Values;
                    if (statValues.Keys.Contains(RTCStatsValueName.StatsValueNameTrackId))
                    {
                        string trackId = statValues[RTCStatsValueName.StatsValueNameTrackId].ToString();
                        if (trackId.StartsWith("audio_label"))
                        {
                            if (statValues.Keys.Contains(RTCStatsValueName.StatsValueNamePacketsSent)) {
                                _metricsCollector._audioPacketsSent += Convert.ToInt32(statValues[RTCStatsValueName.StatsValueNamePacketsSent]);
                            }
                            if (statValues.Keys.Contains(RTCStatsValueName.StatsValueNamePacketsLost))
                            {
                                _metricsCollector._audioPacketsLost += Convert.ToInt32(statValues[RTCStatsValueName.StatsValueNamePacketsLost]);
                            }
                            if (statValues.Keys.Contains(RTCStatsValueName.StatsValueNameCurrentDelayMs))
                            {
                                _metricsCollector._audioCurrentDelayMs += Convert.ToDouble(statValues[RTCStatsValueName.StatsValueNameCurrentDelayMs]);
                                _metricsCollector._audioDelayCount++;
                            }
                            if (statValues.Keys.Contains(RTCStatsValueName.StatsValueNameCodecName))
                            {
                                _metricsCollector.AudioCodec = statValues[RTCStatsValueName.StatsValueNameCodecName].ToString();
                            }
                        }
                        else if (trackId.StartsWith("video_label"))
                        {
                            if (statValues.Keys.Contains(RTCStatsValueName.StatsValueNamePacketsSent))
                            {
                                _metricsCollector._videoPacketsSent += Convert.ToInt32(statValues[RTCStatsValueName.StatsValueNamePacketsSent]);
                            }
                            if (statValues.Keys.Contains(RTCStatsValueName.StatsValueNamePacketsLost))
                            {
                                _metricsCollector._videoPacketsLost += Convert.ToInt32(statValues[RTCStatsValueName.StatsValueNamePacketsLost]);
                            }
                            if (statValues.Keys.Contains(RTCStatsValueName.StatsValueNameCurrentDelayMs))
                            {
                                _metricsCollector._videoCurrentDelayMs += Convert.ToDouble(statValues[RTCStatsValueName.StatsValueNameCurrentDelayMs]);
                                _metricsCollector._videoDelayCount++;
                            }
                            if (statValues.Keys.Contains(RTCStatsValueName.StatsValueNameFrameHeightSent))
                            {
                                _metricsCollector.FrameHeight = Convert.ToInt32(statValues[RTCStatsValueName.StatsValueNameFrameHeightSent]);
                            }
                            if (statValues.Keys.Contains(RTCStatsValueName.StatsValueNameFrameWidthSent))
                            {
                                _metricsCollector.FrameWidth = Convert.ToInt32(statValues[RTCStatsValueName.StatsValueNameFrameWidthSent]);
                            }
                            if (statValues.Keys.Contains(RTCStatsValueName.StatsValueNameCodecName))
                            {
                                _metricsCollector.VideoCodec = statValues[RTCStatsValueName.StatsValueNameCodecName].ToString();
                            }
                        }
                    }
                }
            }
        }