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