Details
-
Technical task
-
Resolution: Fixed
-
P3: Somewhat important
-
None
-
None
-
-
Multimedia wk 49-50, Multimedia wk 51-2, Multimedia wk 5-6, Multimedia wk 7-8, Multimedia, weeks 9-10, Multimedia, weeks 11-12, Multimedia, weeks 13-14, Multimedia, weeks 15-16
-
ae7d7d0c6 (dev), 6eef34fe9 (dev), 68cbd9cbf (dev), db6423c4a (dev), 1e40347e6 (6.9), a45f42d11 (6.9), 4e1192cbe (6.9), 6ab58bce1 (6.9), 5a01175da (6.8), 6e8d1997c (6.8), ed3ca5381 (6.8), 1ff10b539 (6.8), 64af38f3b (dev), c18513c96 (dev), 727a66fd2 (6.9)
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?
Attachments
For Gerrit Dashboard: QTBUG-132297 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
615961,1 | Improve logic of caching audio devices | tqtc/lts-6.5 | qt/tqtc-qtmultimedia | Status: NEW | +2 | 0 |
615962,1 | Rename QPlatformVideoDevices::videoDevices => videoInputs | tqtc/lts-6.5 | qt/tqtc-qtmultimedia | Status: NEW | +2 | 0 |
615963,1 | Decouple VideoDevices from MediaDevices | tqtc/lts-6.5 | qt/tqtc-qtmultimedia | Status: NEW | 0 | 0 |
617555,1 | Rename QPlatformMediaDevices => QPlatformAudioDevices | tqtc/lts-6.5 | qt/tqtc-qtmultimedia | Status: NEW | 0 | 0 |
618597,1 | Implement cache for video inputs | tqtc/lts-6.5 | qt/tqtc-qtmultimedia | Status: NEW | 0 | 0 |
618598,1 | Implement lazy initialization of the audio pipeline in QMediaDevices | tqtc/lts-6.5 | qt/tqtc-qtmultimedia | Status: NEW | 0 | 0 |