Phonon VLC 0.4.1 – The Rise of Legacy Media

The Phonominals are proud to present Phonon VLC 0.4.1.

Now available on a KDE FTP mirror near you.

This thrilling new release of the VLC backend for Phonon features vastly improved subtitle loading, support for it, s3m and xm, as well as greater stability in case of a broken libvlc  installation.

But above all it enables audio CD playback in Amarok. Yes. We also care about legacy media ;). With latest Amarok and Phonon VLC 0.4.1 you are finally able to play audio CDs properly. Of course this improvement is not limited to Amarok, but available to every application that uses Phonon, thanks to the wonderful architecture of Phonon.

by xcode@flickr

Amarok’s Myriam Schweingruber said the following about this wonderful new release:

you people rock and really help us improve the user experience!

VideoLan’s Jean-Baptiste Kempf added:

 pVLC will rock your audiophile poney!

Have fun with Phonon VLC 0.4.1!

24 thoughts on “Phonon VLC 0.4.1 – The Rise of Legacy Media

    • Hm, but that is probably a VLC limitation since it doesn’t work in the “real” VLC Media player either…

      • Possibly. A bug report for this would be very good. We are probably going to prepare for VLC 1.2 soonish, so we could take a closer look at gapless playback while we are at it.

    • Alessandro Siniscalchi actually is working on supreme JACK support right now 😉 Well, more on getting the lower level structure in order to get sensible JACK support.

      What did you have in mind WRT UPnP?

      • I haven’t checked for a while but VLC used to work as a media client for UPnP/DLNA servers (most NAS) just like a PS3 and some newer TVs. The code is/was there in VLC so if it’s possible to port this across to Phonon then any app using phonon-vlc will instantly become a UPnP client. This may also allow anyone to “throw” their a/v content from an iPhone/iPad/N8 to a KDE laptop or desktop which would be spectacular.

        • Well, I reckon this would better be implemented independent of the backend (i.e. use libhupnp or something) directly in Phonon to achieve this functionality. Certainly a good idea though 😀

  1. Wooooooo! I still use CDs, and don’t break them and leave them in the dirt! So thank you from this Linux grandma. @hefeweiz3n – gapless is working in phonon-gstreamer, at least from git. So soon, soon……

  2. Adding support for the tracker formats is much appreciated 🙂 I assume Amarok still won’t load them? I was told a while back that there’d need to be new taglib classes written, which I attempted but failed miserably (my C++ is not so good). Still, cmus feels more appropriate for such formats anyway 😉

  3. Having support for tracker formats is great! 🙂
    Great job, Phonominals! Thank you all!

    I have a quick pseudo-technical question regarding the vlc-backend. I guess this is not the best place for it, but maybe you can tell me if it makes sense or is some error on my part, and then I’ll take the question to the right mailing list or report a bug about it.

    The thing is, I’m building a phonon-based music game, and while it works great with phonon-xine and phonon-gstreamer, it does not work with phonon-vlc because, apparently, the vlc-backend doesn’t emit the metaDataChanged() signal upon loading an Ogg or MP3 local file.

    Maybe I’m doing something wrong? This works as expected with gst/xine backends.

    I’ve tested it with phonon-vlc 0.4.0 in Mageia and 0.4.1 in Archlinux and Debian. Maybe it’s just something that hasn’t been implemented yet? Maybe there’s some sort of “feature matrix” that I can look up?

    Thanks 🙂

    • I forgot to mention, but I meant the metaDataChanged() is not emmited after a myphononmediaobject::setCurrentSource().

      I’ve now tested, and the signal is emmited after using myphononmediaobject::play().
      With xine/gst backends this happens right after setCurrentSource()

      What do you think? bug in phonon-vlc? Should I report it?
      Thanks 🙂

      • The documentation on metaDataChanged():
        * This signal is emitted whenever the audio/video data that is
        * being played is associated with new meta data. E.g. for radio
        * streams this happens when the next song is played.

        The important word there is *whenever*. This can be after set source, this can be after play, this can be after play +5 seconds, it can be after loading, after going from loading to stopped… So if you need something to hold on to, then you really should not use this signal at all. Instead you can use stateChanged() which is emitted at defined times in a playback cycle. For example after setCurrentSource() you can be sure that the MediaObject will go to Loading and then to Stopped, after play it will definitely go to Playing etc. (exception is switching to Error state which can, for the better part, happen any time ;)).
        FWIW the reason Phonon VLC does not get the meta data until play() was called is because of the way libvlc works, which is more player than pipeline like. With libvlc you set the source, create a player and throw the source at the player once you want to start playing, so up until play() the libvlc internal pipeline does not know anything about the media you want to play. Whereas in more pipeline like libraries you build your pipeline and the set a source on the pipeline which mostly will then be able to sort of preload the media, thus the meta data becomes available even before play() (but mind the word *mostly* there, this is not true for all pipeline libraries, also this might not be true for streams etc.).

        If you have any other questions you can also visit us in #phonon on irc.freenode.net or drop us a mail at kde-multimedia@kde.org (or phonon-backends@kde.org for backend specific topics, either is fine as mostly the same audience watches those lists ;)).

        • Huge thanks for your detailed explanation 🙂

          I suspected I couldn’t trust the metaDataChanged() timing because of the “whenever” (same problem with the handy signal “totalTimeChanged()), but with your confirmation I’m more confident to replace the methods which rely on these signals to use the stateChanged ones (I use those too, anyway, for debugging purposes).

          I didn’t care about the streaming usecase, since my game relies on local files, and since it worked so well with xine and gstreamer, I just wanted to make sure if maybe it was something to be fixed in VLC-backend, or just something I couldn’t rely on.

          With your clarification, I now know. Hopefully for my next version I can support the VLC backend too.
          Thanks for your help!

  4. I love to listen to high quality musik. In other words, old fashioned musik CDs, FLAC files, open reel tape decks, vinyl. I’ll leave the low quality proprietary formats like mp3s, AAC, etc. to other folks who can’t be bothered to go for the best. So, I greatly appreciate this contribution to KDE. Thank you.

  5. I cannot get audio cds working in amarok 2.4.3 in kubuntu natty. Do you know if I should do something special beyond installing phonon-backend-vlc 0.4.1?

Leave a comment