diff --git a/src/engine/gstengine.cpp b/src/engine/gstengine.cpp index a27df2526..71c9aba29 100644 --- a/src/engine/gstengine.cpp +++ b/src/engine/gstengine.cpp @@ -368,6 +368,8 @@ const Engine::Scope &GstEngine::scope(int chunk_length) { EngineBase::OutputDetailsList GstEngine::GetOutputsList() const { + const_cast(this)->EnsureInitialised(); + EngineBase::OutputDetailsList ret; PluginDetailsList plugins = GetPluginList("Sink/Audio"); @@ -391,6 +393,8 @@ EngineBase::OutputDetailsList GstEngine::GetOutputsList() const { bool GstEngine::ValidOutput(const QString &output) { + EnsureInitialised(); + PluginDetailsList plugins = GetPluginList("Sink/Audio"); for (const PluginDetails &plugin : plugins) { if (plugin.name == output) return(true); @@ -701,6 +705,8 @@ void GstEngine::BufferingFinished() { GstEngine::PluginDetailsList GstEngine::GetPluginList(const QString &classname) const { + const_cast(this)->EnsureInitialised(); + PluginDetailsList ret; GstRegistry *registry = gst_registry_get(); @@ -750,7 +756,7 @@ QByteArray GstEngine::FixupUrl(const QUrl &url) { QStringList path = url.path().split('/'); str = QString("cdda://%1a").arg(path.takeLast()); QString device = path.join("/"); - current_pipeline_->SetSourceDevice(device); + if (current_pipeline_) current_pipeline_->SetSourceDevice(device); } uri = str.toLocal8Bit(); }