audiolatency: Fix wave detection in buffers
authorNirbheek Chauhan <nirbheek@centricular.com>
Tue, 3 Apr 2018 18:24:41 +0000 (23:54 +0530)
committerNirbheek Chauhan <nirbheek@centricular.com>
Tue, 3 Apr 2018 18:27:20 +0000 (23:57 +0530)
-1/1000 is 0, so we were *always* detecting a buffer.

gst/audiolatency/gstaudiolatency.c

index 3a3a406..7e6ec42 100644 (file)
@@ -335,7 +335,7 @@ buffer_has_wave (GstBuffer * buffer, GstPad * pad)
     gst_buffer_unmap (buffer, &minfo);
 
   /* Return offset in microseconds */
-  return offset / 1000;
+  return (offset > 0) ? offset / 1000 : -1;
 }
 
 static GstPadProbeReturn
@@ -406,12 +406,7 @@ gst_audiolatency_sink_chain (GstPad * pad, GstObject * parent,
   if (offset < 0)
     goto out;
 
-  pts += offset;
-  /* Only measure latency using the first buffer of each tick wave */
-  if (pts - self->recv_pts <= 950 * 1000)
-    goto out;
-
-  self->recv_pts = pts;
+  self->recv_pts = pts + offset;
   latency = (self->recv_pts - self->send_pts);
   gst_audiolatency_set_latency (self, latency);