From 01ddd9093a265f08ba3848a3c5c9b84f347b6e21 Mon Sep 17 00:00:00 2001 Message-Id: <01ddd9093a265f08ba3848a3c5c9b84f347b6e21.1714550965.git.mdw@distorted.org.uk> From: Mark Wooding Date: Mon, 17 Sep 2007 19:34:37 +0100 Subject: [PATCH] don't backtrack rtp_time. still not good l-( Organization: Straylight/Edgeware From: Richard Kettlewell --- server/speaker.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/server/speaker.c b/server/speaker.c index f7e2f59..4c4f421 100644 --- a/server/speaker.c +++ b/server/speaker.c @@ -651,8 +651,11 @@ static void play(size_t frames) { const long offset = (((now.tv_sec + now.tv_usec /1000000.0) - (rtp_time_real.tv_sec + rtp_time_real.tv_usec / 1000000.0)) * playing->format.rate * playing->format.channels); - info("offset RTP timestamp by %ld", offset); - rtp_time += offset; + if(offset >= 0) { + info("offset RTP timestamp by %ld", offset); + rtp_time += offset; + } else + xgettimeofday(&rtp_time_real, 0); } header.vpxcc = 2 << 6; /* V=2, P=0, X=0, CC=0 */ header.seq = htons(rtp_seq++); @@ -715,6 +718,7 @@ static void play(size_t frames) { ++rtp_time_real.tv_sec; rtp_time_real.tv_usec -= 1000000; } + assert(rtp_time_real.tv_usec < 1000000); break; default: assert(!"reached"); -- [mdw]