瀏覽代碼

fix(stats) Emit stats using source name as key (#1996)

This allows us to display resolution and framerate stats on separate tiles when multi-stream mode is enabled.
dev1
pangrr 3 年之前
父節點
當前提交
742232c9fd
No account linked to committer's email address
共有 1 個文件被更改,包括 54 次插入25 次删除
  1. 54
    25
      modules/statistics/RTPStatsCollector.js

+ 54
- 25
modules/statistics/RTPStatsCollector.js 查看文件

3
 import { MediaType } from '../../service/RTC/MediaType';
3
 import { MediaType } from '../../service/RTC/MediaType';
4
 import * as StatisticsEvents from '../../service/statistics/Events';
4
 import * as StatisticsEvents from '../../service/statistics/Events';
5
 import browser from '../browser';
5
 import browser from '../browser';
6
+import FeatureFlags from '../flags/FeatureFlags';
6
 
7
 
7
 const GlobalOnErrorHandler = require('../util/GlobalOnErrorHandler');
8
 const GlobalOnErrorHandler = require('../util/GlobalOnErrorHandler');
8
 
9
 
309
                 videoCodec = ssrcStats.codec;
310
                 videoCodec = ssrcStats.codec;
310
             }
311
             }
311
 
312
 
312
-            const participantId = track.getParticipantId();
313
+            if (FeatureFlags.isSourceNameSignalingEnabled()) {
314
+                const sourceName = track.getSourceName();
313
 
315
 
314
-            if (participantId) {
315
-                const resolution = ssrcStats.resolution;
316
+                if (sourceName) {
317
+                    const resolution = ssrcStats.resolution;
316
 
318
 
317
-                if (resolution.width
318
-                        && resolution.height
319
-                        && resolution.width !== -1
320
-                        && resolution.height !== -1) {
321
-                    const userResolutions = resolutions[participantId] || {};
319
+                    if (resolution.width // eslint-disable-line max-depth
320
+                            && resolution.height
321
+                            && resolution.width !== -1
322
+                            && resolution.height !== -1) {
323
+                        resolutions[sourceName] = resolution;
324
+                    }
325
+                    if (ssrcStats.framerate !== 0) { // eslint-disable-line max-depth
326
+                        framerates[sourceName] = ssrcStats.framerate;
327
+                    }
328
+                    if (audioCodec && videoCodec) { // eslint-disable-line max-depth
329
+                        const codecDesc = {
330
+                            'audio': audioCodec,
331
+                            'video': videoCodec
332
+                        };
322
 
333
 
323
-                    userResolutions[ssrc] = resolution;
324
-                    resolutions[participantId] = userResolutions;
334
+                        codecs[sourceName] = codecDesc;
335
+                    }
336
+                } else {
337
+                    logger.error(`No source name returned by ${track}`);
325
                 }
338
                 }
326
-                if (ssrcStats.framerate !== 0) {
327
-                    const userFramerates = framerates[participantId] || {};
339
+            } else {
340
+                const participantId = track.getParticipantId();
328
 
341
 
329
-                    userFramerates[ssrc] = ssrcStats.framerate;
330
-                    framerates[participantId] = userFramerates;
331
-                }
332
-                if (audioCodec && videoCodec) {
333
-                    const codecDesc = {
334
-                        'audio': audioCodec,
335
-                        'video': videoCodec
336
-                    };
342
+                if (participantId) {
343
+                    const resolution = ssrcStats.resolution;
337
 
344
 
338
-                    const userCodecs = codecs[participantId] || {};
345
+                    if (resolution.width // eslint-disable-line max-depth
346
+                            && resolution.height
347
+                            && resolution.width !== -1
348
+                            && resolution.height !== -1) {
349
+                        const userResolutions = resolutions[participantId] || {};
339
 
350
 
340
-                    userCodecs[ssrc] = codecDesc;
341
-                    codecs[participantId] = userCodecs;
351
+                        userResolutions[ssrc] = resolution;
352
+                        resolutions[participantId] = userResolutions;
353
+                    }
354
+                    if (ssrcStats.framerate !== 0) { // eslint-disable-line max-depth
355
+                        const userFramerates = framerates[participantId] || {};
356
+
357
+                        userFramerates[ssrc] = ssrcStats.framerate;
358
+                        framerates[participantId] = userFramerates;
359
+                    }
360
+                    if (audioCodec && videoCodec) { // eslint-disable-line max-depth
361
+                        const codecDesc = {
362
+                            'audio': audioCodec,
363
+                            'video': videoCodec
364
+                        };
365
+
366
+                        const userCodecs = codecs[participantId] || {};
367
+
368
+                        userCodecs[ssrc] = codecDesc;
369
+                        codecs[participantId] = userCodecs;
370
+                    }
371
+                } else {
372
+                    logger.error(`No participant ID returned by ${track}`);
342
                 }
373
                 }
343
-            } else {
344
-                logger.error(`No participant ID returned by ${track}`);
345
             }
374
             }
346
         }
375
         }
347
 
376
 

Loading…
取消
儲存