Friday, August 1, 2008

iPhone and A2DP. Why there is no Softick solution yet?

Softick is known for their A2DP for Palm OS devices (Palm Treo, Centro), less known a Mac OS X version of the same application (Softick Audio Gateway for Mac OS X) and we've been often asked why we still doesn't release A2DP for iPhone.



To tell the truth the most serious reason is because the task is difficult. The iPhones Bluetooth subsystem is a fully undocumented black box. There are number of high-level function available to Apple's application in unsupported frameworks, but there is no low-level functions available at all.

A2DP can be implemented on a system where the following requirements met:
  1. Raw system sound stream can captured by the application or a driver.
  2. A L2CAP level sockets interface is available for third party application.
  3. Device has enough computing power to encode sound stream using SBC encoder.
  4. Bluetooth Host Controller connected to the CPU using high speed interface. 115K serial line is not enough :)
  5. All Bluetooth subsystem is quite bug free and stable. A2DP generates a lot of packets and sensible to delays due to realtime nature of audio.

Regarding iPhone we have the following status:
  1. I have successfully captured sound stream in firmware 1.1.4. This was broken in 2.0
  2. I was able to send and receive HCI packets. L2CAP interface so close in 1.1.4. This was broken again in 2.0
  3. CPU power is more than enough in iPhone.
  4. HCI connection isn't perfect, but preliminary test shows this should be a bottleneck.
  5. Have no idea about this yet :)
Another stopper is the Apple developer agreement, A2DP for iPhone will not be accepted to the AppStore.

Will we continue development? I hope so.

1 comment:

Gabriel Lowe said...

Thank you for the update! Very much appreciated. I for one, will pay $$ to get this functionality! It was/is a game changing, killer app for my Treo, and would be again for my iPhone. I can't tell you how awesome this application was for my Treo. It changed the way I used my Treo on a day to day basis, and in fact, it was the reason I sold my 3rd Generation iPod! I wanted wireless music/podcasting while I worked out, and this allowed me to do that. No use for the iPod anymore when this program was released. I hope to be able to do the same with my iPhone someday as well! Keep developing! I will pay for it!