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 ;) --- ext/jack/gstjackbin.c | 49 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 32 insertions(+), 17 deletions(-) (limited to 'ext/jack/gstjackbin.c') 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