diff options
author | Tim Blechmann <[email protected]> | 2025-07-03 09:18:51 +0800 |
---|---|---|
committer | Tim Blechmann <[email protected]> | 2025-07-04 08:23:13 +0800 |
commit | ce63fb9c4e6c191cccc616219c32684cda4e41bb (patch) | |
tree | 2f8a5f54177db2a0aea29d281ae4a5a1c66c3f3a | |
parent | 7ba37d17f2f0ea9f453634aa505afd23dccec590 (diff) |
According to pipewire's documentation, setting a nullptr key clears all
metadata.
Fixes: QTBUG-138197
Pick-to: 6.10
Change-Id: I2f09625a6691004f5002484739217c657b4efd19
Reviewed-by: Mikko Hallamaa <[email protected]>
Reviewed-by: Timur Pocheptsov <[email protected]>
-rw-r--r-- | src/multimedia/pipewire/qpipewire_audiocontextmanager.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/multimedia/pipewire/qpipewire_audiocontextmanager.cpp b/src/multimedia/pipewire/qpipewire_audiocontextmanager.cpp index 7366032a6..df5275820 100644 --- a/src/multimedia/pipewire/qpipewire_audiocontextmanager.cpp +++ b/src/multimedia/pipewire/qpipewire_audiocontextmanager.cpp @@ -362,6 +362,13 @@ int QAudioContextManager::handleMetadata(const MetadataRecord &record) qDebug(lcPipewireRegistry) << "metadata:" << record.key << record.type << record.value; + if (record.key == nullptr) { + // "NULL clears all metadata for the subject" + m_deviceMonitor->setDefaultAudioSource(QAudioDeviceMonitor::NoDefaultDevice); + m_deviceMonitor->setDefaultAudioSink(QAudioDeviceMonitor::NoDefaultDevice); + return 0; + } + auto extractName = [&]() -> std::optional<QByteArray> { if (record.type != "Spa:String:JSON"sv) return std::nullopt; |