chiark
/
gitweb
/
~mdw
/
disorder
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
don't backtrack rtp_time. still not good l-(
[disorder]
/
server
/
speaker.c
diff --git
a/server/speaker.c
b/server/speaker.c
index f7e2f590a41ab1be6a99e6c93f60aa233ee00da2..4c4f421cb865737bd49d0341dc81e9717f0ab655 100644
(file)
--- 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);
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++);
}
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;
}
++rtp_time_real.tv_sec;
rtp_time_real.tv_usec -= 1000000;
}
+ assert(rtp_time_real.tv_usec < 1000000);
break;
default:
assert(!"reached");
break;
default:
assert(!"reached");