Android Opencore OpenMAX学习(1)

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,不可修改

Rockie Cheng

来自/external/opencore/doc/omx_core_integration_guide.pdf

 

转自:http://hi.baidu.com/aokikyon/blog/item/de3aec337bada148ad4b5f85.html

你可能感兴趣的:(android,struct,api,String,methods,Codec)