我在使用 Stagefright 命令行实用程序时遇到了一些问题,我无法理解其中的OMX子系统 ( OMX, OMXMaster)Stagefright和OMX核心是在当前应用程序的进程还是不同的进程中运行。代码的哪一部分Stagefright解释了OMXCodec和OMX子系统之间的通信。google 上没有太多信息。我恳请读者对这些概念进行解释。
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 个变量管理的mLocalOMX,mRemoteOMX就像这里一样。
于 2014-05-08T13:39:06.237 回答