mgcp/rtp: Fix RTP timestamps if enabled

This forces the output timing to fulfill
   dTS = dSegNo * fixedPacketDuration
where dSegNo = seqNo - lastSeqNo.

If timestamp patching is enabled, the output timestamp will be set
to lastTimestamp + dTS. This kind of relative updating is used to
handle seqNo- and timestamp-wraparounds properly.

The updating of timestamp and SSRC has been separated and the patch
field of mgcp_rtp_state has been renamed to patch_ssrc to reflect
it's semantics more closely. The offset fields are now used always
and will change the corresponding header field if they are != 0.

Ticket: OW#1065
Sponsored-by: On-Waves ehf
diff --git a/openbsc/tests/mgcp/mgcp_test.ok b/openbsc/tests/mgcp/mgcp_test.ok
index 4d3caac..3beeb59 100644
--- a/openbsc/tests/mgcp/mgcp_test.ok
+++ b/openbsc/tests/mgcp/mgcp_test.ok
@@ -94,46 +94,46 @@
 TS: 0, dTS: 0, TS Errs: in 0, out 0
 TS: 160, dTS: 160, TS Errs: in 0, out 0
 TS: 320, dTS: 160, TS Errs: in 0, out 0
-TS: 320, dTS: 160, TS Errs: in 1, out 1
-TS: 480, dTS: 160, TS Errs: in 1, out 1
-TS: 640, dTS: 160, TS Errs: in 1, out 1
-TS: 960, dTS: 320, TS Errs: in 2, out 2
-TS: 1120, dTS: 160, TS Errs: in 3, out 3
-TS: 1280, dTS: 160, TS Errs: in 3, out 3
-TS: 1400, dTS: 120, TS Errs: in 4, out 4
-TS: 1560, dTS: 160, TS Errs: in 5, out 5
-TS: 1720, dTS: 160, TS Errs: in 5, out 5
+TS: 480, dTS: 160, TS Errs: in 1, out 0
+TS: 640, dTS: 160, TS Errs: in 1, out 0
+TS: 800, dTS: 160, TS Errs: in 1, out 0
+TS: 960, dTS: 160, TS Errs: in 2, out 0
+TS: 1120, dTS: 160, TS Errs: in 3, out 0
+TS: 1280, dTS: 160, TS Errs: in 3, out 0
+TS: 1440, dTS: 160, TS Errs: in 4, out 0
+TS: 1600, dTS: 160, TS Errs: in 5, out 0
+TS: 1760, dTS: 160, TS Errs: in 5, out 0
 Output SSRC changed to 10203040
-TS: 34688, dTS: 160, TS Errs: in 5, out 5
-TS: 34848, dTS: 160, TS Errs: in 5, out 5
-TS: 35008, dTS: 160, TS Errs: in 5, out 5
-TS: 35128, dTS: 120, TS Errs: in 6, out 6
-TS: 35288, dTS: 160, TS Errs: in 7, out 7
-TS: 35448, dTS: 160, TS Errs: in 7, out 7
-TS: 35768, dTS: 160, TS Errs: in 7, out 7
-TS: 35928, dTS: 160, TS Errs: in 7, out 7
-TS: 36088, dTS: 160, TS Errs: in 8, out 8
+TS: 34728, dTS: 160, TS Errs: in 5, out 0
+TS: 34888, dTS: 160, TS Errs: in 5, out 0
+TS: 35048, dTS: 160, TS Errs: in 5, out 0
+TS: 35208, dTS: 160, TS Errs: in 6, out 0
+TS: 35368, dTS: 160, TS Errs: in 7, out 0
+TS: 35528, dTS: 160, TS Errs: in 7, out 0
+TS: 35848, dTS: 160, TS Errs: in 7, out 0
+TS: 36008, dTS: 160, TS Errs: in 7, out 0
+TS: 36008, dTS: 160, TS Errs: in 8, out 0
 Testing packet error detection, patch SSRC, patch timestamps.
 Output SSRC changed to 11223344
 TS: 0, dTS: 0, TS Errs: in 0, out 0
 TS: 160, dTS: 160, TS Errs: in 0, out 0
 TS: 320, dTS: 160, TS Errs: in 0, out 0
-TS: 320, dTS: 160, TS Errs: in 1, out 1
-TS: 480, dTS: 160, TS Errs: in 1, out 1
-TS: 640, dTS: 160, TS Errs: in 1, out 1
-TS: 960, dTS: 320, TS Errs: in 2, out 2
-TS: 1120, dTS: 160, TS Errs: in 3, out 3
-TS: 1280, dTS: 160, TS Errs: in 3, out 3
-TS: 1400, dTS: 120, TS Errs: in 4, out 4
-TS: 1560, dTS: 160, TS Errs: in 5, out 5
-TS: 1720, dTS: 160, TS Errs: in 5, out 5
-TS: 1880, dTS: 160, TS Errs: in 5, out 5
-TS: 2040, dTS: 160, TS Errs: in 5, out 5
-TS: 2200, dTS: 160, TS Errs: in 5, out 5
-TS: 2320, dTS: 120, TS Errs: in 6, out 6
-TS: 2480, dTS: 160, TS Errs: in 7, out 7
-TS: 2640, dTS: 160, TS Errs: in 7, out 7
-TS: 2960, dTS: 160, TS Errs: in 7, out 7
-TS: 3120, dTS: 160, TS Errs: in 7, out 7
-TS: 3280, dTS: 160, TS Errs: in 8, out 8
+TS: 480, dTS: 160, TS Errs: in 1, out 0
+TS: 640, dTS: 160, TS Errs: in 1, out 0
+TS: 800, dTS: 160, TS Errs: in 1, out 0
+TS: 960, dTS: 160, TS Errs: in 2, out 0
+TS: 1120, dTS: 160, TS Errs: in 3, out 0
+TS: 1280, dTS: 160, TS Errs: in 3, out 0
+TS: 1440, dTS: 160, TS Errs: in 4, out 0
+TS: 1600, dTS: 160, TS Errs: in 5, out 0
+TS: 1760, dTS: 160, TS Errs: in 5, out 0
+TS: 1920, dTS: 160, TS Errs: in 5, out 0
+TS: 2080, dTS: 160, TS Errs: in 5, out 0
+TS: 2240, dTS: 160, TS Errs: in 5, out 0
+TS: 2400, dTS: 160, TS Errs: in 6, out 0
+TS: 2560, dTS: 160, TS Errs: in 7, out 0
+TS: 2720, dTS: 160, TS Errs: in 7, out 0
+TS: 3040, dTS: 160, TS Errs: in 7, out 0
+TS: 3200, dTS: 160, TS Errs: in 7, out 0
+TS: 3200, dTS: 160, TS Errs: in 8, out 0
 Done