summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Smith <msmith@rdio.com>2012-10-03 11:05:06 -0700
committerMichael Smith <msmith@rdio.com>2012-10-03 11:05:06 -0700
commit0c2159a220da1eb1f851f45ecb978d3c9939ad24 (patch)
treedf62e201ffd814831a71942ac2b811c835585b50
parent4570e8bec853aa33cbe4dc8f2e67205a7d72136f (diff)
downloadgstreamer-plugins-bad-0c2159a220da1eb1f851f45ecb978d3c9939ad24.tar.gz
meta info: register thread-safely.
-rw-r--r--ext/directfb/dfbvideosink.c10
-rw-r--r--ext/wayland/waylandpool.c5
-rw-r--r--gst-libs/gst/video/gstsurfacemeta.c6
-rw-r--r--sys/applemedia/coremediabuffer.c5
-rw-r--r--sys/applemedia/corevideobuffer.c5
-rw-r--r--sys/pvr2d/gstpvrbufferpool.c5
6 files changed, 22 insertions, 14 deletions
diff --git a/ext/directfb/dfbvideosink.c b/ext/directfb/dfbvideosink.c
index 7d7b6fe0f..be64cfddf 100644
--- a/ext/directfb/dfbvideosink.c
+++ b/ext/directfb/dfbvideosink.c
@@ -383,8 +383,8 @@ gst_dfbvideosink_event_thread (GstDfbVideoSink * dfbvideosink)
while (dfbvideosink->running) {
/* Wait for an event with a 50 ms timeout */
- dfbvideosink->event_buffer->WaitForEventWithTimeout (dfbvideosink->
- event_buffer, 0, 50);
+ dfbvideosink->event_buffer->
+ WaitForEventWithTimeout (dfbvideosink->event_buffer, 0, 50);
/* Do we have an event ? */
ret = dfbvideosink->event_buffer->HasEvent (dfbvideosink->event_buffer);
@@ -1898,13 +1898,15 @@ gst_meta_dfbsurface_get_info (void)
{
static const GstMetaInfo *meta_info = NULL;
- if (meta_info == NULL) {
- meta_info = gst_meta_register ("GstMetaDfbSurface", "GstMetaDfbSurface",
+ if (g_once_init_enter (&meta_info)) {
+ const GstMetaInfo *meta =
+ gst_meta_register ("GstMetaDfbSurface", "GstMetaDfbSurface",
sizeof (GstMetaDfbSurface),
(GstMetaInitFunction) NULL,
(GstMetaFreeFunction) NULL,
(GstMetaTransformFunction) NULL,
(GstMetaSerializeFunction) NULL, (GstMetaDeserializeFunction) NULL);
+ g_once_init_leave (&meta_info, meta);
}
return meta_info;
}
diff --git a/ext/wayland/waylandpool.c b/ext/wayland/waylandpool.c
index dd12d1005..ca380ea55 100644
--- a/ext/wayland/waylandpool.c
+++ b/ext/wayland/waylandpool.c
@@ -61,12 +61,13 @@ gst_wl_meta_get_info (void)
{
static const GstMetaInfo *wl_meta_info = NULL;
- if (wl_meta_info == NULL) {
- wl_meta_info =
+ if (g_once_init_enter (&wl_meta_info)) {
+ const GstMetaInfo *meta =
gst_meta_register (GST_WL_META_API_TYPE, "GstWlMeta",
sizeof (GstWlMeta), (GstMetaInitFunction) NULL,
(GstMetaFreeFunction) gst_wl_meta_free,
(GstMetaTransformFunction) NULL);
+ g_once_init_leave (&wl_meta_info, meta);
}
return wl_meta_info;
}
diff --git a/gst-libs/gst/video/gstsurfacemeta.c b/gst-libs/gst/video/gstsurfacemeta.c
index 3ff9aec89..f534bc0c5 100644
--- a/gst-libs/gst/video/gstsurfacemeta.c
+++ b/gst-libs/gst/video/gstsurfacemeta.c
@@ -62,11 +62,13 @@ gst_surface_meta_get_info (void)
{
static const GstMetaInfo *meta_info = NULL;
- if (meta_info == NULL) {
- meta_info = gst_meta_register (GST_SURFACE_META_API_TYPE, "GstSurfaceMeta",
+ if (g_once_init_enter (&meta_info)) {
+ const GstMetaInfo *meta =
+ gst_meta_register (GST_SURFACE_META_API_TYPE, "GstSurfaceMeta",
sizeof (GstSurfaceMeta),
(GstMetaInitFunction) NULL,
(GstMetaFreeFunction) NULL, (GstMetaTransformFunction) NULL);
+ g_once_init_leave (&meta_info, meta);
}
return meta_info;
}
diff --git a/sys/applemedia/coremediabuffer.c b/sys/applemedia/coremediabuffer.c
index 63ef6116b..273d8ff64 100644
--- a/sys/applemedia/coremediabuffer.c
+++ b/sys/applemedia/coremediabuffer.c
@@ -49,12 +49,13 @@ gst_core_media_meta_get_info (void)
{
static const GstMetaInfo *core_media_meta_info = NULL;
- if (core_media_meta_info == NULL) {
- core_media_meta_info = gst_meta_register (GST_CORE_MEDIA_META_API_TYPE,
+ if (g_once_init_enter (&core_media_meta_info)) {
+ const GstMetaInfo *meta = gst_meta_register (GST_CORE_MEDIA_META_API_TYPE,
"GstCoreMediaMeta", sizeof (GstCoreMediaMeta),
(GstMetaInitFunction) NULL,
(GstMetaFreeFunction) gst_core_media_meta_free,
(GstMetaTransformFunction) NULL);
+ g_once_init_leave (&core_media_meta_info, meta);
}
return core_media_meta_info;
}
diff --git a/sys/applemedia/corevideobuffer.c b/sys/applemedia/corevideobuffer.c
index a45c3f61b..c6580417c 100644
--- a/sys/applemedia/corevideobuffer.c
+++ b/sys/applemedia/corevideobuffer.c
@@ -51,12 +51,13 @@ gst_core_video_meta_get_info (void)
{
static const GstMetaInfo *core_video_meta_info = NULL;
- if (core_video_meta_info == NULL) {
- core_video_meta_info = gst_meta_register (GST_CORE_VIDEO_META_API_TYPE,
+ if (g_once_init_enter (&core_video_meta_info)) {
+ const GstMetaInfo *meta = gst_meta_register (GST_CORE_VIDEO_META_API_TYPE,
"GstCoreVideoMeta", sizeof (GstCoreVideoMeta),
(GstMetaInitFunction) NULL,
(GstMetaFreeFunction) gst_core_video_meta_free,
(GstMetaTransformFunction) NULL);
+ g_once_init_leave (&core_video_meta_info, meta);
}
return core_video_meta_info;
}
diff --git a/sys/pvr2d/gstpvrbufferpool.c b/sys/pvr2d/gstpvrbufferpool.c
index fdc68b952..81106dc41 100644
--- a/sys/pvr2d/gstpvrbufferpool.c
+++ b/sys/pvr2d/gstpvrbufferpool.c
@@ -71,12 +71,13 @@ gst_pvr_meta_get_info (void)
{
static const GstMetaInfo *pvr_meta_info = NULL;
- if (pvr_meta_info == NULL) {
- pvr_meta_info = gst_meta_register ("GstPVRMeta", "GstPVRMeta",
+ if (g_once_init_enter (&pvr_meta_info)) {
+ const GstMetaInfo *meta = gst_meta_register ("GstPVRMeta", "GstPVRMeta",
sizeof (GstPVRMeta),
(GstMetaInitFunction) NULL,
(GstMetaFreeFunction) gst_pvr_meta_free,
(GstMetaCopyFunction) NULL, (GstMetaTransformFunction) NULL);
+ g_once_init_leave (&pvr_meta_info, meta);
}
return pvr_meta_info;