_OMX_MasterInit(OMXMasterCoreGlobalData *data)
来源:互联网 发布:上海跳跃网络好垃圾 编辑:程序博客网 时间:2024/06/02 01:31
1类OMXMasterCoreGlobalData
成员:
OMX_U32 iNumMasterOMXInstances;初值为0
void *iInterface;
void *iOMXLibrary;
void *iMasterRegistry; 指向类型PVOMXMasterRegistryStruct,对应每一个组件,保存组件的名字,role,输入第几个core
void *iOMXCompHandles; 指向每个组件的句柄,初始化空;
OMX_U32 iTotalNumOMXComponents; 组件的总数
OMX_U32 iNumOMXCores;core的数目,等于配置文件的数目;
2 函数OMX_ERRORTYPE _OMX_MasterInit(OMXMasterCoreGlobalData *data)
1)根据配置文件获得库的列表;
2)加载库文件:libomx_sharedlibrary.so,有一个类型OsclSharedLibrary的指针lib,包含so库的内容信息,类OsclSharedLibrary就是针对so库抽象出来的的一个对象;
3)根据lib调用函数获取so库的接口指针:根据ID,进入库中,获取指向函数PVGetInterface的指针,再根据此函数获得库的指针,对应libomx_sharedlibrary.so库的代码在文件pv_omx_interface.cpp中,
4)在将指向库的指针lib,保存在一个数组中,而且数组中的顺序号对应的是库的coreNUM,pLibrary[(data->iNumOMXCores)] = lib,同时将库的接口指针也保存到一个数组中,pInterface[(data->iNumOMXCores)] = coreIntPtr;
这两个数组分别对应data中的iOMXLibrary和iInterface;
5)依次(根据core数目)根据库的接口指针调用函数GetpOMX_Init(),初始化对应库的组件;
6)GetpOMX_ComponentNameEnum枚举库中组件的名字;
7)GetpOMX_GetRolesOfComponent根据名字查询组件的role;并保存到role数组(临时数组);
8)最后将组件名和对应的role,放到iMasterRegistry中;
可以看出最后在OMXMasterCoreGlobalData 中保存了:组件名和role名;
- _OMX_MasterInit(OMXMasterCoreGlobalData *data)
- data
- data ()
- data
- Data
- data
- data
- data
- data
- data
- <data>
- data
- DATA
- data
- data
- data
- data
- @Data
- pthread_create 内存泄漏 valgrind
- 线程同步
- 从GoogleMap的金字塔模型到无限级索引数据结构(三)
- 树形菜单,刷新后不变
- 我的javascript编程实例1
- _OMX_MasterInit(OMXMasterCoreGlobalData *data)
- OutputCache各参数的说明
- 星号字符串前移
- 数据库的索引
- 总感觉CSDN少了苹果开发这一块
- 文件上传的相关方法
- VC++ Tab Control控件的使用
- 一次关于2440屏驱动的精彩讨论
- 制造业大学生,你将被谁抛弃?——摘至天涯论坛