在我们创建Componentinstance (OMX组件实例)后,需要对它里面的Nodelnstance列表 进行管理。
- OMX对解码器组件Component的使用,是通过OMXNodelnstance来实现的。 OMXNodelnstance
自身的动作包括 Nodeinstance 的生成(allocateNode )和删除
(freeNode)o其实就是对niDispatchers和mNode】DToInstance进行添加和删除。 - mNodelDToInstance 就是一个 key 为 node id» value 为 Nodeinstance 的键/值对列表。而
niDispatchers 就是一个 key 为 node id, value 为 OMX::CallbackDispatcher
的键/值对列 表。并且,每个 Nodeinstance 都拥有一个 0MX::CalIbackDispatchero - CallbackDispatcher的主要作用是在解码器组件Component发出回调动作后,将message
分发给对应的OMXCodec客户端。
在我们了解到OMXNodelnstance列表管理后,每个OMXNodelnstance中都有Node节 点,若你需要给这些Node节点分配一些Buffer,下面看看对Node节点的操作过程。
在/frameworks/av/media/libstagefright/include/OMXNodeInstance.h 中: