GstEngine: Add mutex lock for checking stream url

This commit is contained in:
Jonas Kvinge 2024-09-29 23:33:47 +02:00
parent 62f2aee00c
commit a123de06c6
1 changed files with 7 additions and 4 deletions

View File

@ -212,10 +212,13 @@ bool GstEngine::Load(const QUrl &media_url, const QUrl &stream_url, const Engine
crossfade = false; crossfade = false;
} }
if (!crossfade && current_pipeline_ && current_pipeline_->stream_url() == stream_url && change & EngineBase::TrackChangeType::Auto) { if (!crossfade && current_pipeline_ && change & EngineBase::TrackChangeType::Auto) {
// We're not crossfading, and the pipeline is already playing the URI we want, so just do nothing. QMutexLocker l(current_pipeline_->mutex_url());
current_pipeline_->SetEBUR128LoudnessNormalizingGain_dB(ebur128_loudness_normalizing_gain_db_); if (current_pipeline_->stream_url() == stream_url) {
return true; // 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_); GstEnginePipelinePtr pipeline = CreatePipeline(media_url, stream_url, gst_url, force_stop_at_end ? end_nanosec : 0, ebur128_loudness_normalizing_gain_db_);