|
Minim wishlist
|
|
25-06-2013, 14:54
Post: #26
|
|||
|
|||
RE: Minim wishlist
(25-06-2013 13:13)Alekz Wrote: OK, now *I* begin to understand In standard UPnP AV, it goes like this: 1) The control point tells the renderer to play a track 2) The renderer streams the track from the server and plays it 3) The renderer tells the control point that the track has finished 4) The control point tells the renderer to play the next track 5) The renderer streams the next track from the server and plays it 6) etc. This requires the control point to be on all the time (for steps 3/4) and also causes gaps because of the inevitable delay between the end of step 2 and the start of step 5. Linn has developed the OpenHome extension to UPnP AV, which allows a playlist to be stored on the renderer. With an OpenHome renderer that supports gapless playback, it goes like this: 1) The control point sends the playlist to the renderer 2) The control point tells the renderer to play the playlist 3) The renderer streams the first track from the server and plays it 4) Shortly before the track finishes playing, the renderer starts to stream the next track from the server 5) When the track has finished playing, the renderer starts playing the next track which by now has already started to fill the renderer's buffer 6) etc. This gives the renderer the opportunity to join the tracks gaplessly as part of step 4. It also doesn't require the control point to be on after step 1. There is another way for a UPnP AV renderer to play gaplessly if the renderer and control point both support the optional SetNextAVTransportURI action. With this support, it goes like this: 1) The control point tells the renderer to play a track 2) The renderer streams the track from the server and plays it 3) While the track is playing, the control point tells the renderer which track to start playing next 4) Shortly before the track finishes playing, the renderer starts to stream the next track from the server 5) When the track has finished playing, the renderer starts playing the next track which by now has already started to fill the renderer's buffer 6) etc. You will notice that with all these schemes, the server just responds to streaming requests for tracks as and when they are received from the renderer. |
|||
|
« Next Oldest | Next Newest »
|
User(s) browsing this thread: 1 Guest(s)

Search
Member List
Calendar
Help



What does a UPnP controller actually controls? Does it tell the renderer what to pull from the server, or does it tell the server what to push to the renderer?
