meta info: register thread-safely.

This commit is contained in:
Michael Smith 2012-10-03 11:05:06 -07:00
parent 4570e8bec8
commit 0c2159a220
6 changed files with 22 additions and 14 deletions

View File

@ -383,8 +383,8 @@ gst_dfbvideosink_event_thread (GstDfbVideoSink * dfbvideosink)
while (dfbvideosink->running) { while (dfbvideosink->running) {
/* Wait for an event with a 50 ms timeout */ /* Wait for an event with a 50 ms timeout */
dfbvideosink->event_buffer->WaitForEventWithTimeout (dfbvideosink-> dfbvideosink->event_buffer->
event_buffer, 0, 50); WaitForEventWithTimeout (dfbvideosink->event_buffer, 0, 50);
/* Do we have an event ? */ /* Do we have an event ? */
ret = dfbvideosink->event_buffer->HasEvent (dfbvideosink->event_buffer); ret = dfbvideosink->event_buffer->HasEvent (dfbvideosink->event_buffer);
@ -1898,13 +1898,15 @@ gst_meta_dfbsurface_get_info (void)
{ {
static const GstMetaInfo *meta_info = NULL; static const GstMetaInfo *meta_info = NULL;
if (meta_info == NULL) { if (g_once_init_enter (&meta_info)) {
meta_info = gst_meta_register ("GstMetaDfbSurface", "GstMetaDfbSurface", const GstMetaInfo *meta =
gst_meta_register ("GstMetaDfbSurface", "GstMetaDfbSurface",
sizeof (GstMetaDfbSurface), sizeof (GstMetaDfbSurface),
(GstMetaInitFunction) NULL, (GstMetaInitFunction) NULL,
(GstMetaFreeFunction) NULL, (GstMetaFreeFunction) NULL,
(GstMetaTransformFunction) NULL, (GstMetaTransformFunction) NULL,
(GstMetaSerializeFunction) NULL, (GstMetaDeserializeFunction) NULL); (GstMetaSerializeFunction) NULL, (GstMetaDeserializeFunction) NULL);
g_once_init_leave (&meta_info, meta);
} }
return meta_info; return meta_info;
} }

View File

@ -61,12 +61,13 @@ gst_wl_meta_get_info (void)
{ {
static const GstMetaInfo *wl_meta_info = NULL; static const GstMetaInfo *wl_meta_info = NULL;
if (wl_meta_info == NULL) { if (g_once_init_enter (&wl_meta_info)) {
wl_meta_info = const GstMetaInfo *meta =
gst_meta_register (GST_WL_META_API_TYPE, "GstWlMeta", gst_meta_register (GST_WL_META_API_TYPE, "GstWlMeta",
sizeof (GstWlMeta), (GstMetaInitFunction) NULL, sizeof (GstWlMeta), (GstMetaInitFunction) NULL,
(GstMetaFreeFunction) gst_wl_meta_free, (GstMetaFreeFunction) gst_wl_meta_free,
(GstMetaTransformFunction) NULL); (GstMetaTransformFunction) NULL);
g_once_init_leave (&wl_meta_info, meta);
} }
return wl_meta_info; return wl_meta_info;
} }

View File

@ -62,11 +62,13 @@ gst_surface_meta_get_info (void)
{ {
static const GstMetaInfo *meta_info = NULL; static const GstMetaInfo *meta_info = NULL;
if (meta_info == NULL) { if (g_once_init_enter (&meta_info)) {
meta_info = gst_meta_register (GST_SURFACE_META_API_TYPE, "GstSurfaceMeta", const GstMetaInfo *meta =
gst_meta_register (GST_SURFACE_META_API_TYPE, "GstSurfaceMeta",
sizeof (GstSurfaceMeta), sizeof (GstSurfaceMeta),
(GstMetaInitFunction) NULL, (GstMetaInitFunction) NULL,
(GstMetaFreeFunction) NULL, (GstMetaTransformFunction) NULL); (GstMetaFreeFunction) NULL, (GstMetaTransformFunction) NULL);
g_once_init_leave (&meta_info, meta);
} }
return meta_info; return meta_info;
} }

View File

@ -49,12 +49,13 @@ gst_core_media_meta_get_info (void)
{ {
static const GstMetaInfo *core_media_meta_info = NULL; static const GstMetaInfo *core_media_meta_info = NULL;
if (core_media_meta_info == NULL) { if (g_once_init_enter (&core_media_meta_info)) {
core_media_meta_info = gst_meta_register (GST_CORE_MEDIA_META_API_TYPE, const GstMetaInfo *meta = gst_meta_register (GST_CORE_MEDIA_META_API_TYPE,
"GstCoreMediaMeta", sizeof (GstCoreMediaMeta), "GstCoreMediaMeta", sizeof (GstCoreMediaMeta),
(GstMetaInitFunction) NULL, (GstMetaInitFunction) NULL,
(GstMetaFreeFunction) gst_core_media_meta_free, (GstMetaFreeFunction) gst_core_media_meta_free,
(GstMetaTransformFunction) NULL); (GstMetaTransformFunction) NULL);
g_once_init_leave (&core_media_meta_info, meta);
} }
return core_media_meta_info; return core_media_meta_info;
} }

View File

@ -51,12 +51,13 @@ gst_core_video_meta_get_info (void)
{ {
static const GstMetaInfo *core_video_meta_info = NULL; static const GstMetaInfo *core_video_meta_info = NULL;
if (core_video_meta_info == NULL) { if (g_once_init_enter (&core_video_meta_info)) {
core_video_meta_info = gst_meta_register (GST_CORE_VIDEO_META_API_TYPE, const GstMetaInfo *meta = gst_meta_register (GST_CORE_VIDEO_META_API_TYPE,
"GstCoreVideoMeta", sizeof (GstCoreVideoMeta), "GstCoreVideoMeta", sizeof (GstCoreVideoMeta),
(GstMetaInitFunction) NULL, (GstMetaInitFunction) NULL,
(GstMetaFreeFunction) gst_core_video_meta_free, (GstMetaFreeFunction) gst_core_video_meta_free,
(GstMetaTransformFunction) NULL); (GstMetaTransformFunction) NULL);
g_once_init_leave (&core_video_meta_info, meta);
} }
return core_video_meta_info; return core_video_meta_info;
} }

View File

@ -71,12 +71,13 @@ gst_pvr_meta_get_info (void)
{ {
static const GstMetaInfo *pvr_meta_info = NULL; static const GstMetaInfo *pvr_meta_info = NULL;
if (pvr_meta_info == NULL) { if (g_once_init_enter (&pvr_meta_info)) {
pvr_meta_info = gst_meta_register ("GstPVRMeta", "GstPVRMeta", const GstMetaInfo *meta = gst_meta_register ("GstPVRMeta", "GstPVRMeta",
sizeof (GstPVRMeta), sizeof (GstPVRMeta),
(GstMetaInitFunction) NULL, (GstMetaInitFunction) NULL,
(GstMetaFreeFunction) gst_pvr_meta_free, (GstMetaFreeFunction) gst_pvr_meta_free,
(GstMetaCopyFunction) NULL, (GstMetaTransformFunction) NULL); (GstMetaCopyFunction) NULL, (GstMetaTransformFunction) NULL);
g_once_init_leave (&pvr_meta_info, meta);
} }
return pvr_meta_info; return pvr_meta_info;