Захват аудио кадров из порта HDMI IN
У меня есть рутированный HiSense GoogleTV с портами HDMI IN и OUT.
То, что я хочу сделать, - это записать около 10 секунд звука с HDMI IN (из телевизионной приставки). Я новичок в этом, поэтому, пожалуйста, потерпите меня.
Возможно ли это сделать на рутованном устройстве?
Будут ли данные HDMI дешифрованы (из-за HDCP) после входа HDMI и повторно зашифрованы до того, как они будут направлены через HDMI-выход?
Если бы я попытался захватить аудиокадры на обычном Linux-боксе, как мне это сделать? Какие компоненты я должен изучить? Я не могу найти никакой документации, которая описывает низкоуровневую архитектуру и детали о том, как сигнал HDMI IN направляется на HDMI OUT.
Не могли бы вы указать код платформы Android, который фактически выполняет эту маршрутизацию от HDMI In к OUT? По сути, вы хотите понять, что происходит с аудиосигналом во время передачи с HDMI IN на OUT.
Я не уверен, что мои вопросы имеют смысл, но я надеюсь, что вы подскажете, с чего мне начать.
3 ответа
Краткий ответ: невозможно. Сквозной канал полностью изолирован от Android через SOC Trusted Video Path. Вы должны быть сертифицированным поставщиком SOC, чтобы получить хоть какой-то сигнал.
Устройство ввода HDMI должно быть идентифицировано как AUDIO_DEVICE_IN_AUX_DIGITAL
(см. audio.h), хотя я никогда не сталкивался с устройством Android с входом HDMI, поэтому не могу это проверить.
Аудио маршрутизация обрабатывается AudioPolicyManager
, Там есть AudioPolicyManagerBase
в libhardware_legacy, а затем, как правило, для конкретной платформы AudioPolicyManager
реализация, которая перегружает некоторые методы базового класса. Где эта реализация найдена, зависит от платформы. На платформах Qualcomm это обычно находится где-то в папке hardware/qcom/audio в дереве исходников.AudioPolicyManager
выполняет высокоуровневую маршрутизацию (например, отображение типов потоков и аудиоисточников на аудиоустройства), а затем использует AudioHardware
реализация и, возможно, другие специфичные для платформы классы для выполнения низкоуровневой маршрутизации (управление аудиопотоками на аппаратном уровне, загрузка параметров акустической настройки, взаимодействие с драйверами устройств и т. д.).
Любые функции, связанные со входом HDMI, вероятно, будут зависеть от поставщика, поэтому может потребоваться полный исходный код для вашего устройства Google TV (т. Е. Включая все исправления, которые поставщик установил поверх Android Android), если вы хотите иметь возможность взглянуть на код, который обрабатывает аудиовход HDMI.
Вы не сможете получить доступ ни к видео, ни к аудиовходу, поскольку в Google TV реализована технология HDCP. Единственный способ изменить это, даже на рутованном устройстве, это изменить код Google TV и, возможно, также драйверы SOC HDMI, ни один из которых не был открыт Google.