GstEngine: Enable exclusive mode for wasapi2sink
This commit is contained in:
@@ -83,6 +83,7 @@ constexpr char InterAudiosink[] = "interaudiosink";
|
|||||||
constexpr char kDirectSoundSink[] = "directsoundsink";
|
constexpr char kDirectSoundSink[] = "directsoundsink";
|
||||||
constexpr char kOSXAudioSink[] = "osxaudiosink";
|
constexpr char kOSXAudioSink[] = "osxaudiosink";
|
||||||
constexpr char kWASAPISink[] = "wasapisink";
|
constexpr char kWASAPISink[] = "wasapisink";
|
||||||
|
constexpr char kWASAPI2Sink[] = "wasapi2sink";
|
||||||
constexpr int kDiscoveryTimeoutS = 10;
|
constexpr int kDiscoveryTimeoutS = 10;
|
||||||
constexpr qint64 kTimerIntervalNanosec = 1000 * kNsecPerMsec; // 1s
|
constexpr qint64 kTimerIntervalNanosec = 1000 * kNsecPerMsec; // 1s
|
||||||
constexpr qint64 kPreloadGapNanosec = 8000 * kNsecPerMsec; // 8s
|
constexpr qint64 kPreloadGapNanosec = 8000 * kNsecPerMsec; // 8s
|
||||||
@@ -471,7 +472,7 @@ EngineBase::OutputDetailsList GstEngine::GetOutputsList() const {
|
|||||||
const QStringList classes = metadata.split(u'/');
|
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)))) {
|
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));
|
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');
|
description.append(u'2');
|
||||||
}
|
}
|
||||||
else if (name == "pipewiresink"_L1 && description == "Send video to PipeWire"_L1) {
|
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 {
|
bool GstEngine::ExclusiveModeSupport(const QString &output) const {
|
||||||
return output == QLatin1String(kWASAPISink);
|
return output == QLatin1String(kWASAPISink) || output == QLatin1String(kWASAPI2Sink);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GstEngine::ReloadSettings() {
|
void GstEngine::ReloadSettings() {
|
||||||
|
|||||||
Reference in New Issue
Block a user