我正在为gstreamer构建node.js包装器。我能够构建并提取大量信息和对象(例如版本,插件,功能,大写和元素工厂。)
但是,当我调用gst_element_factory_make或gst_element_factory_create时,我得到以下输出:
(<unknown>:27080): GLib-GObject-WARNING **: cannot register existing type `gchar'
**
GLib-GObject:ERROR:gvaluetypes.c:457:_g_value_types_init: assertion failed: (type == G_TYPE_CHAR)
Abort trap: 6
GTK window with Quartz [starting from an issue with GStreamer]的答案似乎表明可能存在某种版本冲突,但是我对C ++没有足够的经验并且让文件知道这是否是我的问题。下面是我的binding.gyp的libraries部分,它(通过实验)是构建,运行和获取版本所需的最少模块。
"/Library/Frameworks/Gstreamer.framework/Libraries/libgobject-2.0.a",
"/Library/Frameworks/Gstreamer.framework/Libraries/libgstreamer-0.10.a",
"/Library/Frameworks/Gstreamer.framework/Libraries/libffi.a",
"/Library/Frameworks/Gstreamer.framework/Libraries/libglib-2.0.a",
"/Library/Frameworks/Gstreamer.framework/Libraries/libgmodule-2.0.a",
"/Library/Frameworks/Gstreamer.framework/Libraries/libiconv.a",
"/Library/Frameworks/Gstreamer.framework/Libraries/libintl.a",
"/Library/Frameworks/Gstreamer.framework/Libraries/libxml2.a"
我创建了一个小型测试项目来说明我的问题。它位于http://s000.tinyupload.com/?file_id=00675589235220460725
的zip文件中答案 0 :(得分:1)
为此&#39; gchar&#39;很奇怪。您遇到此错误的一种情况是,如果您有一个过时的插件副本,那么您尝试两次注册插件GType。
我要做的就是将其作为:
运行G_DEBUG="fatal_warnings" gdb --args ./your-app
并从gdb类型&#39;运行&#39;一旦它终止&#39; bt&#39;得到回溯。如果这是来自插件注册,您可能需要查看gst调试日志(GST_DEBUG =&#34; *:6&#34;以查看是否找到任何插件两次。
答案 1 :(得分:0)
所以,我发现我安装了gstreamer 0.10,在更新到1.0之后,修复了次要代码差异,包括AppKit框架(我在OSX上)我终于能够解决这个问题。