meta registration: use g_once functions to register these threadsafely.

This commit is contained in:
Michael Smith 2012-10-03 10:44:59 -07:00
parent 17e3dc3357
commit a29c4f9489
5 changed files with 18 additions and 12 deletions

View file

@ -171,12 +171,13 @@ gst_audio_downmix_meta_get_info (void)
{ {
static const GstMetaInfo *audio_downmix_meta_info = NULL; static const GstMetaInfo *audio_downmix_meta_info = NULL;
if (audio_downmix_meta_info == NULL) { if (g_once_init_enter (&audio_downmix_meta_info)) {
audio_downmix_meta_info = const GstMetaInfo *meta =
gst_meta_register (GST_AUDIO_DOWNMIX_META_API_TYPE, gst_meta_register (GST_AUDIO_DOWNMIX_META_API_TYPE,
"GstAudioDownmixMeta", sizeof (GstAudioDownmixMeta), "GstAudioDownmixMeta", sizeof (GstAudioDownmixMeta),
gst_audio_downmix_meta_init, gst_audio_downmix_meta_free, gst_audio_downmix_meta_init, gst_audio_downmix_meta_free,
gst_audio_downmix_meta_transform); gst_audio_downmix_meta_transform);
g_once_init_leave (&audio_downmix_meta_info, meta);
} }
return audio_downmix_meta_info; return audio_downmix_meta_info;
} }

View file

@ -76,11 +76,12 @@ gst_video_meta_get_info (void)
{ {
static const GstMetaInfo *video_meta_info = NULL; static const GstMetaInfo *video_meta_info = NULL;
if (video_meta_info == NULL) { if (g_once_init_enter (&video_meta_info)) {
video_meta_info = const GstMetaInfo *meta =
gst_meta_register (GST_VIDEO_META_API_TYPE, "GstVideoMeta", gst_meta_register (GST_VIDEO_META_API_TYPE, "GstVideoMeta",
sizeof (GstVideoMeta), (GstMetaInitFunction) NULL, sizeof (GstVideoMeta), (GstMetaInitFunction) NULL,
(GstMetaFreeFunction) NULL, gst_video_meta_transform); (GstMetaFreeFunction) NULL, gst_video_meta_transform);
g_once_init_leave (&video_meta_info, meta);
} }
return video_meta_info; return video_meta_info;
} }
@ -349,11 +350,12 @@ gst_video_crop_meta_get_info (void)
{ {
static const GstMetaInfo *video_crop_meta_info = NULL; static const GstMetaInfo *video_crop_meta_info = NULL;
if (video_crop_meta_info == NULL) { if (g_once_init_enter (&video_crop_meta_info)) {
video_crop_meta_info = const GstMetaInfo *meta =
gst_meta_register (GST_VIDEO_CROP_META_API_TYPE, "GstVideoCropMeta", gst_meta_register (GST_VIDEO_CROP_META_API_TYPE, "GstVideoCropMeta",
sizeof (GstVideoCropMeta), (GstMetaInitFunction) NULL, sizeof (GstVideoCropMeta), (GstMetaInitFunction) NULL,
(GstMetaFreeFunction) NULL, gst_video_crop_meta_transform); (GstMetaFreeFunction) NULL, gst_video_crop_meta_transform);
g_once_init_leave (&video_crop_meta_info, meta);
} }
return video_crop_meta_info; return video_crop_meta_info;
} }

View file

@ -241,14 +241,15 @@ gst_video_overlay_composition_meta_get_info (void)
{ {
static const GstMetaInfo *video_overlay_composition_meta_info = NULL; static const GstMetaInfo *video_overlay_composition_meta_info = NULL;
if (video_overlay_composition_meta_info == NULL) { if (g_once_init_enter (&video_overlay_composition_meta_info)) {
video_overlay_composition_meta_info = const GstMetaInfo *meta =
gst_meta_register (GST_VIDEO_OVERLAY_COMPOSITION_META_API_TYPE, gst_meta_register (GST_VIDEO_OVERLAY_COMPOSITION_META_API_TYPE,
"GstVideoOverlayCompositionMeta", "GstVideoOverlayCompositionMeta",
sizeof (GstVideoOverlayCompositionMeta), (GstMetaInitFunction) NULL, sizeof (GstVideoOverlayCompositionMeta), (GstMetaInitFunction) NULL,
(GstMetaFreeFunction) gst_video_overlay_composition_meta_free, (GstMetaFreeFunction) gst_video_overlay_composition_meta_free,
(GstMetaTransformFunction) (GstMetaTransformFunction)
gst_video_overlay_composition_meta_transform); gst_video_overlay_composition_meta_transform);
g_once_init_leave (&video_overlay_composition_meta_info, meta);
} }
return video_overlay_composition_meta_info; return video_overlay_composition_meta_info;
} }

View file

@ -68,12 +68,13 @@ gst_ximage_meta_get_info (void)
{ {
static const GstMetaInfo *ximage_meta_info = NULL; static const GstMetaInfo *ximage_meta_info = NULL;
if (ximage_meta_info == NULL) { if (g_once_init_enter (&ximage_meta_info)) {
ximage_meta_info = const GstMetaInfo *meta =
gst_meta_register (GST_XIMAGE_META_API_TYPE, "GstXImageMeta", gst_meta_register (GST_XIMAGE_META_API_TYPE, "GstXImageMeta",
sizeof (GstXImageMeta), (GstMetaInitFunction) NULL, sizeof (GstXImageMeta), (GstMetaInitFunction) NULL,
(GstMetaFreeFunction) gst_ximage_meta_free, (GstMetaFreeFunction) gst_ximage_meta_free,
(GstMetaTransformFunction) NULL); (GstMetaTransformFunction) NULL);
g_once_init_leave (&ximage_meta_info, meta);
} }
return ximage_meta_info; return ximage_meta_info;
} }

View file

@ -71,12 +71,13 @@ gst_xvimage_meta_get_info (void)
{ {
static const GstMetaInfo *xvimage_meta_info = NULL; static const GstMetaInfo *xvimage_meta_info = NULL;
if (xvimage_meta_info == NULL) { if (g_once_init_enter (&xvimage_meta_info)) {
xvimage_meta_info = const GstMetaInfo *meta =
gst_meta_register (GST_XVIMAGE_META_API_TYPE, "GstXvImageMeta", gst_meta_register (GST_XVIMAGE_META_API_TYPE, "GstXvImageMeta",
sizeof (GstXvImageMeta), (GstMetaInitFunction) NULL, sizeof (GstXvImageMeta), (GstMetaInitFunction) NULL,
(GstMetaFreeFunction) gst_xvimage_meta_free, (GstMetaFreeFunction) gst_xvimage_meta_free,
(GstMetaTransformFunction) NULL); (GstMetaTransformFunction) NULL);
g_once_init_leave (&xvimage_meta_info, meta);
} }
return xvimage_meta_info; return xvimage_meta_info;
} }