我正在移植一个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)
答案 0 :(得分:2)
您使用GstElement*
宏包裹GST_PIPELINE
,例如:
GstPipeline *pipeline = GST_PIPELINE(gst_parse_launch("playbin", &error));
存在类似的宏以转换为其他元素类型。