1

我在使用 Stagefright 命令行实用程序时遇到了一些问题,我无法理解其中的OMX子系统 ( OMX, OMXMaster)StagefrightOMX核心是在当前应用程序的进程还是不同的进程中运行。代码的哪一部分Stagefright解释了OMXCodecOMX子系统之间的通信。google 上没有太多信息。我恳请读者对这些概念进行解释。

4

1 回答 1

1

AwesomePlayer对象被创建时,mClient.connect被调用,它基本上调用了OMXClient的 connect 方法。

在实现OMXClient::connect中,可以观察到media.player服务是通过mOMX初始化来检索的,从这里可以看出。

MediaPlayerService通过as here调用的实例化进行注册。MediaServer

换句话说,OMX本机实现在进程中运行,而代理在调用者的上下文中运行,在命令行实用程序MediaServer的情况下可能是 shell 。Stagefright

当分配一个新组件时,该组件可以是一个SoftOMXComponent或一个HW加速组件。SoftOMXComponent是在调用者的上下文中创建的,而加速HW组件是在MediaServer. 这是通过 2 个变量管理的mLocalOMXmRemoteOMX就像这里一样。

于 2014-05-08T13:39:06.237 回答