Search code examples
upnpdlna

DLNA sequential playback, how it work?


If the tracks are played sequentially, who initiates the switch to the next track?

  1. Control Point. It asks the Digital Media Renderer for elapsed time from the beginning of the track and the next track starts.

or

  1. Digital Media Renderer? How?

Solution

  • As always with DLNA, the answer is "it depends".

    • The control point can handle this on it's own, keeping track of the playlist and setting the next URI when playback state goes to paused.
    • The control point could use SetNextAVTransportURI() when a song starts playing: this way the renderer can pre-buffer the next song and can provide slightly more features (as an example cross fade or skipping to next song).
    • The control point could use SetStaticPlaylist() or SetStreamingPlaylist() to provide the renderer with the whole playlist

    SetNextAVTransportURI() and Set*Playlist() are optional AVTransport features so the control point cannot trust on them to be available.