]> code.delx.au - pulseaudio/commitdiff
properly deal with time pausing
authorLennart Poettering <lennart@poettering.net>
Mon, 29 Oct 2007 16:38:57 +0000 (16:38 +0000)
committerLennart Poettering <lennart@poettering.net>
Mon, 29 Oct 2007 16:38:57 +0000 (16:38 +0000)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1977 fefdeb5f-60dc-0310-8127-8f9354f1896f

src/pulsecore/time-smoother.c

index 6bda3df0675f4079e8e110044233576ef73a905e..4cebded4d5cd093336093c271210431a12abad57 100644 (file)
@@ -310,8 +310,9 @@ void pa_smoother_put(pa_smoother *s, pa_usec_t x, pa_usec_t y) {
     /* Fix up x value */
     if (s->paused)
         x = s->pause_time;
-    else
-        x -= s->time_offset;
+
+    pa_assert(x >= s->time_offset);
+    x -= s->time_offset;
 
     pa_assert(x >= s->ex);
 
@@ -342,8 +343,9 @@ pa_usec_t pa_smoother_get(pa_smoother *s, pa_usec_t x) {
     /* Fix up x value */
     if (s->paused)
         x = s->pause_time;
-    else
-        x -= s->time_offset;
+
+    pa_assert(x >= s->time_offset);
+    x -= s->time_offset;
 
     pa_assert(x >= s->ex);
 
@@ -373,6 +375,8 @@ void pa_smoother_resume(pa_smoother *s, pa_usec_t x) {
     if (!s->paused)
         return;
 
+    pa_assert(x >= s->pause_time);
+
     s->paused = FALSE;
     s->time_offset += x - s->pause_time;
 }