公司开发了三个gstreamer插件,结果有一个能用,另外两个死活用不了(即gst_element_factory_make结果为空).去/usr/lib/x86_64-linux-gnu/gstreamer-1.0目录下看,插件文件也是存在的。这是怎么回事?
gst-inspect-1.0 …… …… …… 总数: 239 个插件 (2 个黑名单记录 not shown), 1326 个特性
黑名单?看看是谁:
gst-inspect-1.0 -b 文件黑名单: libgh1plugin.so libgh2plugin.so 总数: 2 个黑名单文件
果然是自己的插件。咱软件也没有什么鬼把戏,怎么就进了黑名单?怎样从黑名单中移出?查了半天没看到办法。自己试了一下,发现是插件加载失败导致的。怎样看错误?
# 删除缓存 rm .cache/gstreamer-1.0/registry.x86_64.bin # 通过这个方法,查看真正错误。 gst-inspect-1.0 GST_DEBUG=2,GST_PLUGIN_LOADING:5,GST_REGISTRY:5
根据错误解决即可。吾插件错误是什么?找不到加载库。于是在编译时,把库复制到同目录下,还是出错。怎么解决?
# 注意,如果插件依赖so,不要复制到插件目录下,而是这个目录: sudo cp libgh1lib.so /usr/lib/x86_64-linux-gnu/ sudo cp libgh2lib.so /usr/lib/x86_64-linux-gnu/