C++ GStreamer gst\u元件\u工厂\u制造失败
我正在试用GStreamer测试应用程序,但在运行时,以下代码行失败:C++ GStreamer gst\u元件\u工厂\u制造失败,c++,c,gstreamer,C++,C,Gstreamer,我正在试用GStreamer测试应用程序,但在运行时,以下代码行失败: demuxer = gst_element_factory_make ("oggdemux", "ogg-demuxer"); // returns NULL 我正在使用MacOSX,并通过MacPorts安装了GStreamer、libogg和vorbis工具。所以我不明白为什么它会失败 有没有关于如何让它工作的建议 编辑:已解决 问题是我需要从gst插件良好的软件包中安装autodetect插件 以下是使其工作的操作列
demuxer = gst_element_factory_make ("oggdemux", "ogg-demuxer"); // returns NULL
我正在使用MacOSX,并通过MacPorts安装了GStreamer、libogg和vorbis工具。所以我不明白为什么它会失败
有没有关于如何让它工作的建议
编辑:已解决强>
问题是我需要从gst插件良好的软件包中安装autodetect插件
以下是使其工作的操作列表:
删除MacPorts安装:
sudo端口卸载gstreamer
将以下行添加到~/.profile
export PKG_CONFIG_PATH=/opt/local/lib/pkgconfig:/usr/local/lib/pkgconfig:/usr/lib/pkgconfig
下载gstreamer、gstreamer插件库和gstreamer插件的好源码
构建和安装gstreamer(./configure,make,make-install)
构建并安装gstreamer插件库(./configure,make,make-install)
对于gstreamer插件,我只构建了autodetect包,因为构建所有插件都会导致一些我现在不需要或不关心的插件出错。我是这样做的:
./configure
cd gst/autodetect/
make
sudo make install
现在,该程序构建并运行。然而,我似乎没有得到任何音频输出:(但这是另一个问题。读取
gstelementfactory.c
(GStreamer版本0.10.25)第463行(gst\u元素\u工厂制作
函数定义),有三个错误导致NULL
返回:
NULL
(在代码中显然是OK)gst\u element\u factory\u find
返回NULL
)gst\u element\u Factory\u create
返回NULL
)gst-inspect oggdemux
如果这没有返回结果,请尝试使用
gst register
进行注册。如果您使用的是ubuntu系统,只需执行以下操作
sudo apt get安装gstreamer1.0-*
这将解决问题。是否尝试将
NULL
作为第二个参数传递(该参数将为您生成唯一的名称)?@Matthew Murdoch:刚刚试过,但函数仍然返回NULL…gst inspect oggdemux=>没有这样的元素或插件“oggdemux”。我如何安装这个插件?在文档中我可以找到现有插件的概述,但我没有找到任何关于如何获取它们的说明…好吧,我想我知道发生了什么。MacPorts可能没有安装ogg支持。