summaryrefslogtreecommitdiffstats
path: root/polyp/polyplib-stream.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2004-09-13 23:28:30 +0000
committerLennart Poettering <lennart@poettering.net>2004-09-13 23:28:30 +0000
commit829656c5fcd7169e4c2f86f4ad5098ea9aaa5643 (patch)
treeedbca9829ad4b7dfa67f6d7515b3c3c66cc58338 /polyp/polyplib-stream.c
parentfbefe67d52eb89a429505c653d1ea4ce73d4f4e7 (diff)
new configuration subsystem
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@198 fefdeb5f-60dc-0310-8127-8f9354f1896f
Diffstat (limited to 'polyp/polyplib-stream.c')
-rw-r--r--polyp/polyplib-stream.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/polyp/polyplib-stream.c b/polyp/polyplib-stream.c
index 98610d61..b40b7f69 100644
--- a/polyp/polyplib-stream.c
+++ b/polyp/polyplib-stream.c
@@ -347,12 +347,18 @@ static void stream_get_latency_callback(struct pa_pdispatch *pd, uint32_t comman
gettimeofday(&now, NULL);
- if (pa_timeval_cmp(&local, &remote) < 0 && pa_timeval_cmp(&remote, &now))
+ if (pa_timeval_cmp(&local, &remote) < 0 && pa_timeval_cmp(&remote, &now)) {
/* local and remote seem to have synchronized clocks */
i.transport_usec = pa_timeval_diff(&remote, &local);
- else
+ i.synchronized_clocks = 1;
+ i.timestamp = remote;
+ } else {
/* clocks are not synchronized, let's estimate latency then */
i.transport_usec = pa_timeval_diff(&now, &local)/2;
+ i.synchronized_clocks = 0;
+ i.timestamp = local;
+ pa_timeval_add(&i.timestamp, i.transport_usec);
+ }
if (o->callback) {
void (*cb)(struct pa_stream *s, const struct pa_latency_info *i, void *userdata) = o->callback;