Kodi Community Forum

Full Version: Help us solving the AirPlay issue when using iOS7 devices
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
1. iPhone 5S
2. iOS 7.0.4

Testbuild 5
3/4. Speaker (with Mirroring...)
5. No
6. No
7. No
Connection fails immediately after tapping device icon

The old documentation can't be right, for Music Airplay Protocol has stayed the same but for Videos and pictures, XBMC must be doing something wrong with the protocol...
Edrikk the airplay.xml support is in testbuild6 not testbuild5 - when you Tested it - testbuild6 for Windows was not yet build.

@all - for those who know a bit what they are Doing i Updated the First thread with tsstbuild6 now (Yes for windows too now Wink ).

Keep in mind - removing the FairPlay Bits might also need to remove Bits in the "features" Bitmask - however the bitmask Description found in the Reverse engineered AirPlay documentation seems not correct for current AirPlay protocol version...
So, we do actually have no idea what the bitmask should be then? Or what to change in it? Decoding AirServer's bitmask with the current 14-bits specification makes no sense....

(2014-01-09, 08:53)Axuttaja Wrote: [ -> ]3/4. Speaker (with Mirroring...)

Speaker with mirroring?
http://nto.github.io/AirPlay.html#servic...layservice

Thats all we have (doesn't fit if you ask me)

And its clear that we are now detected as mirroring capable - we copied the announcement from airserver which can mirror Wink
Yeah, perhaps changing one bit at the time until mirroring stop being supported, and then just hope that they didn't change the order of bits to the left and right from the mirroring bit seen .....
The announcment must be truthful, othervise connection will fail.
Communication must be rereverse engineered since it has changed.
@pette I see a speaker icon and when I select it, device shows mirroring ON and connection fails.
Well for a start it would be interesting how it behaves when you only deactivate fairplay in the airtunes announcement and leave the features as is. I am about to request a ios7 dev device from the foundation so i can join investigation sooner or later. I bet announcing this high protocol version also means i have to implement some new API commands - maybe i can gracefully cancel the fairplay negotiation or something like that. But for now its only you who can diddle the bits Wink
Thing is that with earlier testbuild, it played just fine whenever the symbol was shown as monitor. I do not think it is impossible to get it working if you find a correct combination of bits and version number.

If the protocol would have changed totally - it would not play at all with earlier testbuilds that changed protocol version.

Although, it is quite hard to select bits randomly Smile
Well not totally - but maybe extended ... just think of something like "/fairplay" ... and i could respond "NOT_SUPPORTED" to it - even if i announced it in the bits. Well this is all wild guessing and theory and the real apple devs which are reading this are laughing there asses off how we are crouching like worms Wink
Hah, yeah most likely laughing.. I know I would.


It's actually quite bad that a new protocol version breaks compatibility with older Apple products - like my AppleTV2 with old firmware version. Rule #1 when extending protocols is always to not break backwards compatibility, atleast where I work.
So you confirmed that you are not able to airplay from ios7 to appletv2 running ios 4.x?
(2014-01-09, 08:56)Memphiz Wrote: [ -> ]Edrikk the airplay.xml support is in testbuild6 not testbuild5 - when you Tested it - testbuild6 for Windows was not yet build.

Actually Memphiz, given that I figured you had to have gone to bed, I noted the check-in ID of the other systems' build 6s (all being 15ecda3), traversed to the win32 directory, and as noted in my post I downloaded the correct build (XBMCSetup-20140109-15ecda3-ios7airplaytry.exe). This is exactly what's now pointed to by your original post as well.... I even check the code change for 15ecda3 in your git to ensure it was the correct one... Smile

I don't think you refreshed the build did you?
Yes i went to bed and didn't know you peaked onto the mirrors Wink.

Now that i re-read your post it all makes sense. You are completly right that the User-Agent is hardcoded all the time see:

CStdString userAgent="AppleCoreMedia/1.0.0.8F455 (AppleTV; U; CPU OS 4_3 like Mac OS X; de_de)";

The AppleTV string here is not related to the model name (AppleTV3,2 or Xbmc,1 for example) - because its always AppleTV - doesn't matter if its an atv2 or 3.

Beside that the xml influences only airplay and airtunes (raop) announcement + the airplay server-info command (where protocol version, features and model name are used again).

For the wrong picture showing - this seems to be triggered by the model name change based on the reports for testbuild 3. I bet there is some protocol extension missing which is not implemented in XBMC yet (i know there is something like image caching feature in airplay protocol for example).
(2014-01-09, 12:15)Memphiz Wrote: [ -> ]So you confirmed that you are not able to airplay from ios7 to appletv2 running ios 4.x?

Yes, ATV2 airplay target comes and goes randomly on both devices. When mimicing the announcements from ATV2 with XBMC I get the exact same behaviour, airplay target comes and goes - but whenever it is displayed video plays perfectly (on both ATV2 and XBMC)

Will test a few more combinations tonight.
Ha - thats some good information to me - cause it means its not XBMCs fault but really Apples :op (of course when i started adding airplay support i copied and reverse engineered it from the appletv2 running ios4 because at that point communication was unencrypted Wink ). That also tells us that its not a problem with our general zeroconf/bonjour implementation - just the announcement ...
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43