1import unittest
2
3import cfm_jmidata_log_collector
4
5
6class CfmJmidataLogCollectorTest(unittest.TestCase):
7    """
8    Tests for the CfmJmidataLogCOllector.
9    """
10    # Test methods, disable missing-docstring
11    # pylint: disable=missing-docstring
12    def jmi_get_no_error(self, key):
13        data = cfm_jmidata_log_collector.GetDataFromLogs(self, key, JMI_LOG)
14
15    def test_jmi_data(self):
16        # TODO(kerl): Add assertions on the actual values.
17        self.jmi_get_no_error('video_sent_bytes')
18        self.jmi_get_no_error('video_received_bytes')
19        self.jmi_get_no_error('audio_sent_bytes')
20        self.jmi_get_no_error('audio_received_bytes')
21        self.jmi_get_no_error('audio_received_energy_level')
22        self.jmi_get_no_error('audio_sent_energy_level')
23        self.jmi_get_no_error('framerate_received')
24        self.jmi_get_no_error('framerate_sent')
25        self.jmi_get_no_error('framerate_decoded')
26        self.jmi_get_no_error('frames_decoded')
27        self.jmi_get_no_error('frames_encoded')
28        self.jmi_get_no_error('average_encode_time')
29        self.jmi_get_no_error('framerate_to_renderer')
30        self.jmi_get_no_error('framerate_outgoing')
31        self.jmi_get_no_error('video_sent_frame_width')
32        self.jmi_get_no_error('video_received_frame_width')
33        self.jmi_get_no_error('video_sent_frame_height')
34        self.jmi_get_no_error('video_received_frame_height')
35        self.jmi_get_no_error('cpu_adaptation')
36        self.jmi_get_no_error('bandwidth_adaptation')
37        self.jmi_get_no_error('adaptation_changes')
38        self.jmi_get_no_error('video_packets_sent')
39        self.jmi_get_no_error('video_packets_lost')
40        self.jmi_get_no_error('video_encode_cpu_usage')
41        self.jmi_get_no_error('num_active_vid_in_streams')
42        self.jmi_get_no_error('cpu_processors')
43        self.jmi_get_no_error('cpu_percent')
44        self.jmi_get_no_error('browser_cpu_percent')
45        self.jmi_get_no_error('gpu_cpu_percent')
46        self.jmi_get_no_error('nacl_effects_cpu_percent')
47        self.jmi_get_no_error('renderer_cpu_percent')
48
49if __name__ == '__main__':
50    unittest.main()
51
52
53JMI_LOG = (
54'[15.269s]8 talk.media.webrtc.FluteSession: Sending ["jmidatav3","muvc-priva'
55'te-chat-9999i7ng7stjkncgvef6rsa76e44sme@groupchat.google.com","c24448231337'
56'9091599_NMS",0,{"global":{"jmiVersion":3,"numOfProcessors":4,"totalCpuUsage'
57'":118.68242938362964,"tabCpuUsage":86.59793314433666,"browserCpuUsage":19.1'
58'03619952307305,"gpuCpuUsage":37.19470138265887}},null,{"VideoBwe":{"googAct'
59'ualEncBitrate":1374400,"googAvailableSendBandwidth":3956329,"googRetransmit'
60'Bitrate":0,"googAvailableReceiveBandwidth":0,"googTargetEncBitrate":3400000'
61',"googBucketDelay":0,"googTransmitBitrate":1389144}},null,{"googCandidatePa'
62'ir":{"responsesSent":0,"requestsReceived":0,"googRemoteCandidateType":"loca'
63'l","googReadable":"true","googLocalAddress":"[2620:0:1000:1309:3d4f:37b0:65'
64'9a:5378]:55946","consentRequestsSent":1,"googTransportType":"udp","googChan'
65'nelId":"Channel-audio-1","googLocalCandidateType":"local","googWritable":"t'
66'rue","requestsSent":8,"googRemoteAddress":"[2607:f8b0:400e:c05::7f]:19305",'
67'"googRtt":20,"googActiveConnection":"true","packetsDiscardedOnSend":0,"byte'
68'sReceived":5593200,"responsesReceived":8,"remoteCandidateId":"Cand-ztHGWbjH'
69'","localCandidateId":"Cand-iAXjSqBm","bytesSent":1915475,"packetsSent":2367'
70'}},{"localcandidate":{"networkType":"unknown","id":"Cand-iAXjSqBm"}},null,{'
71'"googCandidatePair":{"responsesSent":0,"requestsReceived":0,"googRemoteCand'
72'idateType":"local","googReadable":"false","googLocalAddress":"172.27.213.80'
73':55830","consentRequestsSent":0,"googTransportType":"udp","googChannelId":"'
74'Channel-audio-1","googLocalCandidateType":"local","googWritable":"false","r'
75'equestsSent":0,"googRemoteAddress":"173.194.203.127:19305","googRtt":3000,"'
76'googActiveConnection":"false","packetsDiscardedOnSend":0,"bytesReceived":0,'
77'"responsesReceived":0,"remoteCandidateId":"Cand-DcRzosft","localCandidateId'
78'":"Cand-t/EGflq7","bytesSent":0,"packetsSent":0}},{"localcandidate":{"netwo'
79'rkType":"unknown","id":"Cand-t/EGflq7"}},null,null,null,null,null,null,null'
80',null,null,null,null,null,null,null,null,null,null,null,null,null,null,{"ss'
81'rc":{"googDecodingCTN":958,"packetsLost":0,"googSecondaryDecodedRate":0,"go'
82'ogDecodingPLC":3,"packetsReceived":1,"googExpandRate":0,"googJitterReceived'
83'":0,"googDecodingCNG":847,"ssrc":181174217,"googPreferredJitterBufferMs":0,'
84'"googSpeechExpandRate":0,"totalSamplesDuration":9.58,"totalAudioEnergy":0,"'
85'transportId":"Channel-audio-1","mediaType":"audio","googDecodingPLCCNG":108'
86',"googCodecName":"opus","googSecondaryDiscardedRate":0,"googDecodingNormal"'
87':0,"googTrackId":"hangout7F4822D4_ephemeral.id.google.com%5Efd2eefeedc/1811'
88'74217","audioOutputLevel":0,"googAccelerateRate":0,"bytesReceived":21,"goog'
89'CurrentDelayMs":10,"googDecodingCTSG":0,"googCaptureStartNtpTimeMs":0,"goog'
90'PreemptiveExpandRate":0,"googJitterBufferMs":10,"googDecodingMuted":107}},{'
91'"ssrc":{"googDecodingCTN":958,"packetsLost":0,"googSecondaryDecodedRate":0,'
92'"googDecodingPLC":4,"packetsReceived":46,"googExpandRate":0,"googJitterRece'
93'ived":1,"googDecodingCNG":914,"ssrc":1176043198,"googPreferredJitterBufferM'
94's":20,"googSpeechExpandRate":0,"totalSamplesDuration":9.58,"totalAudioEnerg'
95'y":8.7084e-9,"transportId":"Channel-audio-1","mediaType":"audio","googDecod'
96'ingPLCCNG":10,"googCodecName":"opus","googSecondaryDiscardedRate":0,"googDe'
97'codingNormal":30,"googTrackId":"hangoutF18BB657_ephemeral.id.google.com%5Ed'
98'5e1b749e1/1176043198","audioOutputLevel":1,"googAccelerateRate":0,"bytesRec'
99'eived":1679,"googCurrentDelayMs":89,"googDecodingCTSG":0,"googCaptureStartN'
100'tpTimeMs":0,"googPreemptiveExpandRate":0,"googJitterBufferMs":90,"googDecod'
101'ingMuted":9}},{"ssrc":{"googDecodingCTN":958,"packetsLost":0,"googSecondary'
102'DecodedRate":0,"googDecodingPLC":3,"packetsReceived":46,"googExpandRate":0,'
103'"googJitterReceived":2,"googDecodingCNG":919,"ssrc":1301596892,"googPreferr'
104'edJitterBufferMs":20,"googSpeechExpandRate":0,"totalSamplesDuration":9.58,"'
105'totalAudioEnergy":8.81085e-9,"transportId":"Channel-audio-1","mediaType":"a'
106'udio","googDecodingPLCCNG":6,"googCodecName":"opus","googSecondaryDiscarded'
107'Rate":0,"googDecodingNormal":30,"googTrackId":"hangoutF724C8C9_ephemeral.id'
108'.google.com%5E23a2bf2b70/1301596892","audioOutputLevel":1,"googAccelerateRa'
109'te":0,"bytesReceived":1679,"googCurrentDelayMs":80,"googDecodingCTSG":0,"go'
110'ogCaptureStartNtpTimeMs":0,"googPreemptiveExpandRate":0,"googJitterBufferMs'
111'":80,"googDecodingMuted":5}},{"ssrc":{"googDecodingCTN":958,"packetsLost":0'
112',"googSecondaryDecodedRate":0,"googDecodingPLC":3,"packetsReceived":1,"goog'
113'ExpandRate":0,"googJitterReceived":0,"googDecodingCNG":847,"ssrc":226549935'
114'5,"googPreferredJitterBufferMs":0,"googSpeechExpandRate":0,"totalSamplesDur'
115'ation":9.58,"totalAudioEnergy":0,"transportId":"Channel-audio-1","mediaType'
116'":"audio","googDecodingPLCCNG":108,"googCodecName":"opus","googSecondaryDis'
117'cardedRate":0,"googDecodingNormal":0,"googTrackId":"hangout83754FD7_ephemer'
118'al.id.google.com%5E2f542d3bca/2265499355","audioOutputLevel":0,"googAcceler'
119'ateRate":0,"bytesReceived":21,"googCurrentDelayMs":10,"googDecodingCTSG":0,'
120'"googCaptureStartNtpTimeMs":0,"googPreemptiveExpandRate":0,"googJitterBuffe'
121'rMs":10,"googDecodingMuted":107}},{"ssrc":{"googDecodingCTN":958,"packetsLo'
122'st":0,"googSecondaryDecodedRate":0,"googDecodingPLC":0,"packetsReceived":46'
123',"googJitterReceived":1,"googDecodingCNG":929,"ssrc":3200798097,"googPrefer'
124'redJitterBufferMs":20,"googSpeechExpandRate":0,"totalSamplesDuration":9.58,'
125'"totalAudioEnergy":8.81085e-9,"transportId":"Channel-audio-1","mediaType":"'
126'audio","googDecodingPLCCNG":0,"googCodecName":"opus","googSecondaryDiscarde'
127'dRate":0,"googDecodingNormal":29,"googTrackId":"hangout2A69C3CE_ephemeral.i'
128'd.google.com%5E51a54492e6/3200798097","audioOutputLevel":1,"googAccelerateR'
129'ate":0,"bytesReceived":1679,"googCurrentDelayMs":81,"googDecodingCTSG":0,"g'
130'oogExpandRate":0,"googPreemptiveExpandRate":0,"googJitterBufferMs":93,"goog'
131'DecodingMuted":0}},{"ssrc":{"googDecodingCTN":958,"packetsLost":0,"googSeco'
132'ndaryDecodedRate":0,"googDecodingPLC":3,"packetsReceived":15,"googExpandRat'
133'e":0,"googJitterReceived":5,"googDecodingCNG":895,"ssrc":3611799563,"googPr'
134'eferredJitterBufferMs":20,"googSpeechExpandRate":0,"totalSamplesDuration":9'
135'.58,"totalAudioEnergy":0,"transportId":"Channel-audio-1","mediaType":"audio'
136'","googDecodingPLCCNG":60,"googCodecName":"opus","googSecondaryDiscardedRat'
137'e":0,"googDecodingNormal":0,"googTrackId":"hangoutF9EAE779_ephemeral.id.goo'
138'gle.com%5E42ce92f210/3611799563","audioOutputLevel":0,"googAccelerateRate":'
139'0,"bytesReceived":315,"googCurrentDelayMs":10,"googDecodingCTSG":0,"googCap'
140'tureStartNtpTimeMs":0,"googPreemptiveExpandRate":0,"googJitterBufferMs":90,'
141'"googDecodingMuted":59}},{"ssrc":{"googCaptureStartNtpTimeMs":0,"packetsLos'
142't":0,"googSecondaryDecodedRate":0,"googDecodingPLC":0,"packetsReceived":0,"'
143'googJitterReceived":0,"googDecodingCNG":0,"ssrc":3678956685,"googPreferredJ'
144'itterBufferMs":0,"googSpeechExpandRate":0,"totalSamplesDuration":0,"totalAu'
145'dioEnergy":0,"transportId":"Channel-audio-1","mediaType":"audio","googDecod'
146'ingCTN":0,"googDecodingPLCCNG":0,"googCodecName":"","googDecodingNormal":0,'
147'"googTrackId":"hangout9227780C_ephemeral.id.google.com%5Effba3cb857/3678956'
148'685","googSecondaryDiscardedRate":0,"googAccelerateRate":0,"bytesReceived":'
149'0,"googCurrentDelayMs":0,"googDecodingCTSG":0,"googExpandRate":0,"googPreem'
150'ptiveExpandRate":0,"googJitterBufferMs":0,"googDecodingMuted":0}},{"ssrc":{'
151'"googDecodingCTN":958,"packetsLost":0,"googSecondaryDecodedRate":0,"googDec'
152'odingPLC":3,"packetsReceived":46,"googExpandRate":0,"googJitterReceived":2,'
153'"googDecodingCNG":916,"ssrc":3763354856,"googPreferredJitterBufferMs":20,"g'
154'oogSpeechExpandRate":0,"totalSamplesDuration":9.58,"totalAudioEnergy":8.801'
155'54e-9,"transportId":"Channel-audio-1","mediaType":"audio","googDecodingPLCC'
156'NG":9,"googCodecName":"opus","googSecondaryDiscardedRate":0,"googDecodingNo'
157'rmal":30,"googTrackId":"hangout757A0188_ephemeral.id.google.com%5E576980a8a'
158'e/3763354856","audioOutputLevel":1,"googAccelerateRate":0,"bytesReceived":1'
159'679,"googCurrentDelayMs":91,"googDecodingCTSG":0,"googCaptureStartNtpTimeMs'
160'":0,"googPreemptiveExpandRate":0,"googJitterBufferMs":90,"googDecodingMuted'
161'":8}},{"ssrc":{"googDecodingCTN":958,"packetsLost":0,"googSecondaryDecodedR'
162'ate":0,"googDecodingPLC":0,"packetsReceived":46,"googJitterReceived":3,"goo'
163'gDecodingCNG":928,"ssrc":4088893509,"googPreferredJitterBufferMs":20,"googS'
164'peechExpandRate":0,"totalSamplesDuration":9.58,"totalAudioEnergy":8.80154e-'
165'9,"transportId":"Channel-audio-1","mediaType":"audio","googDecodingPLCCNG":'
166'0,"googCodecName":"opus","googSecondaryDiscardedRate":0,"googDecodingNormal'
167'":30,"googTrackId":"hangoutD84553B2_ephemeral.id.google.com%5E63d56c7215/40'
168'88893509","audioOutputLevel":1,"googAccelerateRate":0,"bytesReceived":1748,'
169'"googCurrentDelayMs":89,"googDecodingCTSG":0,"googExpandRate":0,"googPreemp'
170'tiveExpandRate":0,"googJitterBufferMs":90,"googDecodingMuted":0}},{"ssrc":{'
171'"googContentType":"realtime","googCaptureStartNtpTimeMs":0,"googTargetDelay'
172'Ms":127,"packetsLost":0,"googDecodeMs":6,"googFrameHeightReceived":180,"goo'
173'gFrameRateOutput":23,"packetsReceived":193,"ssrc":234375295,"googRenderDela'
174'yMs":10,"googMaxDecodeMs":13,"googTrackId":"hangout7F4822D4_ephemeral.id.go'
175'ogle.com%5Efd2eefeedc/234375295","googFrameWidthReceived":320,"codecImpleme'
176'ntationName":"unknown","transportId":"Channel-audio-1","mediaType":"video",'
177'"googInterframeDelayMax":1541,"googCodecName":"VP8","googFrameRateReceived"'
178':25,"framesDecoded":141,"googNacksSent":0,"googFirsSent":0,"bytesReceived":'
179'145834,"googCurrentDelayMs":78,"googMinPlayoutDelayMs":0,"googFrameRateDeco'
180'ded":23,"googJitterBufferMs":104,"googPlisSent":0,"fpsGraphicsInput":15.331'
181'086576691497,"fpsGraphicsOutput":15.331086576691497,"googFrameSpacing":996}'
182'},{"ssrc":{"googContentType":"realtime","googCaptureStartNtpTimeMs":0,"goog'
183'TargetDelayMs":117,"packetsLost":0,"googDecodeMs":3,"googFrameHeightReceive'
184'd":180,"googFrameRateOutput":24,"packetsReceived":223,"ssrc":365354875,"goo'
185'gRenderDelayMs":10,"googMaxDecodeMs":14,"googTrackId":"hangout2A69C3CE_ephe'
186'meral.id.google.com%5E51a54492e6/365354875","googFrameWidthReceived":320,"c'
187'odecImplementationName":"unknown","transportId":"Channel-audio-1","mediaTyp'
188'e":"video","googInterframeDelayMax":362,"googCodecName":"VP8","googFrameRat'
189'eReceived":23,"framesDecoded":168,"googNacksSent":0,"googFirsSent":0,"bytes'
190'Received":171134,"googCurrentDelayMs":75,"googMinPlayoutDelayMs":0,"googFra'
191'meRateDecoded":24,"googJitterBufferMs":93,"googPlisSent":0,"fpsGraphicsInpu'
192't":17.980188823503184,"fpsGraphicsOutput":17.980188823503184,"googFrameSpac'
193'ing":502}},{"ssrc":{"googContentType":"realtime","googCaptureStartNtpTimeMs'
194'":0,"googTargetDelayMs":40,"packetsLost":0,"googDecodeMs":10,"googFrameHeig'
195'htReceived":180,"googFrameRateOutput":13,"packetsReceived":1078,"ssrc":6586'
196'85198,"googRenderDelayMs":10,"googMaxDecodeMs":12,"googTrackId":"hangoutD84'
197'553B2_ephemeral.id.google.com%5E63d56c7215/658685198","googFrameWidthReceiv'
198'ed":320,"codecImplementationName":"unknown","transportId":"Channel-audio-1"'
199',"mediaType":"video","googInterframeDelayMax":152,"googCodecName":"VP8","go'
200'ogFrameRateReceived":13,"framesDecoded":108,"googNacksSent":0,"googFirsSent'
201'":0,"bytesReceived":1232161,"googCurrentDelayMs":40,"googMinPlayoutDelayMs"'
202':0,"googFrameRateDecoded":13,"googJitterBufferMs":18,"googPlisSent":0,"fpsG'
203'raphicsInput":11.537631880897864,"fpsGraphicsOutput":11.42980354556237,"goo'
204'gFrameSpacing":501}},{"ssrc":{"googContentType":"realtime","googCaptureStar'
205'tNtpTimeMs":0,"googTargetDelayMs":110,"packetsLost":0,"googDecodeMs":19,"go'
206'ogFrameHeightReceived":720,"googFrameRateOutput":23,"packetsReceived":2542,'
207'"ssrc":771366933,"googRenderDelayMs":10,"googMaxDecodeMs":22,"googTrackId":'
208'"hangoutF18BB657_ephemeral.id.google.com%5Ed5e1b749e1/771366933","googFrame'
209'WidthReceived":1280,"codecImplementationName":"unknown","transportId":"Chan'
210'nel-audio-1","mediaType":"video","googInterframeDelayMax":136,"googCodecNam'
211'e":"VP8","googFrameRateReceived":24,"framesDecoded":203,"googNacksSent":0,"'
212'googFirsSent":0,"bytesReceived":2921629,"googCurrentDelayMs":101,"googMinPl'
213'ayoutDelayMs":0,"googFrameRateDecoded":23,"googJitterBufferMs":78,"googPlis'
214'Sent":0,"fpsGraphicsInput":21.86439764526312,"fpsGraphicsOutput":21.8539465'
215'38565932,"googFrameSpacing":512}},{"ssrc":{"googContentType":"realtime","go'
216'ogCaptureStartNtpTimeMs":0,"googTargetDelayMs":103,"packetsLost":0,"googDec'
217'odeMs":3,"googFrameHeightReceived":180,"googFrameRateOutput":22,"packetsRec'
218'eived":195,"ssrc":811526342,"googRenderDelayMs":10,"googMaxDecodeMs":13,"go'
219'ogTrackId":"hangoutF724C8C9_ephemeral.id.google.com%5E23a2bf2b70/811526342"'
220',"googFrameWidthReceived":320,"codecImplementationName":"unknown","transpor'
221'tId":"Channel-audio-1","mediaType":"video","googInterframeDelayMax":1444,"g'
222'oogCodecName":"VP8","googFrameRateReceived":23,"framesDecoded":143,"googNac'
223'ksSent":0,"googFirsSent":0,"bytesReceived":147248,"googCurrentDelayMs":69,"'
224'googMinPlayoutDelayMs":0,"googFrameRateDecoded":22,"googJitterBufferMs":80,'
225'"googPlisSent":0,"fpsGraphicsInput":15.432764893113935,"fpsGraphicsOutput":'
226'15.432764893113935,"googFrameSpacing":505}},{"ssrc":{"googContentType":"rea'
227'ltime","googCaptureStartNtpTimeMs":0,"googTargetDelayMs":92,"packetsLost":0'
228',"googDecodeMs":4,"googFrameHeightReceived":180,"googFrameRateOutput":21,"p'
229'acketsReceived":208,"ssrc":1009208770,"googRenderDelayMs":10,"googMaxDecode'
230'Ms":13,"googTrackId":"hangout757A0188_ephemeral.id.google.com%5E576980a8ae/'
231'1009208770","googFrameWidthReceived":320,"codecImplementationName":"unknown'
232'","transportId":"Channel-audio-1","mediaType":"video","googInterframeDelayM'
233'ax":810,"googCodecName":"VP8","googFrameRateReceived":23,"framesDecoded":15'
234'6,"googNacksSent":0,"googFirsSent":0,"bytesReceived":151801,"googCurrentDel'
235'ayMs":79,"googMinPlayoutDelayMs":0,"googFrameRateDecoded":21,"googJitterBuf'
236'ferMs":69,"googPlisSent":0,"fpsGraphicsInput":16.79306605413843,"fpsGraphic'
237'sOutput":16.684723692498824,"googFrameSpacing":502}},{"ssrc":{"googContentT'
238'ype":"realtime","googCaptureStartNtpTimeMs":0,"googTargetDelayMs":82,"packe'
239'tsLost":0,"googDecodeMs":4,"googFrameHeightReceived":180,"googFrameRateOutp'
240'ut":24,"packetsReceived":210,"ssrc":1750328988,"googRenderDelayMs":10,"goog'
241'MaxDecodeMs":15,"googTrackId":"hangout9227780C_ephemeral.id.google.com%5Eff'
242'ba3cb857/1750328988","googFrameWidthReceived":320,"codecImplementationName"'
243':"unknown","transportId":"Channel-audio-1","mediaType":"video","googInterfr'
244'ameDelayMax":518,"googCodecName":"VP8","googFrameRateReceived":24,"framesDe'
245'coded":152,"googNacksSent":0,"googFirsSent":0,"bytesReceived":157397,"googC'
246'urrentDelayMs":72,"googMinPlayoutDelayMs":0,"googFrameRateDecoded":24,"goog'
247'JitterBufferMs":57,"googPlisSent":0,"fpsGraphicsInput":16.296136355665766,"'
248'fpsGraphicsOutput":16.296136355665766,"googFrameSpacing":746}},{"ssrc":{"go'
249'ogContentType":"realtime","googCaptureStartNtpTimeMs":0,"googTargetDelayMs"'
250':102,"packetsLost":0,"googDecodeMs":4,"googFrameHeightReceived":180,"googFr'
251'ameRateOutput":24,"packetsReceived":220,"ssrc":2749867232,"googRenderDelayM'
252's":10,"googMaxDecodeMs":12,"googTrackId":"hangoutF9EAE779_ephemeral.id.goog'
253'le.com%5E42ce92f210/2749867232","googFrameWidthReceived":320,"codecImplemen'
254'tationName":"unknown","transportId":"Channel-audio-1","mediaType":"video","'
255'googInterframeDelayMax":583,"googCodecName":"VP8","googFrameRateReceived":2'
256'4,"framesDecoded":171,"googNacksSent":0,"googFirsSent":0,"bytesReceived":16'
257'3793,"googCurrentDelayMs":75,"googMinPlayoutDelayMs":0,"googFrameRateDecode'
258'd":24,"googJitterBufferMs":80,"googPlisSent":0,"fpsGraphicsInput":18.197388'
259'58914156,"fpsGraphicsOutput":18.19738858914156,"googFrameSpacing":502}},{"s'
260'src":{"googContentType":"realtime","googCaptureStartNtpTimeMs":0,"googTarge'
261'tDelayMs":87,"packetsLost":0,"googDecodeMs":5,"googFrameHeightReceived":180'
262',"googFrameRateOutput":24,"packetsReceived":220,"ssrc":3276788334,"googRend'
263'erDelayMs":10,"googMaxDecodeMs":13,"googTrackId":"hangout83754FD7_ephemeral'
264'.id.google.com%5E2f542d3bca/3276788334","googFrameWidthReceived":320,"codec'
265'ImplementationName":"unknown","transportId":"Channel-audio-1","mediaType":"'
266'video","googInterframeDelayMax":648,"googCodecName":"VP8","googFrameRateRec'
267'eived":25,"framesDecoded":167,"googNacksSent":0,"googFirsSent":0,"bytesRece'
268'ived":159314,"googCurrentDelayMs":72,"googMinPlayoutDelayMs":0,"googFrameRa'
269'teDecoded":24,"googJitterBufferMs":64,"googPlisSent":0,"fpsGraphicsInput":1'
270'7.872616766543615,"fpsGraphicsOutput":17.76429787704941,"googFrameSpacing":'
271'502}},{"ssrc":{"audioInputLevel":0,"packetsLost":0,"googResidualEchoLikelih'
272'ood":0,"googRtt":24,"googResidualEchoLikelihoodRecentMax":0,"googEchoCancel'
273'lationReturnLossEnhancement":-100,"totalSamplesDuration":0,"totalAudioEnerg'
274'y":0,"transportId":"Channel-audio-1","mediaType":"audio","aecDivergentFilte'
275'rFraction":0,"googEchoCancellationReturnLoss":-100,"googCodecName":"opus","'
276'googEchoCancellationEchoDelayMedian":388,"googEchoCancellationQualityMin":0'
277',"googTrackId":"4224ce1c-0c2f-4bb4-9d91-3798ca549328","ssrc":141808114,"goo'
278'gJitterReceived":3,"googTypingNoiseState":"false","packetsSent":63,"bytesSe'
279'nt":2709,"googEchoCancellationEchoDelayStdDev":0}},{"ssrc":{"googContentTyp'
280'e":"realtime","googFrameWidthSent":1280,"packetsLost":45,"googRtt":23,"goog'
281'EncodeUsagePercent":82,"googCpuLimitedResolution":"false","googNacksReceive'
282'd":0,"googBandwidthLimitedResolution":"false","googPlisReceived":0,"googAvg'
283'EncodeMs":17,"googTrackId":"99a2ae0e-9cfa-4a7d-83a6-8ea3d5cc2c2e","googFram'
284'eRateInput":24,"framesEncoded":657,"codecImplementationName":"SimulcastEnco'
285'derAdapter (unknown, unknown, unknown)","transportId":"Channel-audio-1","me'
286'diaType":"video","googFrameHeightSent":720,"googFrameRateSent":24,"googCode'
287'cName":"VP8","googAdaptationChanges":0,"ssrc":3865366536,"googFirsReceived"'
288':0,"packetsSent":1869,"bytesSent":1796767,"googAdaptationReason":0}}]')
289
290