Gstreamer 未将焊盘添加到存储库中
我目前正在开发一个gstreamer管道,该管道以打开png文件的Gstreamer 未将焊盘添加到存储库中,gstreamer,Gstreamer,我目前正在开发一个gstreamer管道,该管道以打开png文件的uridecodebin开始,我希望最终链接到imagefreeze元素(尽管将来我可能希望将其链接到任意元素)。我已连接到“pad added”信号,但似乎uridecodebin从未实际创建pad 仔细查看日志后,它似乎成功地打开了png文件并将filesrc链接到decodebin,但似乎没有创建任何pad(回调从未被调用,当我在文件打开后迭代uridecodebin的srcpad时,没有回调)。有人知道为什么会这样吗 不幸
uridecodebin
开始,我希望最终链接到imagefreeze
元素(尽管将来我可能希望将其链接到任意元素)。我已连接到“pad added”
信号,但似乎uridecodebin
从未实际创建pad
仔细查看日志后,它似乎成功地打开了png文件并将filesrc
链接到decodebin
,但似乎没有创建任何pad(回调从未被调用,当我在文件打开后迭代uridecodebin
的src
pad时,没有回调)。有人知道为什么会这样吗
不幸的是,它是一个更大的代码库的一部分,因此我无法分享完整的代码,但我可以提供相关示例的摘录:
GstElement *uridecodebin = gst_element_factory_make ("uridecodebin", NULL);
GstElement *imagefreeze = gst_element_factory_make ("imagefreeze", NULL);
GstElement *sink = gst_element_factory_make ("fakesink", NULL);
g_object_set (G_OBJECT (uridecodebin), "uri"
"file:///test.png", NULL);
g_signal_connect (uridecodebin, "pad-added",
G_CALLBACK (uri_pad_added_cb), NULL);
gst_bin_add_many (GST_BIN (bin), uridecodebin, imagefreeze, sink, NULL);
gst_element_link (imagefreeze, sink);
然后,回调(此时,只是一个存根):
static void
uri_pad_added_cb (GstElement * element, GstPad * pad, gpointer data)
{
GST_WARNING ("uri_pad_added_cb");
}