On Tue, Jan 29, 2013 at 4:39 AM, Jens Georg <[email protected]> wrote: > I have not seen this feature in the UPnP spec. Can you point me to that, > please? > > (This also means: No, we don't implement that) >
In a documented titled UPnP AV Architecture:1 for UPnP Version 1.0 (published June 25, 2002), one of the explicitly stated non-goals is "Synchronized playback to multiple rendering devices" (page 3). This position was reiterated in a revision of the same document published September 30, 2008 (page 5). http://upnp.org/specs/av/UPnP-av-AVArchitecture-v1-20020625.pdf http://upnp.org/specs/av/UPnP-av-AVArchitecture-v1-20080930.pdf However, in a later document titled UPnP AV Architecture:2 for UPnP Version 1.0 (published December 31, 2010), "Synchronized playback to multiple rendering devices." has been moved to the list of goals (page 4). In the section titled "Advanced Playback Scenarios," the document goes into detail about its implementation (page 29): http://upnp.org/specs/av/UPnP-av-AVArchitecture-v2-20101231.pdf "5.1. Synchronized playback It is possible to instruct one or more MediaRenderers to start playing back of a Content Item at a specific time. The same can be done for operations such as pausing and stopping. These operations are possible using the AVTransport::SyncPlay(), AVTransport::SyncPause() and AVTransport::SyncStop() actions. The pre-condition is that the different MediaServers and MediaRenderers in the home are synchronized to the same master clock and support the appropriate clock synchronization protocol (such as NTP, IEEE 802.1AS). Information about the clock synchronization of the different devices can be obtained by the control point using the ContentDirectory::GetFeatureList() action and the ConnectionManager::GetFeatureList() action for MediaServers and the ConnectionManager::GetFeatureList() action for MediaRenderers. In order to determine if the MediaServer is capable of streaming synchronized content, the control point uses the content’s upnp:resExt::clockSync@deviceClockInfoID and upnp:resExt::clockSync @supportedTimestampsID properties to locate the specific details about the synchronization protocol that will be used. The control point does this via the MediaServer’s ConnectionManager service <Feature> element containing the CLOCKSYNC feature within the MediaServer’s feature list. Specifically, the control point finds the <DeviceClockInfo> and <supportedTimestamps> elements whose @id values match the content’s upnp:resExt::clockSync@deviceClockInfoID and upnp:resExt::clockSync @supportedTimestampsID property values, respectively. Consequently, the control point identifies the clock sync protocol (e.g. 802.1AS), timestamp mechanism (e.g. ‘RTP-1733’) and the ID of the master clock to whom the MediaServer’s internal clock is synchronized. Then, by examining the MediaRenderer’s <DeviceClockInfo> element within the <Feature> element containing the CLOCKSYNC feature from the MediaRenderer’s ConnectionManager service feature list, the control point determines that the MediaRenderer supports CLOCKSYNC feature, and identifies the clock sync protocol (802.1AS), timestamp mechanism (e.g.‘RTP-1733’) and the ID of the master clock to whom the MediaRenderer’s internal clock is synchronized. Based on the comparison of information from the MediaRenderer and the MediaServer, the control point derives the conclusion whether the selected content can be played on the specified MediaRenderer in a precision time-synchronized manner. As described above, the control point can invoke the ConnectionManager::GetFeatureList() action in order to determine the specific details of the synchronized playback supported by the device hosting the ConnectionManager service. The <syncProtocolID> element of the <Feature> element containing the CLOCKSYNC feature enumerates the clock synchronization protocol that was used to synchronize the implementation’s local time-of-day clock. The possible clock synchronization protocols include 802.1AS, NTP (Network Timing Protocol) and SNTP (Simple Network Timing Protocol) protocols. 802.1AS clock synchronization protocol enables precision synchronization (accuracy exceeding 1 micro-second), thus enabling usages such as synchronized audio and video playback. For other usages such as party music being piped to multiple rooms, NTP and SNTP protocols may provide sufficient clock synchronization accuracy. Similarly, the <masterClockID> element of the <Feature> element containing the CLOCKSYNC feature identifies the master clock to which this implementation has synchronized its local time-of-day clock. Depending on the clock synchronization protocol, the <masterClockID> element specifies either the 8-byte binary sequence (<High 24-bits MAC> 0xFF 0xFE <Low 24-bits MAC>) in case of 802.1AS, or the URL of the time server in case of NTP or SNTP." Jonathon _______________________________________________ rygel-list mailing list [email protected] https://mail.gnome.org/mailman/listinfo/rygel-list
