Why do we use SMIL in Campcaster, instead of M3U for instance?
- Cue in / cue out times
- Fade in / fade out times
- allows for nested playlists
- allows for multiple items to be played at the same time (not just crossfades)
- allows for making a plalylist editor that has millisecond precision
The internal format is described in the doxygen documentation of Core::Playlist.
The DTD of the SMIL document:
Where, in the <audio> tag:
- the src attribute is the URL of the playlist element, which could either be an mp3 or ogg file, or another SMIL file containing the description of an embedded playlist;
- the begin attribute is the starting time of the playlist element, from the PlaylistElement's relativeOffset, but converted to number of seconds, rounded to the nearest millisecond. For example: "1234.567s", "0.89s", or "3s".
There can be 0, 1 or 2 <animate> tags, depending on whether there is a <fadeInfo> child in the <playlistElement>.
- from and to are either equal to "0%" and "100%" (for fadeIn) or "100%" and "0%" (for fadeOut);
- begin and end are times relative to the playlistElement. They are either "0s" and the fadeIn value, or (playlength
- fadeOut) and the playlength value, respectively. All time values are converted as described for the audio/@begin attribute.
An example for a SMIL file (from modules/playlistExecutor/var/):
More example SMIL files are here available modules/gstreamerElements/var/.