static void setup (void) { collect = gst_collect_pads_new (); gst_collect_pads_set_function (collect, collected_cb, NULL); srcpad1 = gst_pad_new_from_static_template (&srctemplate, "src1"); srcpad2 = gst_pad_new_from_static_template (&srctemplate, "src2"); sinkpad1 = gst_pad_new_from_static_template (&sinktemplate, "sink1"); sinkpad2 = gst_pad_new_from_static_template (&sinktemplate, "sink2"); fail_unless (gst_pad_link (srcpad1, sinkpad1) == GST_PAD_LINK_OK); fail_unless (gst_pad_link (srcpad2, sinkpad2) == GST_PAD_LINK_OK); cond = g_cond_new (); lock = g_mutex_new (); data1 = NULL; data2 = NULL; collected = FALSE; }
static void gst_multipart_mux_init (GstMultipartMux * multipart_mux) { GstElementClass *klass = GST_ELEMENT_GET_CLASS (multipart_mux); multipart_mux->srcpad = gst_pad_new_from_template (gst_element_class_get_pad_template (klass, "src"), "src"); gst_pad_set_event_function (multipart_mux->srcpad, gst_multipart_mux_handle_src_event); gst_element_add_pad (GST_ELEMENT (multipart_mux), multipart_mux->srcpad); multipart_mux->boundary = g_strdup (DEFAULT_BOUNDARY); multipart_mux->collect = gst_collect_pads_new (); gst_collect_pads_set_function (multipart_mux->collect, (GstCollectPadsFunction) GST_DEBUG_FUNCPTR (gst_multipart_mux_collected), multipart_mux); }
static void mpegpsmux_init (MpegPsMux * mux) { mux->srcpad = gst_pad_new_from_static_template (&mpegpsmux_src_factory, "src"); gst_pad_use_fixed_caps (mux->srcpad); gst_element_add_pad (GST_ELEMENT (mux), mux->srcpad); mux->collect = gst_collect_pads_new (); gst_collect_pads_set_function (mux->collect, (GstCollectPadsFunction) GST_DEBUG_FUNCPTR (mpegpsmux_collected), mux); mux->psmux = psmux_new (); psmux_set_write_func (mux->psmux, new_packet_cb, mux); mux->first = TRUE; mux->last_flow_ret = GST_FLOW_OK; mux->last_ts = 0; /* XXX: or -1? */ }
static void gst_smpte_init (GstSMPTE * smpte) { smpte->sinkpad1 = gst_pad_new_from_static_template (&gst_smpte_sink1_template, "sink1"); gst_pad_set_setcaps_function (smpte->sinkpad1, GST_DEBUG_FUNCPTR (gst_smpte_setcaps)); gst_pad_set_getcaps_function (smpte->sinkpad1, GST_DEBUG_FUNCPTR (gst_pad_proxy_getcaps)); gst_element_add_pad (GST_ELEMENT (smpte), smpte->sinkpad1); smpte->sinkpad2 = gst_pad_new_from_static_template (&gst_smpte_sink2_template, "sink2"); gst_pad_set_setcaps_function (smpte->sinkpad2, GST_DEBUG_FUNCPTR (gst_smpte_setcaps)); gst_pad_set_getcaps_function (smpte->sinkpad2, GST_DEBUG_FUNCPTR (gst_pad_proxy_getcaps)); gst_element_add_pad (GST_ELEMENT (smpte), smpte->sinkpad2); smpte->srcpad = gst_pad_new_from_static_template (&gst_smpte_src_template, "src"); gst_element_add_pad (GST_ELEMENT (smpte), smpte->srcpad); smpte->collect = gst_collect_pads_new (); gst_collect_pads_set_function (smpte->collect, (GstCollectPadsFunction) GST_DEBUG_FUNCPTR (gst_smpte_collected), smpte); gst_collect_pads_start (smpte->collect); gst_collect_pads_add_pad (smpte->collect, smpte->sinkpad1, sizeof (GstCollectData)); gst_collect_pads_add_pad (smpte->collect, smpte->sinkpad2, sizeof (GstCollectData)); smpte->fps = DEFAULT_PROP_FPS; smpte->type = DEFAULT_PROP_TYPE; smpte->border = DEFAULT_PROP_BORDER; smpte->depth = DEFAULT_PROP_DEPTH; smpte->duration = DEFAULT_PROP_DURATION; smpte->invert = DEFAULT_PROP_INVERT; smpte->fps_num = 0; smpte->fps_denom = 1; }
static void gst_interleave_init (GstInterleave * self) { self->src = gst_pad_new_from_static_template (&src_template, "src"); gst_pad_set_query_function (self->src, GST_DEBUG_FUNCPTR (gst_interleave_src_query)); gst_pad_set_event_function (self->src, GST_DEBUG_FUNCPTR (gst_interleave_src_event)); gst_element_add_pad (GST_ELEMENT (self), self->src); self->collect = gst_collect_pads_new (); gst_collect_pads_set_function (self->collect, (GstCollectPadsFunction) gst_interleave_collected, self); self->input_channel_positions = g_value_array_new (0); self->channel_positions_from_input = TRUE; self->channel_positions = self->input_channel_positions; }
static void gst_mxf_mux_init (GstMXFMux * mux) { GstCaps *caps; mux->srcpad = gst_pad_new_from_static_template (&src_templ, "src"); gst_pad_set_event_function (mux->srcpad, gst_mxf_mux_handle_src_event); caps = gst_caps_new_empty_simple ("application/mxf"); gst_pad_set_caps (mux->srcpad, caps); gst_caps_unref (caps); gst_element_add_pad (GST_ELEMENT (mux), mux->srcpad); mux->collect = gst_collect_pads_new (); gst_collect_pads_set_event_function (mux->collect, GST_DEBUG_FUNCPTR (gst_mxf_mux_handle_sink_event), mux); gst_collect_pads_set_function (mux->collect, GST_DEBUG_FUNCPTR (gst_mxf_mux_collected), mux); gst_mxf_mux_reset (mux); }
static void gst_tidmai_base_video_dualencoder_init (GstTIDmaiBaseVideoDualEncoder * video_dualencoder, GstTIDmaiBaseVideoDualEncoderClass * video_dualencoder_class) { GST_DEBUG_OBJECT (video_dualencoder, "Entry _init video dualencoder"); GstTIDmaiBaseDualEncoder *base_dualencoder = GST_TI_DMAI_BASE_DUALENCODER(video_dualencoder); /* Set the function that is call when all the pads have buffer */ gst_collect_pads_set_function (base_dualencoder->collect_sink_pads, (GstCollectPadsFunction) GST_DEBUG_FUNCPTR (gst_tidmai_base_video_dualencoder_entry_buffers_collected), video_dualencoder); /* Init the mutex for the set_caps */ #ifdef GLIB_2_31_AND_UP g_mutex_init(&video_dualencoder->set_caps_mutex); #else video_dualencoder->set_caps_mutex = g_mutex_new(); #endif GST_DEBUG_OBJECT (video_dualencoder, "Leave _init video dualencoder"); }
static void mpegtsmux_init (MpegTsMux * mux, MpegTsMuxClass * g_class) { mux->srcpad = gst_pad_new_from_template (gst_static_pad_template_get (&mpegtsmux_src_factory), "src"); gst_pad_use_fixed_caps (mux->srcpad); gst_element_add_pad (GST_ELEMENT (mux), mux->srcpad); mux->collect = gst_collect_pads_new (); gst_collect_pads_set_function (mux->collect, (GstCollectPadsFunction) GST_DEBUG_FUNCPTR (mpegtsmux_collected), mux); mux->tsmux = tsmux_new (); tsmux_set_write_func (mux->tsmux, new_packet_cb, mux); mux->program = tsmux_program_new (mux->tsmux); mux->first = TRUE; mux->last_flow_ret = GST_FLOW_OK; mux->adapter = gst_adapter_new (); mux->m2ts_mode = FALSE; mux->first_pcr = TRUE; mux->last_ts = 0; }
static void gst_ffmpegmux_init (GstFFMpegMux * ffmpegmux, GstFFMpegMuxClass * g_class) { GstElementClass *klass = GST_ELEMENT_CLASS (g_class); GstFFMpegMuxClass *oclass = (GstFFMpegMuxClass *) klass; GstPadTemplate *templ = gst_element_class_get_pad_template (klass, "src"); ffmpegmux->srcpad = gst_pad_new_from_template (templ, "src"); gst_pad_set_caps (ffmpegmux->srcpad, gst_pad_template_get_caps (templ)); gst_element_add_pad (GST_ELEMENT (ffmpegmux), ffmpegmux->srcpad); ffmpegmux->collect = gst_collect_pads_new (); gst_collect_pads_set_function (ffmpegmux->collect, (GstCollectPadsFunction) gst_ffmpegmux_collected, ffmpegmux); ffmpegmux->context = avformat_alloc_context (); ffmpegmux->context->oformat = oclass->in_plugin; ffmpegmux->context->nb_streams = 0; ffmpegmux->opened = FALSE; ffmpegmux->videopads = 0; ffmpegmux->audiopads = 0; ffmpegmux->max_delay = 0; }
static void gst_frei0r_mixer_init (GstFrei0rMixer * self, GstFrei0rMixerClass * klass) { self->property_cache = gst_frei0r_property_cache_init (klass->properties, klass->n_properties); self->collect = gst_collect_pads_new (); gst_collect_pads_set_function (self->collect, (GstCollectPadsFunction) gst_frei0r_mixer_collected, self); self->src = gst_pad_new_from_template (gst_element_class_get_pad_template (GST_ELEMENT_CLASS (klass), "src"), "src"); gst_pad_set_getcaps_function (self->src, GST_DEBUG_FUNCPTR (gst_frei0r_mixer_get_caps)); gst_pad_set_setcaps_function (self->src, GST_DEBUG_FUNCPTR (gst_frei0r_mixer_set_caps)); gst_pad_set_query_function (self->src, GST_DEBUG_FUNCPTR (gst_frei0r_mixer_src_query)); gst_pad_set_event_function (self->src, GST_DEBUG_FUNCPTR (gst_frei0r_mixer_src_event)); gst_element_add_pad (GST_ELEMENT_CAST (self), self->src); self->sink0 = gst_pad_new_from_template (gst_element_class_get_pad_template (GST_ELEMENT_CLASS (klass), "sink_0"), "sink_0"); gst_pad_set_getcaps_function (self->sink0, GST_DEBUG_FUNCPTR (gst_frei0r_mixer_get_caps)); gst_pad_set_setcaps_function (self->sink0, GST_DEBUG_FUNCPTR (gst_frei0r_mixer_set_caps)); gst_pad_set_query_function (self->sink0, GST_DEBUG_FUNCPTR (gst_frei0r_mixer_sink_query)); gst_collect_pads_add_pad (self->collect, self->sink0, sizeof (GstCollectData)); self->collect_event = (GstPadEventFunction) GST_PAD_EVENTFUNC (self->sink0); gst_pad_set_event_function (self->sink0, GST_DEBUG_FUNCPTR (gst_frei0r_mixer_sink0_event)); gst_element_add_pad (GST_ELEMENT_CAST (self), self->sink0); self->sink1 = gst_pad_new_from_template (gst_element_class_get_pad_template (GST_ELEMENT_CLASS (klass), "sink_1"), "sink_1"); gst_pad_set_getcaps_function (self->sink1, GST_DEBUG_FUNCPTR (gst_frei0r_mixer_get_caps)); gst_pad_set_setcaps_function (self->sink1, GST_DEBUG_FUNCPTR (gst_frei0r_mixer_set_caps)); gst_pad_set_query_function (self->sink0, GST_DEBUG_FUNCPTR (gst_frei0r_mixer_sink_query)); gst_collect_pads_add_pad (self->collect, self->sink1, sizeof (GstCollectData)); gst_element_add_pad (GST_ELEMENT_CAST (self), self->sink1); if (klass->info->plugin_type == F0R_PLUGIN_TYPE_MIXER3) { self->sink2 = gst_pad_new_from_template (gst_element_class_get_pad_template (GST_ELEMENT_CLASS (klass), "sink_2"), "sink_2"); gst_pad_set_getcaps_function (self->sink2, GST_DEBUG_FUNCPTR (gst_frei0r_mixer_get_caps)); gst_pad_set_setcaps_function (self->sink2, GST_DEBUG_FUNCPTR (gst_frei0r_mixer_set_caps)); gst_pad_set_query_function (self->sink0, GST_DEBUG_FUNCPTR (gst_frei0r_mixer_sink_query)); gst_collect_pads_add_pad (self->collect, self->sink2, sizeof (GstCollectData)); gst_element_add_pad (GST_ELEMENT_CAST (self), self->sink2); } }