[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r23321 - Extractor/src/plugins
From: |
gnunet |
Subject: |
[GNUnet-SVN] r23321 - Extractor/src/plugins |
Date: |
Mon, 20 Aug 2012 07:38:24 +0200 |
Author: LRN
Date: 2012-08-20 07:38:24 +0200 (Mon, 20 Aug 2012)
New Revision: 23321
Modified:
Extractor/src/plugins/Makefile.am
Extractor/src/plugins/gstreamer_extractor.c
Log:
Fixing HEAD to compile again
Since PrivStruct is now nullified, store persistent
data in a separate struct.
Initialize more stuff once.
Add back proper CFLAGS and LDADD for gstreamer testcase.
Modified: Extractor/src/plugins/Makefile.am
===================================================================
--- Extractor/src/plugins/Makefile.am 2012-08-19 22:01:46 UTC (rev 23320)
+++ Extractor/src/plugins/Makefile.am 2012-08-20 05:38:24 UTC (rev 23321)
@@ -289,7 +289,10 @@
test_gstreamer_SOURCES = \
test_gstreamer.c
test_gstreamer_LDADD = \
- $(top_builddir)/src/plugins/libtest.la
+ $(top_builddir)/src/plugins/libtest.la \
+ $(GSTREAMER_LIBS) $(GSTREAMER_PBUTILS_LIBS)
+test_gstreamer_CFLAGS = \
+ $(GSTREAMER_CFLAGS) $(GSTREAMER_PBUTILS_CFLAGS)
libextractor_html_la_SOURCES = \
Modified: Extractor/src/plugins/gstreamer_extractor.c
===================================================================
--- Extractor/src/plugins/gstreamer_extractor.c 2012-08-19 22:01:46 UTC (rev
23320)
+++ Extractor/src/plugins/gstreamer_extractor.c 2012-08-20 05:38:24 UTC (rev
23321)
@@ -621,8 +621,6 @@
struct PrivStruct
{
- GMainLoop *loop;
- GstDiscoverer *dc;
GstElement *source;
struct EXTRACTOR_ExtractContext *ec;
long length;
@@ -636,6 +634,12 @@
enum CurrentStreamType st;
};
+struct InitData
+{
+ GMainLoop *loop;
+ GstDiscoverer *dc;
+ struct PrivStruct *ps;
+};
static GQuark *audio_quarks;
@@ -664,14 +668,17 @@
}
static void
-_discoverer_finished (GstDiscoverer * dc, struct PrivStruct * ps)
+_discoverer_finished (GstDiscoverer * dc, struct InitData * id)
{
- g_main_loop_quit (ps->loop);
+ g_main_loop_quit (id->loop);
}
static int
-initialize ()
+initialize (struct InitData *id, struct PrivStruct *ps)
{
+ GError *err = NULL;
+ gint timeout = 10;
+
gst_init (NULL, NULL);
GST_DEBUG_CATEGORY_INIT (gstreamer_extractor, "GstExtractor",
0, "GStreamer-based libextractor plugin");
@@ -693,6 +700,20 @@
subtitle_quarks[0] = g_quark_from_string ("language-code");
subtitle_quarks[1] = g_quark_from_string (NULL);
+ id->dc = gst_discoverer_new (timeout * GST_SECOND, &err);
+ if (G_UNLIKELY (id->dc == NULL)) {
+ g_print ("Error initializing: %s\n", err->message);
+ return FALSE;
+ }
+ /* connect signals */
+ g_signal_connect (id->dc, "discovered", G_CALLBACK (_new_discovered_uri),
ps);
+ g_signal_connect (id->dc, "finished", G_CALLBACK (_discoverer_finished), id);
+ g_signal_connect (id->dc, "source-setup", G_CALLBACK (_source_setup), ps);
+
+ id->loop = g_main_loop_new (NULL, TRUE);
+
+ id->ps = ps;
+
return TRUE;
}
@@ -801,9 +822,9 @@
}
static gboolean
-_run_async (struct PrivStruct * ps)
+_run_async (struct InitData * id)
{
- gst_discoverer_discover_uri_async (ps->dc, "appsrc://");
+ gst_discoverer_discover_uri_async (id->dc, "appsrc://");
return FALSE;
}
@@ -1579,36 +1600,24 @@
int64_t offset;
void *data;
GstDiscoverer *dc;
- struct PrivStruct ps;
+ static struct PrivStruct ps;
+ static struct InitData id;
GError *err = NULL;
- gint timeout = 10;
if ( (! initialized) &&
- (! (initialized = initialize ())) )
+ (! (initialized = initialize (&id, &ps))) )
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);
memset (&ps, 0, sizeof (ps));
- ps.dc = dc;
- ps.loop = g_main_loop_new (NULL, TRUE);
ps.ec = ec;
- ps.length = ps->ec->get_size (ps->ec->cls);
+ ps.length = ps.ec->get_size (ps.ec->cls);
if (ps.length == UINT_MAX)
ps.length = 0;
- gst_discoverer_start (dc);
- g_idle_add ((GSourceFunc) &_run_async, &ps);
- g_main_loop_run (ps.loop);
- gst_discoverer_stop (dc);
- gst_object_unref (GST_OBJECT (dc));
+ gst_discoverer_start (id.dc);
+ g_idle_add ((GSourceFunc) &_run_async, &id);
+ g_main_loop_run (id.loop);
+ gst_discoverer_stop (id.dc);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r23321 - Extractor/src/plugins,
gnunet <=