update for metadata API changes
authorWim Taymans <wim.taymans@collabora.co.uk>
Wed, 29 Feb 2012 16:26:28 +0000 (17:26 +0100)
committerWim Taymans <wim.taymans@collabora.co.uk>
Wed, 29 Feb 2012 16:26:28 +0000 (17:26 +0100)
gst-libs/gst/video/gstbasevideodecoder.c
gst-libs/gst/video/gstsurfacemeta.c
gst-libs/gst/video/gstsurfacemeta.h

index b1ae65bae669f3f4936657e6549ba9ab1889c0c9..cf90c3cbfcd1f6ea2d3342e5ae9f7b5bc32a0c09 100644 (file)
@@ -2075,7 +2075,7 @@ gst_base_video_decoder_set_src_caps (GstBaseVideoDecoder * base_video_decoder)
 
   /* check if downstream supports cropping */
   base_video_decoder->use_cropping =
-      gst_query_has_allocation_meta (query, GST_VIDEO_CROP_META_API);
+      gst_query_has_allocation_meta (query, GST_VIDEO_CROP_META_API_TYPE);
 
   gst_buffer_pool_set_config (pool, config);
   /* and activate */
index 9aee7b69c0a222191453a23d3267ea1c373ecf96..0e22d0e3bcf23fbe88a7a10945c9753c9e9ebdc7 100644 (file)
  * </note>
  */
 
+GType
+gst_surface_meta_api_get_type (void)
+{
+  static volatile GType type;
+  static const gchar *tags[] = { "memory", NULL };
+
+  if (g_once_init_enter (&type)) {
+    GType _type = gst_meta_api_type_register ("GstSurfaceMetaAPI", tags);
+    g_once_init_leave (&type, _type);
+  }
+  return type;
+}
 
 const GstMetaInfo *
 gst_surface_meta_get_info (void)
 {
   static const GstMetaInfo *meta_info = NULL;
-  static const gchar *tags[] = { "memory" };
 
   if (meta_info == NULL) {
-    meta_info = gst_meta_register ("GstSurfaceMeta", "GstSurfaceMeta",
+    meta_info = gst_meta_register (GST_SURFACE_META_API_TYPE, "GstSurfaceMeta",
         sizeof (GstSurfaceMeta),
         (GstMetaInitFunction) NULL,
-        (GstMetaFreeFunction) NULL, (GstMetaTransformFunction) NULL, tags);
+        (GstMetaFreeFunction) NULL, (GstMetaTransformFunction) NULL);
   }
   return meta_info;
 }
index 8ff26cdfbc143f93978ac868e5c4399e7e196dfb..7ad5c6267ba10068aae3ceb90084cf39c4997021 100644 (file)
@@ -48,11 +48,14 @@ struct _GstSurfaceMeta {
                                              GValue *dest);
 };
 
+GType gst_surface_meta_api_get_type (void);
+#define GST_SURFACE_META_API_TYPE (gst_surface_meta_api_get_type())
+
 const GstMetaInfo *gst_surface_meta_get_info (void);
 #define GST_SURFACE_META_INFO (gst_surface_meta_get_info())
 
 #define gst_buffer_get_surface_meta(b) \
-  ((GstSurfaceMeta*)gst_buffer_get_meta((b),GST_SURFACE_META_INFO))
+  ((GstSurfaceMeta*)gst_buffer_get_meta((b),GST_SURFACE_META_API_TYPE))
 #define gst_buffer_add_surface_meta(b) \
   ((GstSurfaceMeta*)gst_buffer_add_meta((b),GST_SURFACE_META_INFO,NULL))