В рамках тестирования нового проекта компания Panic, подарившая миру Coda, Transmit, CandyBar и другие известные приложения, столкнулась со странным поведением цифрового AV-адаптера Lightning. В ходе дальнейшего исследования они установили, что перед ними не обычный аксессуар стоимостью в 50$, а полноценный компьютер.

Все началось с подключения iOS-устройства через цифровой AV-адаптер Lightning к телевизору и включения функции «Дублирование видеоизображения» (Video Mirroring). Оказалось, что максимальное разрешение картинки на выходе составило всего 1600×900 пикселей. Разработчики не поверили своим глазам, так как после подсоединения обычного 30-пинового AV-адаптера со старым док-разъемом система выводила на экран «честные» 1920×1080 точек.

Ситуация выглядела особенно удивительно с учетом спецификации того же iPad mini, где довольно однозначно говорится следующее: планшет «поддерживает дублирование видео и видеовыход с разрешением до 1080p». Тем не менее, сколько бы попыток разработчики не предпринимали, у них так и не получилось добиться на выходе заявленного разрешения. Адаптер упорно показывал 1600×900 пикселей, которые в итоге растягивались до 1080p.

Вторая загадка оказалась не менее таинственной: при подключении к телевизору Panic ожидали увидеть чистый и четкий сигнал, точную копию того, что отображалось на тестируемых iДевайсах. Однако, в результате использования цифрового AV-адаптера Lightning проявились вот такие артефакты:

Естественно, ничего подобного не было при подключении старого 30-пинового адаптера.

Отбросив в сторону предположение, что все вокруг одновременно сошли с ума, разработчики решили докопаться до истины во что бы то ни стало, и вдруг кого-то внезапно осенило: с ограничениями в разрешении, лагами и артефактами они уже сталкивались на этапе тестирования потоковой передачи видео с iOS-устройств на… Apple TV.

Неужели данный адаптер является неким аналогом приемника AirPlay? После этого у разработчиков не осталось других вариантов, как сходить за ножовкой:

Все верно, на чипе действительно написано ARM, а маркировка H9TKNNN2GD говорит о том, что у него 256 МБ оперативной памяти. Другими словами, в цифровом AV-адаптере Lightning используется свой собственный отдельный SoC. В общем, интересное и неожиданное открытие.

И чем больше сотрудники Panic думали над этим, тем больше вопросов возникало. Например, зачем нужно было делать что-либо подобное? На какой операционной системе работает адаптер? Наиболее невероятным выглядело предположение, что он может копировать «мини-версию iOS» со смартфона или планшета для загрузки прошивки при каждом соединении. И это, на самом деле, могло бы объяснить, почему от момента подключения адаптера до вывода картинки на экран возникает задержка в несколько секунд.

К счастью, после публикации статьи анонимный комментатор попытался более-менее детально пояснить, как на самом деле работает этот адаптер. По его словам, ядро SoC основано на XNU, и это единственное, чем прошивка адаптера похожа на iOS. В ней не запускается launchd, нет никакого shell’a или дополнительных утилит. После загрузки сразу же запускает демон, который принимает входящие данные от iДевайса, декодирует их и выводит через AV-разъемы. Помимо этого, существует набор модулей ядра, которые обрабатывают низкоуровневую передачу данных и вывод HDMI.

Этот адаптер нужен по одной простой причине: Lightning не в состоянии принять «сырой» сигнал HDMI. Lightning — это всего лишь высокоскоростная последовательная шина. Тем не менее, переходники существуют не для того, чтобы потребители платили больше денег. Мы хотели переложить все «сложности» на сам адаптер и позволить хосту не заботиться о том, что именно находится на другом конце Lightning-кабеля…

Подобная система позволяет передавать всё что угодно на любое устройство на планете, независимо от конечной шины (HDMI, DisplayPort и любые будущие интерфейсы), выпустив соответствующий адаптер для порта Lightning. А поскольку iOS-устройство не зависит от «железа» на другом конце кабеля, вам не нужен будет новый iPad или iPhone, когда на рынок выйдет новый A/V-разъем.

Одни люди говорят о том, что качество могло быть лучше, а другие просто работают над этим. На данный момент качество сочли приемлемым. Но, учитывая динамичный характер системы (и тот факт, что прошивка хранится в RAM, а не в ROM), обновления прошивки для адаптера будут доступны в будущих версиях iOS. По анонимным причинам я не могу сказать вам, когда это произойдет, но проблема не осталась незамеченной.

В общем, если кто-нибудь в следующий раз вам пожалуется, что такой крошечный адаптер не может стоить 50$, у вас есть неплохие контраргументы 🙂


Читайте также: