GstEngine: Enable exclusive mode for wasapi2sink

This commit is contained in:
Jonas Kvinge
2025-10-19 19:09:49 +02:00
parent 098b21d818
commit a6ab1a7689

View File

@@ -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() {