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

Reply via email to