static void gst_compare_init (GstCompare * comp, GstCompareClass * klass) { comp->cpads = gst_collect_pads_new (); gst_collect_pads_set_function (comp->cpads, (GstCollectPadsFunction) GST_DEBUG_FUNCPTR (gst_compare_collect_pads), comp); comp->sinkpad = gst_pad_new_from_static_template (&sink_factory, "sink"); gst_pad_set_getcaps_function (comp->sinkpad, gst_compare_getcaps); gst_element_add_pad (GST_ELEMENT (comp), comp->sinkpad); comp->checkpad = gst_pad_new_from_static_template (&check_sink_factory, "check"); gst_pad_set_getcaps_function (comp->checkpad, gst_compare_getcaps); gst_element_add_pad (GST_ELEMENT (comp), comp->checkpad); gst_collect_pads_add_pad_full (comp->cpads, comp->sinkpad, sizeof (GstCollectData), NULL); gst_collect_pads_add_pad_full (comp->cpads, comp->checkpad, sizeof (GstCollectData), NULL); comp->srcpad = gst_pad_new_from_static_template (&src_factory, "src"); gst_pad_set_getcaps_function (comp->srcpad, gst_compare_getcaps); gst_element_add_pad (GST_ELEMENT (comp), comp->srcpad); /* init properties */ comp->meta = DEFAULT_META; comp->offset_ts = DEFAULT_OFFSET_TS; comp->method = DEFAULT_METHOD; comp->threshold = DEFAULT_THRESHOLD; comp->upper = DEFAULT_UPPER; gst_compare_reset (comp); }
/** * gst_collect_pads_add_pad: * @pads: the collectspads to use * @pad: the pad to add * @size: the size of the returned #GstCollectData structure * * Add a pad to the collection of collect pads. The pad has to be * a sinkpad. The refcount of the pad is incremented. Use * gst_collect_pads_remove_pad() to remove the pad from the collection * again. * * This function will override the chain and event functions of the pad * along with the element_private data, which is used to store private * information for the collectpads. * * You specify a size for the returned #GstCollectData structure * so that you can use it to store additional information. * * The pad will be automatically activated in push mode when @pads is * started. * * This function calls gst_collect_pads_add_pad() passing a value of NULL * for destroy_notify. * * Returns: a new #GstCollectData to identify the new pad. Or NULL * if wrong parameters are supplied. * * MT safe. */ GstCollectData * gst_collect_pads_add_pad (GstCollectPads * pads, GstPad * pad, guint size) { return gst_collect_pads_add_pad_full (pads, pad, size, NULL); }