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)
committerTim-Philipp Müller <tim.muller@collabora.co.uk>
Sun, 2 Jan 2011 14:30:07 +0000 (14:30 +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.

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

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); */
 }