From a6ab1a7689828a51de50febdfa48bd236b191106 Mon Sep 17 00:00:00 2001 From: Jonas Kvinge Date: Sun, 19 Oct 2025 19:09:49 +0200 Subject: [PATCH] GstEngine: Enable exclusive mode for wasapi2sink --- src/engine/gstengine.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/engine/gstengine.cpp b/src/engine/gstengine.cpp index e9b80bef3..c7b6275bc 100644 --- a/src/engine/gstengine.cpp +++ b/src/engine/gstengine.cpp @@ -83,6 +83,7 @@ constexpr char InterAudiosink[] = "interaudiosink"; constexpr char kDirectSoundSink[] = "directsoundsink"; constexpr char kOSXAudioSink[] = "osxaudiosink"; constexpr char kWASAPISink[] = "wasapisink"; +constexpr char kWASAPI2Sink[] = "wasapi2sink"; constexpr int kDiscoveryTimeoutS = 10; constexpr qint64 kTimerIntervalNanosec = 1000 * kNsecPerMsec; // 1s constexpr qint64 kPreloadGapNanosec = 8000 * kNsecPerMsec; // 8s @@ -471,7 +472,7 @@ EngineBase::OutputDetailsList GstEngine::GetOutputsList() const { const QStringList classes = metadata.split(u'/'); if (classes.contains("Audio"_L1, Qt::CaseInsensitive) && (classes.contains("Sink"_L1, Qt::CaseInsensitive) || (classes.contains("Source"_L1, Qt::CaseInsensitive) && name.contains("sink"_L1)))) { QString description = QString::fromUtf8(gst_element_factory_get_metadata(factory, GST_ELEMENT_METADATA_DESCRIPTION)); - if (name == "wasapi2sink"_L1 && description == "Stream audio to an audio capture device through WASAPI"_L1) { + if (name == QLatin1String(kWASAPI2Sink) && description == "Stream audio to an audio capture device through WASAPI"_L1) { description.append(u'2'); } else if (name == "pipewiresink"_L1 && description == "Send video to PipeWire"_L1) { @@ -512,7 +513,7 @@ bool GstEngine::ALSADeviceSupport(const QString &output) const { } bool GstEngine::ExclusiveModeSupport(const QString &output) const { - return output == QLatin1String(kWASAPISink); + return output == QLatin1String(kWASAPISink) || output == QLatin1String(kWASAPI2Sink); } void GstEngine::ReloadSettings() {