如何更改 Gstreamer 插件的等级?

How do I change the rank of a Gstreamer plugin?

我已经下载并编译了 vaapi 插件集,在某些特定情况下效果很好,但它也破坏了我现有的许多管道。我想先修改Gstreamer使用其他解码器。

有没有办法在不修改原始来源的情况下改变 Gstreamer 插件的排名?

我没有在 Gstreamer 注册表文件的配置级别看到执行此操作的方法。不过这段代码可以解决问题:

GstRegistry* reg = gst_registry_get();

GstPluginFeature* vaapi_decode = gst_registry_lookup_feature(reg, "vaapidecode");

if(vaapi_decode == NULL) {
    return;
}

gst_plugin_feature_set_rank(vaapi_decode, GST_RANK_PRIMARY - 1);

gst_object_unref(vaapi_decode);