1
1
'use strict' ;
2
2
3
3
let preferredResolution ;
4
- let mediaStream , bitrate = 100000 ;
4
+ let mediaStream , bitrate = 300000 ;
5
5
let stopped = false ;
6
6
let preferredCodec = "H264" ;
7
7
let mode = "L1T1" ;
@@ -59,27 +59,34 @@ function metrics_update(data) {
59
59
60
60
function metrics_report ( ) {
61
61
metrics . all . sort ( ( a , b ) => {
62
- return ( 100000 * ( a . mediaTime - b . mediaTime ) + a . output - b . output ) ;
62
+ return ( 100000 * ( b . captureTime - a . captureTime ) + b . output - a . output ) ;
63
63
} ) ;
64
+ //addToEventLog('Metrics dump: ' + JSON.stringify(metrics.all));
64
65
const len = metrics . all . length ;
65
- let j = 0 ;
66
+ if ( len < 2 ) return ;
66
67
for ( let i = 0 ; i < len ; i ++ ) {
67
68
if ( metrics . all [ i ] . output == 1 ) {
68
69
const frameno = metrics . all [ i ] . presentedFrames ;
69
- const g2g = metrics . all [ i ] . expectedDisplayTime - metrics . all [ i - 1 ] . captureTime ;
70
+ const fps = metrics . all [ i ] . fps ;
71
+ const elapsed = metrics . all [ i ] . elapsed ;
70
72
const mediaTime = metrics . all [ i ] . mediaTime ;
71
- const captureTime = metrics . all [ i - 1 ] . captureTime ;
73
+ const captureTime = metrics . all [ i ] . captureTime ;
72
74
const expectedDisplayTime = metrics . all [ i ] . expectedDisplayTime ;
73
- const delay = metrics . all [ i ] . expectedDisplayTime - metrics . all [ i - 1 ] . expectedDisplayTime ;
75
+ const processingDuration = metrics . all [ i ] . processingDuration ;
76
+ const receiveTime = metrics . all [ i ] . receiveTime ;
77
+ const rtpTimestamp = metrics . all [ i ] . rtpTimestamp ;
78
+ const g2g = Math . max ( 0 , expectedDisplayTime - captureTime ) ;
74
79
const data = [ frameno , g2g ] ;
75
- const info = { frameno : frameno , g2g : g2g , mediaTime : mediaTime , captureTime : captureTime , expectedDisplayTime : expectedDisplayTime , delay : delay } ;
80
+ const info = { frameno : frameno , elapsed : elapsed , g2g : g2g , captureTime : captureTime , expectedDisplayTime : expectedDisplayTime ,
81
+ processingDuration : processingDuration , fps : fps , mediaTime : mediaTime , rtpTimestamp : rtpTimestamp , receiveTime : receiveTime } ;
76
82
e2e . all . push ( data ) ;
77
83
display_metrics . all . push ( info ) ;
78
84
}
79
85
}
80
- // addToEventLog('Data dump: ' + JSON.stringify(e2e.all));
86
+ //addToEventLog('E2E Data dump: ' + JSON.stringify(e2e.all));
87
+ //addToEventLog('Output Data dump: ' + JSON.stringify(display_metrics.all));
81
88
return {
82
- count : e2e . all . length
89
+ count : metrics . all . length
83
90
} ;
84
91
}
85
92
@@ -387,13 +394,14 @@ document.addEventListener('DOMContentLoaded', async function(event) {
387
394
388
395
switch ( preferredCodec ) {
389
396
case "H264" :
390
- config . codec = "avc1.42002A" ; // baseline profile, level 4.2
397
+ config . codec = "avc1.42002A" ; // baseline profile, level 4.2
391
398
/* config.codec = "avc1.640028"; */
392
399
config . avc = { format : "annexb" } ;
393
400
config . pt = 1 ;
394
401
break ;
395
402
case "H265" :
396
- config . codec = "hvc1.1.6.L123.00" ; // Main profile, level 4.1, main Tier
403
+ config . codec = "hvc1.1.6.L120.00" ; // Main profile, level 4.0, main Tier
404
+ // config.codec = "hev1.1.6.L93.B0"; // Main profile, level 3.1, up to 1280 x [email protected]
397
405
config . hevc = { format : "annexb" } ;
398
406
config . pt = 2 ;
399
407
break ;
@@ -406,7 +414,7 @@ document.addEventListener('DOMContentLoaded', async function(event) {
406
414
config . pt = 4 ;
407
415
break ;
408
416
case "AV1" :
409
- config . codec = "av01.0.08M.10 .0.110.09" // AV1 Main Profile, level 4.0, Main tier, 10 -bit content, non-monochrome, with 4:2:0 chroma subsampling
417
+ config . codec = "av01.0.08M.08 .0.110.09" // AV1 Main Profile, level 4.0, Main tier, 8 -bit content, non-monochrome, with 4:2:0 chroma subsampling
410
418
config . pt = 5 ;
411
419
break ;
412
420
}
0 commit comments