从HDMI IN端口捕获音频帧

时间:2013-03-20 20:36:19

标签: android linux embedded google-tv hdmi

我有一个扎根的HiSense GoogleTV,它有HDMI IN和OUT端口。

我想要做的是从HDMI IN(从机顶盒)录制大约10秒的音频。我是新手,所以请耐心等待。

  1. 这是否可以在root设备上执行此操作?

  2. HDMI IN数据在HDMI IN输出后是否会被解密(由于HDCP)并在通过HDMI输出之前重新加密?

  3. 如果我试图在常规Linux机器上捕获音频帧,我应该怎么做呢?我应该研究哪些组件?我找不到任何描述低级架构的文档以及HDMI IN信号如何路由到HDMI OUT的详细信息。

  4. 您能否指出实际执行从HDMI In到OUT的路由的Android框架代码?基本上,想要了解从HDMI IN到OUT的传输过程中音频信号发生的流程。

  5. 我不确定我的问题是否有意义,但我希望你能给我一些关于我应该从哪里开始的建议。

3 个答案:

答案 0 :(得分:1)

简短回答:不可能。直通通过可信视频路径SOC与android完全隔离。您需要成为经过认证的SOC提供商才能获得信号附近的任何信息。

答案 1 :(得分:0)

HDMI输入设备标识为AUDIO_DEVICE_IN_AUX_DIGITAL(请参阅audio.h),但我从来没有遇到过带HDMI输入的Android设备,所以我不能验证。

音频路由由AudioPolicyManager处理。 libhardware_legacy中有一个AudioPolicyManagerBase,然后通常会有一个特定于平台的AudioPolicyManager实现,它会重载一些基类的方法。找到此实现的位置取决于平台。在Qualcomm平台上,它通常位于源树中硬件/ qcom / audio下的某个位置 AudioPolicyManager执行高级路由(如将流类型和音频源映射到音频设备),然后使用AudioHardware实现和可能的其他特定于平台的类来执行低级路由(管理硬件级别的音频流,加载声学调整参数,与设备驱动程序的接口等。)

任何与HDMI输入相关的功能都可能是供应商特定的,因此可能需要您的Google TV设备的完整源代码(例如,包括供应商在vanilla Android上应用的所有补丁),如果您希望能够查看处理HDMI音频输入的代码。

答案 2 :(得分:0)

由于Google TV实施了HDCP,您将无法访问视频或音频输入。改变这种情况的唯一方法就是更改Google TV代码,也可能改变SOC HDMI驱动程序,这两种驱动程序都不是谷歌开源的。