@webex/plugin-meetings 3.0.0-beta.39 → 3.0.0-beta.391

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.
Files changed (393) hide show
  1. package/README.md +58 -8
  2. package/dist/annotation/annotation.types.js +7 -0
  3. package/dist/annotation/annotation.types.js.map +1 -0
  4. package/dist/annotation/constants.js +49 -0
  5. package/dist/annotation/constants.js.map +1 -0
  6. package/dist/annotation/index.js +342 -0
  7. package/dist/annotation/index.js.map +1 -0
  8. package/dist/breakouts/breakout.js +94 -15
  9. package/dist/breakouts/breakout.js.map +1 -1
  10. package/dist/breakouts/events.js +45 -0
  11. package/dist/breakouts/events.js.map +1 -0
  12. package/dist/breakouts/index.js +671 -81
  13. package/dist/breakouts/index.js.map +1 -1
  14. package/dist/breakouts/utils.js +45 -1
  15. package/dist/breakouts/utils.js.map +1 -1
  16. package/dist/common/errors/no-meeting-info.js +51 -0
  17. package/dist/common/errors/no-meeting-info.js.map +1 -0
  18. package/dist/common/errors/reclaim-host-role-errors.js +158 -0
  19. package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
  20. package/dist/common/errors/webex-errors.js +48 -7
  21. package/dist/common/errors/webex-errors.js.map +1 -1
  22. package/dist/common/logs/logger-proxy.js +1 -1
  23. package/dist/common/logs/logger-proxy.js.map +1 -1
  24. package/dist/common/logs/request.js +5 -1
  25. package/dist/common/logs/request.js.map +1 -1
  26. package/dist/common/queue.js +24 -9
  27. package/dist/common/queue.js.map +1 -1
  28. package/dist/config.js +5 -10
  29. package/dist/config.js.map +1 -1
  30. package/dist/constants.js +242 -33
  31. package/dist/constants.js.map +1 -1
  32. package/dist/controls-options-manager/enums.js +14 -2
  33. package/dist/controls-options-manager/enums.js.map +1 -1
  34. package/dist/controls-options-manager/index.js +109 -15
  35. package/dist/controls-options-manager/index.js.map +1 -1
  36. package/dist/controls-options-manager/types.js +7 -0
  37. package/dist/controls-options-manager/types.js.map +1 -0
  38. package/dist/controls-options-manager/util.js +309 -18
  39. package/dist/controls-options-manager/util.js.map +1 -1
  40. package/dist/index.js +110 -2
  41. package/dist/index.js.map +1 -1
  42. package/dist/interceptors/index.js +15 -0
  43. package/dist/interceptors/index.js.map +1 -0
  44. package/dist/interceptors/locusRetry.js +93 -0
  45. package/dist/interceptors/locusRetry.js.map +1 -0
  46. package/dist/interpretation/collection.js +23 -0
  47. package/dist/interpretation/collection.js.map +1 -0
  48. package/dist/interpretation/index.js +380 -0
  49. package/dist/interpretation/index.js.map +1 -0
  50. package/dist/interpretation/siLanguage.js +25 -0
  51. package/dist/interpretation/siLanguage.js.map +1 -0
  52. package/dist/locus-info/controlsUtils.js +91 -2
  53. package/dist/locus-info/controlsUtils.js.map +1 -1
  54. package/dist/locus-info/index.js +386 -62
  55. package/dist/locus-info/index.js.map +1 -1
  56. package/dist/locus-info/infoUtils.js +7 -1
  57. package/dist/locus-info/infoUtils.js.map +1 -1
  58. package/dist/locus-info/mediaSharesUtils.js +71 -1
  59. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  60. package/dist/locus-info/parser.js +249 -72
  61. package/dist/locus-info/parser.js.map +1 -1
  62. package/dist/locus-info/selfUtils.js +89 -14
  63. package/dist/locus-info/selfUtils.js.map +1 -1
  64. package/dist/media/index.js +65 -102
  65. package/dist/media/index.js.map +1 -1
  66. package/dist/media/properties.js +73 -124
  67. package/dist/media/properties.js.map +1 -1
  68. package/dist/mediaQualityMetrics/config.js +135 -330
  69. package/dist/mediaQualityMetrics/config.js.map +1 -1
  70. package/dist/meeting/in-meeting-actions.js +86 -2
  71. package/dist/meeting/in-meeting-actions.js.map +1 -1
  72. package/dist/meeting/index.js +4075 -2827
  73. package/dist/meeting/index.js.map +1 -1
  74. package/dist/meeting/locusMediaRequest.js +292 -0
  75. package/dist/meeting/locusMediaRequest.js.map +1 -0
  76. package/dist/meeting/muteState.js +224 -136
  77. package/dist/meeting/muteState.js.map +1 -1
  78. package/dist/meeting/request.js +177 -152
  79. package/dist/meeting/request.js.map +1 -1
  80. package/dist/meeting/util.js +672 -417
  81. package/dist/meeting/util.js.map +1 -1
  82. package/dist/meeting-info/index.js +73 -7
  83. package/dist/meeting-info/index.js.map +1 -1
  84. package/dist/meeting-info/meeting-info-v2.js +192 -51
  85. package/dist/meeting-info/meeting-info-v2.js.map +1 -1
  86. package/dist/meeting-info/util.js +1 -1
  87. package/dist/meeting-info/util.js.map +1 -1
  88. package/dist/meeting-info/utilv2.js +36 -36
  89. package/dist/meeting-info/utilv2.js.map +1 -1
  90. package/dist/meetings/collection.js +39 -0
  91. package/dist/meetings/collection.js.map +1 -1
  92. package/dist/meetings/index.js +484 -119
  93. package/dist/meetings/index.js.map +1 -1
  94. package/dist/meetings/meetings.types.js +7 -0
  95. package/dist/meetings/meetings.types.js.map +1 -0
  96. package/dist/meetings/request.js +2 -0
  97. package/dist/meetings/request.js.map +1 -1
  98. package/dist/meetings/util.js +73 -7
  99. package/dist/meetings/util.js.map +1 -1
  100. package/dist/member/index.js +58 -0
  101. package/dist/member/index.js.map +1 -1
  102. package/dist/member/types.js +25 -0
  103. package/dist/member/types.js.map +1 -0
  104. package/dist/member/util.js +132 -25
  105. package/dist/member/util.js.map +1 -1
  106. package/dist/members/collection.js +10 -0
  107. package/dist/members/collection.js.map +1 -1
  108. package/dist/members/index.js +102 -6
  109. package/dist/members/index.js.map +1 -1
  110. package/dist/members/request.js +106 -38
  111. package/dist/members/request.js.map +1 -1
  112. package/dist/members/types.js +15 -0
  113. package/dist/members/types.js.map +1 -0
  114. package/dist/members/util.js +326 -232
  115. package/dist/members/util.js.map +1 -1
  116. package/dist/metrics/constants.js +18 -1
  117. package/dist/metrics/constants.js.map +1 -1
  118. package/dist/metrics/index.js +1 -446
  119. package/dist/metrics/index.js.map +1 -1
  120. package/dist/multistream/mediaRequestManager.js +223 -32
  121. package/dist/multistream/mediaRequestManager.js.map +1 -1
  122. package/dist/multistream/receiveSlot.js +10 -0
  123. package/dist/multistream/receiveSlot.js.map +1 -1
  124. package/dist/multistream/receiveSlotManager.js +39 -36
  125. package/dist/multistream/receiveSlotManager.js.map +1 -1
  126. package/dist/multistream/remoteMedia.js +3 -1
  127. package/dist/multistream/remoteMedia.js.map +1 -1
  128. package/dist/multistream/remoteMediaGroup.js +76 -5
  129. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  130. package/dist/multistream/remoteMediaManager.js +366 -104
  131. package/dist/multistream/remoteMediaManager.js.map +1 -1
  132. package/dist/multistream/sendSlotManager.js +255 -0
  133. package/dist/multistream/sendSlotManager.js.map +1 -0
  134. package/dist/reachability/clusterReachability.js +356 -0
  135. package/dist/reachability/clusterReachability.js.map +1 -0
  136. package/dist/reachability/index.js +263 -390
  137. package/dist/reachability/index.js.map +1 -1
  138. package/dist/reachability/request.js +6 -4
  139. package/dist/reachability/request.js.map +1 -1
  140. package/dist/reachability/util.js +29 -0
  141. package/dist/reachability/util.js.map +1 -0
  142. package/dist/reconnection-manager/index.js +266 -202
  143. package/dist/reconnection-manager/index.js.map +1 -1
  144. package/dist/recording-controller/index.js +21 -2
  145. package/dist/recording-controller/index.js.map +1 -1
  146. package/dist/recording-controller/util.js +9 -8
  147. package/dist/recording-controller/util.js.map +1 -1
  148. package/dist/roap/index.js +51 -28
  149. package/dist/roap/index.js.map +1 -1
  150. package/dist/roap/request.js +48 -64
  151. package/dist/roap/request.js.map +1 -1
  152. package/dist/roap/turnDiscovery.js +220 -70
  153. package/dist/roap/turnDiscovery.js.map +1 -1
  154. package/dist/rtcMetrics/constants.js +12 -0
  155. package/dist/rtcMetrics/constants.js.map +1 -0
  156. package/dist/rtcMetrics/index.js +179 -0
  157. package/dist/rtcMetrics/index.js.map +1 -0
  158. package/dist/statsAnalyzer/index.js +357 -295
  159. package/dist/statsAnalyzer/index.js.map +1 -1
  160. package/dist/statsAnalyzer/mqaUtil.js +296 -156
  161. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  162. package/dist/types/annotation/annotation.types.d.ts +42 -0
  163. package/dist/types/annotation/constants.d.ts +31 -0
  164. package/dist/types/annotation/index.d.ts +117 -0
  165. package/dist/types/breakouts/events.d.ts +8 -0
  166. package/dist/types/breakouts/utils.d.ts +14 -0
  167. package/dist/types/common/errors/no-meeting-info.d.ts +14 -0
  168. package/dist/types/common/errors/reclaim-host-role-errors.d.ts +60 -0
  169. package/dist/types/common/errors/webex-errors.d.ts +25 -1
  170. package/dist/types/common/logs/request.d.ts +2 -0
  171. package/dist/types/common/queue.d.ts +9 -7
  172. package/dist/types/config.d.ts +2 -7
  173. package/dist/types/constants.d.ts +203 -31
  174. package/dist/types/controls-options-manager/enums.d.ts +11 -1
  175. package/dist/types/controls-options-manager/index.d.ts +17 -1
  176. package/dist/types/controls-options-manager/types.d.ts +43 -0
  177. package/dist/types/controls-options-manager/util.d.ts +1 -7
  178. package/dist/types/index.d.ts +6 -5
  179. package/dist/types/interceptors/index.d.ts +2 -0
  180. package/dist/types/interceptors/locusRetry.d.ts +27 -0
  181. package/dist/types/interpretation/collection.d.ts +5 -0
  182. package/dist/types/interpretation/index.d.ts +5 -0
  183. package/dist/types/interpretation/siLanguage.d.ts +5 -0
  184. package/dist/types/locus-info/index.d.ts +57 -4
  185. package/dist/types/locus-info/parser.d.ts +66 -6
  186. package/dist/types/media/index.d.ts +2 -0
  187. package/dist/types/media/properties.d.ts +34 -49
  188. package/dist/types/mediaQualityMetrics/config.d.ts +99 -223
  189. package/dist/types/meeting/in-meeting-actions.d.ts +86 -2
  190. package/dist/types/meeting/index.d.ts +567 -496
  191. package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
  192. package/dist/types/meeting/muteState.d.ts +93 -25
  193. package/dist/types/meeting/request.d.ts +64 -43
  194. package/dist/types/meeting/util.d.ts +117 -1
  195. package/dist/types/meeting-info/index.d.ts +13 -1
  196. package/dist/types/meeting-info/meeting-info-v2.d.ts +31 -1
  197. package/dist/types/meetings/collection.d.ts +17 -0
  198. package/dist/types/meetings/index.d.ts +113 -21
  199. package/dist/types/meetings/meetings.types.d.ts +4 -0
  200. package/dist/types/member/index.d.ts +14 -0
  201. package/dist/types/member/types.d.ts +32 -0
  202. package/dist/types/members/collection.d.ts +5 -0
  203. package/dist/types/members/index.d.ts +35 -2
  204. package/dist/types/members/request.d.ts +73 -9
  205. package/dist/types/members/types.d.ts +25 -0
  206. package/dist/types/members/util.d.ts +214 -1
  207. package/dist/types/metrics/constants.d.ts +17 -0
  208. package/dist/types/metrics/index.d.ts +4 -111
  209. package/dist/types/multistream/mediaRequestManager.d.ts +72 -3
  210. package/dist/types/multistream/receiveSlot.d.ts +7 -3
  211. package/dist/types/multistream/receiveSlotManager.d.ts +14 -4
  212. package/dist/types/multistream/remoteMedia.d.ts +3 -31
  213. package/dist/types/multistream/remoteMediaGroup.d.ts +2 -9
  214. package/dist/types/multistream/remoteMediaManager.d.ts +62 -2
  215. package/dist/types/multistream/sendSlotManager.d.ts +70 -0
  216. package/dist/types/reachability/clusterReachability.d.ts +109 -0
  217. package/dist/types/reachability/index.d.ts +60 -95
  218. package/dist/types/reachability/request.d.ts +3 -1
  219. package/dist/types/reachability/util.d.ts +8 -0
  220. package/dist/types/reconnection-manager/index.d.ts +19 -0
  221. package/dist/types/recording-controller/index.d.ts +15 -1
  222. package/dist/types/recording-controller/util.d.ts +5 -4
  223. package/dist/types/roap/index.d.ts +2 -1
  224. package/dist/types/roap/request.d.ts +9 -8
  225. package/dist/types/roap/turnDiscovery.d.ts +39 -5
  226. package/dist/types/rtcMetrics/constants.d.ts +4 -0
  227. package/dist/types/rtcMetrics/index.d.ts +61 -0
  228. package/dist/types/statsAnalyzer/index.d.ts +34 -12
  229. package/dist/types/statsAnalyzer/mqaUtil.d.ts +28 -4
  230. package/dist/types/webinar/collection.d.ts +16 -0
  231. package/dist/types/webinar/index.d.ts +5 -0
  232. package/dist/webinar/collection.js +44 -0
  233. package/dist/webinar/collection.js.map +1 -0
  234. package/dist/webinar/index.js +69 -0
  235. package/dist/webinar/index.js.map +1 -0
  236. package/package.json +22 -19
  237. package/src/annotation/annotation.types.ts +50 -0
  238. package/src/annotation/constants.ts +36 -0
  239. package/src/annotation/index.ts +328 -0
  240. package/src/breakouts/README.md +35 -11
  241. package/src/breakouts/breakout.ts +67 -9
  242. package/src/breakouts/events.ts +56 -0
  243. package/src/breakouts/index.ts +558 -59
  244. package/src/breakouts/utils.ts +42 -0
  245. package/src/common/errors/no-meeting-info.ts +24 -0
  246. package/src/common/errors/reclaim-host-role-errors.ts +134 -0
  247. package/src/common/errors/webex-errors.ts +44 -2
  248. package/src/common/logs/logger-proxy.ts +1 -1
  249. package/src/common/logs/request.ts +5 -1
  250. package/src/common/queue.ts +22 -8
  251. package/src/config.ts +4 -9
  252. package/src/constants.ts +229 -21
  253. package/src/controls-options-manager/enums.ts +12 -0
  254. package/src/controls-options-manager/index.ts +116 -21
  255. package/src/controls-options-manager/types.ts +59 -0
  256. package/src/controls-options-manager/util.ts +294 -14
  257. package/src/index.ts +44 -0
  258. package/src/interceptors/index.ts +3 -0
  259. package/src/interceptors/locusRetry.ts +67 -0
  260. package/src/interpretation/README.md +60 -0
  261. package/src/interpretation/collection.ts +19 -0
  262. package/src/interpretation/index.ts +349 -0
  263. package/src/interpretation/siLanguage.ts +18 -0
  264. package/src/locus-info/controlsUtils.ts +108 -0
  265. package/src/locus-info/index.ts +417 -59
  266. package/src/locus-info/infoUtils.ts +10 -2
  267. package/src/locus-info/mediaSharesUtils.ts +80 -0
  268. package/src/locus-info/parser.ts +258 -47
  269. package/src/locus-info/selfUtils.ts +81 -5
  270. package/src/media/index.ts +100 -108
  271. package/src/media/properties.ts +88 -117
  272. package/src/mediaQualityMetrics/config.ts +103 -238
  273. package/src/meeting/in-meeting-actions.ts +171 -3
  274. package/src/meeting/index.ts +3411 -2435
  275. package/src/meeting/locusMediaRequest.ts +313 -0
  276. package/src/meeting/muteState.ts +223 -136
  277. package/src/meeting/request.ts +155 -120
  278. package/src/meeting/util.ts +685 -395
  279. package/src/meeting-info/index.ts +81 -8
  280. package/src/meeting-info/meeting-info-v2.ts +170 -14
  281. package/src/meeting-info/util.ts +1 -1
  282. package/src/meeting-info/utilv2.ts +23 -23
  283. package/src/meetings/collection.ts +33 -0
  284. package/src/meetings/index.ts +507 -127
  285. package/src/meetings/meetings.types.ts +12 -0
  286. package/src/meetings/request.ts +2 -0
  287. package/src/meetings/util.ts +81 -12
  288. package/src/member/index.ts +58 -0
  289. package/src/member/types.ts +38 -0
  290. package/src/member/util.ts +141 -25
  291. package/src/members/collection.ts +8 -0
  292. package/src/members/index.ts +134 -8
  293. package/src/members/request.ts +97 -17
  294. package/src/members/types.ts +29 -0
  295. package/src/members/util.ts +333 -240
  296. package/src/metrics/constants.ts +17 -0
  297. package/src/metrics/index.ts +1 -469
  298. package/src/multistream/mediaRequestManager.ts +271 -56
  299. package/src/multistream/receiveSlot.ts +11 -4
  300. package/src/multistream/receiveSlotManager.ts +34 -24
  301. package/src/multistream/remoteMedia.ts +5 -3
  302. package/src/multistream/remoteMediaGroup.ts +78 -0
  303. package/src/multistream/remoteMediaManager.ts +248 -44
  304. package/src/multistream/sendSlotManager.ts +199 -0
  305. package/src/reachability/clusterReachability.ts +320 -0
  306. package/src/reachability/index.ts +229 -346
  307. package/src/reachability/request.ts +8 -4
  308. package/src/reachability/util.ts +24 -0
  309. package/src/reconnection-manager/index.ts +128 -97
  310. package/src/recording-controller/index.ts +20 -3
  311. package/src/recording-controller/util.ts +26 -9
  312. package/src/roap/index.ts +52 -23
  313. package/src/roap/request.ts +48 -67
  314. package/src/roap/turnDiscovery.ts +147 -49
  315. package/src/rtcMetrics/constants.ts +3 -0
  316. package/src/rtcMetrics/index.ts +166 -0
  317. package/src/statsAnalyzer/index.ts +457 -416
  318. package/src/statsAnalyzer/mqaUtil.ts +317 -170
  319. package/src/webinar/collection.ts +31 -0
  320. package/src/webinar/index.ts +62 -0
  321. package/test/integration/spec/converged-space-meetings.js +60 -3
  322. package/test/integration/spec/journey.js +320 -261
  323. package/test/integration/spec/space-meeting.js +76 -3
  324. package/test/unit/spec/annotation/index.ts +418 -0
  325. package/test/unit/spec/breakouts/breakout.ts +118 -28
  326. package/test/unit/spec/breakouts/events.ts +89 -0
  327. package/test/unit/spec/breakouts/index.ts +1349 -114
  328. package/test/unit/spec/breakouts/utils.js +52 -1
  329. package/test/unit/spec/common/queue.js +31 -2
  330. package/test/unit/spec/controls-options-manager/index.js +163 -0
  331. package/test/unit/spec/controls-options-manager/util.js +576 -60
  332. package/test/unit/spec/fixture/locus.js +1 -0
  333. package/test/unit/spec/interceptors/locusRetry.ts +131 -0
  334. package/test/unit/spec/interpretation/collection.ts +15 -0
  335. package/test/unit/spec/interpretation/index.ts +625 -0
  336. package/test/unit/spec/interpretation/siLanguage.ts +28 -0
  337. package/test/unit/spec/locus-info/controlsUtils.js +316 -43
  338. package/test/unit/spec/locus-info/index.js +1363 -37
  339. package/test/unit/spec/locus-info/infoUtils.js +37 -15
  340. package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
  341. package/test/unit/spec/locus-info/mediaSharesUtils.ts +41 -0
  342. package/test/unit/spec/locus-info/parser.js +116 -35
  343. package/test/unit/spec/locus-info/selfConstant.js +27 -4
  344. package/test/unit/spec/locus-info/selfUtils.js +208 -17
  345. package/test/unit/spec/media/index.ts +173 -81
  346. package/test/unit/spec/media/properties.ts +2 -2
  347. package/test/unit/spec/meeting/in-meeting-actions.ts +85 -3
  348. package/test/unit/spec/meeting/index.js +6821 -2172
  349. package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
  350. package/test/unit/spec/meeting/muteState.js +402 -212
  351. package/test/unit/spec/meeting/request.js +473 -54
  352. package/test/unit/spec/meeting/utils.js +773 -67
  353. package/test/unit/spec/meeting-info/index.js +300 -0
  354. package/test/unit/spec/meeting-info/meetinginfov2.js +526 -5
  355. package/test/unit/spec/meeting-info/utilv2.js +21 -0
  356. package/test/unit/spec/meetings/collection.js +26 -0
  357. package/test/unit/spec/meetings/index.js +1415 -213
  358. package/test/unit/spec/meetings/utils.js +229 -2
  359. package/test/unit/spec/member/index.js +61 -6
  360. package/test/unit/spec/member/util.js +510 -34
  361. package/test/unit/spec/members/index.js +432 -1
  362. package/test/unit/spec/members/request.js +206 -27
  363. package/test/unit/spec/members/utils.js +210 -0
  364. package/test/unit/spec/metrics/index.js +1 -50
  365. package/test/unit/spec/multistream/mediaRequestManager.ts +781 -114
  366. package/test/unit/spec/multistream/receiveSlot.ts +9 -1
  367. package/test/unit/spec/multistream/receiveSlotManager.ts +32 -30
  368. package/test/unit/spec/multistream/remoteMedia.ts +2 -0
  369. package/test/unit/spec/multistream/remoteMediaGroup.ts +345 -0
  370. package/test/unit/spec/multistream/remoteMediaManager.ts +525 -0
  371. package/test/unit/spec/multistream/sendSlotManager.ts +274 -0
  372. package/test/unit/spec/reachability/clusterReachability.ts +279 -0
  373. package/test/unit/spec/reachability/index.ts +551 -14
  374. package/test/unit/spec/reachability/request.js +3 -1
  375. package/test/unit/spec/reachability/util.ts +40 -0
  376. package/test/unit/spec/reconnection-manager/index.js +171 -11
  377. package/test/unit/spec/recording-controller/index.js +294 -218
  378. package/test/unit/spec/recording-controller/util.js +223 -96
  379. package/test/unit/spec/roap/index.ts +180 -83
  380. package/test/unit/spec/roap/request.ts +100 -62
  381. package/test/unit/spec/roap/turnDiscovery.ts +388 -96
  382. package/test/unit/spec/rtcMetrics/index.ts +122 -0
  383. package/test/unit/spec/stats-analyzer/index.js +1252 -12
  384. package/test/unit/spec/webinar/collection.ts +13 -0
  385. package/test/unit/spec/webinar/index.ts +60 -0
  386. package/test/utils/integrationTestUtils.js +46 -0
  387. package/test/utils/testUtils.js +0 -57
  388. package/test/utils/webex-test-users.js +12 -4
  389. package/dist/metrics/config.js +0 -289
  390. package/dist/metrics/config.js.map +0 -1
  391. package/dist/types/metrics/config.d.ts +0 -169
  392. package/src/index.js +0 -18
  393. package/src/metrics/config.ts +0 -485
