ext/jack/: Query port latencies for sink/src delays.
authorStefan Kost <ensonic@users.sourceforge.net>
Sun, 23 Nov 2008 17:50:08 +0000 (17:50 +0000)
committerStefan Kost <ensonic@users.sourceforge.net>
Sun, 23 Nov 2008 17:50:08 +0000 (17:50 +0000)
Original commit message from CVS:
* ext/jack/gstjackaudiosink.c:
* ext/jack/gstjackaudiosrc.c:
Query port latencies for sink/src delays.
* ext/jack/gstjackbin.c:
No printf please.

ChangeLog
ext/jack/gstjackaudiosink.c
ext/jack/gstjackaudiosrc.c
ext/jack/gstjackbin.c

index f942a5b..f0f4646 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2008-11-23  Stefan Kost  <ensonic@users.sf.net>
+
+       * ext/jack/gstjackaudiosink.c:
+       * ext/jack/gstjackaudiosrc.c:
+         Query port latencies for sink/src delays.
+
+       * ext/jack/gstjackbin.c:
+         No printf please.
+
 2008-11-23  Sebastian Dröge  <sebastian.droege@collabora.co.uk>
 
        * gst/mxf/mxfdemux.c: (gst_mxf_demux_pull_klv_packet),
index 265ec68..228a229 100644 (file)
@@ -594,9 +594,17 @@ static guint
 gst_jack_ring_buffer_delay (GstRingBuffer * buf)
 {
   GstJackAudioSink *sink;
-  guint res = 0;
+  guint i, res = 0, latency;
+  jack_client_t *client;
 
   sink = GST_JACK_AUDIO_SINK (GST_OBJECT_PARENT (buf));
+  client = gst_jack_audio_client_get_client (sink->client);
+
+  for (i = 0; i < sink->port_count; i++) {
+    latency = jack_port_get_total_latency (client, sink->ports[i]);
+    if (latency > res)
+      res = latency;
+  }
 
   GST_DEBUG_OBJECT (sink, "delay %u", res);
 
index 6462d23..682a684 100644 (file)
@@ -601,9 +601,17 @@ static guint
 gst_jack_ring_buffer_delay (GstRingBuffer * buf)
 {
   GstJackAudioSrc *src;
-  guint res = 0;
+  guint i, res = 0, latency;
+  jack_client_t *client;
 
   src = GST_JACK_AUDIO_SRC (GST_OBJECT_PARENT (buf));
+  client = gst_jack_audio_client_get_client (src->client);
+
+  for (i = 0; i < src->port_count; i++) {
+    latency = jack_port_get_total_latency (client, src->ports[i]);
+    if (latency > res)
+      res = latency;
+  }
 
   GST_DEBUG_OBJECT (src, "delay %u", res);
 
index 7b219c7..08fed37 100644 (file)
@@ -337,7 +337,7 @@ static void
 shutdown (void *arg)
 {
 /*    GstJackClient *client = (GstJackClient*) arg; */
-  printf ("shutdown %p\n", arg);
+  JACK_DEBUG ("shutdown %p\n", arg);
 /*    gst_element_set_state (GST_ELEMENT (client->manager), GST_STATE_READY); */
 }