[Development] QtMultimedia FM radio and plugin support in Qt6

Lars Knoll lars.knoll at qt.io
Mon Dec 13 09:14:12 CET 2021


Hi Alberto,

> On 12 Dec 2021, at 08:03, Alberto Mardegan <mardy at users.sourceforge.net> wrote:
> 
> Hi all!
>  When the new QtMultimedia was announced [1], there was a mention that
> the Radio API was being removed (by the way, there is no mention of this
> removal in the migration document [2]). Did it happen because of a lack
> of time, or were there other reasons? Is it going to come back?

It wasn’t mentioned because the API was not implemented in any of the backends we provided, ie. it was non-functional for regular Qt packages.
> 
> I also would like to resurrect the topic of loadable plugins for the
> backends. While in Ubuntu Touch we don't have plans to migrate to Qt6
> any time soon, this is definitely going to happen sooner or later, and
> our backend is not supported. So the obvious question is how we will
> have to proceed: would the Qt project accept the contribution of an
> additional backend, are there any chances of getting the plugin API
> back, or should we maintain an out-of-tree mega patch for our backend?

We could consider having one plugin for all of Qt MM. But I certainly do not want to go back to what we had in Qt 5, namely one plugin per functionality group, as that makes things extremely messy to implement.

I would be fine with an additional backend maintained inside Qt MM, but it also depends a bit on what you prefer. Btw, how is your backend different from what we have in Qt 5.15?
> 
> The latter option, while the simplest for the Qt Project, would be
> rather hard for us to work with.

I agree. A fork or a mega patch is the least desirable option. So let’s focus on the other two possibilities. Either a plugin infrastructure or working inside Qt project.

One thing I can say already now is that I do not want to go back to Qt 5 times and make the backend API public. We will need the freedom to change the API between versions where required. 

> I wonder, therefore, if it would be
> possible to have a compromise, that is that the plugin support gets
> re-introduced as a build option, as if it was a backend on its own like
> the Linux, Android, Windows etc. ones.  Or if it was somehow delivered
> as a private API with no promise of stability, that would also do it.

It is already available as private API, and there’s a hook to load a different backend in 6.2. Have a look at
QPlatformMediaIntegration::setIntegration(). We’re using it to test the frontend API with a dummy backend. 

So you should be able to do most things today, but you’d need a global constructor functions that sets up the integration somewhere.

Cheers,
Lars

> 
> Ciao,
>  Alberto
> 
> [1]: https://lists.qt-project.org/pipermail/development/2021-May/041458.html
> [2]: https://doc.qt.io/QT-6/qtmultimedia-changes-qt6.html
> 
> -- 
> http://www.mardy.it - Geek in un lingua international
> _______________________________________________
> Development mailing list
> Development at qt-project.org
> https://lists.qt-project.org/listinfo/development



More information about the Development mailing list