Multimedia frameworks in Qt

So the three multimedia API’s that are planned for inclusion in Qt are as follows:

  1. Phonon. The first multimedia API in Qt, written mostly by Matthias Kretz and with some help from Trolltech to Qt-ify the API, and included in Qt since 4.4.0. Written as a ‘replacement’ for various multimedia libraries (like Xine, libvlc, gstreamer), abstracting the API away, so the application developer doesn’t have to worry about which multimedia library they use, and if it got abandoned (then it would just take someone to write a new backend, and voila, all the apps worked again, without having to be updated to the new API).
  2. QtMultimedia. A low-level multimedia API written by the Qt Brisbane office, and to be included in Qt 4.6.0. It will probably make sense to use as much of this API as possible in the different Phonon backends, as it provides platform-agnostic access to audio outputs, inputs, and some video handling. I’ve talked a bit with the KMess developers and with Matthias Kretz, and we will probably try to get webcam/video input support into QtMultimedia, and then eventually provide a convenience API for this in Phonon. This will probably also make it easy to simplify and crossplatformify parts of the KDE platform plugin for Phonon (which manages sound devices, amongst other things).
  3. QtMobility/multimedia. I don’t think it is intended for inclusion in Qt, but in a separate “mobility” library (Qtopia^WQt Extended?). I replicates a lot of the functionality in Phonon, but I think that maybe is intentional. I would like to see some more information of what was lacking in Phonon, though, and why they wanted to start from scratch.

If I’m mistaken in any way, feel free to correct me in the comments (I moved my blog to wordpress.com, because I’m lazy and didn’t feel like implementing comment support in my django-based blog).

In semi-related news; I’ll be taking the job as the semi-official maintainer of Phonon until Matthias gets finished with his thesis (at least). That means I’ll be trying to keep the unloved parts of Phonon from bitrotting (like the tests…), fixing bugs, reviewing patches that come in, etc.

I’ve also started the work on an advanced configuration dialog for Phonon-Xine, like the Xine configuration dialog in Codeine (the Xine-based video player in KDE 3), exposing all the available options, without having to edit the config file by hand.

I’m also conspiring with blauzahl to hold a bug-day for Phonon, there’s a lot of untriaged, duplicated and otherwise unsuited bugs against Phonon, bordering on unmanagable. So stay tuned, if you think bugs are fun.

Lastly, in completely unrelated news, I’ve started porting Kredentials to KDE 4. It’s a tiny tray-application for managing (acquiring and automatically renewing) kerberos tickets. I’m also almost completely finished with the KDE 4 port of Filelight, I think I nailed one of the last regressions today (the cutting off of edges of the radial map).

13 thoughts on “Multimedia frameworks in Qt

  1. Woohooo! More phonon work, maybe webcam support, and a KDE4 version of filelight… and you hide all these great news is a post about Qt frameworks… :)

    Keep rocking!

  2. Sounds like good news. Anyone have any news when we get ability to set volumes on individual apps?

    ps: White text on a black background is not easy to read (for me anyway) (opera 10 + opensuse11.1)

  3. I hope this situation gets resolved ASAP before it becomes something very public and very noisy. Good luck sandsmark! Wave the Phonon::flag with pride! (OK, bad geek joke :P)

    @Ian: I don’t think it’s actually white on black but more of off-white on black, which makes it a bit harder to read. Too little contrast. :)

  4. Glad to hear that Phonon has a new official mantainer! Will you maintain just the Phonon API or also the backends? I’d like to report a few issues with the gstreamer and quicktime backends. What’s the best place to do it?

  5. Are you still working on including full configurability of the Xine backend? I was going to report a wish on this, but perhaps that is not necessary?

  6. Hey,

    Some time ago, you mentioned you would write a QIODevice – ring buffer, something I think I need for a project I have in mind (something I think a lot of people would need…) – did you ever get it implemented?

Leave a comment