如何在 Gstreamer 中检索 属性 个名称

How to retrieve Property names in Gstreamer

我想检索 C++ 中 GstElement 的元素 属性 名称。 gst-inspect 写了关于插件的所有细节。

我可以在代码中检索像这样的工厂和插件详细信息。
工厂详情:
插件详情:

通过写作,
gst_plugin_feature_get_name(GST_PLUGIN_FEATURE(工厂)), gst_element_factory_get_metadata(工厂,GST_ELEMENT_METADATA_KLASS), gst_element_factory_get_metadata(工厂,GST_ELEMENT_METADATA_DESCRIPTION), gst_element_factory_get_metadata(工厂,GST_ELEMENT_METADATA_LONGNAME));

但是,我在 Gstreamer 中找不到任何关于 属性 详细信息(元素属性部分)的函数。

我希望 C++ 代码像 gst_plugin_feature_get_name(GST_PLUGIN_FEATURE(工厂)), gst_element_factory_get_metadata(工厂,GST_ELEMENT_METADATA_KLASS), gst_element_factory_get_metadata(工厂,GST_ELEMENT_METADATA_DESCRIPTION), gst_element_factory_get_metadata(工厂,GST_ELEMENT_METADATA_LONGNAME)); 那。

我想检索 GstElement 的所有 属性 名称。 例如,对于 openh264enc
比特率、复杂度、gop-size 等

我在 post 问题后解决了这个问题...但是,由于它可能对其他人有用,所以我正在 post 寻找答案。

GObjectClass* objClass = G_OBJECT_GET_CLASS(*element);
guint n_props;
GParamSpec** props;
props = g_object_class_list_properties(objClass,&n_props);

if(objClass != nullptr){
    if(props != nullptr){
        for (guint i = 0; i < n_props; i++) {
            if(props[i] != nullptr)
                qInfo() << props[i]->name;
        }
    }else{
        qWarning() << "Element props are NULL!";
    }
}else{
    qWarning() << "Obj Class is NULL!";
}