rickwookie wrote: > But surely it's the iOS device timing that's out. When playing to my > AVR, the video get's delayed enough to match the Airplay audio delay and > keeps the A/V in sync. When playing to ShairTunes2 there is no delay to > the video so it's always ahead of the audio when it eventually gets > output by the squeezebox. I don't need to change the LMS timing, since > it would be impossible for it to output the audio early enough (with > zero delay) anyway.
It's not the iOS timing that is out, it's due to the architecture of the whole system. In AirPlay, the device sending the content is able to control the exact timing of the playback device by exchanging NTP time and then basically telling "play this frame at that value of NTP". With that, you can imagine that's is easy to synchronize local video and remote audio, because the device knows, in its NTP time, when video frames are displayed, so it just has to tell the speaker when to play the related audio frame - just set a delay on video, and sync the audio device with that delay. Basically, AirPlay protocol is just a virtual cable, audio packets sends are timestamps using RTP, audio is send in realtime, not too fast, not too slow, synchronously. LMS works differenty. Audio packets are send using HTTP which obviously does not include any notion of timestamp. A whole file can be send in a few seconds and be played over minutes, audio transmission is asynchronous. LMS controls the timing of players by first querying their local time and then regularly asking player "how much have you played so far" and then it tell them, "skip a few ms" or "pause for a few ms". Shairtunes2 receives the AirPlay audio frames using RTP (synchronously), stores them in a buffer and makes them available to LMS players through HTTP. That's where the notion of time sync is lost and cannot be retrieved. AirPlay source wants to control when a frame is played, so for what you want to work, it would required LMS sync algorithm/time to be controlled by such AirPlay source. As LMS does not offer possibility, it cannot be done. The reverse, I've done that in my AirPlay bridge because it's possible to transform LMS commands into timestamps that the slave AirPlay audio device will use. That's why I was able to make sync as good as native SB devices, but not the reverse LMS 7.7, 7.8 and 7.9 - 5xRadio, 3xBoom, 4xDuet, 1xTouch, 1 SB2. Sonos PLAY:3, PLAY:5, Marantz NR1603, JBL OnBeat, XBoxOne, XBMC, Foobar2000, ShairPortW, JRiver 21, 2xChromecast Audio, Chromecast v1 and v2, , Pi B3, B2, Pi B+, 2xPi A+, Odroid-C1, Odroid-C2, Cubie2, Yamaha WX-010, AppleTV 4, Airport Express ------------------------------------------------------------------------ philippe_44's Profile: http://forums.slimdevices.com/member.php?userid=17261 View this thread: http://forums.slimdevices.com/showthread.php?t=103783 _______________________________________________ plugins mailing list [email protected] http://lists.slimdevices.com/mailman/listinfo/plugins
