[PATCH 7/9] mgcp/rtp: Make offset computation understandable

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.

Jacob Erlbeck jerlbeck at sysmocom.de
Tue Jan 7 11:07:49 UTC 2014


Rename the timestamp variable to make in clear, that the input
timestamp is meant. Add a helper variable to illustrate the offset
computation.

Sponsored-by: On-Waves ehf
---
 openbsc/src/libmgcp/mgcp_network.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/openbsc/src/libmgcp/mgcp_network.c b/openbsc/src/libmgcp/mgcp_network.c
index 21d52b5..04e6cbe 100644
--- a/openbsc/src/libmgcp/mgcp_network.c
+++ b/openbsc/src/libmgcp/mgcp_network.c
@@ -241,10 +241,11 @@ static int adjust_rtp_timestamp_offset(struct mgcp_endpoint *endp,
 				       struct mgcp_rtp_state *state,
 				       struct mgcp_rtp_end *rtp_end,
 				       struct sockaddr_in *addr,
-				       int16_t delta_seq, uint32_t timestamp)
+				       int16_t delta_seq, uint32_t in_timestamp)
 {
 	int32_t tsdelta = state->packet_duration;
 	int timestamp_offset;
+	uint32_t out_timestamp;
 
 	if (tsdelta == 0) {
 		tsdelta = state->out_stream.last_tsdelta;
@@ -269,9 +270,8 @@ static int adjust_rtp_timestamp_offset(struct mgcp_endpoint *endp,
 		}
 	}
 
-	timestamp_offset =
-		state->out_stream.last_timestamp - timestamp +
-		delta_seq * tsdelta;
+	out_timestamp = state->out_stream.last_timestamp + delta_seq * tsdelta;
+	timestamp_offset = out_timestamp - in_timestamp;
 
 	if (state->timestamp_offset != timestamp_offset) {
 		state->timestamp_offset = timestamp_offset;
-- 
1.7.9.5





More information about the OpenBSC mailing list