我正在创建一个使用playbin2来创建管道的玩家。 在我的代码中,我使用以下行来创建管道。
pipeline = gst_parse_launch("playbin2", &error);
因此将创建管道并且播放器正在工作。现在我想改变创建的管道。在Gstreamer中是否有任何api有助于查看和编辑使用playbin2创建的管道?
此外,我希望打印使用gst_parse_launch
创建的管道。如何使用GstElement
返回的gst_parse_launch
打印管道?
答案 0 :(得分:1)
我认为不可能改变playbin创建的管道,它有内部代码来自动管理这个管道,手动修改它会导致意外的结果。但是,您可以使用给定的属性和信号更新它。
您可以使用gst_bin_iterate_elements
或gst_bin_iterate_recurse
来迭代管道元素以打印它们。也可以使用http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstInfo.html#GST-DEBUG-BIN-TO-DOT-FILE:CAPS创建.dot文件。点文件是管道的图形表示,可以使用点应用程序转换为图像。通过这种方式,您可以将完整的管道绘制成易于理解的图像。
很难给你进一步的建议,因为我不知道你想通过改变playbin2的管道做什么,你可以尝试查看较低级别的元素,如uridecodebin或decodebin2,并查看自动插拔信号来控制这些元素自动添加的内容。 IIRC也可以从playbin2的级别完成。
看来你还在使用gstreamer 0.10,它已经不再开发了。如果您没有理由坚持0.10,请转到1.0