Details
-
Technical task
-
Resolution: Unresolved
-
P3: Somewhat important
-
None
-
None
-
-
Multimedia wk 49-50, Multimedia wk 51-2
Description
When making our control APIs aware of device connectivity (QAudioInput, QCamera, QAudioOutput), we are going to query QMediaDevices much more often in the code. Currently, querying the list of currently connected devices is not cached, and we will run a completely new device discovery session each time, along with any system calls necessary to do so. This can become quite heavy, and as such we should have some strategy that allows to cache the results and receive them quickly.
Some considerations:
- For a given QThread, is the list of devices updated immediately without giving control back to the event-loop? QMediaDevices currently exposes functions like "audioInputs()" as static, and can be invoked from any thread. Currently the implementation allows this because we don't do any caching.
- Do we update the existing QAudioDevicePrivate objects, or do we generate new ones?