[vlc-devel] XSPF support in VLC

Sebastian Pipping webmaster at hartwork.org
Fri Oct 12 09:23:42 CEST 2007


Rafaël Carré wrote:
> I've got a patch for generating valid XSPF playlist files (we have
> problems about URI encoding), but it will need review first.

Cool!



> btw, I saw you are an author of URIparser, maybe you can advice me about
> URI use in VLC ?

Sure, what's the problem?



> About integrating libspiff, I don't know if that's worth, since it would
> add another complexity layer to our current playlist generator and
> reader, and maybe requiring unneeded CPU power.

libSpiff is based on Expat, one of the fastest XML parsers around.
There not much room left for squeezing out more speed out of libSpiff.
Integrating libSpiff should at best take away complexity since you
don't talk to an XML parser directly anymore. Using libSpiff comes
with several other advantages like improved interoperability.
We could look at the code in IRC together if your decision is not
final yet but don't feel pushed. Just be sure I'll report all the
bugs for VLC that libSpiff fixed before ;-)



> Finally, about the extension, we need to check how it can be used
> because it's currently not, and we may change it before 0.9.0 release is
> shipped (ETA not known yet, but that should be a matter of months).
> 
> The main problematic is "howto add hierarchy to xspf?" and the extension
> may, or may not ship (I mean as in the current state) as a 0.9.0 feature
> (that will need review, as how it can be used with current VLC object
> structure).

As I understand you want to have a nested playlist - is that correct?
The way I would currently solve this would be using
* a playlist extension reflecting the hierarchy and introducing
  identifiers and
* meta tags for each track assigning tracks to playlists

Here is what I mean but concrete and visual:

<playlist ...>
  ...
  <extension application="http://videolan.org/pl/ext/hier_decl/1/"
      xmlns:vlc="http://videolan.org/pl/ext/hier_decl/1/">
    <vlc:child id="one" />
    <vlc:child id="two">
      <vlc:child id="three" />
    </vlc:child>
  </extension>
  ...
  <trackList>
    ...
    <track>
      ...
      <meta rel="http://videolan.org/tr/meta/hier_ref/1/">three</meta>
      ...
    </track>
    ...
  </trackList>
</playlist>

Tracks without such a meta tag would belong to the "root playlist"
in that model. While you might want to adjust a few cosmetics about
this please let's talk back about it: Keeping version information
in the URIs is for instance very important. There are other ways to
implement playlist hierarchies. In case this solution does not fit
your needs yet it might be best to come together on the XSPF mailing
list [1] to work out another approach with more eyes.



> P.S. : If I'm not wrong you are french, if no non-french VLC developer
> is interested in this issue, maybe we can communicate in French, and
> save extra (and misunderstanding prone) translation time (because I'm
> french too).

Sorry to disappoint you, but my native tongue is German.
I'm still not such a bad person :-)



Sebastian


[1] http://lists.musicbrainz.org/mailman/listinfo/playlist




More information about the vlc-devel mailing list