in awstreamer/gst_plugins/cvmlfilter/gstcvmlfilter.cpp [111:152]
static void gst_cvmlfilter_class_init(GstCvmlFilterClass * klass) {
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
GstBaseTransformClass *base_transform_class = GST_BASE_TRANSFORM_CLASS (klass);
GstVideoFilterClass *video_filter_class = GST_VIDEO_FILTER_CLASS (klass);
/* Setting up pads and setting metadata should be moved to
base_class_init if you intend to subclass this class. */
gst_element_class_add_pad_template (GST_ELEMENT_CLASS(klass),
gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS,
gst_caps_from_string (VIDEO_SRC_CAPS)));
gst_element_class_add_pad_template (GST_ELEMENT_CLASS(klass),
gst_pad_template_new ("sink", GST_PAD_SINK, GST_PAD_ALWAYS,
gst_caps_from_string (VIDEO_SINK_CAPS)));
gst_element_class_set_static_metadata (GST_ELEMENT_CLASS(klass),
"CVML Filter", "Generic", "CV/ML filtering plug-in",
"Bartek Pawlik <pawlikb@amazon.com>");
gobject_class->set_property = gst_cvmlfilter_set_property;
gobject_class->get_property = gst_cvmlfilter_get_property;
gobject_class->dispose = gst_cvmlfilter_dispose;
gobject_class->finalize = gst_cvmlfilter_finalize;
base_transform_class->start = GST_DEBUG_FUNCPTR (gst_cvmlfilter_start);
base_transform_class->stop = GST_DEBUG_FUNCPTR (gst_cvmlfilter_stop);
video_filter_class->set_info = GST_DEBUG_FUNCPTR (gst_cvmlfilter_set_info);
video_filter_class->transform_frame = GST_DEBUG_FUNCPTR (gst_cvmlfilter_transform_frame);
video_filter_class->transform_frame_ip = GST_DEBUG_FUNCPTR (gst_cvmlfilter_transform_frame_ip);
g_object_class_install_property(gobject_class, PROP_AWS_REGION,
g_param_spec_string ("aws-region", "AWS Region", "AWS Region", DEFAULT_REGION,
(GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
g_object_class_install_property(gobject_class, PROP_FILTER_TAGS,
g_param_spec_boxed ("stream-tags", "Stream Tags",
"key-value pair that you can define and assign to each stream",
GST_TYPE_STRUCTURE, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
processing_complete_signal =
g_signal_new ("processing-complete", G_TYPE_FROM_CLASS(klass),
G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL,
G_TYPE_NONE, 1, G_TYPE_UINT);
}