Qt chief maintainer Lars Knoll has merged a reworked version of Qt Multimedia to the dev branch of the project, meaning there’s a good chance the module will make its way into the Qt 6.2 release of the framework – as promised late last year.
Qt Multimedia was among the modules that were skipped in the porting process from version 5 to 6 of the Qt application process to free up capacities for essential framework work. Since then, the Qt team spent some time cleaning up the module’s architecture and public API, cutting the 140k lines of code it had in Qt 5.15 down to 73k.
According to Knoll, these steps were needed to make Qt Multimedia maintainable again. “[We] never really got to a point where it offered a consistent experience across all platforms,” Knoll wrote in a message listing the changes.
But it’s not only the project maintainers who get to benefit from the revisions; there are also lots of improvements users can get excited about. There’s now support for multiple audio/video/subtitle streams when playing back media, which can help to come up with more accessible offerings. High-res content providers in particular might benefit from recently added functionality to render a wider variety of uncompressed video formats and better use available hardware to speed up the process.
The reworked module also comes with a new API called QMediaDevices to help discover input and output devices and inform developers about changes in that context. Freshly added QMediaFormat API, meanwhile, allows devs to query for supported codecs and file formats.
“Apart from cleaning up the backend API and greatly simplifying it, I also chose to make it private and remove the plugin architecture around it. The backend is now selected at compile time, and we’re now only supporting one backend per platform,” Knoll wrote.
Implementations still have some way to go, though the gstreamer (Linux) and AVFoundation (iOS, macOS) backends were already described as “pretty decent”.
Devs wanting to lend a hand before the 6.2 feature freeze can help getting support for camera and media capture on Windows and the Android backend into shape, as those still need some more work at this point.
QNX support has been postponed to after 6.2.
Users not that much into implementing should consider taking the Multimedia module and its API for a spin and give feedback so the team can quickly attack the bits that are not working. After all, the module is the one that “is changing the most” between the 5.x and 6.x series, so thorough testing isn’t a bad idea.
Qt 6.2’s release is planned for September 2021, though history suggests that date might be revised to October.