diff options
author | Pavel Dubsky <pavel.dubsky@qt.io> | 2023-10-03 11:49:05 +0200 |
---|---|---|
committer | Pavel Dubsky <pavel.dubsky@qt.io> | 2023-10-04 21:51:31 +0200 |
commit | 194b1b22dcd49df3949a6c8ed5d54585970798cf (patch) | |
tree | 0fd8bd425ae2ce3b04fa39232084dceff118e295 /src/multimedia/windows | |
parent | 119aaa2aa8f8e6a0c3b9ada5397f6e9c00fdfab9 (diff) |
Add audio warm-up opt out option
Current workaround to fix audio cutting out in the beginning of the
audio on Windows introduced some weird side effects which are hard to
reproduce, such as: blocking sleep mode, stucking CPU core at the
minimum frequency. So far, there's no any other solution to the cutting
sound issue, so an environment variable that provides the ability to
opt out is introduced.
Task-number: QTBUG-117528
Task-number: QTBUG-117612
Pick-to: 6.6 6.5
Change-Id: I8b6ecab5cb3ae9136fd29adf5186d15c9128707f
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io>
Diffstat (limited to 'src/multimedia/windows')
-rw-r--r-- | src/multimedia/windows/qwindowsmediadevices.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/multimedia/windows/qwindowsmediadevices.cpp b/src/multimedia/windows/qwindowsmediadevices.cpp index 9669496d6..1b1ad194c 100644 --- a/src/multimedia/windows/qwindowsmediadevices.cpp +++ b/src/multimedia/windows/qwindowsmediadevices.cpp @@ -291,8 +291,20 @@ QPlatformAudioSink *QWindowsMediaDevices::createAudioSink(const QAudioDevice &de return new QWindowsAudioSink(devInfo->immDev(), parent); } +static bool isPrepareAudioEnabled() +{ + static bool isDisableAudioPrepareSet = false; + static const int disableAudioPrepare = + qEnvironmentVariableIntValue("QT_DISABLE_AUDIO_PREPARE", &isDisableAudioPrepareSet); + + return !isDisableAudioPrepareSet || disableAudioPrepare == 0; +} + void QWindowsMediaDevices::prepareAudio() { + if (!isPrepareAudioEnabled()) + return; + if (m_isAudioClientWarmedUp.exchange(true)) return; |