根据前面已翻译的Gstramer插件教程部分,我们知道,可以通过gst-template创建一个基础的模板。在模板文件中,我们可以看到,其包含一个*_class_init()函数和一个*_init()函数。
*_class_init函数详解
element会先调用*_class_init()函数进入初始化,在此函数中,一般会为class设定设置性质的函数,如videotestsrc中的:
gobject_class->set_property = gst_video_test_src_set_property;
gobject_class->get_property = gst_video_test_src_get_property;
通过设置set和get函数,框架就能知道如何设置你element中独有的性质。之后,会调用g_object_class_install_property函数为此element设定性质,在此之前,必须先设置set和get函数,然后框架会在一个静态的参数池中,根据需要添加性质的名称,判断此element是否已经包含此性质,若已包含则发出警告,或未包含,则将在静态参数池中对应此element的地方添加此性质。一般我们编写应用程序时,在创建element后,由于设置了set和get函数,可调用
g_object_set函数来设置此element的一些性质。