_OMX_MasterInit(OMXMasterCoreGlobalData *data)

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名;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值