[ SOLVED ] WMF QtMultimedia backend crashing when the application is idle for a long time
The application is using QMediaPlayer to play some audio files - wav, mp3 mainly. The scenario for reproducing the Windows Media Foundation (WMF) crash is the following:
- start the application
- leave it for 2 hours to be idle
- play the given audio file
The file gets played but the application crashes when it reaches the execution of the MFCreateAudioRenderer function. Here is the actual call stack. As you could see above the callstack area the thread is not the main one so presumably it could be some multithreading issue. The used environment is:
- Windows 7 32/64 bit. (very important). Not reproduced in Windows 8.1 64-bit. Not tested on Windows 8 32/64 bit.
- Qt 5.3.2 MSVC 12 (MSVS 2013) OpenGL 32-bit.
- The crash happens both in release and debug.
Has anyone had the same problem with the WMF (plugins/mediaservice/wmfengine.dll) backend for Qt and how could I programmatically use the other two backends - the qt one and the DirectSound one (dsengine.dll)?
A way to workaround this problem is to create new QMediaPlayer right before you use it.