@@ -5,214 +5,354 @@ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequ
5
5
  _Object$defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.getVideoSenderMqa = exports.getVideoReceiverMqa = exports.getAudioSenderMqa = exports.getAudioReceiverMqa = void 0;
8
+ exports.getVideoSenderStreamMqa = exports.getVideoSenderMqa = exports.getVideoReceiverStreamMqa = exports.getVideoReceiverMqa = exports.getAudioSenderStreamMqa = exports.getAudioSenderMqa = exports.getAudioReceiverStreamMqa = exports.getAudioReceiverMqa = void 0;
9
+ var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
9
10
  var _max2 = _interopRequireDefault(require("lodash/max"));
10
11
  var _mean2 = _interopRequireDefault(require("lodash/mean"));
11
12
  var _constants = require("../constants");
13
+ /**
14
+ * Get the totals of a certain value from a certain media type.
15
+ *
16
+ * @param {object} stats - The large stats object.
17
+ * @param {string} sendrecvType - "send" or "recv".
18
+ * @param {string} baseMediaType - audio or video _and_ share or non-share.
19
+ * @param {string} value - The value we want to get the totals of.
20
+ * @returns {number}
21
+ */
22
+ var getTotalValueFromBaseType = function getTotalValueFromBaseType(stats, sendrecvType, baseMediaType, value) {
23
+ return (0, _keys.default)(stats).filter(function (mt) {
24
+ return mt.includes(baseMediaType);
25
+ }).reduce(function (acc, mt) {
26
+ var _stats$mt, _stats$mt$sendrecvTyp;
27
+ return acc + (((_stats$mt = stats[mt]) === null || _stats$mt === void 0 ? void 0 : (_stats$mt$sendrecvTyp = _stats$mt[sendrecvType]) === null || _stats$mt$sendrecvTyp === void 0 ? void 0 : _stats$mt$sendrecvTyp[value]) || 0);
28
+ }, 0);
29
+ };
12
30
  var getAudioReceiverMqa = function getAudioReceiverMqa(_ref) {
13
- var _lastMqaDataSent$medi, _lastMqaDataSent$medi2, _lastMqaDataSent$medi3, _lastMqaDataSent$medi4, _lastMqaDataSent$medi5, _lastMqaDataSent$medi6, _lastMqaDataSent$medi7, _lastMqaDataSent$medi8;
31
+ var _statsResults$Object$;
14
32
  var audioReceiver = _ref.audioReceiver,
15
33
  statsResults = _ref.statsResults,
16
34
  lastMqaDataSent = _ref.lastMqaDataSent,
17
- mediaType = _ref.mediaType;
35
+ baseMediaType = _ref.baseMediaType;
18
36
  var sendrecvType = _constants.STATS.RECEIVE_DIRECTION;
19
- var lastPacketsReceived = ((_lastMqaDataSent$medi = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi === void 0 ? void 0 : _lastMqaDataSent$medi[sendrecvType].totalPacketsReceived) || 0;
20
- var lastPacketsLost = ((_lastMqaDataSent$medi2 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi2 === void 0 ? void 0 : _lastMqaDataSent$medi2[sendrecvType].totalPacketsLost) || 0;
21
- var lastPacketsDecoded = ((_lastMqaDataSent$medi3 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi3 === void 0 ? void 0 : _lastMqaDataSent$medi3[sendrecvType].totalSamplesDecoded) || 0;
22
- var lastSamplesReceived = ((_lastMqaDataSent$medi4 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi4 === void 0 ? void 0 : _lastMqaDataSent$medi4[sendrecvType].totalSamplesReceived) || 0;
23
- var lastConcealedSamples = ((_lastMqaDataSent$medi5 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi5 === void 0 ? void 0 : _lastMqaDataSent$medi5[sendrecvType].concealedSamples) || 0;
24
- var lastBytesReceived = ((_lastMqaDataSent$medi6 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi6 === void 0 ? void 0 : _lastMqaDataSent$medi6[sendrecvType].totalBytesReceived) || 0;
25
- var lastFecPacketsReceived = ((_lastMqaDataSent$medi7 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi7 === void 0 ? void 0 : _lastMqaDataSent$medi7[sendrecvType].fecPacketsReceived) || 0;
26
- var lastFecPacketsDiscarded = ((_lastMqaDataSent$medi8 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi8 === void 0 ? void 0 : _lastMqaDataSent$medi8[sendrecvType].fecPacketsDiscarded) || 0;
27
- var csi = statsResults[mediaType].csi;
28
- if (csi && !audioReceiver.streams[0].common.csi.includes(csi)) {
29
- audioReceiver.streams[0].common.csi.push(csi);
30
- }
31
- audioReceiver.common.common.direction = statsResults[mediaType].direction;
32
- audioReceiver.common.transportType = statsResults.connectionType.remote.transport[0];
37
+ var getLastTotalValue = function getLastTotalValue(value) {
38
+ return getTotalValueFromBaseType(lastMqaDataSent, sendrecvType, baseMediaType, value);
39
+ };
40
+ var getTotalValue = function getTotalValue(value) {
41
+ return getTotalValueFromBaseType(statsResults, sendrecvType, baseMediaType, value);
42
+ };
43
+ var lastPacketsReceived = getLastTotalValue('totalPacketsReceived');
44
+ var lastPacketsLost = getLastTotalValue('totalPacketsLost');
45
+ var lastBytesReceived = getLastTotalValue('totalBytesReceived');
46
+ var lastFecPacketsReceived = getLastTotalValue('fecPacketsReceived');
47
+ var lastFecPacketsDiscarded = getLastTotalValue('fecPacketsDiscarded');
48
+ var totalPacketsReceived = getTotalValue('totalPacketsReceived');
49
+ var packetsLost = getTotalValue('totalPacketsLost');
50
+ var totalBytesReceived = getTotalValue('totalBytesReceived');
51
+ var totalFecPacketsReceived = getTotalValue('fecPacketsReceived');
52
+ var totalFecPacketsDiscarded = getTotalValue('fecPacketsDiscarded');
53
+ audioReceiver.common.common.direction = ((_statsResults$Object$ = statsResults[(0, _keys.default)(statsResults).find(function (mediaType) {
54
+ return mediaType.includes(baseMediaType);
55
+ })]) === null || _statsResults$Object$ === void 0 ? void 0 : _statsResults$Object$.direction) || 'inactive';
56
+ audioReceiver.common.common.isMain = !baseMediaType.includes('-share');
57
+ audioReceiver.common.transportType = statsResults.connectionType.local.transport;
33
58
 
34
59
  // add rtpPacket info inside common as also for call analyzer
35
- audioReceiver.common.rtpPackets = statsResults[mediaType][sendrecvType].totalPacketsReceived - lastPacketsReceived || 0;
60
+ audioReceiver.common.rtpPackets = totalPacketsReceived - lastPacketsReceived;
61
+
36
62
  // Hop by hop are numbers and not percentage so we compare on what we sent the last min
37
63
  // collect the packets received for the last min
38
- audioReceiver.streams[0].common.rtpPackets = audioReceiver.common.rtpPackets;
39
- audioReceiver.common.mediaHopByHopLost = statsResults[mediaType][sendrecvType].totalPacketsLost - lastPacketsLost || 0;
40
- audioReceiver.common.rtpHopByHopLost = statsResults[mediaType][sendrecvType].totalPacketsLost - lastPacketsLost || 0;
41
- audioReceiver.streams[0].common.maxRtpJitter =
42
- // @ts-ignore
43
- (0, _max2.default)(statsResults[mediaType][sendrecvType].meanRtpJitter) * 1000 || 0;
44
- audioReceiver.streams[0].common.meanRtpJitter = (0, _mean2.default)(statsResults[mediaType][sendrecvType].meanRtpJitter) * 1000 || 0;
45
- audioReceiver.streams[0].common.rtpJitter = audioReceiver.streams[0].common.maxRtpJitter;
46
-
47
- // Fec packets do come in as part of the FEC only for audio
48
- var fecRecovered = statsResults[mediaType][sendrecvType].fecPacketsReceived - lastFecPacketsReceived - (statsResults[mediaType][sendrecvType].fecPacketsDiscarded - lastFecPacketsDiscarded);
49
- audioReceiver.streams[0].common.rtpEndToEndLost = statsResults[mediaType][sendrecvType].totalPacketsLost - lastPacketsLost - fecRecovered || 0;
50
- audioReceiver.streams[0].common.framesDropped = statsResults[mediaType][sendrecvType].totalSamplesDecoded - lastPacketsDecoded || 0;
51
- audioReceiver.streams[0].common.renderedFrameRate = audioReceiver.streams[0].common.framesDropped * 100 / 60 || 0;
52
- audioReceiver.streams[0].common.framesReceived = statsResults[mediaType][sendrecvType].totalSamplesReceived - lastSamplesReceived || 0;
53
- audioReceiver.streams[0].common.concealedFrames = statsResults[mediaType][sendrecvType].concealedSamples - lastConcealedSamples || 0;
54
- audioReceiver.streams[0].common.receivedBitrate = (statsResults[mediaType][sendrecvType].totalBytesReceived - lastBytesReceived) * 8 / 60 || 0;
55
- audioReceiver.common.rtpBitrate = audioReceiver.streams[0].common.receivedBitrate;
64
+ var totalPacketsLost = packetsLost - lastPacketsLost;
65
+ audioReceiver.common.mediaHopByHopLost = totalPacketsLost;
66
+ audioReceiver.common.rtpHopByHopLost = totalPacketsLost;
67
+ var fecRecovered = totalFecPacketsReceived - lastFecPacketsReceived - (totalFecPacketsDiscarded - lastFecPacketsDiscarded);
68
+ audioReceiver.common.fecPackets = fecRecovered;
69
+ audioReceiver.common.rtpBitrate = (totalBytesReceived - lastBytesReceived) * 8 / 60 || 0;
56
70
  };
57
71
  exports.getAudioReceiverMqa = getAudioReceiverMqa;
58
- var getAudioSenderMqa = function getAudioSenderMqa(_ref2) {
59
- var _lastMqaDataSent$medi9, _lastMqaDataSent$medi10, _lastMqaDataSent$medi11, _lastMqaDataSent$medi12, _lastMqaDataSent$medi13;
60
- var audioSender = _ref2.audioSender,
72
+ var getAudioReceiverStreamMqa = function getAudioReceiverStreamMqa(_ref2) {
73
+ var _lastMqaDataSent$medi, _lastMqaDataSent$medi2, _lastMqaDataSent$medi3, _lastMqaDataSent$medi4, _lastMqaDataSent$medi5, _lastMqaDataSent$medi6, _lastMqaDataSent$medi7, _lastMqaDataSent$medi8;
74
+ var audioReceiverStream = _ref2.audioReceiverStream,
61
75
  statsResults = _ref2.statsResults,
62
76
  lastMqaDataSent = _ref2.lastMqaDataSent,
63
77
  mediaType = _ref2.mediaType;
64
- var sendrecvType = _constants.STATS.SEND_DIRECTION;
65
- var lastPacketsSent = ((_lastMqaDataSent$medi9 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi9 === void 0 ? void 0 : _lastMqaDataSent$medi9[sendrecvType].totalPacketsSent) || 0;
66
- var lastPacketsLost = ((_lastMqaDataSent$medi10 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi10 === void 0 ? void 0 : _lastMqaDataSent$medi10[sendrecvType].totalPacketsLostOnReceiver) || 0;
67
- var lastBytesSent = ((_lastMqaDataSent$medi11 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi11 === void 0 ? void 0 : _lastMqaDataSent$medi11[sendrecvType].totalBytesSent) || 0;
68
- var lastFramesEncoded = ((_lastMqaDataSent$medi12 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi12 === void 0 ? void 0 : _lastMqaDataSent$medi12[sendrecvType].totalKeyFramesEncoded) || 0;
69
- var lastFirCount = ((_lastMqaDataSent$medi13 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi13 === void 0 ? void 0 : _lastMqaDataSent$medi13[sendrecvType].totalFirCount) || 0;
78
+ var sendrecvType = _constants.STATS.RECEIVE_DIRECTION;
79
+ var lastPacketsDecoded = ((_lastMqaDataSent$medi = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi === void 0 ? void 0 : _lastMqaDataSent$medi[sendrecvType].totalSamplesDecoded) || 0;
80
+ var lastSamplesReceived = ((_lastMqaDataSent$medi2 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi2 === void 0 ? void 0 : _lastMqaDataSent$medi2[sendrecvType].totalSamplesReceived) || 0;
81
+ var lastConcealedSamples = ((_lastMqaDataSent$medi3 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi3 === void 0 ? void 0 : _lastMqaDataSent$medi3[sendrecvType].concealedSamples) || 0;
82
+ var lastBytesReceived = ((_lastMqaDataSent$medi4 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi4 === void 0 ? void 0 : _lastMqaDataSent$medi4[sendrecvType].totalBytesReceived) || 0;
83
+ var lastFecPacketsReceived = ((_lastMqaDataSent$medi5 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi5 === void 0 ? void 0 : _lastMqaDataSent$medi5[sendrecvType].fecPacketsReceived) || 0;
84
+ var lastFecPacketsDiscarded = ((_lastMqaDataSent$medi6 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi6 === void 0 ? void 0 : _lastMqaDataSent$medi6[sendrecvType].fecPacketsDiscarded) || 0;
85
+ var lastPacketsReceived = ((_lastMqaDataSent$medi7 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi7 === void 0 ? void 0 : _lastMqaDataSent$medi7[sendrecvType].totalPacketsReceived) || 0;
86
+ var lastPacketsLost = ((_lastMqaDataSent$medi8 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi8 === void 0 ? void 0 : _lastMqaDataSent$medi8[sendrecvType].totalPacketsLost) || 0;
70
87
  var csi = statsResults[mediaType].csi;
71
- if (csi && !audioSender.streams[0].common.csi.includes(csi)) {
72
- audioSender.streams[0].common.csi.push(csi);
88
+ if (csi && !audioReceiverStream.common.csi.includes(csi)) {
89
+ audioReceiverStream.common.csi.push(csi);
73
90
  }
74
- audioSender.common.common.direction = statsResults[mediaType].direction;
75
- audioSender.common.transportType = statsResults.connectionType.local.transport[0];
76
- audioSender.common.maxRemoteJitter =
91
+ audioReceiverStream.common.rtpPackets = statsResults[mediaType][sendrecvType].totalPacketsReceived - lastPacketsReceived || 0;
92
+ audioReceiverStream.common.maxRtpJitter =
77
93
  // @ts-ignore
78
- (0, _max2.default)(statsResults[mediaType][sendrecvType].meanRemoteJitter) * 1000 || 0;
79
- audioSender.common.meanRemoteJitter = (0, _mean2.default)(statsResults[mediaType][sendrecvType].meanRemoteJitter) * 1000 || 0;
80
- audioSender.common.rtpPackets = statsResults[mediaType][sendrecvType].totalPacketsSent - lastPacketsSent || 0;
81
- audioSender.streams[0].common.rtpPackets = audioSender.common.rtpPackets;
94
+ (0, _max2.default)(statsResults[mediaType][sendrecvType].meanRtpJitter) * 1000 || 0;
95
+ audioReceiverStream.common.meanRtpJitter = (0, _mean2.default)(statsResults[mediaType][sendrecvType].meanRtpJitter) * 1000 || 0;
96
+ audioReceiverStream.common.rtpJitter = audioReceiverStream.common.maxRtpJitter;
97
+
98
+ // Fec packets do come in as part of the FEC only for audio
99
+ var fecRecovered = statsResults[mediaType][sendrecvType].fecPacketsReceived - lastFecPacketsReceived - (statsResults[mediaType][sendrecvType].fecPacketsDiscarded - lastFecPacketsDiscarded);
100
+ audioReceiverStream.common.rtpEndToEndLost = statsResults[mediaType][sendrecvType].totalPacketsLost - lastPacketsLost - fecRecovered || 0;
101
+ audioReceiverStream.common.framesDropped = statsResults[mediaType][sendrecvType].totalSamplesDecoded - lastPacketsDecoded || 0;
102
+ audioReceiverStream.common.renderedFrameRate = audioReceiverStream.common.framesDropped * 100 / 60 || 0;
103
+ audioReceiverStream.common.framesReceived = statsResults[mediaType][sendrecvType].totalSamplesReceived - lastSamplesReceived || 0;
104
+ audioReceiverStream.common.concealedFrames = statsResults[mediaType][sendrecvType].concealedSamples - lastConcealedSamples || 0;
105
+ audioReceiverStream.common.receivedBitrate = (statsResults[mediaType][sendrecvType].totalBytesReceived - lastBytesReceived) * 8 / 60 || 0;
106
+ };
107
+ exports.getAudioReceiverStreamMqa = getAudioReceiverStreamMqa;
108
+ var getAudioSenderMqa = function getAudioSenderMqa(_ref3) {
109
+ var _statsResults$Object$2;
110
+ var audioSender = _ref3.audioSender,
111
+ statsResults = _ref3.statsResults,
112
+ lastMqaDataSent = _ref3.lastMqaDataSent,
113
+ baseMediaType = _ref3.baseMediaType;
114
+ var sendrecvType = _constants.STATS.SEND_DIRECTION;
115
+ var getLastTotalValue = function getLastTotalValue(value) {
116
+ return getTotalValueFromBaseType(lastMqaDataSent, sendrecvType, baseMediaType, value);
117
+ };
118
+ var getTotalValue = function getTotalValue(value) {
119
+ return getTotalValueFromBaseType(statsResults, sendrecvType, baseMediaType, value);
120
+ };
121
+ var lastPacketsSent = getLastTotalValue('totalPacketsSent');
122
+ var lastPacketsLostTotal = getLastTotalValue('totalPacketsLostOnReceiver');
123
+ var totalPacketsLostOnReceiver = getTotalValue('totalPacketsLostOnReceiver');
124
+ var totalPacketsSent = getTotalValue('totalPacketsSent');
125
+ var meanRemoteJitter = (0, _keys.default)(statsResults).filter(function (mt) {
126
+ return mt.includes(baseMediaType);
127
+ }).reduce(function (acc, mt) {
128
+ return acc.concat(statsResults[mt][sendrecvType].meanRemoteJitter);
129
+ }, []);
130
+ var meanRoundTripTime = (0, _keys.default)(statsResults).filter(function (mt) {
131
+ return mt.includes(baseMediaType);
132
+ }).reduce(function (acc, mt) {
133
+ return acc.concat(statsResults[mt][sendrecvType].meanRoundTripTime);
134
+ }, []);
135
+ audioSender.common.common.direction = ((_statsResults$Object$2 = statsResults[(0, _keys.default)(statsResults).find(function (mediaType) {
136
+ return mediaType.includes(baseMediaType);
137
+ })]) === null || _statsResults$Object$2 === void 0 ? void 0 : _statsResults$Object$2.direction) || 'inactive';
138
+ audioSender.common.common.isMain = !baseMediaType.includes('-share');
139
+ audioSender.common.transportType = statsResults.connectionType.local.transport;
140
+ audioSender.common.maxRemoteJitter = (0, _max2.default)(meanRemoteJitter) * 1000 || 0;
141
+ audioSender.common.meanRemoteJitter = (0, _mean2.default)(meanRemoteJitter) * 1000 || 0;
142
+ audioSender.common.rtpPackets = totalPacketsSent - lastPacketsSent || 0;
143
+ // audioSender.streams[0].common.rtpPackets = audioSender.common.rtpPackets;
82
144
  // From candidate-pair
83
- audioSender.common.availableBitrate = statsResults[mediaType][sendrecvType].availableOutgoingBitrate || 0;
145
+ audioSender.common.availableBitrate = getTotalValueFromBaseType(statsResults, sendrecvType, baseMediaType, 'availableOutgoingBitrate');
84
146
  // Calculate based on how much packets lost of received compated to how to the client sent
85
147
 
86
- var totalpacketsLostForaMin = statsResults[mediaType][sendrecvType].totalPacketsLostOnReceiver - lastPacketsLost;
87
- audioSender.common.remoteLossRate = totalpacketsLostForaMin > 0 ? totalpacketsLostForaMin * 100 / audioSender.common.rtpPackets : 0; // This is the packets sent with in last min || 0;
148
+ var totalPacketsLostForaMin = totalPacketsLostOnReceiver - lastPacketsLostTotal;
149
+ audioSender.common.remoteLossRate = totalPacketsSent - lastPacketsSent > 0 ? totalPacketsLostForaMin * 100 / (totalPacketsSent - lastPacketsSent) : 0; // This is the packets sent with in last min
88
150
 
89
- audioSender.common.maxRoundTripTime =
90
- // @ts-ignore
91
- (0, _max2.default)(statsResults[mediaType][sendrecvType].meanRoundTripTime) * 1000 || 0;
92
- audioSender.common.meanRoundTripTime = (0, _mean2.default)(statsResults[mediaType][sendrecvType].meanRoundTripTime) * 1000 || 0;
151
+ audioSender.common.maxRoundTripTime = (0, _max2.default)(meanRoundTripTime) * 1000 || 0;
152
+ audioSender.common.meanRoundTripTime = (0, _mean2.default)(meanRoundTripTime) * 1000 || 0;
93
153
  audioSender.common.roundTripTime = audioSender.common.maxRoundTripTime;
94
154
 
95
155
  // Calculate the outgoing bitrate
96
- var totalBytesSentInaMin = statsResults[mediaType][sendrecvType].totalBytesSent - lastBytesSent;
97
- audioSender.streams[0].common.transmittedBitrate = totalBytesSentInaMin ? totalBytesSentInaMin * 8 / 60 : 0;
98
- audioSender.common.rtpBitrate = audioSender.streams[0].common.transmittedBitrate;
99
- audioSender.streams[0].transmittedKeyFrames = statsResults[mediaType][sendrecvType].totalKeyFramesEncoded - lastFramesEncoded || 0;
100
- audioSender.streams[0].requestedKeyFrames = statsResults[mediaType][sendrecvType].totalFirCount - lastFirCount || 0;
156
+ var totalBytesSentInaMin = getTotalValueFromBaseType(statsResults, sendrecvType, baseMediaType, 'totalBytesSent') - getTotalValueFromBaseType(lastMqaDataSent, sendrecvType, baseMediaType, 'totalBytesSent');
157
+ audioSender.common.rtpBitrate = totalBytesSentInaMin ? totalBytesSentInaMin * 8 / 60 : 0;
101
158
  };
102
159
  exports.getAudioSenderMqa = getAudioSenderMqa;
103
- var getVideoReceiverMqa = function getVideoReceiverMqa(_ref3) {
104
- var _lastMqaDataSent$medi14, _lastMqaDataSent$medi15, _lastMqaDataSent$medi16, _lastMqaDataSent$medi17, _lastMqaDataSent$medi18, _lastMqaDataSent$medi19, _lastMqaDataSent$medi20, _lastMqaDataSent$medi21;
105
- var videoReceiver = _ref3.videoReceiver,
106
- statsResults = _ref3.statsResults,
107
- lastMqaDataSent = _ref3.lastMqaDataSent,
108
- mediaType = _ref3.mediaType;
109
- var sendrecvType = _constants.STATS.RECEIVE_DIRECTION;
110
- var lastPacketsReceived = ((_lastMqaDataSent$medi14 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi14 === void 0 ? void 0 : _lastMqaDataSent$medi14[sendrecvType].totalPacketsReceived) || 0;
111
- var lastPacketsLost = ((_lastMqaDataSent$medi15 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi15 === void 0 ? void 0 : _lastMqaDataSent$medi15[sendrecvType].totalPacketsLost) || 0;
112
- var lastBytesReceived = ((_lastMqaDataSent$medi16 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi16 === void 0 ? void 0 : _lastMqaDataSent$medi16[sendrecvType].totalBytesReceived) || 0;
113
- var lastFramesReceived = ((_lastMqaDataSent$medi17 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi17 === void 0 ? void 0 : _lastMqaDataSent$medi17[sendrecvType].framesReceived) || 0;
114
- var lastFramesDecoded = ((_lastMqaDataSent$medi18 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi18 === void 0 ? void 0 : _lastMqaDataSent$medi18[sendrecvType].framesDecoded) || 0;
115
- var lastFramesDropped = ((_lastMqaDataSent$medi19 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi19 === void 0 ? void 0 : _lastMqaDataSent$medi19[sendrecvType].framesDropped) || 0;
116
- var lastKeyFramesDecoded = ((_lastMqaDataSent$medi20 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi20 === void 0 ? void 0 : _lastMqaDataSent$medi20[sendrecvType].keyFramesDecoded) || 0;
117
- var lastPliCount = ((_lastMqaDataSent$medi21 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi21 === void 0 ? void 0 : _lastMqaDataSent$medi21[sendrecvType].totalPliCount) || 0;
160
+ var getAudioSenderStreamMqa = function getAudioSenderStreamMqa(_ref4) {
161
+ var _lastMqaDataSent$medi9, _lastMqaDataSent$medi10, _lastMqaDataSent$medi11, _lastMqaDataSent$medi12;
162
+ var audioSenderStream = _ref4.audioSenderStream,
163
+ statsResults = _ref4.statsResults,
164
+ lastMqaDataSent = _ref4.lastMqaDataSent,
165
+ mediaType = _ref4.mediaType;
166
+ var sendrecvType = _constants.STATS.SEND_DIRECTION;
167
+ var lastBytesSent = ((_lastMqaDataSent$medi9 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi9 === void 0 ? void 0 : _lastMqaDataSent$medi9[sendrecvType].totalBytesSent) || 0;
168
+ var lastFramesEncoded = ((_lastMqaDataSent$medi10 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi10 === void 0 ? void 0 : _lastMqaDataSent$medi10[sendrecvType].totalKeyFramesEncoded) || 0;
169
+ var lastFirCount = ((_lastMqaDataSent$medi11 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi11 === void 0 ? void 0 : _lastMqaDataSent$medi11[sendrecvType].totalFirCount) || 0;
170
+ var lastPacketsSent = ((_lastMqaDataSent$medi12 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi12 === void 0 ? void 0 : _lastMqaDataSent$medi12[sendrecvType].totalPacketsSent) || 0;
118
171
  var csi = statsResults[mediaType].csi;
119
- if (csi && !videoReceiver.streams[0].common.csi.includes(csi)) {
120
- videoReceiver.streams[0].common.csi.push(csi);
172
+ if (csi && !audioSenderStream.common.csi.includes(csi)) {
173
+ audioSenderStream.common.csi.push(csi);
121
174
  }
122
- videoReceiver.common.common.direction = statsResults[mediaType].direction;
123
- videoReceiver.common.transportType = statsResults.connectionType.remote.transport[0];
175
+ audioSenderStream.common.rtpPackets = statsResults[mediaType][sendrecvType].totalPacketsSent - lastPacketsSent || 0;
176
+ var totalBytesSentInaMin = statsResults[mediaType][sendrecvType].totalBytesSent - lastBytesSent;
177
+ audioSenderStream.common.transmittedBitrate = totalBytesSentInaMin ? totalBytesSentInaMin * 8 / 60 : 0;
178
+ audioSenderStream.transmittedKeyFrames = statsResults[mediaType][sendrecvType].totalKeyFramesEncoded - lastFramesEncoded || 0;
179
+ audioSenderStream.requestedKeyFrames = statsResults[mediaType][sendrecvType].totalFirCount - lastFirCount || 0;
180
+ };
181
+ exports.getAudioSenderStreamMqa = getAudioSenderStreamMqa;
182
+ var getVideoReceiverMqa = function getVideoReceiverMqa(_ref5) {
183
+ var _statsResults$Object$3;
184
+ var videoReceiver = _ref5.videoReceiver,
185
+ statsResults = _ref5.statsResults,
186
+ lastMqaDataSent = _ref5.lastMqaDataSent,
187
+ baseMediaType = _ref5.baseMediaType;
188
+ var sendrecvType = _constants.STATS.RECEIVE_DIRECTION;
189
+ var getLastTotalValue = function getLastTotalValue(value) {
190
+ return getTotalValueFromBaseType(lastMqaDataSent, sendrecvType, baseMediaType, value);
191
+ };
192
+ var getTotalValue = function getTotalValue(value) {
193
+ return getTotalValueFromBaseType(statsResults, sendrecvType, baseMediaType, value);
194
+ };
195
+ var lastPacketsReceived = getLastTotalValue('totalPacketsReceived');
196
+ var lastPacketsLost = getLastTotalValue('totalPacketsLost');
197
+ var lastBytesReceived = getLastTotalValue('totalBytesReceived');
198
+ var packetsLost = getTotalValue('totalPacketsLost');
199
+ var totalPacketsReceived = getTotalValue('totalPacketsReceived');
200
+ var totalBytesReceived = getTotalValue('totalBytesReceived');
201
+ var meanRemoteJitter = (0, _keys.default)(statsResults).filter(function (mt) {
202
+ return mt.includes(baseMediaType);
203
+ }).reduce(function (acc, mt) {
204
+ return acc.concat(statsResults[mt][sendrecvType].meanRemoteJitter);
205
+ }, []);
206
+ videoReceiver.common.common.direction = ((_statsResults$Object$3 = statsResults[(0, _keys.default)(statsResults).find(function (mediaType) {
207
+ return mediaType.includes(baseMediaType);
208
+ })]) === null || _statsResults$Object$3 === void 0 ? void 0 : _statsResults$Object$3.direction) || 'inactive';
209
+ videoReceiver.common.common.isMain = !baseMediaType.includes('-share');
210
+ videoReceiver.common.transportType = statsResults.connectionType.local.transport;
211
+
124
212
  // collect the packets received for the last min
125
- videoReceiver.common.rtpPackets = statsResults[mediaType][sendrecvType].totalPacketsReceived - lastPacketsReceived || 0;
126
- videoReceiver.streams[0].common.rtpPackets = videoReceiver.common.rtpPackets;
127
- var totalPacketLoss = statsResults[mediaType][sendrecvType].totalPacketsLost - lastPacketsLost || 0;
213
+ videoReceiver.common.rtpPackets = totalPacketsReceived - lastPacketsReceived || 0;
128
214
 
129
- // Hope by hop are numbers and not percentage so we compare on what we sent the last min
215
+ // Hop by hop are numbers and not percentage so we compare on what we sent the last min
130
216
  // this is including packet lost
131
- videoReceiver.common.mediaHopByHopLost = totalPacketLoss;
132
- videoReceiver.common.rtpHopByHopLost = totalPacketLoss;
133
-
134
- // End to end packetloss is after recovery
135
- videoReceiver.streams[0].common.rtpEndToEndLost = totalPacketLoss;
217
+ var totalPacketsLost = packetsLost - lastPacketsLost;
218
+ videoReceiver.common.mediaHopByHopLost = totalPacketsLost;
219
+ videoReceiver.common.rtpHopByHopLost = totalPacketsLost;
136
220
 
137
221
  // calculate this values
138
-
139
- videoReceiver.common.maxRemoteJitter =
140
- // @ts-ignore
141
- (0, _max2.default)(statsResults[mediaType][sendrecvType].meanRemoteJitter) * 1000 || 0;
142
- videoReceiver.common.meanRemoteJitter = (0, _mean2.default)(statsResults[mediaType][sendrecvType].meanRemoteJitter) * 1000 || 0;
143
- videoReceiver.streams[0].common.rtpJitter = videoReceiver.common.maxRemoteJitter;
144
- // videoReceiver.streams[0].common.rtpJitter = (statsResults.resolutions[mediaType][sendrecvType].jitterBufferDelay - lastMqaDataSent.resolutions[mediaType]?.[sendrecvType].jitterBufferDelay) / (statsResults.resolutions[mediaType][sendrecvType].jitterBufferEmittedCount - lastMqaDataSent.resolutions[mediaType]?.[sendrecvType].jitterBufferEmittedCount) * 1000 || 0;
222
+ videoReceiver.common.maxRemoteJitter = (0, _max2.default)(meanRemoteJitter) * 1000 || 0;
223
+ videoReceiver.common.meanRemoteJitter = (0, _mean2.default)(meanRemoteJitter) * 1000 || 0;
145
224
 
146
225
  // Calculate the outgoing bitrate
147
- var totalBytesReceivedInaMin = statsResults[mediaType][sendrecvType].totalBytesReceived - lastBytesReceived;
148
- videoReceiver.streams[0].common.receivedBitrate = totalBytesReceivedInaMin ? totalBytesReceivedInaMin * 8 / 60 : 0;
149
- videoReceiver.common.rtpBitrate = videoReceiver.streams[0].common.receivedBitrate;
150
-
151
- // From tracks //TODO: calculate a proper one
152
- var totalFrameReceivedInaMin = statsResults.resolutions[mediaType][sendrecvType].framesReceived - lastFramesReceived;
153
- var totalFrameDecodedInaMin = statsResults.resolutions[mediaType][sendrecvType].framesDecoded - lastFramesDecoded;
154
- videoReceiver.streams[0].common.receivedFrameRate = totalFrameReceivedInaMin ? totalFrameReceivedInaMin * 100 / 60 : 0;
155
- videoReceiver.streams[0].common.renderedFrameRate = totalFrameDecodedInaMin ? totalFrameDecodedInaMin * 100 / 60 : 0;
156
- videoReceiver.streams[0].common.framesDropped = statsResults.resolutions[mediaType][sendrecvType].framesDropped - lastFramesDropped;
157
- videoReceiver.streams[0].receivedHeight = statsResults.resolutions[mediaType][sendrecvType].height;
158
- videoReceiver.streams[0].receivedWidth = statsResults.resolutions[mediaType][sendrecvType].width;
159
- videoReceiver.streams[0].receivedFrameSize = statsResults.resolutions[mediaType][sendrecvType].height * statsResults.resolutions[mediaType][sendrecvType].height / 256;
160
- videoReceiver.streams[0].receivedKeyFrames = statsResults[mediaType][sendrecvType].keyFramesDecoded - lastKeyFramesDecoded || 0;
161
- videoReceiver.streams[0].requestedKeyFrames = statsResults[mediaType][sendrecvType].totalPliCount - lastPliCount || 0;
226
+ var totalBytesReceivedInaMin = totalBytesReceived - lastBytesReceived;
227
+ videoReceiver.common.rtpBitrate = totalBytesReceivedInaMin ? totalBytesReceivedInaMin * 8 / 60 : 0;
162
228
  };
163
229
  exports.getVideoReceiverMqa = getVideoReceiverMqa;
164
- var getVideoSenderMqa = function getVideoSenderMqa(_ref4) {
165
- var _lastMqaDataSent$medi22, _lastMqaDataSent$medi23, _lastMqaDataSent$medi24, _lastMqaDataSent$medi25, _lastMqaDataSent$medi26, _lastMqaDataSent$medi27;
166
- var videoSender = _ref4.videoSender,
167
- statsResults = _ref4.statsResults,
168
- lastMqaDataSent = _ref4.lastMqaDataSent,
169
- mediaType = _ref4.mediaType;
170
- var sendrecvType = _constants.STATS.SEND_DIRECTION;
171
- var lastPacketsSent = ((_lastMqaDataSent$medi22 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi22 === void 0 ? void 0 : _lastMqaDataSent$medi22[sendrecvType].totalPacketsSent) || 0;
172
- var lastPacketsLost = ((_lastMqaDataSent$medi23 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi23 === void 0 ? void 0 : _lastMqaDataSent$medi23[sendrecvType].totalPacketsLostOnReceiver) || 0;
173
- var lastBytesSent = ((_lastMqaDataSent$medi24 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi24 === void 0 ? void 0 : _lastMqaDataSent$medi24[sendrecvType].totalBytesSent) || 0;
174
- var lastKeyFramesEncoded = ((_lastMqaDataSent$medi25 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi25 === void 0 ? void 0 : _lastMqaDataSent$medi25[sendrecvType].totalKeyFramesEncoded) || 0;
175
- var lastFirCount = ((_lastMqaDataSent$medi26 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi26 === void 0 ? void 0 : _lastMqaDataSent$medi26[sendrecvType].totalFirCount) || 0;
176
- var lastFramesSent = ((_lastMqaDataSent$medi27 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi27 === void 0 ? void 0 : _lastMqaDataSent$medi27[sendrecvType].framesSent) || 0;
230
+ var getVideoReceiverStreamMqa = function getVideoReceiverStreamMqa(_ref6) {
231
+ var _lastMqaDataSent$medi13, _lastMqaDataSent$medi14, _lastMqaDataSent$medi15, _lastMqaDataSent$medi16, _lastMqaDataSent$medi17, _lastMqaDataSent$medi18, _lastMqaDataSent$medi19, _lastMqaDataSent$medi20;
232
+ var videoReceiverStream = _ref6.videoReceiverStream,
233
+ statsResults = _ref6.statsResults,
234
+ lastMqaDataSent = _ref6.lastMqaDataSent,
235
+ mediaType = _ref6.mediaType;
236
+ var sendrecvType = _constants.STATS.RECEIVE_DIRECTION;
237
+ var lastPacketsReceived = ((_lastMqaDataSent$medi13 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi13 === void 0 ? void 0 : _lastMqaDataSent$medi13[sendrecvType].totalPacketsReceived) || 0;
238
+ var lastPacketsLost = ((_lastMqaDataSent$medi14 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi14 === void 0 ? void 0 : _lastMqaDataSent$medi14[sendrecvType].totalPacketsLost) || 0;
239
+ var lastBytesReceived = ((_lastMqaDataSent$medi15 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi15 === void 0 ? void 0 : _lastMqaDataSent$medi15[sendrecvType].totalBytesReceived) || 0;
240
+ var lastFramesReceived = ((_lastMqaDataSent$medi16 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi16 === void 0 ? void 0 : _lastMqaDataSent$medi16[sendrecvType].framesReceived) || 0;
241
+ var lastFramesDecoded = ((_lastMqaDataSent$medi17 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi17 === void 0 ? void 0 : _lastMqaDataSent$medi17[sendrecvType].framesDecoded) || 0;
242
+ var lastFramesDropped = ((_lastMqaDataSent$medi18 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi18 === void 0 ? void 0 : _lastMqaDataSent$medi18[sendrecvType].framesDropped) || 0;
243
+ var lastKeyFramesDecoded = ((_lastMqaDataSent$medi19 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi19 === void 0 ? void 0 : _lastMqaDataSent$medi19[sendrecvType].keyFramesDecoded) || 0;
244
+ var lastPliCount = ((_lastMqaDataSent$medi20 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi20 === void 0 ? void 0 : _lastMqaDataSent$medi20[sendrecvType].totalPliCount) || 0;
177
245
  var csi = statsResults[mediaType].csi;
178
- if (csi && !videoSender.streams[0].common.csi.includes(csi)) {
179
- videoSender.streams[0].common.csi.push(csi);
246
+ if (csi && !videoReceiverStream.common.csi.includes(csi)) {
247
+ videoReceiverStream.common.csi.push(csi);
180
248
  }
181
- videoSender.common.common.direction = statsResults[mediaType].direction;
182
- videoSender.common.transportType = statsResults.connectionType.local.transport[0];
249
+ videoReceiverStream.common.rtpPackets = statsResults[mediaType][sendrecvType].totalPacketsReceived - lastPacketsReceived || 0;
250
+ var totalPacketLoss = statsResults[mediaType][sendrecvType].totalPacketsLost - lastPacketsLost || 0;
183
251
 
184
- // @ts-ignore
185
- videoSender.common.maxRemoteJitter =
252
+ // End to end packetloss is after recovery
253
+ videoReceiverStream.common.rtpEndToEndLost = totalPacketLoss;
254
+ videoReceiverStream.common.rtpJitter =
186
255
  // @ts-ignore
187
256
  (0, _max2.default)(statsResults[mediaType][sendrecvType].meanRemoteJitter) * 1000 || 0;
188
- videoSender.common.meanRemoteJitter = (0, _mean2.default)(statsResults[mediaType][sendrecvType].meanRemoteJitter) * 1000 || 0;
189
- videoSender.common.rtpPackets = statsResults[mediaType][sendrecvType].totalPacketsSent - lastPacketsSent || 0;
190
- videoSender.common.availableBitrate = statsResults[mediaType][sendrecvType].availableOutgoingBitrate || 0;
191
- // Calculate based on how much packets lost of received compated to how to the client sent
192
-
193
- var totalpacketsLostForaMin = statsResults[mediaType][sendrecvType].totalPacketsLostOnReceiver - lastPacketsLost;
194
- videoSender.common.remoteLossRate = totalpacketsLostForaMin > 0 ? totalpacketsLostForaMin * 100 / (videoSender.common.rtpPackets + totalpacketsLostForaMin) : 0; // This is the packets sent with in last min || 0;
257
+ var totalBytesReceivedInaMin = statsResults[mediaType][sendrecvType].totalBytesReceived - lastBytesReceived;
258
+ videoReceiverStream.common.receivedBitrate = totalBytesReceivedInaMin ? totalBytesReceivedInaMin * 8 / 60 : 0;
259
+ var totalFrameReceivedInaMin = statsResults[mediaType][sendrecvType].framesReceived - lastFramesReceived;
260
+ var totalFrameDecodedInaMin = statsResults[mediaType][sendrecvType].framesDecoded - lastFramesDecoded;
261
+ videoReceiverStream.common.receivedFrameRate = Math.round(totalFrameReceivedInaMin ? totalFrameReceivedInaMin / 60 : 0);
262
+ videoReceiverStream.common.renderedFrameRate = Math.round(totalFrameDecodedInaMin ? totalFrameDecodedInaMin / 60 : 0);
263
+ videoReceiverStream.common.framesDropped = statsResults[mediaType][sendrecvType].framesDropped - lastFramesDropped || 0;
264
+ videoReceiverStream.receivedHeight = statsResults[mediaType][sendrecvType].height || 0;
265
+ videoReceiverStream.receivedWidth = statsResults[mediaType][sendrecvType].width || 0;
266
+ videoReceiverStream.receivedFrameSize = videoReceiverStream.receivedHeight * videoReceiverStream.receivedWidth / 256;
267
+ videoReceiverStream.receivedKeyFrames = statsResults[mediaType][sendrecvType].keyFramesDecoded - lastKeyFramesDecoded || 0;
268
+ videoReceiverStream.requestedKeyFrames = statsResults[mediaType][sendrecvType].totalPliCount - lastPliCount || 0;
269
+ };
270
+ exports.getVideoReceiverStreamMqa = getVideoReceiverStreamMqa;
271
+ var getVideoSenderMqa = function getVideoSenderMqa(_ref7) {
272
+ var _statsResults$Object$4;
273
+ var videoSender = _ref7.videoSender,
274
+ statsResults = _ref7.statsResults,
275
+ lastMqaDataSent = _ref7.lastMqaDataSent,
276
+ baseMediaType = _ref7.baseMediaType;
277
+ var sendrecvType = _constants.STATS.SEND_DIRECTION;
278
+ var getLastTotalValue = function getLastTotalValue(value) {
279
+ return getTotalValueFromBaseType(lastMqaDataSent, sendrecvType, baseMediaType, value);
280
+ };
281
+ var getTotalValue = function getTotalValue(value) {
282
+ return getTotalValueFromBaseType(statsResults, sendrecvType, baseMediaType, value);
283
+ };
284
+ var lastPacketsSent = getLastTotalValue('totalPacketsSent');
285
+ var lastBytesSent = getLastTotalValue('totalBytesSent');
286
+ var lastPacketsLostTotal = getLastTotalValue('totalPacketsLostOnReceiver');
287
+ var totalPacketsLostOnReceiver = getTotalValue('totalPacketsLostOnReceiver');
288
+ var totalPacketsSent = getTotalValue('totalPacketsSent');
289
+ var totalBytesSent = getTotalValue('totalBytesSent');
290
+ var availableOutgoingBitrate = getTotalValue('availableOutgoingBitrate');
291
+ videoSender.common.common.direction = ((_statsResults$Object$4 = statsResults[(0, _keys.default)(statsResults).find(function (mediaType) {
292
+ return mediaType.includes(baseMediaType);
293
+ })]) === null || _statsResults$Object$4 === void 0 ? void 0 : _statsResults$Object$4.direction) || 'inactive';
294
+ videoSender.common.common.isMain = !baseMediaType.includes('-share');
295
+ videoSender.common.transportType = statsResults.connectionType.local.transport;
296
+ var meanRemoteJitter = (0, _keys.default)(statsResults).filter(function (mt) {
297
+ return mt.includes(baseMediaType);
298
+ }).reduce(function (acc, mt) {
299
+ return acc.concat(statsResults[mt][sendrecvType].meanRemoteJitter);
300
+ }, []);
301
+ var meanRoundTripTime = (0, _keys.default)(statsResults).filter(function (mt) {
302
+ return mt.includes(baseMediaType);
303
+ }).reduce(function (acc, mt) {
304
+ return acc.concat(statsResults[mt][sendrecvType].meanRoundTripTime);
305
+ }, []);
195
306
 
196
- videoSender.common.maxRoundTripTime =
197
307
  // @ts-ignore
198
- (0, _max2.default)(statsResults[mediaType][sendrecvType].meanRoundTripTime) * 1000 || 0;
199
- videoSender.common.meanRoundTripTime = (0, _mean2.default)(statsResults[mediaType][sendrecvType].meanRoundTripTime) * 1000 || 0;
308
+ videoSender.common.maxRemoteJitter = (0, _max2.default)(meanRemoteJitter) * 1000 || 0;
309
+ videoSender.common.meanRemoteJitter = (0, _mean2.default)(meanRemoteJitter) * 1000 || 0;
310
+ videoSender.common.rtpPackets = totalPacketsSent - lastPacketsSent;
311
+ videoSender.common.availableBitrate = availableOutgoingBitrate;
312
+
313
+ // Calculate based on how much packets lost of received compated to how to the client sent
314
+ var totalPacketsLostForaMin = totalPacketsLostOnReceiver - lastPacketsLostTotal;
315
+ videoSender.common.remoteLossRate = totalPacketsSent - lastPacketsSent > 0 ? totalPacketsLostForaMin * 100 / (totalPacketsSent - lastPacketsSent) : 0; // This is the packets sent with in last min || 0;
316
+
317
+ videoSender.common.maxRoundTripTime = (0, _max2.default)(meanRoundTripTime) * 1000 || 0;
318
+ videoSender.common.meanRoundTripTime = (0, _mean2.default)(meanRoundTripTime) * 1000 || 0;
200
319
  videoSender.common.roundTripTime = videoSender.common.maxRoundTripTime;
201
- videoSender.streams[0].common.rtpPackets = statsResults[mediaType][sendrecvType].totalPacketsSent - lastPacketsSent || 0;
320
+
321
+ // Calculate the outgoing bitrate
322
+ var totalBytesSentInaMin = totalBytesSent - lastBytesSent;
323
+ videoSender.common.rtpBitrate = totalBytesSentInaMin ? totalBytesSentInaMin * 8 / 60 : 0;
324
+ };
325
+ exports.getVideoSenderMqa = getVideoSenderMqa;
326
+ var getVideoSenderStreamMqa = function getVideoSenderStreamMqa(_ref8) {
327
+ var _lastMqaDataSent$medi21, _lastMqaDataSent$medi22, _lastMqaDataSent$medi23, _lastMqaDataSent$medi24, _lastMqaDataSent$medi25;
328
+ var videoSenderStream = _ref8.videoSenderStream,
329
+ statsResults = _ref8.statsResults,
330
+ lastMqaDataSent = _ref8.lastMqaDataSent,
331
+ mediaType = _ref8.mediaType;
332
+ var sendrecvType = _constants.STATS.SEND_DIRECTION;
333
+ var lastPacketsSent = ((_lastMqaDataSent$medi21 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi21 === void 0 ? void 0 : _lastMqaDataSent$medi21[sendrecvType].totalPacketsSent) || 0;
334
+ var lastBytesSent = ((_lastMqaDataSent$medi22 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi22 === void 0 ? void 0 : _lastMqaDataSent$medi22[sendrecvType].totalBytesSent) || 0;
335
+ var lastKeyFramesEncoded = ((_lastMqaDataSent$medi23 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi23 === void 0 ? void 0 : _lastMqaDataSent$medi23[sendrecvType].totalKeyFramesEncoded) || 0;
336
+ var lastFirCount = ((_lastMqaDataSent$medi24 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi24 === void 0 ? void 0 : _lastMqaDataSent$medi24[sendrecvType].totalFirCount) || 0;
337
+ var lastFramesSent = ((_lastMqaDataSent$medi25 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi25 === void 0 ? void 0 : _lastMqaDataSent$medi25[sendrecvType].framesSent) || 0;
338
+ var csi = statsResults[mediaType].csi;
339
+ if (csi && !videoSenderStream.common.csi.includes(csi)) {
340
+ videoSenderStream.common.csi.push(csi);
341
+ }
342
+ videoSenderStream.common.rtpPackets = statsResults[mediaType][sendrecvType].totalPacketsSent - lastPacketsSent || 0;
202
343
 
203
344
  // Calculate the outgoing bitrate
204
345
  var totalBytesSentInaMin = statsResults[mediaType][sendrecvType].totalBytesSent - lastBytesSent;
205
- videoSender.streams[0].common.transmittedBitrate = totalBytesSentInaMin ? totalBytesSentInaMin * 8 / 60 : 0;
206
- videoSender.common.rtpBitrate = videoSender.streams[0].common.transmittedBitrate;
207
- videoSender.streams[0].transmittedKeyFrames = statsResults[mediaType][sendrecvType].totalKeyFramesEncoded - lastKeyFramesEncoded || 0;
208
- videoSender.streams[0].requestedKeyFrames = statsResults[mediaType][sendrecvType].totalFirCount - lastFirCount || 0;
346
+ videoSenderStream.common.transmittedBitrate = totalBytesSentInaMin ? totalBytesSentInaMin * 8 / 60 : 0;
347
+ videoSenderStream.transmittedKeyFrames = statsResults[mediaType][sendrecvType].totalKeyFramesEncoded - lastKeyFramesEncoded || 0;
348
+ videoSenderStream.requestedKeyFrames = statsResults[mediaType][sendrecvType].totalFirCount - lastFirCount || 0;
209
349
 
210
350
  // From tracks //TODO: calculate a proper one
211
- var totalFrameSentInaMin = statsResults.resolutions[mediaType][sendrecvType].framesSent - (lastFramesSent || 0);
212
- videoSender.streams[0].common.transmittedFrameRate = totalFrameSentInaMin ? totalFrameSentInaMin * 100 / 60 : 0;
213
- videoSender.streams[0].transmittedHeight = statsResults.resolutions[mediaType][sendrecvType].height;
214
- videoSender.streams[0].transmittedWidth = statsResults.resolutions[mediaType][sendrecvType].width;
215
- videoSender.streams[0].transmittedFrameSize = statsResults.resolutions[mediaType][sendrecvType].height * statsResults.resolutions[mediaType][sendrecvType].width / 254;
351
+ var totalFrameSentInaMin = statsResults[mediaType][sendrecvType].framesSent - (lastFramesSent || 0);
352
+ videoSenderStream.common.transmittedFrameRate = Math.round(totalFrameSentInaMin ? totalFrameSentInaMin / 60 : 0);
353
+ videoSenderStream.transmittedHeight = statsResults[mediaType][sendrecvType].height || 0;
354
+ videoSenderStream.transmittedWidth = statsResults[mediaType][sendrecvType].width || 0;
355
+ videoSenderStream.transmittedFrameSize = videoSenderStream.transmittedHeight * videoSenderStream.transmittedWidth / 256;
216
356
  };
217
- exports.getVideoSenderMqa = getVideoSenderMqa;
357
+ exports.getVideoSenderStreamMqa = getVideoSenderStreamMqa;
218
358
  //# sourceMappingURL=mqaUtil.js.map