做别人一样的网站,cms 做网站,触屏版网站开发样式,环保局 网站建设event 函数
event函数通知您数据流中发生的特殊事件(如大写、流结束、新段、标记等)。事件可以在上游和下游传播#xff0c;因此您可以在汇聚节点和源节点上接收它们。 下面是一个非常简单的事件函数#xff0c;我们将其安装在元素的接收器上。
static gboolean gst_my_fil…event 函数
event函数通知您数据流中发生的特殊事件(如大写、流结束、新段、标记等)。事件可以在上游和下游传播因此您可以在汇聚节点和源节点上接收它们。 下面是一个非常简单的事件函数我们将其安装在元素的接收器上。
static gboolean gst_my_filter_sink_event (GstPad *pad,GstObject *parent,GstEvent *event);[..]static void
gst_my_filter_init (GstMyFilter * filter)
{
[..]/* configure event function on the pad before adding* the pad to the element */gst_pad_set_event_function (filter-sinkpad,gst_my_filter_sink_event);
[..]
}static gboolean
gst_my_filter_sink_event (GstPad *pad,GstObject *parent,GstEvent *event)
{gboolean ret;GstMyFilter *filter GST_MY_FILTER (parent);switch (GST_EVENT_TYPE (event)) {case GST_EVENT_CAPS:/* we should handle the format here *//* push the event downstream */ret gst_pad_push_event (filter-srcpad, event);break;case GST_EVENT_EOS:/* end-of-stream, we should close down all stream leftovers here */gst_my_filter_stop_processing (filter);ret gst_pad_event_default (pad, parent, event);break;default:/* just call the default handler */ret gst_pad_event_default (pad, parent, event);break;}return ret;
}对于未知事件调用默认事件处理程序gst_pad_event_default()是个好主意。根据事件类型默认处理程序将转发事件或简单地取消它。CAPS事件在默认情况下是不转发的因此我们需要在事件处理程序中自己执行此操作。