static void gst_speex_dec_init (GstSpeexDec * dec, GstSpeexDecClass * g_class) { dec->sinkpad = gst_pad_new_from_static_template (&speex_dec_sink_factory, "sink"); gst_pad_set_chain_function (dec->sinkpad, GST_DEBUG_FUNCPTR (speex_dec_chain)); gst_pad_set_event_function (dec->sinkpad, GST_DEBUG_FUNCPTR (speex_dec_sink_event)); gst_pad_set_query_type_function (dec->sinkpad, GST_DEBUG_FUNCPTR (speex_get_sink_query_types)); gst_pad_set_query_function (dec->sinkpad, GST_DEBUG_FUNCPTR (speex_dec_sink_query)); gst_element_add_pad (GST_ELEMENT (dec), dec->sinkpad); dec->srcpad = gst_pad_new_from_static_template (&speex_dec_src_factory, "src"); gst_pad_use_fixed_caps (dec->srcpad); gst_pad_set_event_function (dec->srcpad, GST_DEBUG_FUNCPTR (speex_dec_src_event)); gst_pad_set_query_type_function (dec->srcpad, GST_DEBUG_FUNCPTR (speex_get_src_query_types)); gst_pad_set_query_function (dec->srcpad, GST_DEBUG_FUNCPTR (speex_dec_src_query)); gst_element_add_pad (GST_ELEMENT (dec), dec->srcpad); dec->enh = DEFAULT_ENH; gst_speex_dec_reset (dec); }
static void gst_jp2k_decimator_init (GstJP2kDecimator * self, GstJP2kDecimatorClass * g_class) { self->max_layers = DEFAULT_MAX_LAYERS; self->max_decomposition_levels = DEFAULT_MAX_DECOMPOSITION_LEVELS; self->sinkpad = gst_pad_new_from_static_template (&sink_pad_template, "sink"); gst_pad_set_chain_function (self->sinkpad, GST_DEBUG_FUNCPTR (gst_jp2k_decimator_sink_chain)); gst_pad_set_event_function (self->sinkpad, GST_DEBUG_FUNCPTR (gst_jp2k_decimator_event)); gst_pad_set_setcaps_function (self->sinkpad, GST_DEBUG_FUNCPTR (gst_jp2k_decimator_sink_setcaps)); gst_pad_set_getcaps_function (self->sinkpad, GST_DEBUG_FUNCPTR (gst_jp2k_decimator_getcaps)); gst_pad_set_query_function (self->sinkpad, GST_DEBUG_FUNCPTR (gst_jp2k_decimator_query)); gst_pad_set_query_type_function (self->sinkpad, GST_DEBUG_FUNCPTR (gst_jp2k_decimator_query_type)); gst_element_add_pad (GST_ELEMENT (self), self->sinkpad); self->srcpad = gst_pad_new_from_static_template (&src_pad_template, "src"); gst_pad_set_event_function (self->srcpad, GST_DEBUG_FUNCPTR (gst_jp2k_decimator_event)); gst_pad_set_getcaps_function (self->srcpad, GST_DEBUG_FUNCPTR (gst_jp2k_decimator_getcaps)); gst_pad_set_query_function (self->srcpad, GST_DEBUG_FUNCPTR (gst_jp2k_decimator_query)); gst_pad_set_query_type_function (self->srcpad, GST_DEBUG_FUNCPTR (gst_jp2k_decimator_query_type)); gst_element_add_pad (GST_ELEMENT (self), self->srcpad); }
static void gst_opus_dec_init (GstOpusDec * dec, GstOpusDecClass * g_class) { dec->sinkpad = gst_pad_new_from_static_template (&opus_dec_sink_factory, "sink"); gst_pad_set_chain_function (dec->sinkpad, GST_DEBUG_FUNCPTR (opus_dec_chain)); gst_pad_set_event_function (dec->sinkpad, GST_DEBUG_FUNCPTR (opus_dec_sink_event)); gst_pad_set_query_type_function (dec->sinkpad, GST_DEBUG_FUNCPTR (opus_get_sink_query_types)); gst_pad_set_query_function (dec->sinkpad, GST_DEBUG_FUNCPTR (opus_dec_sink_query)); gst_pad_set_setcaps_function (dec->sinkpad, GST_DEBUG_FUNCPTR (opus_dec_sink_setcaps)); gst_element_add_pad (GST_ELEMENT (dec), dec->sinkpad); dec->srcpad = gst_pad_new_from_static_template (&opus_dec_src_factory, "src"); gst_pad_use_fixed_caps (dec->srcpad); gst_pad_set_event_function (dec->srcpad, GST_DEBUG_FUNCPTR (opus_dec_src_event)); gst_pad_set_query_type_function (dec->srcpad, GST_DEBUG_FUNCPTR (opus_get_src_query_types)); gst_pad_set_query_function (dec->srcpad, GST_DEBUG_FUNCPTR (opus_dec_src_query)); gst_element_add_pad (GST_ELEMENT (dec), dec->srcpad); dec->sample_rate = 48000; dec->n_channels = 2; gst_opus_dec_reset (dec); }
static void gst_swfdec_init (GstSwfdec * swfdec) { /* create the sink and src pads */ swfdec->sinkpad = gst_pad_new_from_static_template (&sink_template_factory, "sink"); gst_element_add_pad (GST_ELEMENT (swfdec), swfdec->sinkpad); gst_pad_set_chain_function (swfdec->sinkpad, gst_swfdec_chain); gst_pad_set_event_function (swfdec->sinkpad, gst_swfdec_sink_event); swfdec->videopad = gst_pad_new_from_static_template (&video_template_factory, "video_00"); gst_pad_set_query_function (swfdec->videopad, gst_swfdec_src_query); gst_pad_set_getcaps_function (swfdec->videopad, gst_swfdec_video_getcaps); gst_pad_set_setcaps_function (swfdec->videopad, gst_swfdec_video_link); gst_pad_set_event_function (swfdec->videopad, gst_swfdec_src_event); gst_pad_set_query_type_function (swfdec->videopad, gst_swfdec_get_query_types); gst_element_add_pad (GST_ELEMENT (swfdec), swfdec->videopad); swfdec->audiopad = gst_pad_new_from_static_template (&audio_template_factory, "audio_00"); gst_pad_set_query_function (swfdec->audiopad, gst_swfdec_src_query); gst_pad_set_event_function (swfdec->audiopad, gst_swfdec_src_event); gst_pad_set_query_type_function (swfdec->audiopad, gst_swfdec_get_query_types); gst_element_add_pad (GST_ELEMENT (swfdec), swfdec->audiopad); /* initialize the swfdec decoder state */ swfdec->decoder = swfdec_decoder_new (); g_return_if_fail (swfdec->decoder != NULL); swfdec_decoder_set_colorspace (swfdec->decoder, SWF_COLORSPACE_RGB888); swfdec->frame_rate_n = 0; swfdec->frame_rate_d = 1; swfdec->x = -1; swfdec->y = -1; swfdec->skip_frames = 2; swfdec->skip_index = 0; swfdec->adapter = gst_adapter_new (); swfdec->task = gst_task_create ((GstTaskFunction) gst_swfdec_loop, swfdec); g_static_rec_mutex_init (&swfdec->mutex); gst_task_set_lock (swfdec->task, &swfdec->mutex); }
static void gst_theora_dec_init (GstTheoraDec * dec, GstTheoraDecClass * g_class) { dec->sinkpad = gst_pad_new_from_static_template (&theora_dec_sink_factory, "sink"); gst_pad_set_event_function (dec->sinkpad, theora_dec_sink_event); gst_pad_set_setcaps_function (dec->sinkpad, theora_dec_setcaps); gst_pad_set_chain_function (dec->sinkpad, theora_dec_chain); gst_element_add_pad (GST_ELEMENT (dec), dec->sinkpad); dec->srcpad = gst_pad_new_from_static_template (&theora_dec_src_factory, "src"); gst_pad_set_event_function (dec->srcpad, theora_dec_src_event); gst_pad_set_query_type_function (dec->srcpad, theora_get_query_types); gst_pad_set_query_function (dec->srcpad, theora_dec_src_query); gst_pad_use_fixed_caps (dec->srcpad); gst_element_add_pad (GST_ELEMENT (dec), dec->srcpad); dec->crop = THEORA_DEF_CROP; dec->telemetry_mv = THEORA_DEF_TELEMETRY_MV; dec->telemetry_mbmode = THEORA_DEF_TELEMETRY_MBMODE; dec->telemetry_qi = THEORA_DEF_TELEMETRY_QI; dec->telemetry_bits = THEORA_DEF_TELEMETRY_BITS; dec->gather = NULL; dec->decode = NULL; dec->queued = NULL; dec->pendingevents = NULL; }
static void gst_vorbis_dec_init (GstVorbisDec * dec, GstVorbisDecClass * g_class) { dec->sinkpad = gst_pad_new_from_static_template (&vorbis_dec_sink_factory, "sink"); gst_pad_set_event_function (dec->sinkpad, GST_DEBUG_FUNCPTR (vorbis_dec_sink_event)); gst_pad_set_chain_function (dec->sinkpad, GST_DEBUG_FUNCPTR (vorbis_dec_chain)); gst_pad_set_query_function (dec->sinkpad, GST_DEBUG_FUNCPTR (vorbis_dec_sink_query)); gst_element_add_pad (GST_ELEMENT (dec), dec->sinkpad); dec->srcpad = gst_pad_new_from_static_template (&vorbis_dec_src_factory, "src"); gst_pad_set_event_function (dec->srcpad, GST_DEBUG_FUNCPTR (vorbis_dec_src_event)); gst_pad_set_query_type_function (dec->srcpad, GST_DEBUG_FUNCPTR (vorbis_get_query_types)); gst_pad_set_query_function (dec->srcpad, GST_DEBUG_FUNCPTR (vorbis_dec_src_query)); gst_pad_use_fixed_caps (dec->srcpad); gst_element_add_pad (GST_ELEMENT (dec), dec->srcpad); dec->queued = NULL; dec->pendingevents = NULL; dec->taglist = NULL; }
static void gst_aiff_parse_init (GstAiffParse * aiffparse, GstAiffParseClass * g_class) { gst_aiff_parse_reset (aiffparse); /* sink */ aiffparse->sinkpad = gst_pad_new_from_static_template (&sink_template_factory, "sink"); gst_pad_set_activate_function (aiffparse->sinkpad, GST_DEBUG_FUNCPTR (gst_aiff_parse_sink_activate)); gst_pad_set_activatepull_function (aiffparse->sinkpad, GST_DEBUG_FUNCPTR (gst_aiff_parse_sink_activate_pull)); gst_pad_set_chain_function (aiffparse->sinkpad, GST_DEBUG_FUNCPTR (gst_aiff_parse_chain)); gst_element_add_pad (GST_ELEMENT_CAST (aiffparse), aiffparse->sinkpad); /* source */ aiffparse->srcpad = gst_pad_new_from_static_template (&src_template_factory, "src"); gst_pad_use_fixed_caps (aiffparse->srcpad); gst_pad_set_query_type_function (aiffparse->srcpad, GST_DEBUG_FUNCPTR (gst_aiff_parse_get_query_types)); gst_pad_set_query_function (aiffparse->srcpad, GST_DEBUG_FUNCPTR (gst_aiff_parse_pad_query)); gst_pad_set_event_function (aiffparse->srcpad, GST_DEBUG_FUNCPTR (gst_aiff_parse_srcpad_event)); gst_element_add_pad (GST_ELEMENT_CAST (aiffparse), aiffparse->srcpad); }
static void xing_mp3_encoder_init (XingMp3Encoder *encoder) { // Sink pad encoder->sinkpad = gst_pad_new_from_template(xing_mp3_encoder_sink_template, "sink"); gst_pad_set_chain_function(encoder->sinkpad, xing_mp3_encoder_chain); gst_pad_set_setcaps_function(encoder->sinkpad, xing_mp3_encoder_sink_setcaps); gst_pad_set_query_function(encoder->sinkpad, GST_DEBUG_FUNCPTR(xing_mp3_encoder_sink_query)); gst_element_add_pad(GST_ELEMENT(encoder), encoder->sinkpad); // Source pad encoder->srcpad = gst_pad_new_from_template(xing_mp3_encoder_src_template, "src"); gst_pad_set_query_function(encoder->srcpad, GST_DEBUG_FUNCPTR(xing_mp3_encoder_src_query)); gst_pad_set_query_type_function(encoder->srcpad, GST_DEBUG_FUNCPTR(xing_mp3_encoder_get_query_types)); gst_element_add_pad(GST_ELEMENT(encoder), encoder->srcpad); encoder->channels = -1; encoder->frequency = -1; encoder->use_cbr = FALSE; encoder->cbr_bitrate = BITRATE_DEFAULT; encoder->last_message = NULL; encoder->is_initialized = FALSE; encoder->at_end_of_stream = FALSE; encoder->header_sent = FALSE; }
static void gst_proxy_pad_init (GstProxyPad * ppad) { GstPad *pad = (GstPad *) ppad; GST_PROXY_PAD_PRIVATE (ppad) = G_TYPE_INSTANCE_GET_PRIVATE (ppad, GST_TYPE_PROXY_PAD, GstProxyPadPrivate); GST_PROXY_GET_LOCK (pad) = g_mutex_new (); gst_pad_set_query_type_function (pad, GST_DEBUG_FUNCPTR (gst_proxy_pad_do_query_type)); gst_pad_set_event_function (pad, GST_DEBUG_FUNCPTR (gst_proxy_pad_do_event)); gst_pad_set_query_function (pad, GST_DEBUG_FUNCPTR (gst_proxy_pad_do_query)); gst_pad_set_internal_link_function (pad, GST_DEBUG_FUNCPTR (gst_proxy_pad_do_internal_link)); gst_pad_set_iterate_internal_links_function (pad, GST_DEBUG_FUNCPTR (gst_proxy_pad_do_iterate_internal_links)); gst_pad_set_getcaps_function (pad, GST_DEBUG_FUNCPTR (gst_proxy_pad_do_getcaps)); gst_pad_set_acceptcaps_function (pad, GST_DEBUG_FUNCPTR (gst_proxy_pad_do_acceptcaps)); gst_pad_set_fixatecaps_function (pad, GST_DEBUG_FUNCPTR (gst_proxy_pad_do_fixatecaps)); gst_pad_set_setcaps_function (pad, GST_DEBUG_FUNCPTR (gst_proxy_pad_do_setcaps)); }
static void gst_base_video_encoder_init (GstBaseVideoEncoder * base_video_encoder, GstBaseVideoEncoderClass * klass) { GstPad *pad; GST_DEBUG_OBJECT (base_video_encoder, "gst_base_video_encoder_init"); pad = GST_BASE_VIDEO_CODEC_SINK_PAD (base_video_encoder); gst_pad_set_chain_function (pad, GST_DEBUG_FUNCPTR (gst_base_video_encoder_chain)); gst_pad_set_event_function (pad, GST_DEBUG_FUNCPTR (gst_base_video_encoder_sink_event)); gst_pad_set_setcaps_function (pad, GST_DEBUG_FUNCPTR (gst_base_video_encoder_sink_setcaps)); gst_pad_set_getcaps_function (pad, GST_DEBUG_FUNCPTR (gst_base_video_encoder_sink_getcaps)); pad = GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_encoder); gst_pad_set_query_type_function (pad, GST_DEBUG_FUNCPTR (gst_base_video_encoder_get_query_types)); gst_pad_set_query_function (pad, GST_DEBUG_FUNCPTR (gst_base_video_encoder_src_query)); gst_pad_set_event_function (pad, GST_DEBUG_FUNCPTR (gst_base_video_encoder_src_event)); base_video_encoder->a.at_eos = FALSE; /* encoder is expected to do so */ base_video_encoder->sink_clipping = TRUE; }
static void gst_deinterlace2_init (GstDeinterlace2 * self, GstDeinterlace2Class * klass) { self->sinkpad = gst_pad_new_from_static_template (&sink_templ, "sink"); gst_pad_set_chain_function (self->sinkpad, GST_DEBUG_FUNCPTR (gst_deinterlace2_chain)); gst_pad_set_event_function (self->sinkpad, GST_DEBUG_FUNCPTR (gst_deinterlace2_sink_event)); gst_pad_set_setcaps_function (self->sinkpad, GST_DEBUG_FUNCPTR (gst_deinterlace2_setcaps)); gst_pad_set_getcaps_function (self->sinkpad, GST_DEBUG_FUNCPTR (gst_deinterlace2_getcaps)); gst_element_add_pad (GST_ELEMENT (self), self->sinkpad); self->srcpad = gst_pad_new_from_static_template (&src_templ, "src"); gst_pad_set_event_function (self->srcpad, GST_DEBUG_FUNCPTR (gst_deinterlace2_src_event)); gst_pad_set_query_type_function (self->srcpad, GST_DEBUG_FUNCPTR (gst_deinterlace2_src_query_types)); gst_pad_set_query_function (self->srcpad, GST_DEBUG_FUNCPTR (gst_deinterlace2_src_query)); gst_pad_set_setcaps_function (self->srcpad, GST_DEBUG_FUNCPTR (gst_deinterlace2_setcaps)); gst_pad_set_getcaps_function (self->srcpad, GST_DEBUG_FUNCPTR (gst_deinterlace2_getcaps)); gst_element_add_pad (GST_ELEMENT (self), self->srcpad); gst_element_no_more_pads (GST_ELEMENT (self)); gst_deinterlace2_set_method (self, DEFAULT_METHOD); self->fields = DEFAULT_FIELDS; self->field_layout = DEFAULT_FIELD_LAYOUT; gst_deinterlace2_reset (self); }
static void gst_base_video_parse_init (GstBaseVideoParse * base_video_parse, GstBaseVideoParseClass * klass) { GstPad *pad; GST_DEBUG ("gst_base_video_parse_init"); pad = GST_BASE_VIDEO_CODEC_SINK_PAD (base_video_parse); gst_pad_set_chain_function (pad, gst_base_video_parse_chain); gst_pad_set_query_function (pad, gst_base_video_parse_sink_query); gst_pad_set_event_function (pad, gst_base_video_parse_sink_event); pad = GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_parse); gst_pad_set_query_type_function (pad, gst_base_video_parse_get_query_types); gst_pad_set_query_function (pad, gst_base_video_parse_src_query); gst_pad_set_event_function (pad, gst_base_video_parse_src_event); base_video_parse->input_adapter = gst_adapter_new (); base_video_parse->output_adapter = gst_adapter_new (); base_video_parse->reorder_depth = 1; base_video_parse->current_frame = gst_base_video_parse_new_frame (base_video_parse); }
static void gst_musepackdec_init (GstMusepackDec * musepackdec, GstMusepackDecClass * klass) { musepackdec->offset = 0; musepackdec->rate = 0; musepackdec->bps = 0; musepackdec->r = g_new (mpc_reader, 1); #ifdef MPC_IS_OLD_API musepackdec->d = g_new (mpc_decoder, 1); #endif musepackdec->sinkpad = gst_pad_new_from_static_template (&sink_template, "sink"); gst_pad_set_activate_function (musepackdec->sinkpad, GST_DEBUG_FUNCPTR (gst_musepackdec_sink_activate)); gst_pad_set_activatepull_function (musepackdec->sinkpad, GST_DEBUG_FUNCPTR (gst_musepackdec_sink_activate_pull)); gst_element_add_pad (GST_ELEMENT (musepackdec), musepackdec->sinkpad); musepackdec->srcpad = gst_pad_new_from_static_template (&src_template, "src"); gst_pad_set_event_function (musepackdec->srcpad, GST_DEBUG_FUNCPTR (gst_musepackdec_src_event)); gst_pad_set_query_function (musepackdec->srcpad, GST_DEBUG_FUNCPTR (gst_musepackdec_src_query)); gst_pad_set_query_type_function (musepackdec->srcpad, GST_DEBUG_FUNCPTR (gst_musepackdec_get_src_query_types)); gst_pad_use_fixed_caps (musepackdec->srcpad); gst_element_add_pad (GST_ELEMENT (musepackdec), musepackdec->srcpad); }
static void gst_base_video_decoder_init (GstBaseVideoDecoder * base_video_decoder, GstBaseVideoDecoderClass * klass) { GstPad *pad; GST_DEBUG ("gst_base_video_decoder_init"); pad = GST_BASE_VIDEO_CODEC_SINK_PAD (base_video_decoder); gst_pad_set_activatepush_function (pad, gst_base_video_decoder_sink_activate_push); gst_pad_set_chain_function (pad, gst_base_video_decoder_chain); gst_pad_set_event_function (pad, gst_base_video_decoder_sink_event); gst_pad_set_setcaps_function (pad, gst_base_video_decoder_sink_setcaps); gst_pad_set_query_function (pad, gst_base_video_decoder_sink_query); pad = GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_decoder); gst_pad_set_event_function (pad, gst_base_video_decoder_src_event); gst_pad_set_query_type_function (pad, gst_base_video_decoder_get_query_types); gst_pad_set_query_function (pad, gst_base_video_decoder_src_query); base_video_decoder->input_adapter = gst_adapter_new (); base_video_decoder->output_adapter = gst_adapter_new (); gst_segment_init (&base_video_decoder->state.segment, GST_FORMAT_TIME); gst_base_video_decoder_reset (base_video_decoder); base_video_decoder->current_frame = gst_base_video_decoder_new_frame (base_video_decoder); base_video_decoder->sink_clipping = TRUE; }
static void gst_vdp_mpeg_dec_init (GstVdpMpegDec * mpeg_dec, GstVdpMpegDecClass * gclass) { mpeg_dec->src = gst_pad_new_from_static_template (&src_template, "src"); gst_pad_use_fixed_caps (mpeg_dec->src); gst_pad_set_event_function (mpeg_dec->src, GST_DEBUG_FUNCPTR (gst_vdp_mpeg_dec_src_event)); gst_pad_set_query_function (mpeg_dec->src, GST_DEBUG_FUNCPTR (gst_vdp_mpeg_dec_src_query)); gst_pad_set_query_type_function (mpeg_dec->src, GST_DEBUG_FUNCPTR (gst_mpeg_dec_get_querytypes)); gst_element_add_pad (GST_ELEMENT (mpeg_dec), mpeg_dec->src); mpeg_dec->sink = gst_pad_new_from_static_template (&sink_template, "sink"); gst_pad_set_setcaps_function (mpeg_dec->sink, GST_DEBUG_FUNCPTR (gst_vdp_mpeg_dec_set_caps)); gst_pad_set_chain_function (mpeg_dec->sink, GST_DEBUG_FUNCPTR (gst_vdp_mpeg_dec_chain)); gst_pad_set_event_function (mpeg_dec->sink, GST_DEBUG_FUNCPTR (gst_vdp_mpeg_dec_sink_event)); gst_element_add_pad (GST_ELEMENT (mpeg_dec), mpeg_dec->sink); mpeg_dec->adapter = gst_adapter_new (); mpeg_dec->mutex = g_mutex_new (); }
static void gst_tta_parse_init (GstTtaParse * ttaparse) { GstElementClass *klass = GST_ELEMENT_GET_CLASS (ttaparse); ttaparse->sinkpad = gst_pad_new_from_template (gst_element_class_get_pad_template (klass, "sink"), "sink"); ttaparse->srcpad = gst_pad_new_from_template (gst_element_class_get_pad_template (klass, "src"), "src"); gst_pad_use_fixed_caps (ttaparse->srcpad); gst_pad_set_query_type_function (ttaparse->srcpad, gst_tta_parse_get_query_types); gst_pad_set_query_function (ttaparse->srcpad, gst_tta_parse_query); gst_pad_set_event_function (ttaparse->srcpad, gst_tta_parse_src_event); gst_element_add_pad (GST_ELEMENT (ttaparse), ttaparse->sinkpad); gst_element_add_pad (GST_ELEMENT (ttaparse), ttaparse->srcpad); gst_pad_set_activate_function (ttaparse->sinkpad, gst_tta_parse_activate); gst_pad_set_activatepull_function (ttaparse->sinkpad, gst_tta_parse_activate_pull); gst_tta_parse_reset (ttaparse); }
static void gst_segment_clip_init (GstSegmentClip * self, GstSegmentClipClass * g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); GstPadTemplate *templ; templ = gst_element_class_get_pad_template (element_class, "sink"); g_assert (templ); self->sinkpad = gst_pad_new_from_template (templ, "sink"); gst_pad_set_chain_function (self->sinkpad, GST_DEBUG_FUNCPTR (gst_segment_clip_sink_chain)); gst_pad_set_event_function (self->sinkpad, GST_DEBUG_FUNCPTR (gst_segment_clip_event)); gst_pad_set_setcaps_function (self->sinkpad, GST_DEBUG_FUNCPTR (gst_segment_clip_sink_setcaps)); gst_pad_set_getcaps_function (self->sinkpad, GST_DEBUG_FUNCPTR (gst_segment_clip_getcaps)); gst_pad_set_bufferalloc_function (self->sinkpad, GST_DEBUG_FUNCPTR (gst_segment_clip_sink_bufferalloc)); gst_pad_set_query_function (self->sinkpad, GST_DEBUG_FUNCPTR (gst_segment_clip_query)); gst_pad_set_query_type_function (self->sinkpad, GST_DEBUG_FUNCPTR (gst_segment_clip_query_type)); gst_element_add_pad (GST_ELEMENT (self), self->sinkpad); gst_object_unref (templ); templ = gst_element_class_get_pad_template (element_class, "src"); g_assert (templ); self->srcpad = gst_pad_new_from_template (templ, "src"); gst_pad_set_event_function (self->srcpad, GST_DEBUG_FUNCPTR (gst_segment_clip_event)); gst_pad_set_getcaps_function (self->srcpad, GST_DEBUG_FUNCPTR (gst_segment_clip_getcaps)); gst_pad_set_query_function (self->srcpad, GST_DEBUG_FUNCPTR (gst_segment_clip_query)); gst_pad_set_query_type_function (self->srcpad, GST_DEBUG_FUNCPTR (gst_segment_clip_query_type)); gst_element_add_pad (GST_ELEMENT (self), self->srcpad); gst_segment_clip_reset (self); }
static void gst_base_video_decoder_init (GstBaseVideoDecoder * base_video_decoder, GstBaseVideoDecoderClass * base_video_decoder_class) { GstPadTemplate *pad_template; GstPad *pad; GST_DEBUG ("gst_base_video_decoder_init"); pad_template = gst_element_class_get_pad_template (GST_ELEMENT_CLASS (base_video_decoder_class), "sink"); g_return_if_fail (pad_template != NULL); base_video_decoder->sinkpad = pad = gst_pad_new_from_template (pad_template, "sink"); gst_element_add_pad (GST_ELEMENT (base_video_decoder), pad); gst_pad_set_chain_function (pad, gst_base_video_decoder_chain); gst_pad_set_event_function (pad, gst_base_video_decoder_sink_event); gst_pad_set_setcaps_function (pad, gst_base_video_decoder_sink_setcaps); gst_pad_set_query_function (pad, gst_base_video_decoder_sink_query); if (base_video_decoder_class->create_srcpad) { base_video_decoder->srcpad = pad = base_video_decoder_class->create_srcpad (base_video_decoder, base_video_decoder_class); } else { pad_template = gst_element_class_get_pad_template (GST_ELEMENT_CLASS (base_video_decoder_class), "src"); g_return_if_fail (pad_template != NULL); base_video_decoder->srcpad = pad = gst_pad_new_from_template (pad_template, "src"); } gst_element_add_pad (GST_ELEMENT (base_video_decoder), pad); gst_pad_set_event_function (pad, gst_base_video_decoder_src_event); gst_pad_set_query_type_function (pad, gst_base_video_decoder_get_query_types); gst_pad_set_query_function (pad, gst_base_video_decoder_src_query); gst_pad_use_fixed_caps (pad); base_video_decoder->input_adapter = gst_adapter_new (); gst_segment_init (&base_video_decoder->segment, GST_FORMAT_TIME); base_video_decoder->current_frame = gst_base_video_decoder_new_frame (base_video_decoder); /* properties */ base_video_decoder->packetized = FALSE; base_video_decoder->sink_clipping = TRUE; }
/* initialize the new element * instantiate pads and add them to element * set functions * initialize structure */ static void gst_mms_init (GstMMS * mmssrc, GstMMSClass * g_class) { gst_pad_set_query_function (GST_BASE_SRC (mmssrc)->srcpad, GST_DEBUG_FUNCPTR (gst_mms_src_query)); gst_pad_set_query_type_function (GST_BASE_SRC (mmssrc)->srcpad, GST_DEBUG_FUNCPTR (gst_mms_get_query_types)); mmssrc->uri_name = NULL; mmssrc->connection = NULL; mmssrc->connection_h = NULL; mmssrc->connection_speed = DEFAULT_CONNECTION_SPEED; GST_BASE_SRC (mmssrc)->blocksize = 2048; }
static void gst_auto_convert_init (GstAutoConvert * autoconvert, GstAutoConvertClass * klass) { autoconvert->sinkpad = gst_pad_new_from_static_template (&sinktemplate, "sink"); autoconvert->srcpad = gst_pad_new_from_static_template (&srctemplate, "src"); gst_pad_set_setcaps_function (autoconvert->sinkpad, GST_DEBUG_FUNCPTR (gst_auto_convert_sink_setcaps)); gst_pad_set_getcaps_function (autoconvert->sinkpad, GST_DEBUG_FUNCPTR (gst_auto_convert_sink_getcaps)); gst_pad_set_chain_function (autoconvert->sinkpad, GST_DEBUG_FUNCPTR (gst_auto_convert_sink_chain)); gst_pad_set_event_function (autoconvert->sinkpad, GST_DEBUG_FUNCPTR (gst_auto_convert_sink_event)); gst_pad_set_query_function (autoconvert->sinkpad, GST_DEBUG_FUNCPTR (gst_auto_convert_sink_query)); gst_pad_set_query_type_function (autoconvert->sinkpad, GST_DEBUG_FUNCPTR (gst_auto_convert_sink_query_type)); gst_pad_set_bufferalloc_function (autoconvert->sinkpad, GST_DEBUG_FUNCPTR (gst_auto_convert_sink_buffer_alloc)); gst_pad_set_event_function (autoconvert->srcpad, GST_DEBUG_FUNCPTR (gst_auto_convert_src_event)); gst_pad_set_query_function (autoconvert->srcpad, GST_DEBUG_FUNCPTR (gst_auto_convert_src_query)); gst_pad_set_query_type_function (autoconvert->srcpad, GST_DEBUG_FUNCPTR (gst_auto_convert_src_query_type)); gst_element_add_pad (GST_ELEMENT (autoconvert), autoconvert->sinkpad); gst_element_add_pad (GST_ELEMENT (autoconvert), autoconvert->srcpad); gst_segment_init (&autoconvert->sink_segment, GST_FORMAT_UNDEFINED); autoconvert->initial_identity = DEFAULT_INITIAL_IDENTITY; }
static void gst_audio_fx_base_fir_filter_init (GstAudioFXBaseFIRFilter * self, GstAudioFXBaseFIRFilterClass * g_class) { self->kernel = NULL; self->residue = NULL; self->next_ts = GST_CLOCK_TIME_NONE; self->next_off = GST_BUFFER_OFFSET_NONE; gst_pad_set_query_function (GST_BASE_TRANSFORM (self)->srcpad, gst_audio_fx_base_fir_filter_query); gst_pad_set_query_type_function (GST_BASE_TRANSFORM (self)->srcpad, gst_audio_fx_base_fir_filter_query_type); }
static gboolean gst_au_parse_add_srcpad (GstAuParse * auparse, GstCaps * new_caps) { GstPad *srcpad = NULL; if (auparse->src_caps && gst_caps_is_equal (new_caps, auparse->src_caps)) { GST_LOG_OBJECT (auparse, "same caps, nothing to do"); return TRUE; } gst_caps_replace (&auparse->src_caps, new_caps); if (auparse->srcpad != NULL) { GST_DEBUG_OBJECT (auparse, "Changing src pad caps to %" GST_PTR_FORMAT, auparse->src_caps); gst_pad_set_caps (auparse->srcpad, auparse->src_caps); } if (auparse->srcpad == NULL) { srcpad = auparse->srcpad = gst_pad_new_from_static_template (&src_template, "src"); g_return_val_if_fail (auparse->srcpad != NULL, FALSE); #if 0 gst_pad_set_query_type_function (auparse->srcpad, GST_DEBUG_FUNCPTR (gst_au_parse_src_get_query_types)); #endif gst_pad_set_query_function (auparse->srcpad, GST_DEBUG_FUNCPTR (gst_au_parse_src_query)); gst_pad_set_event_function (auparse->srcpad, GST_DEBUG_FUNCPTR (gst_au_parse_src_event)); gst_pad_use_fixed_caps (auparse->srcpad); gst_pad_set_active (auparse->srcpad, TRUE); if (auparse->src_caps) gst_pad_set_caps (auparse->srcpad, auparse->src_caps); GST_DEBUG_OBJECT (auparse, "Adding src pad with caps %" GST_PTR_FORMAT, auparse->src_caps); gst_object_ref (auparse->srcpad); if (!gst_element_add_pad (GST_ELEMENT (auparse), auparse->srcpad)) return FALSE; gst_element_no_more_pads (GST_ELEMENT (auparse)); } return TRUE; }
static void gst_cmml_dec_init (GstCmmlDec * dec, GstCmmlDecClass * klass) { dec->sinkpad = gst_pad_new_from_static_template (&gst_cmml_dec_sink_factory, "sink"); gst_pad_set_chain_function (dec->sinkpad, gst_cmml_dec_chain); gst_pad_set_query_type_function (dec->sinkpad, gst_cmml_dec_query_types); gst_pad_set_query_function (dec->sinkpad, gst_cmml_dec_sink_query); gst_pad_set_event_function (dec->sinkpad, gst_cmml_dec_sink_event); gst_element_add_pad (GST_ELEMENT (dec), dec->sinkpad); dec->srcpad = gst_pad_new_from_static_template (&gst_cmml_dec_src_factory, "src"); gst_element_add_pad (GST_ELEMENT (dec), dec->srcpad); dec->wait_clip_end = FALSE; }
GstPad * gst_vf_src_pad_new (GstStaticPadTemplate * pad_template, const char *name) { GST_DEBUG_CATEGORY_INIT (droidvfsrc_debug, "droidvfsrc", 0, "Android camera viewfinder source pad"); GstPad *pad = gst_pad_new_from_static_template (pad_template, name); gst_pad_set_activatepush_function (pad, gst_droid_cam_src_vfsrc_activatepush); gst_pad_set_setcaps_function (pad, gst_droid_cam_src_vfsrc_setcaps); gst_pad_set_getcaps_function (pad, gst_droid_cam_src_vfsrc_getcaps); gst_pad_set_query_type_function (pad, gst_droid_cam_src_vfsrc_query_type); gst_pad_set_query_function (pad, gst_droid_cam_src_vfsrc_query); gst_pad_set_fixatecaps_function (pad, gst_droid_cam_src_vfsrc_fixatecaps); /* TODO: Do we need an event handler via gst_pad_set_event_function() ? */ return pad; }
static void gst_raw_parse_init (GstRawParse * rp, GstRawParseClass * g_class) { GstPadTemplate *src_pad_template; GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); rp->sinkpad = gst_pad_new_from_static_template (&gst_raw_parse_sink_pad_template, "sink"); gst_pad_set_chain_function (rp->sinkpad, GST_DEBUG_FUNCPTR (gst_raw_parse_chain)); gst_pad_set_event_function (rp->sinkpad, GST_DEBUG_FUNCPTR (gst_raw_parse_sink_event)); gst_pad_set_activate_function (rp->sinkpad, GST_DEBUG_FUNCPTR (gst_raw_parse_sink_activate)); gst_pad_set_activatepull_function (rp->sinkpad, GST_DEBUG_FUNCPTR (gst_raw_parse_sink_activatepull)); gst_element_add_pad (GST_ELEMENT (rp), rp->sinkpad); src_pad_template = gst_element_class_get_pad_template (element_class, "src"); if (src_pad_template) { rp->srcpad = gst_pad_new_from_template (src_pad_template, "src"); } else { g_warning ("Subclass didn't specify a src pad template"); g_assert_not_reached (); } gst_pad_set_event_function (rp->srcpad, GST_DEBUG_FUNCPTR (gst_raw_parse_src_event)); gst_pad_set_query_type_function (rp->srcpad, GST_DEBUG_FUNCPTR (gst_raw_parse_src_query_type)); gst_pad_set_query_function (rp->srcpad, GST_DEBUG_FUNCPTR (gst_raw_parse_src_query)); gst_element_add_pad (GST_ELEMENT (rp), rp->srcpad); rp->adapter = gst_adapter_new (); rp->fps_n = 1; rp->fps_d = 0; rp->framesize = 1; gst_raw_parse_reset (rp); }
static void gst_audioresample_init (GstAudioresample * audioresample, GstAudioresampleClass * klass) { GstBaseTransform *trans; trans = GST_BASE_TRANSFORM (audioresample); /* buffer alloc passthrough is too impossible. FIXME, it * is trivial in the passthrough case. */ gst_pad_set_bufferalloc_function (trans->sinkpad, NULL); audioresample->filter_length = DEFAULT_FILTERLEN; audioresample->need_discont = FALSE; gst_pad_set_query_function (trans->srcpad, audioresample_query); gst_pad_set_query_type_function (trans->srcpad, audioresample_query_type); }
static GstPad * gst_mpeg_demux_new_output_pad (GstMPEGDemux * mpeg_demux, const gchar * name, GstPadTemplate * temp) { GstPad *pad; pad = gst_pad_new_from_template (temp, name); #if 0 gst_pad_set_event_function (pad, GST_DEBUG_FUNCPTR (gst_mpeg_demux_handle_src_event)); #endif gst_pad_set_query_type_function (pad, GST_DEBUG_FUNCPTR (gst_mpeg_parse_get_src_query_types)); gst_pad_set_query_function (pad, GST_DEBUG_FUNCPTR (gst_mpeg_parse_handle_src_query)); gst_pad_use_fixed_caps (pad); return pad; }
static void gst_base_video_encoder_init (GstBaseVideoEncoder * base_video_encoder, GstBaseVideoEncoderClass * klass) { GstPad *pad; GST_DEBUG ("gst_base_video_encoder_init"); pad = GST_BASE_VIDEO_CODEC_SINK_PAD (base_video_encoder); gst_pad_set_chain_function (pad, gst_base_video_encoder_chain); gst_pad_set_event_function (pad, gst_base_video_encoder_sink_event); gst_pad_set_setcaps_function (pad, gst_base_video_encoder_sink_setcaps); //gst_pad_set_query_function (pad, gst_base_video_encoder_sink_query); pad = GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_encoder); gst_pad_set_query_type_function (pad, gst_base_video_encoder_get_query_types); gst_pad_set_query_function (pad, gst_base_video_encoder_src_query); }
static void gst_rsvg_dec_init (GstRsvgDec * rsvg, GstRsvgDecClass * klass) { rsvg->sinkpad = gst_pad_new_from_static_template (&sink_factory, "sink"); gst_pad_set_setcaps_function (rsvg->sinkpad, gst_rsvg_dec_sink_set_caps); gst_pad_set_event_function (rsvg->sinkpad, gst_rsvg_dec_sink_event); gst_pad_set_chain_function (rsvg->sinkpad, gst_rsvg_dec_chain); gst_element_add_pad (GST_ELEMENT (rsvg), rsvg->sinkpad); rsvg->srcpad = gst_pad_new_from_static_template (&src_factory, "src"); gst_pad_set_event_function (rsvg->srcpad, gst_rsvg_dec_src_event); gst_pad_set_query_function (rsvg->srcpad, gst_rsvg_dec_src_query); gst_pad_set_query_type_function (rsvg->srcpad, gst_rsvg_dec_src_query_type); gst_pad_set_setcaps_function (rsvg->srcpad, gst_rsvg_dec_src_set_caps); gst_element_add_pad (GST_ELEMENT (rsvg), rsvg->srcpad); rsvg->adapter = gst_adapter_new (); gst_rsvg_dec_reset (rsvg); }
static void gst_spc_dec_init (GstSpcDec * spc, GstSpcDecClass * klass) { spc->sinkpad = gst_pad_new_from_static_template (&sink_factory, "sink"); /* gst_pad_set_query_function (spc->sinkpad, NULL); */ gst_pad_set_event_function (spc->sinkpad, gst_spc_dec_sink_event); gst_pad_set_chain_function (spc->sinkpad, gst_spc_dec_chain); gst_element_add_pad (GST_ELEMENT (spc), spc->sinkpad); spc->srcpad = gst_pad_new_from_static_template (&src_factory, "src"); gst_pad_set_event_function (spc->srcpad, gst_spc_dec_src_event); gst_pad_set_query_function (spc->srcpad, gst_spc_dec_src_query); gst_pad_set_query_type_function (spc->srcpad, gst_spc_dec_src_query_type); gst_pad_use_fixed_caps (spc->srcpad); gst_element_add_pad (GST_ELEMENT (spc), spc->srcpad); spc->buf = NULL; spc->initialized = FALSE; spc_tag_clear (&spc->tag_info); }