static void gst_rsvg_dec_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); gst_element_class_set_metadata (element_class, "SVG image decoder", "Codec/Decoder/Image", "Uses librsvg to decode SVG images", "Sebastian Dröge <*****@*****.**>"); gst_element_class_add_pad_template (element_class, gst_static_pad_template_get (&sink_factory)); gst_element_class_add_pad_template (element_class, gst_static_pad_template_get (&src_factory)); }
static void gst_ivf_parse_base_init (gpointer gclass) { GstElementClass *element_class = GST_ELEMENT_CLASS (gclass); gst_element_class_set_metadata (element_class, "IVF parser", "Codec/Demuxer", "Demuxes a IVF stream", "Philip Jägenstedt <*****@*****.**>"); gst_element_class_add_pad_template (element_class, gst_static_pad_template_get (&src_factory)); gst_element_class_add_pad_template (element_class, gst_static_pad_template_get (&sink_factory)); }
static void gst_mve_demux_base_init (GstMveDemuxClass * klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); gst_element_class_add_static_pad_template (element_class, &sink_template); gst_element_class_add_static_pad_template (element_class, &vidsrc_template); gst_element_class_add_static_pad_template (element_class, &audsrc_template); gst_element_class_set_metadata (element_class, "MVE Demuxer", "Codec/Demuxer", "Demultiplex an Interplay movie (MVE) stream into audio and video", "Jens Granseuer <*****@*****.**>"); }
static void gst_sdi_mux_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); gst_element_class_add_pad_template (element_class, gst_static_pad_template_get (&gst_sdi_mux_src_template)); gst_element_class_add_pad_template (element_class, gst_static_pad_template_get (&gst_sdi_mux_sink_template)); gst_element_class_set_metadata (element_class, "SDI Muxer", "Muxer", "Multiplex raw audio and video into SDI", "David Schleef <*****@*****.**>"); }
static void gst_openal_src_base_init (gpointer gclass) { GstElementClass *element_class = GST_ELEMENT_CLASS (gclass); gst_element_class_set_metadata (element_class, "OpenAL src", "Source/Audio", "OpenAL source capture audio from device", "Victor Lin <*****@*****.**>"); gst_element_class_add_pad_template (element_class, gst_static_pad_template_get (&src_factory) ); }
static void gst_parse_test_element_class_init (GstParseTestElementClass * klass) { GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); gst_element_class_add_pad_template (gstelement_class, gst_static_pad_template_get (&test_element_pad_template)); gst_element_class_set_metadata (gstelement_class, "Test element for parse launch tests", "Source", "Test element for parse launch tests in core", "GStreamer Devel <*****@*****.**>"); gstelement_class->change_state = gst_parse_test_element_change_state; }
static void gst_vtdec_base_init (GstVTDecClass * klass) { const GstVTDecoderDetails *codec_details = GST_VTDEC_CLASS_GET_CODEC_DETAILS (klass); GstElementClass *element_class = GST_ELEMENT_CLASS (klass); const int min_width = 1, max_width = G_MAXINT; const int min_height = 1, max_height = G_MAXINT; const int min_fps_n = 0, max_fps_n = G_MAXINT; const int min_fps_d = 1, max_fps_d = 1; GstPadTemplate *sink_template, *src_template; GstCaps *sink_caps; gchar *longname, *description; longname = g_strdup_printf ("%s decoder", codec_details->name); description = g_strdup_printf ("%s decoder", codec_details->name); gst_element_class_set_metadata (element_class, longname, "Codec/Decoder/Video", description, "Ole André Vadla Ravnås <*****@*****.**>"); g_free (longname); g_free (description); sink_caps = gst_caps_new_simple (codec_details->mimetype, "width", GST_TYPE_INT_RANGE, min_width, max_width, "height", GST_TYPE_INT_RANGE, min_height, max_height, "framerate", GST_TYPE_FRACTION_RANGE, min_fps_n, min_fps_d, max_fps_n, max_fps_d, NULL); if (codec_details->format_id == kVTFormatH264) { gst_structure_set (gst_caps_get_structure (sink_caps, 0), "stream-format", G_TYPE_STRING, "avc", NULL); } sink_template = gst_pad_template_new ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, sink_caps); gst_element_class_add_pad_template (element_class, sink_template); src_template = gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS, gst_caps_new_simple ("video/x-raw", "format", G_TYPE_STRING, "NV12", "width", GST_TYPE_INT_RANGE, min_width, max_width, "height", GST_TYPE_INT_RANGE, min_height, max_height, "framerate", GST_TYPE_FRACTION_RANGE, min_fps_n, min_fps_d, max_fps_n, max_fps_d, NULL)); gst_element_class_add_pad_template (element_class, src_template); }
static void gst_mpegv_parse_class_init (GstMpegvParseClass * klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GstElementClass *element_class = GST_ELEMENT_CLASS (klass); GstBaseParseClass *parse_class = GST_BASE_PARSE_CLASS (klass); GST_DEBUG_CATEGORY_INIT (mpegv_parse_debug, "mpegvideoparse", 0, "MPEG-1/2 video parser"); parent_class = g_type_class_peek_parent (klass); gobject_class->set_property = gst_mpegv_parse_set_property; gobject_class->get_property = gst_mpegv_parse_get_property; g_object_class_install_property (gobject_class, PROP_DROP, g_param_spec_boolean ("drop", "drop", "Drop data untill valid configuration data is received either " "in the stream or through caps", DEFAULT_PROP_DROP, G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_GOP_SPLIT, g_param_spec_boolean ("gop-split", "gop-split", "Split frame when encountering GOP", DEFAULT_PROP_GOP_SPLIT, G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); gst_element_class_add_pad_template (element_class, gst_static_pad_template_get (&src_template)); gst_element_class_add_pad_template (element_class, gst_static_pad_template_get (&sink_template)); gst_element_class_set_metadata (element_class, "MPEG video elementary stream parser", "Codec/Parser/Video", "Parses and frames MPEG-1 and MPEG-2 elementary video streams", "Wim Taymans <*****@*****.**>, " "Jan Schmidt <*****@*****.**>, " "Mark Nauwelaerts <*****@*****.**>"); /* Override BaseParse vfuncs */ parse_class->start = GST_DEBUG_FUNCPTR (gst_mpegv_parse_start); parse_class->stop = GST_DEBUG_FUNCPTR (gst_mpegv_parse_stop); parse_class->handle_frame = GST_DEBUG_FUNCPTR (gst_mpegv_parse_handle_frame); parse_class->set_sink_caps = GST_DEBUG_FUNCPTR (gst_mpegv_parse_set_caps); parse_class->get_sink_caps = GST_DEBUG_FUNCPTR (gst_mpegv_parse_get_caps); parse_class->pre_push_frame = GST_DEBUG_FUNCPTR (gst_mpegv_parse_pre_push_frame); }
static void gst_test_element_class_init (GstTestElementClass * klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); GstPadTemplate *templ; gst_element_class_set_metadata (element_class, "Test element", "Element", "Does nothing", "Foo Bar <*****@*****.**>"); fail_unless_equals_int (g_list_length (gst_element_class_get_pad_template_list (element_class)), 0); fail_unless (gst_element_class_get_pad_template (element_class, "test") == NULL); gst_element_class_add_pad_template (element_class, gst_pad_template_new ("test", GST_PAD_SRC, GST_PAD_ALWAYS, GST_CAPS_ANY)); fail_unless_equals_int (g_list_length (gst_element_class_get_pad_template_list (element_class)), 1); fail_unless ((templ = gst_element_class_get_pad_template (element_class, "test")) != NULL); fail_unless (gst_caps_is_any (templ->caps)); gst_element_class_add_pad_template (element_class, gst_pad_template_new ("test2", GST_PAD_SRC, GST_PAD_ALWAYS, GST_CAPS_ANY)); fail_unless_equals_int (g_list_length (gst_element_class_get_pad_template_list (element_class)), 2); fail_unless ((templ = gst_element_class_get_pad_template (element_class, "test2")) != NULL); fail_unless (gst_caps_is_any (templ->caps)); /* Add "test" again, with NONE caps this time */ gst_element_class_add_pad_template (element_class, gst_pad_template_new ("test", GST_PAD_SRC, GST_PAD_ALWAYS, GST_CAPS_NONE)); fail_unless_equals_int (g_list_length (gst_element_class_get_pad_template_list (element_class)), 2); fail_unless ((templ = gst_element_class_get_pad_template (element_class, "test")) != NULL); fail_unless (gst_caps_is_empty (templ->caps)); }
static void gst_cdxa_parse_base_init (gpointer g_class) { GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); gst_element_class_set_metadata (element_class, "(S)VCD parser", "Codec/Parser", "Parse a .dat file from (S)VCD into raw MPEG-1", "Wim Taymans <*****@*****.**>"); /* register src pads */ gst_element_class_add_pad_template (element_class, gst_static_pad_template_get (&sink_template_factory)); gst_element_class_add_pad_template (element_class, gst_static_pad_template_get (&src_template_factory)); }
static void gst_fake_h264_decoder_class_init (GstFakeH264DecoderClass * klass) { static GstStaticPadTemplate sink_templ = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, GST_STATIC_CAPS ("video/x-h264, " "stream-format=(string) byte-stream")); static GstStaticPadTemplate src_templ = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, GST_STATIC_CAPS ("video/x-raw")); GstElementClass *element_class = GST_ELEMENT_CLASS (klass); gst_element_class_add_static_pad_template (element_class, &sink_templ); gst_element_class_add_static_pad_template (element_class, &src_templ); gst_element_class_set_metadata (element_class, "FakeH264Decoder", "Codec/Decoder/Video", "yep", "me"); }
static void gst_gl_stereo_mix_class_init (GstGLStereoMixClass * klass) { GObjectClass *gobject_class = (GObjectClass *) klass; GstElementClass *element_class = GST_ELEMENT_CLASS (klass); GstVideoAggregatorClass *videoaggregator_class = (GstVideoAggregatorClass *) klass; GstAggregatorClass *agg_class = (GstAggregatorClass *) klass; GstGLBaseMixerClass *base_mix_class = (GstGLBaseMixerClass *) klass; GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "glstereomixer", 0, "opengl stereoscopic mixer"); gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_gl_stereo_mix_finalize); gobject_class->get_property = gst_gl_stereo_mix_get_property; gobject_class->set_property = gst_gl_stereo_mix_set_property; gst_element_class_set_metadata (element_class, "OpenGL stereo video combiner", "Filter/Effect/Video", "OpenGL stereo video combiner", "Jan Schmidt <*****@*****.**>"); g_object_class_install_property (gobject_class, PROP_DOWNMIX_MODE, g_param_spec_enum ("downmix-mode", "Mode for mono downmixed output", "Output anaglyph type to generate when downmixing to mono", GST_TYPE_GL_STEREO_DOWNMIX_MODE_TYPE, DEFAULT_DOWNMIX, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); gst_element_class_add_pad_template (element_class, gst_static_pad_template_get (&src_factory)); gst_element_class_add_pad_template (element_class, gst_static_pad_template_get (&sink_factory)); agg_class->sinkpads_type = GST_TYPE_GL_STEREO_MIX_PAD; agg_class->stop = gst_gl_stereo_mix_stop; agg_class->start = gst_gl_stereo_mix_start; agg_class->src_query = gst_gl_stereo_mix_src_query; videoaggregator_class->aggregate_frames = gst_gl_stereo_mix_aggregate_frames; videoaggregator_class->update_caps = _update_caps; videoaggregator_class->negotiated_caps = _negotiated_caps; videoaggregator_class->get_output_buffer = gst_gl_stereo_mix_get_output_buffer; videoaggregator_class->find_best_format = gst_gl_stereo_mix_find_best_format; base_mix_class->supported_gl_api = GST_GL_API_OPENGL | GST_GL_API_OPENGL3; }
static void gst_zbar_class_init (GstZBarClass * g_class) { GObjectClass *gobject_class; GstElementClass *gstelement_class; GstBaseTransformClass *trans_class; GstVideoFilterClass *vfilter_class; gobject_class = G_OBJECT_CLASS (g_class); gstelement_class = GST_ELEMENT_CLASS (g_class); trans_class = GST_BASE_TRANSFORM_CLASS (g_class); vfilter_class = GST_VIDEO_FILTER_CLASS (g_class); gobject_class->set_property = gst_zbar_set_property; gobject_class->get_property = gst_zbar_get_property; gobject_class->finalize = gst_zbar_finalize; g_object_class_install_property (gobject_class, PROP_MESSAGE, g_param_spec_boolean ("message", "message", "Post a barcode message for each detected code", DEFAULT_MESSAGE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_CACHE, g_param_spec_boolean ("cache", "cache", "Enable or disable the inter-image result cache", DEFAULT_CACHE, G_PARAM_READWRITE | GST_PARAM_MUTABLE_READY | G_PARAM_STATIC_STRINGS)); gst_element_class_set_metadata (gstelement_class, "Barcode detector", "Filter/Analyzer/Video", "Detect bar codes in the video streams", "Stefan Kost <*****@*****.**>"); gst_element_class_add_pad_template (gstelement_class, gst_static_pad_template_get (&gst_zbar_sink_template)); gst_element_class_add_pad_template (gstelement_class, gst_static_pad_template_get (&gst_zbar_src_template)); trans_class->start = GST_DEBUG_FUNCPTR (gst_zbar_start); trans_class->stop = GST_DEBUG_FUNCPTR (gst_zbar_stop); trans_class->transform_ip_on_passthrough = FALSE; vfilter_class->transform_frame_ip = GST_DEBUG_FUNCPTR (gst_zbar_transform_frame_ip); }
static void test_mpeg_audio_parse_class_init (TestMpegAudioParseClass * klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); GstBaseParseClass *parse_class = GST_BASE_PARSE_CLASS (klass); gst_element_class_add_static_pad_template (element_class, &sink_template); gst_element_class_add_static_pad_template (element_class, &src_template); gst_element_class_set_metadata (element_class, "MPEG1 Audio Parser", "Codec/Parser/Audio", "Pretends to parse mpeg1 audio stream", "Foo Bar <*****@*****.**>"); parse_class->start = test_mpeg_audio_parse_start; parse_class->stop = test_mpeg_audio_parse_stop; parse_class->handle_frame = test_mpeg_audio_parse_handle_frame; }
static void gst_rsvg_overlay_base_init (gpointer klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); gst_element_class_add_pad_template (element_class, gst_static_pad_template_get (&src_template)); gst_element_class_add_pad_template (element_class, gst_static_pad_template_get (&video_sink_template)); gst_element_class_add_pad_template (element_class, gst_static_pad_template_get (&data_sink_template)); gst_element_class_set_metadata (element_class, "RSVG overlay", "Filter/Editor/Video", "Overlays SVG graphics over a video stream", "Olivier Aubert <*****@*****.**>"); }
static void rsn_videodec_class_init (RsnAudioDecClass * klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); RsnDecClass *dec_class = RSN_DEC_CLASS (klass); gst_element_class_add_pad_template (element_class, gst_static_pad_template_get (&video_src_template)); gst_element_class_add_pad_template (element_class, gst_static_pad_template_get (&video_sink_template)); gst_element_class_set_metadata (element_class, "RsnVideoDec", "Video/Decoder", "Resin DVD video stream decoder", "Jan Schmidt <*****@*****.**>"); dec_class->get_decoder_factories = rsn_videodec_get_decoder_factories; }
static void gst_osx_video_src_base_init (gpointer gclass) { GstElementClass *element_class = GST_ELEMENT_CLASS (gclass); GST_DEBUG ("%s", G_STRFUNC); gst_element_class_add_pad_template (element_class, gst_static_pad_template_get (&src_template)); gst_element_class_set_metadata (element_class, "Video Source (OSX)", "Source/Video", "Reads raw frames from a capture device on OS X", "Ole Andre Vadla Ravnaas <*****@*****.**>, " "Ali Sabil <*****@*****.**>"); }
static void gst_red_video_src_class_init (GstRedVideoSrcClass * klass) { GstPushSrcClass *pushsrc_class = GST_PUSH_SRC_CLASS (klass); GstBaseSrcClass *basesrc_class = GST_BASE_SRC_CLASS (klass); static GstStaticPadTemplate src_templ = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, GST_STATIC_CAPS ("video/x-raw, format=(string)I420") ); GstElementClass *element_class = GST_ELEMENT_CLASS (klass); gst_element_class_add_static_pad_template (element_class, &src_templ); gst_element_class_set_metadata (element_class, "Red Video Src", "Source/Video", "yep", "me"); pushsrc_class->create = gst_red_video_src_create; basesrc_class->get_caps = gst_red_video_src_get_caps; }
static void gst_codec_src_class_init (GstCodecSrcClass * klass) { GstPushSrcClass *pushsrc_class = GST_PUSH_SRC_CLASS (klass); GstBaseSrcClass *basesrc_class = GST_BASE_SRC_CLASS (klass); static GstStaticPadTemplate src_templ = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, GST_STATIC_CAPS ("application/x-codec") ); GstElementClass *element_class = GST_ELEMENT_CLASS (klass); gst_element_class_add_static_pad_template (element_class, &src_templ); gst_element_class_set_metadata (element_class, "Codec Src", "Source/Video", "yep", "me"); pushsrc_class->create = gst_codec_src_create; basesrc_class->get_caps = gst_codec_src_get_caps; }
static void gst_gl_src_bin_class_init (GstGLSrcBinClass * klass) { GObjectClass *gobject_class; GstElementClass *element_class; gobject_class = (GObjectClass *) klass; element_class = GST_ELEMENT_CLASS (klass); element_class->change_state = gst_gl_src_bin_change_state; gobject_class->set_property = gst_gl_src_bin_set_property; gobject_class->get_property = gst_gl_src_bin_get_property; gobject_class->finalize = gst_gl_src_bin_finalize; g_object_class_install_property (gobject_class, PROP_SRC, g_param_spec_object ("src", "GL src element", "The GL src chain to use", GST_TYPE_ELEMENT, GST_PARAM_MUTABLE_READY | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** * GstGLSrcBin::create-element: * @object: the #GstGLSrcBin * * Will be emitted when we need the processing element/s that this bin will use * * Returns: a new #GstElement */ gst_gl_src_bin_signals[SIGNAL_CREATE_ELEMENT] = g_signal_new ("create-element", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_generic, GST_TYPE_ELEMENT, 0); gst_element_class_set_metadata (element_class, "GL Src Bin", "Src/Video", "Infrastructure to process GL textures", "Matthew Waters <*****@*****.**>"); gst_element_class_add_static_pad_template (element_class, &gst_gl_src_bin_template); }
static void gst_rtmp_src_class_init (GstRTMPSrcClass * klass) { GObjectClass *gobject_class; GstElementClass *gstelement_class; GstBaseSrcClass *gstbasesrc_class; GstPushSrcClass *gstpushsrc_class; gobject_class = G_OBJECT_CLASS (klass); gstelement_class = GST_ELEMENT_CLASS (klass); gstbasesrc_class = GST_BASE_SRC_CLASS (klass); gstpushsrc_class = GST_PUSH_SRC_CLASS (klass); gobject_class->finalize = gst_rtmp_src_finalize; gobject_class->set_property = gst_rtmp_src_set_property; gobject_class->get_property = gst_rtmp_src_get_property; /* properties */ g_object_class_install_property (gobject_class, PROP_LOCATION, g_param_spec_string ("location", "RTMP Location", "Location of the RTMP url to read", DEFAULT_LOCATION, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); gst_element_class_add_pad_template (gstelement_class, gst_static_pad_template_get (&srctemplate)); gst_element_class_set_metadata (gstelement_class, "RTMP Source", "Source/File", "Read RTMP streams", "Bastien Nocera <*****@*****.**>, " "Sebastian Dröge <*****@*****.**>"); gstbasesrc_class->start = GST_DEBUG_FUNCPTR (gst_rtmp_src_start); gstbasesrc_class->stop = GST_DEBUG_FUNCPTR (gst_rtmp_src_stop); gstbasesrc_class->is_seekable = GST_DEBUG_FUNCPTR (gst_rtmp_src_is_seekable); gstbasesrc_class->prepare_seek_segment = GST_DEBUG_FUNCPTR (gst_rtmp_src_prepare_seek_segment); gstbasesrc_class->do_seek = GST_DEBUG_FUNCPTR (gst_rtmp_src_do_seek); gstpushsrc_class->create = GST_DEBUG_FUNCPTR (gst_rtmp_src_create); gstbasesrc_class->query = GST_DEBUG_FUNCPTR (gst_rtmp_src_query); GST_DEBUG_CATEGORY_INIT (rtmpsrc_debug, "rtmpsrc", 0, "RTMP Source"); }
static void gst_test_element2_class_init (GstTestElement2Class * klass) { GstElementClass *element_class = GST_ELEMENT_CLASS (klass); GstPadTemplate *templ; gst_element_class_set_metadata (element_class, "Test element 2", "Element", "Does nothing", "Foo Bar <*****@*****.**>"); fail_unless_equals_int (g_list_length (gst_element_class_get_pad_template_list (element_class)), 2); fail_unless ((templ = gst_element_class_get_pad_template (element_class, "test")) != NULL); fail_unless (gst_caps_is_empty (templ->caps)); fail_unless ((templ = gst_element_class_get_pad_template (element_class, "test2")) != NULL); fail_unless (gst_caps_is_any (templ->caps)); /* Add "test" pad with ANY caps, should have "test" pad with EMPTY caps before */ gst_element_class_add_pad_template (element_class, gst_pad_template_new ("test", GST_PAD_SRC, GST_PAD_ALWAYS, GST_CAPS_ANY)); fail_unless_equals_int (g_list_length (gst_element_class_get_pad_template_list (element_class)), 2); fail_unless ((templ = gst_element_class_get_pad_template (element_class, "test")) != NULL); fail_unless (gst_caps_is_any (templ->caps)); gst_element_class_add_pad_template (element_class, gst_pad_template_new ("test4", GST_PAD_SRC, GST_PAD_ALWAYS, GST_CAPS_ANY)); fail_unless_equals_int (g_list_length (gst_element_class_get_pad_template_list (element_class)), 3); fail_unless ((templ = gst_element_class_get_pad_template (element_class, "test4")) != NULL); fail_unless (gst_caps_is_any (templ->caps)); }
static void gst_gtk_sink_class_init (GstGtkSinkClass * klass) { GstElementClass *gstelement_class; GstGtkBaseSinkClass *base_class; gstelement_class = (GstElementClass *) klass; base_class = (GstGtkBaseSinkClass *) klass; base_class->create_widget = gtk_gst_widget_new; base_class->window_title = "Gtk+ Cairo renderer"; gst_element_class_set_metadata (gstelement_class, "Gtk Video Sink", "Sink/Video", "A video sink that renders to a GtkWidget", "Matthew Waters <*****@*****.**>"); gst_element_class_add_static_pad_template (gstelement_class, &gst_gtk_sink_template); }
static void gst_dtmf_src_class_init (GstDTMFSrcClass * klass) { GObjectClass *gobject_class; GstBaseSrcClass *gstbasesrc_class; GstElementClass *gstelement_class; gobject_class = G_OBJECT_CLASS (klass); gstbasesrc_class = GST_BASE_SRC_CLASS (klass); gstelement_class = GST_ELEMENT_CLASS (klass); GST_DEBUG_CATEGORY_INIT (gst_dtmf_src_debug, "dtmfsrc", 0, "dtmfsrc element"); gst_element_class_add_pad_template (gstelement_class, gst_static_pad_template_get (&gst_dtmf_src_template)); gst_element_class_set_metadata (gstelement_class, "DTMF tone generator", "Source/Audio", "Generates DTMF tones", "Youness Alaoui <*****@*****.**>"); gobject_class->finalize = gst_dtmf_src_finalize; gobject_class->set_property = gst_dtmf_src_set_property; gobject_class->get_property = gst_dtmf_src_get_property; g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_INTERVAL, g_param_spec_uint ("interval", "Interval between tone packets", "Interval in ms between two tone packets", MIN_PACKET_INTERVAL, MAX_PACKET_INTERVAL, DEFAULT_PACKET_INTERVAL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_dtmf_src_change_state); gstelement_class->send_event = GST_DEBUG_FUNCPTR (gst_dtmf_src_send_event); gstbasesrc_class->unlock = GST_DEBUG_FUNCPTR (gst_dtmf_src_unlock); gstbasesrc_class->unlock_stop = GST_DEBUG_FUNCPTR (gst_dtmf_src_unlock_stop); gstbasesrc_class->event = GST_DEBUG_FUNCPTR (gst_dtmf_src_handle_event); gstbasesrc_class->create = GST_DEBUG_FUNCPTR (gst_dtmf_src_create); gstbasesrc_class->negotiate = GST_DEBUG_FUNCPTR (gst_dtmf_src_negotiate); }
static void gst_cutter_test_runner_class_init (GstCutterTestRunnerClass * klass) { GObjectClass *gobject_class = G_OBJECT_CLASS(klass); GstElementClass *element_class = GST_ELEMENT_CLASS(klass); GstBaseSrcClass *base_src_class = GST_BASE_SRC_CLASS(klass); GParamSpec *spec; parent_class = g_type_class_peek_parent(klass); gobject_class->dispose = dispose; gobject_class->set_property = set_property; gobject_class->get_property = get_property; element_class->change_state = change_state; base_src_class->start = start; base_src_class->stop = stop; base_src_class->is_seekable = is_seekable; base_src_class->create = create; spec = g_param_spec_string("test-directory", "Test directory", "The directory name in which test cases are stored", NULL, G_PARAM_READWRITE); g_object_class_install_property(gobject_class, ARG_TEST_DIRECTORY, spec); g_type_class_add_private(gobject_class, sizeof(GstCutterTestRunnerPrivate)); GST_DEBUG_CATEGORY_INIT(cutter_test_runner_debug, "cutter-test", 0, "Cutter test elements"); gst_element_class_add_pad_template(element_class, gst_static_pad_template_get(&cutter_test_runner_src_template_factory)); gst_element_class_set_metadata(element_class, "Cutter test runner", "Cutter test runner", "Cutter test runner", "g新部 Hiroyuki Ikezoe <*****@*****.**>"); }
static void webkit_video_sink_class_init(WebKitVideoSinkClass* klass) { GObjectClass* gobjectClass = G_OBJECT_CLASS(klass); GstBaseSinkClass* baseSinkClass = GST_BASE_SINK_CLASS(klass); GstElementClass* elementClass = GST_ELEMENT_CLASS(klass); gst_element_class_add_pad_template(elementClass, gst_static_pad_template_get(&s_sinkTemplate)); gst_element_class_set_metadata(elementClass, "WebKit video sink", "Sink/Video", "Sends video data from a GStreamer pipeline to WebKit", "Igalia, Alp Toker <*****@*****.**>"); g_type_class_add_private(klass, sizeof(WebKitVideoSinkPrivate)); gobjectClass->dispose = webkitVideoSinkDispose; gobjectClass->get_property = webkitVideoSinkGetProperty; gobjectClass->set_property = webkitVideoSinkSetProperty; baseSinkClass->unlock = webkitVideoSinkUnlock; baseSinkClass->unlock_stop = webkitVideoSinkUnlockStop; baseSinkClass->render = webkitVideoSinkRender; baseSinkClass->preroll = webkitVideoSinkRender; baseSinkClass->stop = webkitVideoSinkStop; baseSinkClass->start = webkitVideoSinkStart; baseSinkClass->set_caps = webkitVideoSinkSetCaps; baseSinkClass->propose_allocation = webkitVideoSinkProposeAllocation; g_object_class_install_property(gobjectClass, PROP_CAPS, g_param_spec_boxed("current-caps", "Current-Caps", "Current caps", GST_TYPE_CAPS, G_PARAM_READABLE)); g_object_class_install_property(gobjectClass, PROP_SILENT, g_param_spec_boolean("silent", "Silent", "Silent", TRUE, G_PARAM_READWRITE)); webkitVideoSinkSignals[REPAINT_REQUESTED] = g_signal_new("repaint-requested", G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, 0, // Class offset 0, // Accumulator 0, // Accumulator data g_cclosure_marshal_generic, G_TYPE_NONE, // Return type 1, // Only one parameter GST_TYPE_BUFFER); }
static void gst_gl_video_mixer_bin_class_init (GstGLVideoMixerBinClass * klass) { GstGLMixerBinClass *mixer_class = GST_GL_MIXER_BIN_CLASS (klass); GstElementClass *element_class = GST_ELEMENT_CLASS (klass); GObjectClass *gobject_class = G_OBJECT_CLASS (klass); mixer_class->create_input_pad = _create_video_mixer_input; gobject_class->set_property = gst_gl_video_mixer_bin_set_property; gobject_class->get_property = gst_gl_video_mixer_bin_get_property; g_object_class_install_property (gobject_class, PROP_BIN_BACKGROUND, g_param_spec_enum ("background", "Background", "Background type", GST_GL_TYPE_VIDEO_MIXER_BACKGROUND, DEFAULT_BACKGROUND, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); gst_element_class_set_metadata (element_class, "OpenGL video_mixer bin", "Bin/Filter/Effect/Video/Compositor", "OpenGL video_mixer bin", "Matthew Waters <*****@*****.**>"); }
static void gst_gl_effects_class_init (GstGLEffectsClass * klass) { GObjectClass *gobject_class; GstElementClass *element_class; gobject_class = (GObjectClass *) klass; element_class = GST_ELEMENT_CLASS (klass); gobject_class->set_property = gst_gl_effects_set_property; gobject_class->get_property = gst_gl_effects_get_property; GST_GL_FILTER_CLASS (klass)->filter_texture = gst_gl_effects_filter_texture; GST_GL_FILTER_CLASS (klass)->display_init_cb = gst_gl_effects_init_gl_resources; GST_GL_FILTER_CLASS (klass)->display_reset_cb = gst_gl_effects_reset_gl_resources; GST_GL_FILTER_CLASS (klass)->onStart = gst_gl_effects_init_resources; GST_GL_FILTER_CLASS (klass)->onStop = gst_gl_effects_reset_resources; GST_GL_FILTER_CLASS (klass)->onInitFBO = gst_gl_effects_on_init_gl_context; g_object_class_install_property (gobject_class, PROP_EFFECT, g_param_spec_enum ("effect", "Effect", "Select which effect apply to GL video texture", GST_TYPE_GL_EFFECTS_EFFECT, GST_GL_EFFECT_IDENTITY, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_HSWAP, g_param_spec_boolean ("hswap", "Horizontal Swap", "Switch video texture left to right, useful with webcams", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); gst_element_class_set_metadata (element_class, "Gstreamer OpenGL Effects", "Filter/Effect/Video", "GL Shading Language effects", "Filippo Argiolas <*****@*****.**>"); }
static void gst_gl_mosaic_class_init (GstGLMosaicClass * klass) { GObjectClass *gobject_class; GstElementClass *element_class; gobject_class = (GObjectClass *) klass; element_class = GST_ELEMENT_CLASS (klass); gobject_class->set_property = gst_gl_mosaic_set_property; gobject_class->get_property = gst_gl_mosaic_get_property; gst_element_class_set_metadata (element_class, "OpenGL mosaic", "Filter/Effect/Video", "OpenGL mosaic", "Julien Isorce <*****@*****.**>"); GST_GL_MIXER_CLASS (klass)->set_caps = gst_gl_mosaic_init_shader; GST_GL_MIXER_CLASS (klass)->reset = gst_gl_mosaic_reset; GST_GL_MIXER_CLASS (klass)->process_textures = gst_gl_mosaic_process_textures; GST_GL_BASE_MIXER_CLASS (klass)->supported_gl_api = GST_GL_API_OPENGL; }
static void gst_curl_ftp_sink_class_init (GstCurlFtpSinkClass * klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GstCurlBaseSinkClass *gstcurlbasesink_class = (GstCurlBaseSinkClass *) klass; GstElementClass *element_class = GST_ELEMENT_CLASS (klass); GST_DEBUG_CATEGORY_INIT (gst_curl_ftp_sink_debug, "curlftpsink", 0, "curl ftp sink element"); GST_DEBUG_OBJECT (klass, "class_init"); gst_element_class_set_metadata (element_class, "Curl ftp sink", "Sink/Network", "Upload data over FTP protocol using libcurl", "Patricia Muscalu <*****@*****.**>"); gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_curl_ftp_sink_finalize); gobject_class->set_property = gst_curl_ftp_sink_set_property; gobject_class->get_property = gst_curl_ftp_sink_get_property; gstcurlbasesink_class->set_protocol_dynamic_options_unlocked = set_ftp_dynamic_options_unlocked; gstcurlbasesink_class->set_options_unlocked = set_ftp_options_unlocked; g_object_class_install_property (gobject_class, PROP_FTP_PORT_ARG, g_param_spec_string ("ftp-port", "IP address for FTP PORT instruction", "The PORT instruction tells the remote server to connect to" " the IP address", "", G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_EPSV_MODE, g_param_spec_boolean ("epsv-mode", "Extended passive mode", "Enable the use of the EPSV command when doing passive FTP transfers", TRUE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_CREATE_DIRS, g_param_spec_boolean ("create-dirs", "Create missing directories", "Attempt to create missing directory included in the path", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); }