pad没有被添加到uridecodebin

时间:2015-08-18 12:36:45

标签: gstreamer

我目前正在开发一个以uridecodebin开头的gstreamer管道,它打开一个png文件,我希望最终链接到imagefreeze元素(尽管将来我可能想要将它链接到任意元素)。我已经连接到"pad-added"信号,但似乎uridecodebin实际上并没有创建打击垫。

仔细查看日志后,它似乎成功打开了png文件并将filesrc链接到decodebin,但似乎没有创建任何打击垫(回调是从来没有调用过,当我在打开文件后遍历src uridecodebin个焊盘时,没有调用。有谁知道为什么会这样?

不幸的是,它是更大代码库的一部分,因此我无法共享完整的代码,但我可以提供相关示例的摘录:

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");
}

0 个答案:

没有答案