diff --git a/src/VideoReceiver/GStreamer.cc b/src/VideoReceiver/GStreamer.cc index 983393563b2ce67846eb7d5bf042259227974f24..36959476d000044a1622b87317b57b2a64fa62de 100644 --- a/src/VideoReceiver/GStreamer.cc +++ b/src/VideoReceiver/GStreamer.cc @@ -105,6 +105,23 @@ static void qgcputenv(const QString& key, const QString& root, const QString& pa } #endif +static void +blacklist() +{ + GstRegistry* reg; + + if ((reg = gst_registry_get()) == nullptr) { + return; + } + + GstPluginFeature* plugin; + + if ((plugin = gst_registry_lookup_feature(reg, "bcmdec")) != nullptr) { + qCCritical(GStreamerLog) << "Disable bcmdec"; + gst_plugin_feature_set_rank(plugin, GST_RANK_NONE); + } +} + void GStreamer::initialize(int argc, char* argv[], int debuglevel) { @@ -173,6 +190,8 @@ GStreamer::initialize(int argc, char* argv[], int debuglevel) gst_ios_post_init(); #endif + blacklist(); + /* the plugin must be loaded before loading the qml file to register the * GstGLVideoItem qml item * FIXME Add a QQmlExtensionPlugin into qmlglsink to register GstGLVideoItem