gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r23317 - Extractor/src/plugins


From: gnunet
Subject: [GNUnet-SVN] r23317 - Extractor/src/plugins
Date: Sun, 19 Aug 2012 22:58:36 +0200

Author: grothoff
Date: 2012-08-19 22:58:36 +0200 (Sun, 19 Aug 2012)
New Revision: 23317

Modified:
   Extractor/src/plugins/gstreamer_extractor.c
Log:
removing ugly non-constant globals

Modified: Extractor/src/plugins/gstreamer_extractor.c
===================================================================
--- Extractor/src/plugins/gstreamer_extractor.c 2012-08-19 20:53:16 UTC (rev 
23316)
+++ Extractor/src/plugins/gstreamer_extractor.c 2012-08-19 20:58:36 UTC (rev 
23317)
@@ -636,6 +636,14 @@
   enum CurrentStreamType st;
 };
 
+
+static GQuark *audio_quarks;
+
+static GQuark *video_quarks;
+
+static GQuark *subtitle_quarks;
+
+
 static void send_streams (GstDiscovererStreamInfo *info, struct PrivStruct 
*ps);
 
 static void send_tag_foreach (const GstTagList * tags, const gchar * tag,
@@ -649,13 +657,6 @@
 static gboolean seek_data (GstElement * appsrc, guint64 position, struct 
PrivStruct * ps);
 
 
-static GstDiscoverer *dc;
-static struct PrivStruct *ps;
-
-static GQuark *audio_quarks;
-static GQuark *video_quarks;
-static GQuark *subtitle_quarks;
-
 static void
 _new_discovered_uri (GstDiscoverer * dc, GstDiscovererInfo * info, GError * 
err, struct PrivStruct * ps)
 {
@@ -671,28 +672,9 @@
 static int
 initialize ()
 {
-  gint timeout = 10;
-  GError *err = NULL;
-
   gst_init (NULL, NULL);
-
   GST_DEBUG_CATEGORY_INIT (gstreamer_extractor, "GstExtractor",
                          0, "GStreamer-based libextractor plugin");
-  dc = gst_discoverer_new (timeout * GST_SECOND, &err);
-  if (G_UNLIKELY (dc == NULL)) {
-    g_print ("Error initializing: %s\n", err->message);
-    return FALSE;
-  }
-
-  ps = g_new0 (struct PrivStruct, 1);
-  ps->dc = dc;
-  ps->loop = g_main_loop_new (NULL, TRUE);
-
-  /* connect signals */
-  g_signal_connect (dc, "discovered", G_CALLBACK (_new_discovered_uri), ps);
-  g_signal_connect (dc, "finished", G_CALLBACK (_discoverer_finished), ps);
-  g_signal_connect (dc, "source-setup", G_CALLBACK (_source_setup), ps);
-
   audio_quarks = g_new0 (GQuark, 4);
   audio_quarks[0] = g_quark_from_string ("rate");
   audio_quarks[1] = g_quark_from_string ("channels");
@@ -1596,10 +1578,27 @@
   static int initialized = FALSE;
   int64_t offset;
   void *data;
+  GstDiscoverer *dc;
+  struct PrivStruct *ps;
+  GError *err = NULL;
+  gint timeout = 10;
 
-  if (! initialized)
-    if (! (initialized = initialize ()))
-      return;
+  if ( (! initialized) &&
+       (! (initialized = initialize ())) )
+    return;
+  dc = gst_discoverer_new (timeout * GST_SECOND, &err);
+  if (G_UNLIKELY (dc == NULL)) {
+    g_print ("Error initializing: %s\n", err->message);
+    return;
+  }
+  /* connect signals */
+  g_signal_connect (dc, "discovered", G_CALLBACK (_new_discovered_uri), ps);
+  g_signal_connect (dc, "finished", G_CALLBACK (_discoverer_finished), ps);
+  g_signal_connect (dc, "source-setup", G_CALLBACK (_source_setup), ps);
+
+  ps = g_new0 (struct PrivStruct, 1);
+  ps->dc = dc;
+  ps->loop = g_main_loop_new (NULL, TRUE);
   ps->ec = ec;
   ps->length = ps->ec->get_size (ps->ec->cls);
   if (ps->length == UINT_MAX)
@@ -1609,6 +1608,11 @@
   g_idle_add ((GSourceFunc) _run_async, ps);
   g_main_loop_run (ps->loop);
   gst_discoverer_stop (dc);
+  g_free (ps);
+  ps = NULL;
+  gst_object_unref (GST_OBJECT (dc));
+  dc = NULL;
 }
 
+
 /* end of gstreamer_extractor.c */




reply via email to

[Prev in Thread] Current Thread [Next in Thread]