libs: dmabuf: init the GST_CAT_DEFAULT in type define.
authorHe Junyan <junyan.he@hotmail.com>
Fri, 14 Feb 2020 17:19:29 +0000 (01:19 +0800)
committerHe Junyan <junyan.he@hotmail.com>
Sat, 15 Feb 2020 03:42:15 +0000 (11:42 +0800)
To avoid `gst_debug_log_valist: assertion 'category != NULL' failed`
if we do not call gst_dmabuf_allocator_new

gst-libs/gst/allocators/gstdmabuf.c

index fbe5ec3..3f4eaa9 100644 (file)
 GST_DEBUG_CATEGORY_STATIC (dmabuf_debug);
 #define GST_CAT_DEFAULT dmabuf_debug
 
-G_DEFINE_TYPE (GstDmaBufAllocator, gst_dmabuf_allocator, GST_TYPE_FD_ALLOCATOR);
+#define _do_init                                        \
+    GST_DEBUG_CATEGORY_INIT (dmabuf_debug,              \
+    "dmabuf", 0, "dmabuf memory");
+
+G_DEFINE_TYPE_WITH_CODE (GstDmaBufAllocator, gst_dmabuf_allocator,
+    GST_TYPE_FD_ALLOCATOR, _do_init);
 
 static gpointer
 gst_dmabuf_mem_map (GstMemory * gmem, GstMapInfo * info, gsize maxsize)
@@ -127,8 +132,6 @@ gst_dmabuf_allocator_new (void)
 {
   GstAllocator *alloc;
 
-  GST_DEBUG_CATEGORY_INIT (dmabuf_debug, "dmabuf", 0, "dmabuf memory");
-
   alloc = g_object_new (GST_TYPE_DMABUF_ALLOCATOR, NULL);
   gst_object_ref_sink (alloc);