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, DEFAULT_DOWNMIX, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); gst_element_class_add_static_pad_template_with_gtype (element_class, &src_factory, GST_TYPE_AGGREGATOR_PAD); gst_element_class_add_static_pad_template_with_gtype (element_class, &sink_factory, GST_TYPE_GL_STEREO_MIX_PAD); element_class->request_new_pad = GST_DEBUG_FUNCPTR (gst_gl_stereo_mix_request_new_pad); element_class->release_pad = GST_DEBUG_FUNCPTR (gst_gl_stereo_mix_release_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; agg_class->negotiated_src_caps = _negotiated_caps; videoaggregator_class->aggregate_frames = gst_gl_stereo_mix_aggregate_frames; videoaggregator_class->update_caps = _update_caps; videoaggregator_class->create_output_buffer = gst_gl_stereo_mix_create_output_buffer; base_mix_class->supported_gl_api = GST_GL_API_GLES2 | GST_GL_API_OPENGL | GST_GL_API_OPENGL3; }
static void gst_audiomixer_class_init (GstAudioMixerClass * klass) { GstElementClass *gstelement_class = (GstElementClass *) klass; GstAudioAggregatorClass *aagg_class = (GstAudioAggregatorClass *) klass; gst_element_class_add_static_pad_template_with_gtype (gstelement_class, &gst_audiomixer_src_template, GST_TYPE_AUDIO_AGGREGATOR_CONVERT_PAD); gst_element_class_add_static_pad_template_with_gtype (gstelement_class, &gst_audiomixer_sink_template, GST_TYPE_AUDIO_MIXER_PAD); gst_element_class_set_static_metadata (gstelement_class, "AudioMixer", "Generic/Audio", "Mixes multiple audio streams", "Sebastian Dröge <*****@*****.**>"); gstelement_class->request_new_pad = GST_DEBUG_FUNCPTR (gst_audiomixer_request_new_pad); gstelement_class->release_pad = GST_DEBUG_FUNCPTR (gst_audiomixer_release_pad); aagg_class->aggregate_one_buffer = gst_audiomixer_aggregate_one_buffer; }