如何从gst_parse_launch返回的GstElement获取指向GstPipeline的指针?

时间:2015-02-05 23:52:33

标签: gstreamer

我正在移植一个python GStreamer 1.0示例(play-master.py - noraisin.net),从python到C,并且不了解如何获取指向管道的指针。在python绑定中,它似乎是抽象的,因此元素和管道可以互换使用。

...

GstElement* element = gst_parse_launch("playbin", &error);

gst_element_set_start_time(element, GST_CLOCK_TIME_NONE);

GstClock* clock = gst_element_get_clock(element);
gst_pipeline_use_clock( ???, clock);

...

因此,gst_pipeline_use_clock需要一个指向GstPipeline结构的指针,但是gst_parse_launch返回一个指向GstElement的指针,如果我理解正确的话,它有一个指针指向管道。我该如何访问它?

这是python中的相同代码:

Gst.init()

pipeline = Gst.parse_launch('playbin')

pipeline.set_start_time(Gst.CLOCK_TIME_NONE)

clock = pipeline.get_clock()
pipeline.use_clock(clock)

1 个答案:

答案 0 :(得分:2)

您使用GstElement*宏包裹GST_PIPELINE,例如:

GstPipeline *pipeline = GST_PIPELINE(gst_parse_launch("playbin", &error));

存在类似的宏以转换为其他元素类型。