gst-plugins-good: jack: fix build against jack 0.120.2
Tim Müller
tpm at kemper.freedesktop.org
Fri Mar 11 01:55:46 PST 2011
Module: gst-plugins-good
Branch: master
Commit: 9544622674c0d0a3147a9b51145159b02eec68e9
URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=9544622674c0d0a3147a9b51145159b02eec68e9
Author: Philippe Normand <pnormand at igalia.com>
Date: Fri Mar 11 10:29:08 2011 +0100
jack: fix build against jack 0.120.2
jack_port_get_total_latency() has been deprecated in favor of
jack_port_get_latency_range().
https://bugzilla.gnome.org/show_bug.cgi?id=644477
---
configure.ac | 6 ++++++
ext/jack/gstjackaudiosink.c | 15 +++++++++++++--
ext/jack/gstjackaudiosrc.c | 13 ++++++++++++-
3 files changed, 31 insertions(+), 3 deletions(-)
diff --git a/configure.ac b/configure.ac
index 422ee16..bd6cbb0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -766,6 +766,12 @@ AG_GST_CHECK_FEATURE(JACK, Jack, jack, [
PKG_CHECK_MODULES(JACK, jack >= 0.99.10, HAVE_JACK="yes", HAVE_JACK="no")
AC_SUBST(JACK_CFLAGS)
AC_SUBST(JACK_LIBS)
+
+ AG_GST_PKG_CHECK_MODULES(JACK_0_120_2, jack >= 0.120.2)
+ if test x$HAVE_JACK_0_120_2 = xyes; then
+ AC_DEFINE(HAVE_JACK_0_120_2, 1, [defined if jack >= 0.120.2 is available])
+ fi
+
])
dnl *** jpeg ***
diff --git a/ext/jack/gstjackaudiosink.c b/ext/jack/gstjackaudiosink.c
index 4620bce..0abcfe7 100644
--- a/ext/jack/gstjackaudiosink.c
+++ b/ext/jack/gstjackaudiosink.c
@@ -592,16 +592,27 @@ static guint
gst_jack_ring_buffer_delay (GstRingBuffer * buf)
{
GstJackAudioSink *sink;
- guint i, res = 0, latency;
+ guint i, res = 0;
+#ifdef HAVE_JACK_0_120_2
+ jack_latency_range_t range;
+#else
+ guint latency;
+#endif
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]);
+#ifdef HAVE_JACK_0_120_2
+ jack_port_get_latency_range (sink->ports[i], JackPlaybackLatency, &range);
+ if (range.max > res)
+ res = range.max;
+#else
+ latency = jack_port_get_total_latency (client, src->ports[i]);
if (latency > res)
res = latency;
+#endif
}
GST_LOG_OBJECT (sink, "delay %u", res);
diff --git a/ext/jack/gstjackaudiosrc.c b/ext/jack/gstjackaudiosrc.c
index 08b325e..b484057 100644
--- a/ext/jack/gstjackaudiosrc.c
+++ b/ext/jack/gstjackaudiosrc.c
@@ -603,16 +603,27 @@ static guint
gst_jack_ring_buffer_delay (GstRingBuffer * buf)
{
GstJackAudioSrc *src;
- guint i, res = 0, latency;
+ guint i, res = 0;
+#ifdef HAVE_JACK_0_120_2
+ jack_latency_range_t range;
+#else
+ guint latency;
+#endif
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++) {
+#ifdef HAVE_JACK_0_120_2
+ jack_port_get_latency_range (src->ports[i], JackCaptureLatency, &range);
+ if (range.max > res)
+ res = range.max;
+#else
latency = jack_port_get_total_latency (client, src->ports[i]);
if (latency > res)
res = latency;
+#endif
}
GST_DEBUG_OBJECT (src, "delay %u", res);
More information about the gstreamer-commits
mailing list