mgcp/rtp: Base jitter calculation on input timestamps
So far, the jitter computation has been based on output timestamps.
This patch uses the input timestamps instead and resets jitter
computation on SSRC changes.
Sponsored-by: On-Waves ehf
diff --git a/openbsc/tests/mgcp/mgcp_test.ok b/openbsc/tests/mgcp/mgcp_test.ok
index e383fb5..2c30115 100644
--- a/openbsc/tests/mgcp/mgcp_test.ok
+++ b/openbsc/tests/mgcp/mgcp_test.ok
@@ -123,58 +123,58 @@
Stats: Jitter = 15, Transit = 39
In TS: 34688, dTS: 0, Seq: 12
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 14, Transit = 39
+Stats: Jitter = 0, Transit = 4294934527
In TS: 34848, dTS: 160, Seq: 13
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 13, Transit = 39
+Stats: Jitter = 0, Transit = 4294934527
In TS: 35008, dTS: 160, Seq: 14
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 13, Transit = 40
+Stats: Jitter = 0, Transit = 4294934528
In TS: 35128, dTS: 120, Seq: 15
Out TS change: 120, dTS: 120, Seq change: 1, TS Err change: in +1, out +1
-Stats: Jitter = 14, Transit = 80
+Stats: Jitter = 2, Transit = 4294934568
In TS: 35288, dTS: 160, Seq: 16
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 13, Transit = 79
+Stats: Jitter = 2, Transit = 4294934567
In TS: 35448, dTS: 160, Seq: 17
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 13, Transit = 80
+Stats: Jitter = 2, Transit = 4294934568
In TS: 35768, dTS: 160, Seq: 19
Out TS change: 320, dTS: 160, Seq change: 2, TS Err change: in +0, out +0
-Stats: Jitter = 22, Transit = 4294967216
+Stats: Jitter = 12, Transit = 4294934408
In TS: 35928, dTS: 160, Seq: 20
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 20, Transit = 4294967215
+Stats: Jitter = 11, Transit = 4294934407
In TS: 36088, dTS: 160, Seq: 21
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 29, Transit = 4294967055
+Stats: Jitter = 20, Transit = 4294934247
In TS: 36088, dTS: 160, Seq: 21
Out TS change: 0, dTS: 160, Seq change: 0, TS Err change: in +0, out +0
-Stats: Jitter = 37, Transit = 4294967216
+Stats: Jitter = 29, Transit = 4294934408
In TS: 36248, dTS: 160, Seq: 22
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 35, Transit = 4294967215
+Stats: Jitter = 27, Transit = 4294934407
In TS: 36408, dTS: 160, Seq: 23
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 33, Transit = 4294967215
+Stats: Jitter = 26, Transit = 4294934407
In TS: 36568, dTS: 160, Seq: 23
Out TS change: 160, dTS: 160, Seq change: 0, TS Err change: in +1, out +1
-Stats: Jitter = 31, Transit = 4294967216
+Stats: Jitter = 24, Transit = 4294934408
In TS: 36728, dTS: 160, Seq: 24
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 29, Transit = 4294967215
+Stats: Jitter = 23, Transit = 4294934407
In TS: 36888, dTS: 160, Seq: 25
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 27, Transit = 4294967216
+Stats: Jitter = 21, Transit = 4294934408
In TS: 160000, dTS: 0, Seq: 1000
Out TS change: 12000, dTS: 12000, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 25, Transit = 4294967216
+Stats: Jitter = 0, Transit = 4294823296
In TS: 160160, dTS: 160, Seq: 1001
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 24, Transit = 4294967215
+Stats: Jitter = 0, Transit = 4294823295
In TS: 160320, dTS: 160, Seq: 1002
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 22, Transit = 4294967215
+Stats: Jitter = 0, Transit = 4294823295
Testing packet error detection.
Output SSRC changed to 11223344
In TS: 0, dTS: 0, Seq: 0
@@ -216,59 +216,59 @@
Output SSRC changed to 10203040
In TS: 34688, dTS: 0, Seq: 12
Out TS change: 32968, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 2065, Transit = 4294934527
+Stats: Jitter = 0, Transit = 4294934527
In TS: 34848, dTS: 160, Seq: 13
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 1936, Transit = 4294934527
+Stats: Jitter = 0, Transit = 4294934527
In TS: 35008, dTS: 160, Seq: 14
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 1815, Transit = 4294934528
+Stats: Jitter = 0, Transit = 4294934528
In TS: 35128, dTS: 120, Seq: 15
Out TS change: 120, dTS: 120, Seq change: 1, TS Err change: in +1, out +1
-Stats: Jitter = 1704, Transit = 4294934568
+Stats: Jitter = 2, Transit = 4294934568
In TS: 35288, dTS: 160, Seq: 16
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 1597, Transit = 4294934567
+Stats: Jitter = 2, Transit = 4294934567
In TS: 35448, dTS: 160, Seq: 17
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 1498, Transit = 4294934568
+Stats: Jitter = 2, Transit = 4294934568
In TS: 35768, dTS: 160, Seq: 19
Out TS change: 320, dTS: 160, Seq change: 2, TS Err change: in +0, out +0
-Stats: Jitter = 1414, Transit = 4294934408
+Stats: Jitter = 12, Transit = 4294934408
In TS: 35928, dTS: 160, Seq: 20
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 1326, Transit = 4294934407
+Stats: Jitter = 11, Transit = 4294934407
In TS: 36088, dTS: 160, Seq: 21
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 1253, Transit = 4294934247
+Stats: Jitter = 20, Transit = 4294934247
In TS: 36088, dTS: 160, Seq: 21
Out TS change: 0, dTS: 160, Seq change: 0, TS Err change: in +0, out +0
-Stats: Jitter = 1185, Transit = 4294934408
+Stats: Jitter = 29, Transit = 4294934408
In TS: 36248, dTS: 160, Seq: 22
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 1111, Transit = 4294934407
+Stats: Jitter = 27, Transit = 4294934407
In TS: 36408, dTS: 160, Seq: 23
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 1041, Transit = 4294934407
+Stats: Jitter = 26, Transit = 4294934407
In TS: 36568, dTS: 160, Seq: 23
Out TS change: 160, dTS: 160, Seq change: 0, TS Err change: in +1, out +1
-Stats: Jitter = 976, Transit = 4294934408
+Stats: Jitter = 24, Transit = 4294934408
In TS: 36728, dTS: 160, Seq: 24
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 915, Transit = 4294934407
+Stats: Jitter = 23, Transit = 4294934407
In TS: 36888, dTS: 160, Seq: 25
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 858, Transit = 4294934408
+Stats: Jitter = 21, Transit = 4294934408
Output SSRC changed to 50607080
In TS: 160000, dTS: 0, Seq: 1000
Out TS change: 123112, dTS: 160, Seq change: 975, TS Err change: in +0, out +0
-Stats: Jitter = 7749, Transit = 4294823296
+Stats: Jitter = 0, Transit = 4294823296
In TS: 160160, dTS: 160, Seq: 1001
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 7264, Transit = 4294823295
+Stats: Jitter = 0, Transit = 4294823295
In TS: 160320, dTS: 160, Seq: 1002
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 6810, Transit = 4294823295
+Stats: Jitter = 0, Transit = 4294823295
Testing packet error detection, patch timestamps.
Output SSRC changed to 11223344
In TS: 0, dTS: 0, Seq: 0
@@ -300,69 +300,69 @@
Stats: Jitter = 16, Transit = 4294967295
In TS: 1400, dTS: 120, Seq: 9
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +1, out +0
-Stats: Jitter = 15, Transit = 0
+Stats: Jitter = 17, Transit = 40
In TS: 1560, dTS: 160, Seq: 10
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 14, Transit = 0
+Stats: Jitter = 16, Transit = 40
In TS: 1720, dTS: 160, Seq: 11
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 13, Transit = 4294967295
+Stats: Jitter = 15, Transit = 39
Output SSRC changed to 10203040
In TS: 34688, dTS: 0, Seq: 12
Out TS change: 32968, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 2063, Transit = 4294934487
+Stats: Jitter = 0, Transit = 4294934527
In TS: 34848, dTS: 160, Seq: 13
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 1934, Transit = 4294934487
+Stats: Jitter = 0, Transit = 4294934527
In TS: 35008, dTS: 160, Seq: 14
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 1813, Transit = 4294934488
+Stats: Jitter = 0, Transit = 4294934528
In TS: 35128, dTS: 120, Seq: 15
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +1, out +0
-Stats: Jitter = 1700, Transit = 4294934488
+Stats: Jitter = 2, Transit = 4294934568
In TS: 35288, dTS: 160, Seq: 16
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 1593, Transit = 4294934487
+Stats: Jitter = 2, Transit = 4294934567
In TS: 35448, dTS: 160, Seq: 17
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 1494, Transit = 4294934488
+Stats: Jitter = 2, Transit = 4294934568
In TS: 35768, dTS: 160, Seq: 19
Out TS change: 320, dTS: 160, Seq change: 2, TS Err change: in +0, out +0
-Stats: Jitter = 1411, Transit = 4294934328
+Stats: Jitter = 12, Transit = 4294934408
In TS: 35928, dTS: 160, Seq: 20
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 1322, Transit = 4294934327
+Stats: Jitter = 11, Transit = 4294934407
In TS: 36088, dTS: 160, Seq: 21
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 1250, Transit = 4294934167
+Stats: Jitter = 20, Transit = 4294934247
In TS: 36088, dTS: 160, Seq: 21
Out TS change: 0, dTS: 160, Seq change: 0, TS Err change: in +0, out +0
-Stats: Jitter = 1182, Transit = 4294934328
+Stats: Jitter = 29, Transit = 4294934408
In TS: 36248, dTS: 160, Seq: 22
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 1108, Transit = 4294934327
+Stats: Jitter = 27, Transit = 4294934407
In TS: 36408, dTS: 160, Seq: 23
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 1039, Transit = 4294934327
+Stats: Jitter = 26, Transit = 4294934407
In TS: 36568, dTS: 160, Seq: 23
Out TS change: 160, dTS: 160, Seq change: 0, TS Err change: in +1, out +1
-Stats: Jitter = 974, Transit = 4294934328
+Stats: Jitter = 24, Transit = 4294934408
In TS: 36728, dTS: 160, Seq: 24
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 913, Transit = 4294934327
+Stats: Jitter = 23, Transit = 4294934407
In TS: 36888, dTS: 160, Seq: 25
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 856, Transit = 4294934328
+Stats: Jitter = 21, Transit = 4294934408
Output SSRC changed to 50607080
In TS: 160000, dTS: 0, Seq: 1000
Out TS change: 123112, dTS: 160, Seq change: 975, TS Err change: in +0, out +0
-Stats: Jitter = 7747, Transit = 4294823216
+Stats: Jitter = 0, Transit = 4294823296
In TS: 160160, dTS: 160, Seq: 1001
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 7263, Transit = 4294823215
+Stats: Jitter = 0, Transit = 4294823295
In TS: 160320, dTS: 160, Seq: 1002
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 6809, Transit = 4294823215
+Stats: Jitter = 0, Transit = 4294823295
Testing packet error detection, patch SSRC, patch timestamps.
Output SSRC changed to 11223344
In TS: 0, dTS: 0, Seq: 0
@@ -394,65 +394,65 @@
Stats: Jitter = 16, Transit = 4294967295
In TS: 1400, dTS: 120, Seq: 9
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +1, out +0
-Stats: Jitter = 15, Transit = 0
+Stats: Jitter = 17, Transit = 40
In TS: 1560, dTS: 160, Seq: 10
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 14, Transit = 0
+Stats: Jitter = 16, Transit = 40
In TS: 1720, dTS: 160, Seq: 11
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 13, Transit = 4294967295
+Stats: Jitter = 15, Transit = 39
In TS: 34688, dTS: 0, Seq: 12
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 12, Transit = 4294967295
+Stats: Jitter = 0, Transit = 4294934527
In TS: 34848, dTS: 160, Seq: 13
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 11, Transit = 4294967295
+Stats: Jitter = 0, Transit = 4294934527
In TS: 35008, dTS: 160, Seq: 14
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 11, Transit = 0
+Stats: Jitter = 0, Transit = 4294934528
In TS: 35128, dTS: 120, Seq: 15
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +1, out +0
-Stats: Jitter = 10, Transit = 0
+Stats: Jitter = 2, Transit = 4294934568
In TS: 35288, dTS: 160, Seq: 16
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 9, Transit = 4294967295
+Stats: Jitter = 2, Transit = 4294934567
In TS: 35448, dTS: 160, Seq: 17
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 9, Transit = 0
+Stats: Jitter = 2, Transit = 4294934568
In TS: 35768, dTS: 160, Seq: 19
Out TS change: 320, dTS: 160, Seq change: 2, TS Err change: in +0, out +0
-Stats: Jitter = 18, Transit = 4294967136
+Stats: Jitter = 12, Transit = 4294934408
In TS: 35928, dTS: 160, Seq: 20
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 17, Transit = 4294967135
+Stats: Jitter = 11, Transit = 4294934407
In TS: 36088, dTS: 160, Seq: 21
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 26, Transit = 4294966975
+Stats: Jitter = 20, Transit = 4294934247
In TS: 36088, dTS: 160, Seq: 21
Out TS change: 0, dTS: 160, Seq change: 0, TS Err change: in +0, out +0
-Stats: Jitter = 34, Transit = 4294967136
+Stats: Jitter = 29, Transit = 4294934408
In TS: 36248, dTS: 160, Seq: 22
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 32, Transit = 4294967135
+Stats: Jitter = 27, Transit = 4294934407
In TS: 36408, dTS: 160, Seq: 23
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 30, Transit = 4294967135
+Stats: Jitter = 26, Transit = 4294934407
In TS: 36568, dTS: 160, Seq: 23
Out TS change: 160, dTS: 160, Seq change: 0, TS Err change: in +1, out +1
-Stats: Jitter = 28, Transit = 4294967136
+Stats: Jitter = 24, Transit = 4294934408
In TS: 36728, dTS: 160, Seq: 24
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 27, Transit = 4294967135
+Stats: Jitter = 23, Transit = 4294934407
In TS: 36888, dTS: 160, Seq: 25
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 25, Transit = 4294967136
+Stats: Jitter = 21, Transit = 4294934408
In TS: 160000, dTS: 0, Seq: 1000
Out TS change: 12000, dTS: 12000, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 23, Transit = 4294967136
+Stats: Jitter = 0, Transit = 4294823296
In TS: 160160, dTS: 160, Seq: 1001
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 22, Transit = 4294967135
+Stats: Jitter = 0, Transit = 4294823295
In TS: 160320, dTS: 160, Seq: 1002
Out TS change: 160, dTS: 160, Seq change: 1, TS Err change: in +0, out +0
-Stats: Jitter = 21, Transit = 4294967135
+Stats: Jitter = 0, Transit = 4294823295
Done