static void gst_smpte_class_init (GstSMPTEClass * klass) { GObjectClass *gobject_class; GstElementClass *gstelement_class; gobject_class = (GObjectClass *) klass; gstelement_class = (GstElementClass *) klass; parent_class = g_type_class_peek_parent (klass); gobject_class->set_property = gst_smpte_set_property; gobject_class->get_property = gst_smpte_get_property; gobject_class->finalize = (GObjectFinalizeFunc) gst_smpte_finalize; _gst_mask_init (); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_TYPE, g_param_spec_enum ("type", "Type", "The type of transition to use", GST_TYPE_SMPTE_TRANSITION_TYPE, DEFAULT_PROP_TYPE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_BORDER, g_param_spec_int ("border", "Border", "The border width of the transition", 0, G_MAXINT, DEFAULT_PROP_BORDER, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_DEPTH, g_param_spec_int ("depth", "Depth", "Depth of the mask in bits", 1, 24, DEFAULT_PROP_DEPTH, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_DURATION, g_param_spec_uint64 ("duration", "Duration", "Duration of the transition effect in nanoseconds", 0, G_MAXUINT64, DEFAULT_PROP_DURATION, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_INVERT, g_param_spec_boolean ("invert", "Invert", "Invert transition mask", DEFAULT_PROP_INVERT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_smpte_change_state); gst_element_class_add_pad_template (gstelement_class, gst_static_pad_template_get (&gst_smpte_sink1_template)); gst_element_class_add_pad_template (gstelement_class, gst_static_pad_template_get (&gst_smpte_sink2_template)); gst_element_class_add_pad_template (gstelement_class, gst_static_pad_template_get (&gst_smpte_src_template)); gst_element_class_set_static_metadata (gstelement_class, "SMPTE transitions", "Filter/Editor/Video", "Apply the standard SMPTE transitions on video images", "Wim Taymans <*****@*****.**>"); }
static void gst_smpte_alpha_class_init (GstSMPTEAlphaClass * klass) { GObjectClass *gobject_class = (GObjectClass *) klass; GstBaseTransformClass *trans_class = (GstBaseTransformClass *) klass; gobject_class->set_property = gst_smpte_alpha_set_property; gobject_class->get_property = gst_smpte_alpha_get_property; gobject_class->finalize = (GObjectFinalizeFunc) gst_smpte_alpha_finalize; _gst_mask_init (); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_TYPE, g_param_spec_enum ("type", "Type", "The type of transition to use", GST_TYPE_SMPTE_TRANSITION_TYPE, DEFAULT_PROP_TYPE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_BORDER, g_param_spec_int ("border", "Border", "The border width of the transition", 0, G_MAXINT, DEFAULT_PROP_BORDER, GST_PARAM_CONTROLLABLE | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_DEPTH, g_param_spec_int ("depth", "Depth", "Depth of the mask in bits", 1, 24, DEFAULT_PROP_DEPTH, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_POSITION, g_param_spec_double ("position", "Position", "Position of the transition effect", 0.0, 1.0, DEFAULT_PROP_POSITION, GST_PARAM_CONTROLLABLE | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** * GstSMPTEAlpha:invert: * * Set to TRUE to invert the transition mask (ie. flip it horizontally). * * Since: 0.10.23 */ g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_INVERT, g_param_spec_boolean ("invert", "Invert", "Invert transition mask", DEFAULT_PROP_POSITION, GST_PARAM_CONTROLLABLE | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); trans_class->set_caps = GST_DEBUG_FUNCPTR (gst_smpte_alpha_setcaps); trans_class->get_unit_size = GST_DEBUG_FUNCPTR (gst_smpte_alpha_get_unit_size); trans_class->transform = GST_DEBUG_FUNCPTR (gst_smpte_alpha_transform); trans_class->before_transform = GST_DEBUG_FUNCPTR (gst_smpte_alpha_before_transform); trans_class->transform_caps = GST_DEBUG_FUNCPTR (gst_smpte_alpha_transform_caps); }
static void gst_smpte_class_init (GstSMPTEClass * klass) { GObjectClass *gobject_class; GstElementClass *gstelement_class; gobject_class = (GObjectClass *) klass; gstelement_class = (GstElementClass *) klass; parent_class = g_type_class_peek_parent (klass); gobject_class->set_property = gst_smpte_set_property; gobject_class->get_property = gst_smpte_get_property; gobject_class->finalize = (GObjectFinalizeFunc) gst_smpte_finalize; _gst_mask_init (); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_TYPE, g_param_spec_enum ("type", "Type", "The type of transition to use", GST_TYPE_SMPTE_TRANSITION_TYPE, DEFAULT_PROP_TYPE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_FPS, g_param_spec_float ("fps", "FPS", "Frames per second if no input files are given (deprecated)", 0., G_MAXFLOAT, DEFAULT_PROP_FPS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_BORDER, g_param_spec_int ("border", "Border", "The border width of the transition", 0, G_MAXINT, DEFAULT_PROP_BORDER, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_DEPTH, g_param_spec_int ("depth", "Depth", "Depth of the mask in bits", 1, 24, DEFAULT_PROP_DEPTH, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_DURATION, g_param_spec_uint64 ("duration", "Duration", "Duration of the transition effect in nanoseconds", 0, G_MAXUINT64, DEFAULT_PROP_DURATION, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_INVERT, g_param_spec_boolean ("invert", "Invert", "Invert transition mask", DEFAULT_PROP_INVERT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_smpte_change_state); }
static void gst_smpte_alpha_class_init (GstSMPTEAlphaClass * klass) { GObjectClass *gobject_class = (GObjectClass *) klass; GstElementClass *element_class = (GstElementClass *) (klass); GstBaseTransformClass *trans_class = (GstBaseTransformClass *) klass; GstVideoFilterClass *vfilter_class = (GstVideoFilterClass *) klass; gobject_class->set_property = gst_smpte_alpha_set_property; gobject_class->get_property = gst_smpte_alpha_get_property; gobject_class->finalize = (GObjectFinalizeFunc) gst_smpte_alpha_finalize; _gst_mask_init (); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_TYPE, g_param_spec_enum ("type", "Type", "The type of transition to use", GST_TYPE_SMPTE_TRANSITION_TYPE, DEFAULT_PROP_TYPE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_BORDER, g_param_spec_int ("border", "Border", "The border width of the transition", 0, G_MAXINT, DEFAULT_PROP_BORDER, GST_PARAM_CONTROLLABLE | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_DEPTH, g_param_spec_int ("depth", "Depth", "Depth of the mask in bits", 1, 24, DEFAULT_PROP_DEPTH, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_POSITION, g_param_spec_double ("position", "Position", "Position of the transition effect", 0.0, 1.0, DEFAULT_PROP_POSITION, GST_PARAM_CONTROLLABLE | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** * GstSMPTEAlpha:invert: * * Set to TRUE to invert the transition mask (ie. flip it horizontally). * * Since: 0.10.23 */ g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_INVERT, g_param_spec_boolean ("invert", "Invert", "Invert transition mask", DEFAULT_PROP_POSITION, GST_PARAM_CONTROLLABLE | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); trans_class->before_transform = GST_DEBUG_FUNCPTR (gst_smpte_alpha_before_transform); trans_class->transform_caps = GST_DEBUG_FUNCPTR (gst_smpte_alpha_transform_caps); vfilter_class->set_info = GST_DEBUG_FUNCPTR (gst_smpte_alpha_set_info); vfilter_class->transform_frame = GST_DEBUG_FUNCPTR (gst_smpte_alpha_transform_frame); gst_element_class_add_pad_template (element_class, gst_static_pad_template_get (&gst_smpte_alpha_sink_template)); gst_element_class_add_pad_template (element_class, gst_static_pad_template_get (&gst_smpte_alpha_src_template)); gst_element_class_set_static_metadata (element_class, "SMPTE transitions", "Filter/Editor/Video", "Apply the standard SMPTE transitions as alpha on video images", "Wim Taymans <*****@*****.**>"); }