Android Opencore OpenMAX学习(1) 1 OMX core methods
1)OMX_Init 2)OMX_Deinit 3)OMX_GetHandle 4)OMX_FreeHandle 5)OMX_ComponentNameEnum 6)OMX_GetComponentsOfRole 7)OMX_GetRolesOfComponent 8)OMX_SetupTunnel 9)OMX_GetContentPipe
2 The configuration parser API 除了以上methods,强烈推荐OMX核心插件库包含此API 2.1函数原型 OMX_BOOL OMXConfigParser ( OMX_PTR aInputParameters,OMX_PTR aOutputParameters);
2.2 传递参数 aInputParameters 指向如下结构 typedef struct { OMX_U8* inPtr; //codec 配置头部指针 OMX_U32 inBytes; //codec 配置头部长度 OMX_STRING cComponentRole; //OMX codec类型 eg "video_decoder.mpeg4" OMX_STRING cComponentName; //OMX 组件名称 } OMXConfigParserInputs;
2.3 返回值 OMX_FALSE : 处理codec配置头部错误或不支持该格式 OMX_TURE : 正确处理codec配置头部
2.4 函数作用 填充aOutputParameters,有两种选择:audio coded or vedio codec
for audio typedef struct { OMX_U16 Channels; //通道:单声道、立体声、5.1 OMX_U16 BitsPerSample; //位宽(eg16) OMX_U32 SamplesPerSec; //采样率 } AudioOMXConfigParserOutputs;
typedef struct { OMX_U32 width; //检测到的视频剪辑宽度 OMX_U32 height; //检测到的视频剪辑高度 OMX_U32 profile; //参数 OMX_U32 level; //级别? } VideoOMXConfigParserOutputs;
3 动态加载OMX内核 解释了\system\system\etc\pvplayer.cfg文件中最后一行的含义 (0xa054369c,0x22c5,0x412e,0x19,0x17,0x87,0x4c,0x1a,0x19,0xd4,0x5f),"libomx_sharedlibrary.so"
作用:将OMX内核动态加载进OpenCORE框架 位置:\system\system\etc\pvplayer.cfg 形式:(OMX Core API OsclUuid), “shared library name.so” eg:(0xa054369c,0x22c5,0x412e,0x19,0x17,0x87,0x4c,0x1a,0x19,0xd4,0x5f),"libomx_core_vendorXYZ.so"
注意:(0xa054369c,0x22c5,0x412e,0x19,0x17,0x87,0x4c,0x1a,0x19,0xd4,0x5f) 提供独立API ID,不可修改 |