From a123de06c677ba6b81a80d59a82cd98315104699 Mon Sep 17 00:00:00 2001 From: Jonas Kvinge Date: Sun, 29 Sep 2024 23:33:47 +0200 Subject: [PATCH] GstEngine: Add mutex lock for checking stream url --- src/engine/gstengine.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/engine/gstengine.cpp b/src/engine/gstengine.cpp index d78e7c39..664d6cd2 100644 --- a/src/engine/gstengine.cpp +++ b/src/engine/gstengine.cpp @@ -212,10 +212,13 @@ bool GstEngine::Load(const QUrl &media_url, const QUrl &stream_url, const Engine crossfade = false; } - if (!crossfade && current_pipeline_ && current_pipeline_->stream_url() == stream_url && change & EngineBase::TrackChangeType::Auto) { - // We're not crossfading, and the pipeline is already playing the URI we want, so just do nothing. - current_pipeline_->SetEBUR128LoudnessNormalizingGain_dB(ebur128_loudness_normalizing_gain_db_); - return true; + if (!crossfade && current_pipeline_ && change & EngineBase::TrackChangeType::Auto) { + QMutexLocker l(current_pipeline_->mutex_url()); + if (current_pipeline_->stream_url() == stream_url) { + // We're not crossfading, and the pipeline is already playing the URI we want, so just do nothing. + current_pipeline_->SetEBUR128LoudnessNormalizingGain_dB(ebur128_loudness_normalizing_gain_db_); + return true; + } } GstEnginePipelinePtr pipeline = CreatePipeline(media_url, stream_url, gst_url, force_stop_at_end ? end_nanosec : 0, ebur128_loudness_normalizing_gain_db_);