static gint sort_plugins (GstPlugin * a, GstPlugin * b)
{
int ret = strcmp (gst_plugin_get_source(a), gst_plugin_get_source(b));
if (ret == 0){
ret = strcmp (gst_plugin_get_name(a), gst_plugin_get_name(b));
}
return ret;
}
void printElementInfo()
{
GList *plugins, *l;
plugins = gst_registry_get_plugin_list (gst_registry_get ());
plugins = g_list_sort (plugins, (GCompareFunc) sort_plugins);
int featureTotal = 0;
for (l = plugins; l != NULL; l = l->next) {
GList *features, *f;
GstPlugin *plugin = GST_PLUGIN(l->data);
features = gst_registry_get_feature_list_by_plugin (gst_registry_get (), gst_plugin_get_name (plugin));
for (f = features; f != NULL; f = f->next) {
GstPluginFeature *feature = GST_PLUGIN_FEATURE(f->data);
qDebug()<<"plugin_name:"<<gst_plugin_get_name(plugin) << " : " << gst_plugin_feature_get_name(feature);
++featureTotal;
}
gst_plugin_feature_list_free(features);
}
qDebug()<<"---printElementInfo----plugins total:"<<g_list_length(plugins)<<" featureTotal:"<<featureTotal;
gst_plugin_list_free(plugins);
}
int main(int argc,char *argv[])
{
gst_init(&argc, &argv);
GstRegistry *registry = gst_registry_get();
const char *path = "/lib-vs/gstreamer-1.0";
printf("gstreamer plugin path:%s\n",path);
gst_registry_scan_path(registry, path.toLocal8Bit());
printElementInfo();
return 0;
}
基于GStreamer开发程序列举加载的插件
最新推荐文章于 2024-06-23 16:36:06 发布