[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r26197 - Extractor/src/plugins
From: |
gnunet |
Subject: |
[GNUnet-SVN] r26197 - Extractor/src/plugins |
Date: |
Sat, 23 Feb 2013 18:40:56 +0100 |
Author: LRN
Date: 2013-02-23 18:40:56 +0100 (Sat, 23 Feb 2013)
New Revision: 26197
Modified:
Extractor/src/plugins/Makefile.am
Extractor/src/plugins/gstreamer_extractor.c
Log:
GStreamer plugin: synchronize IPC
Modified: Extractor/src/plugins/Makefile.am
===================================================================
--- Extractor/src/plugins/Makefile.am 2013-02-22 16:24:33 UTC (rev 26196)
+++ Extractor/src/plugins/Makefile.am 2013-02-23 17:40:56 UTC (rev 26197)
@@ -331,7 +331,7 @@
libextractor_gstreamer_la_LDFLAGS = \
$(PLUGINFLAGS)
libextractor_gstreamer_la_LIBADD = \
- $(GSTREAMER_LIBS) $(GSTREAMER_PBUTILS_LIBS) $(GSTREAMER_TAG_LIBS)
$(GSTREAMER_APP_LIBS) $(XLIB)
+ $(GSTREAMER_LIBS) $(GSTREAMER_PBUTILS_LIBS) $(GSTREAMER_TAG_LIBS)
$(GSTREAMER_APP_LIBS) $(XLIB) -lpthread
libextractor_gstreamer_la_CFLAGS = \
$(GSTREAMER_CFLAGS) $(GSTREAMER_PBUTILS_CFLAGS) $(GSTREAMER_TAG_CFLAGS)
$(GSTREAMER_APP_CFALGS)
Modified: Extractor/src/plugins/gstreamer_extractor.c
===================================================================
--- Extractor/src/plugins/gstreamer_extractor.c 2013-02-22 16:24:33 UTC (rev
26196)
+++ Extractor/src/plugins/gstreamer_extractor.c 2013-02-23 17:40:56 UTC (rev
26197)
@@ -29,6 +29,7 @@
#include <gst/pbutils/pbutils.h>
#include <gst/tag/tag.h>
#include <gst/app/gstappsrc.h>
+#include <pthread.h>
GST_DEBUG_CATEGORY_STATIC (gstreamer_extractor);
#define GST_CAT_DEFAULT gstreamer_extractor
@@ -47,6 +48,8 @@
*/
#define DATA_TIMEOUT 80000LL /* 80ms */
+pthread_mutex_t pipe_mutex;
+
/**
* Struct mapping GSTREAMER tags to LE tags.
*/
@@ -951,6 +954,7 @@
accumulated = 0;
data_len = 1;
+ pthread_mutex_lock (&pipe_mutex);
while ( (accumulated < size) && (data_len > 0) )
{
data_len = ps->ec->read (ps->ec->cls, (void **) &le_data, size -
accumulated);
@@ -960,6 +964,7 @@
accumulated += data_len;
}
}
+ pthread_mutex_unlock (&pipe_mutex);
gst_memory_unmap (mem, &mi);
if (size == accumulated)
{
@@ -1002,7 +1007,9 @@
struct PrivStruct * ps)
{
GST_DEBUG ("seek to offset %" G_GUINT64_FORMAT, position);
+ pthread_mutex_lock (&pipe_mutex);
ps->offset = ps->ec->seek (ps->ec->cls, position, SEEK_SET);
+ pthread_mutex_unlock (&pipe_mutex);
ps->last_data_request_time = g_get_monotonic_time ();
return ps->offset == position;
}
@@ -1918,7 +1925,9 @@
case GST_DISCOVERER_MISSING_PLUGINS:
break;
}
+ pthread_mutex_lock (&pipe_mutex);
send_info (info, ps);
+ pthread_mutex_unlock (&pipe_mutex);
}
@@ -2087,6 +2096,8 @@
subtitle_quarks[1] = g_quark_from_string (NULL);
duration_quark = g_quark_from_string ("duration");
+
+ pthread_mutex_init (&pipe_mutex, NULL);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r26197 - Extractor/src/plugins,
gnunet <=