From 773b7da81f44165aa50fbc7a1e5c1ad629c959cc Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Sat, 4 May 2002 18:57:44 +0000 Subject: some jack fixes, alsa touchups, and add rtp by default to the build if there are any problems building rtp, we're mov... Original commit message from CVS: some jack fixes, alsa touchups, and add rtp by default to the build if there are any problems building rtp, we're moving it back to experimental ;) --- configure.ac | 2 -- ext/jack/gstjack.c | 1 + ext/jack/gstjack.h | 5 +++++ ext/jack/gstjackbin.c | 49 ++++++++++++++++++++++++++++++++----------------- 4 files changed, 38 insertions(+), 19 deletions(-) diff --git a/configure.ac b/configure.ac index 5a393844..3afe7dc9 100644 --- a/configure.ac +++ b/configure.ac @@ -49,11 +49,9 @@ GST_CHECK_FEATURE(EXPERIMENTAL, [enable building of experimental plugins],, [HAVE_EXPERIMENTAL=yes],disabled, [ AC_MSG_WARN(building experimental plugins) - USE_RTP="yes" USE_TARKIN="yes" ],[ AC_MSG_NOTICE(not building experimental plugins) - USE_RTP="no" USE_TARKIN="no" ]) diff --git a/ext/jack/gstjack.c b/ext/jack/gstjack.c index 87ce638c..1258e233 100644 --- a/ext/jack/gstjack.c +++ b/ext/jack/gstjack.c @@ -1,3 +1,4 @@ +/* -*- Mode: C; c-basic-offset: 4 -*- */ /* Copyright (C) 2002 Andy Wingo diff --git a/ext/jack/gstjack.h b/ext/jack/gstjack.h index 38763cd6..9d07f869 100644 --- a/ext/jack/gstjack.h +++ b/ext/jack/gstjack.h @@ -1,3 +1,4 @@ +/* -*- Mode: C; c-basic-offset: 4 -*- */ /* Copyright (C) 2002 Andy Wingo @@ -109,6 +110,10 @@ struct _GstJackBin { guint rate; nframes_t nframes; + + /* the scheduler needs to be setup from within the jack client thread; this + variable is to keep track of whether or not we have been set up yet */ + gboolean sched_setup; }; struct _GstJackBinClass { diff --git a/ext/jack/gstjackbin.c b/ext/jack/gstjackbin.c index 8a4cc763..dbaac665 100644 --- a/ext/jack/gstjackbin.c +++ b/ext/jack/gstjackbin.c @@ -1,3 +1,4 @@ +/* -*- Mode: C; c-basic-offset: 4 -*- */ /* Copyright (C) 2002 Andy Wingo @@ -37,23 +38,23 @@ static void shutdown (void *arg); GType gst_jack_bin_get_type (void) { - static GType jack_bin_type = 0; - - if (!jack_bin_type) { - static const GTypeInfo jack_bin_info = { - sizeof(GstJackBinClass), - NULL, - NULL, - (GClassInitFunc)gst_jack_bin_class_init, - NULL, - NULL, - sizeof(GstJackBin), - 0, - (GInstanceInitFunc)gst_jack_bin_init, - }; - jack_bin_type = g_type_register_static (GST_TYPE_BIN, "GstJackBin", &jack_bin_info, 0); - } - return jack_bin_type; + static GType jack_bin_type = 0; + + if (!jack_bin_type) { + static const GTypeInfo jack_bin_info = { + sizeof(GstJackBinClass), + NULL, + NULL, + (GClassInitFunc)gst_jack_bin_class_init, + NULL, + NULL, + sizeof(GstJackBin), + 0, + (GInstanceInitFunc)gst_jack_bin_init, + }; + jack_bin_type = g_type_register_static (GST_TYPE_BIN, "GstJackBin", &jack_bin_info, 0); + } + return jack_bin_type; } static void @@ -73,6 +74,14 @@ gst_jack_bin_class_init(GstJackClass *klass) static void gst_jack_bin_init(GstJack *this) { + GST_DEBUG (GST_CAT_THREAD, "initializing jack bin"); + + /* jack bins are managing bins and iterate themselves */ + GST_FLAG_SET (this, GST_BIN_FLAG_MANAGER); + GST_FLAG_SET (this, GST_BIN_SELF_SCHEDULABLE); + + /* make a new scheduler and associate it with the bin */ + gst_scheduler_factory_make (NULL, GST_ELEMENT (this)); } static GstElementStateReturn @@ -237,6 +246,12 @@ sample_rate (nframes_t nframes, void *arg) GstJackBin *bin = (GstJackBin*) arg; printf ("the sample rate is now %lu/sec\n", nframes); bin->rate = nframes; + + if (!bin->sched_setup) { + gst_scheduler_setup (GST_ELEMENT_SCHED (bin)); + bin->sched_setup = TRUE; + } + return 0; } -- cgit v1.2.1