static void gst_mse_init (GstMSE * filter, GstMSEClass * klass) { gst_element_create_all_pads (GST_ELEMENT (filter)); filter->srcpad = gst_element_get_static_pad (GST_ELEMENT (filter), "src"); gst_pad_set_getcaps_function (filter->srcpad, gst_mse_getcaps); filter->sinkpad_ref = gst_element_get_static_pad (GST_ELEMENT (filter), "sink_ref"); gst_pad_set_chain_function (filter->sinkpad_ref, gst_mse_chain_ref); gst_pad_set_event_function (filter->sinkpad_ref, gst_mse_sink_event); gst_pad_set_getcaps_function (filter->sinkpad_ref, gst_mse_getcaps); filter->sinkpad_test = gst_element_get_static_pad (GST_ELEMENT (filter), "sink_test"); gst_pad_set_chain_function (filter->sinkpad_test, gst_mse_chain_test); gst_pad_set_event_function (filter->sinkpad_test, gst_mse_sink_event); gst_pad_set_getcaps_function (filter->sinkpad_test, gst_mse_getcaps); gst_pad_set_setcaps_function (filter->sinkpad_test, gst_mse_set_caps); gst_mse_reset (filter); filter->cond = g_cond_new (); filter->lock = g_mutex_new (); }
static void gst_frame_store_init (GstFrameStore * filter, GstFrameStoreClass * klass) { gst_element_create_all_pads (GST_ELEMENT(filter)); filter->srcpad = gst_element_get_pad (GST_ELEMENT(filter), "src"); gst_pad_set_link_function (filter->srcpad, gst_frame_store_link_src); gst_pad_set_getcaps_function (filter->srcpad, gst_frame_store_getcaps); filter->sinkpad = gst_element_get_pad (GST_ELEMENT(filter), "sink"); gst_pad_set_chain_function (filter->sinkpad, gst_frame_store_chain); gst_pad_set_event_function (filter->sinkpad, gst_frame_store_sink_event); gst_pad_set_getcaps_function (filter->sinkpad, gst_frame_store_getcaps); gst_frame_store_reset (filter); filter->range_offset = 0; filter->range_size = 10; filter->frames = g_malloc0(sizeof(GstBuffer*)*filter->range_size); filter->frame_number = 0; filter->pushed_frame_number = -1; filter->need_newsegment = TRUE; filter->cond = g_cond_new (); filter->lock = g_mutex_new (); filter->srcresult = GST_FLOW_WRONG_STATE; }