我将一个事件发送到管道:
GstElement* pipeline = gst_pipeline_new();
GstEvent* event = gst_event_new_eos();
gst_element_send_event(pipeline, event);
如何管道获取(处理)发送的 eos事件。非常感谢!
答案 0 :(得分:0)
您需要在GstBus(gst_pipeline_get_bus)上收听GstMessage。当流媒体到达终点时,会发出GST_MESSAGE_EOS。
答案 1 :(得分:0)
如果你只是编写一个应用程序,你不应该关心事件处理过程,因为插件或基本元素库将执行gst_pad_set_event_function()
操作,事件句柄函数将处理你发送的事件( GST_EVENT_EOS或其他)。
在GStreamer
源代码中,您可以看到发送到元素(管道)的事件将推送(通过调用gst_pad_push_event()
)到填充(src或接收器,具体取决于{{ 1}}的返回值),然后pad判断事件是否为其,如果不是,则将if发送给对等垫。
这对你有用吗?