OpenMAX介绍

 

OpenMAX是一种跨平台的应用程序接口(API),用来对广泛运用在如MPEG-4、音频和图像编解码器、2D和3D图像等视频编解码器中的多媒体处理进行标准化,便于软件设计者将多媒体应用移植到不同体系结构平台。

Omx_Core、Omx_Img和Omx_Cam模块组成了OMX Integration Layer;

OMX Integration Layer分为两部分:接口层和组件部分。

通常,位于OMX Integration Layer之上有个应用层,统一管理OMX中的各种应用。

接口层
Omx_Core属于OMX Integration Layer中的接口层,提供给应用层标准的接口函数和带参数的宏,以统一应用层对各组件的调用形式。

主要函数:

OMX_ERRORTYPE OMX_GetHandle (OMX_HANDLETYPE* pHandle,

                             OMX_STRING cComponentName,

                             OMX_PTR pAppData,

OMX_CALLBACKTYPE* pCallBacks)

功能说明:将组件装载入内存,并产生组件的实例

参数说明:pHandle---指向一个应用实例的句柄指针

  cComponentName---组件名

          pAppData---指向记录应用属性结构体的指针

          pCallBacks---指向组件回调函数的结构体指针


OMX_ERRORTYPE OMX_FreeHandle (OMX_HANDLETYPE hComponent)

功能说明:释放OMX_GetHandle分配的句柄,卸载组件

参数说明:hComponent---指向组件的指针

组件
Omx_Img和Omx_Cam属于OMX Integration Layer的组件,它们再调用对应的功能实现模块,完成具体的功能。

各模块包含以下几个标准的功能函数:

OMX_ERRORTYPE XXXSendCommand( OMX_HANDLETYPE hComponent,

  OMX_COMMANDTYPE Cmd,

  OMX_U32 nParam,

  OMX_PTR pCmdData)

功能说明:向组件发送命令

参数说明:hComponent---指向组件应用实例的指针

  Cmd---命令类型

          nParam---命令参数

          pCmdData---该参数暂时无用


OMX_ERRORTYPE XXXSetConfig(OMX_HANDLETYPE hComponent,

OMX_INDEXTYPE nIndex,

OMX_PTR value)

功能说明:设置参数

参数说明:hComponent---指向组件应用实例的指针

  nIndex---参数类型

          value---指向记录组件参数结构体的指针


static OMX_ERRORTYPE XXXEmptyThisBuffer(OMX_HANDLETYPE hComponent,

        OMX_BUFFERHEADERTYPE* pBuffer)

功能说明:将数据缓冲区传给组件调用的功能模块,由功能模块将数据缓冲区清空

参数说明:hComponent---指向组件应用实例的指针

  pBuffer---指向数据缓冲区的指针


static OMX_ERRORTYPE XXXFillThisBuffer(OMX_HANDLETYPE hComponent,

        OMX_BUFFERHEADERTYPE* pBuffer)

功能说明:将数据缓冲区传给组件调用的功能模块,由功能模块填充数据缓冲区

参数说明:hComponent---指向组件应用实例的指针

  pBuffer---指向数据缓冲区的指针


static OMX_ERRORTYPE XXXSetCallbacks(OMX_HANDLETYPE hComponent,

        OMX_CALLBACKTYPE* pCallbacks,

        OMX_PTR pAppData)

功能说明:注册组件调用的回调函数

参数说明:hComponent---指向组件应用实例的指针

  pCallbacks---指向回调函数结构体的指针

          nParam---命令参数

          pAppData ---指向记录应用属性结构体的指针


static OMX_ERRORTYPE XXXComponentDeInit(OMX_HANDLETYPE hComponent)

功能说明:释放组件的资源

参数说明:hComponent---指向组件应用实例的指针


OMX_ERRORTYPE XXXComponentInit(OMX_HANDLETYPE hComponent)

功能说明:初始化组件,将组件的状态设为OMX_StateLoaded

参数说明:hComponent---指向组件应用实例的指针


OMX_ERRORTYPE XXXHandleCommand (OMX_HANDLETYPE hComponent,

        OMX_U32 newState)

功能说明:执行SendCommand函数发送的命令

参数说明:hComponent---指向组件应用实例的指针

          newState---组件的新状态


OMX_ERRORTYPE __OMX_XXX_SendMsgToXXXCore(OMX_HANDLETYPE hComponent, OMX_XXX_CMDTYPE cmdToXXXCore, OMX_PTR tCoreparam)

功能说明:填充消息结构体,并将消息发送到功能模块

参数说明:hComponent---指向组件应用实例的指针

          cmdToXXXCore ---向底层模块发送的命令类型

          tCoreparam---消息参数


void __OMX_XXX_Callback (OMX_HANDLETYPE hComponent,  OMX_ERRORTYPE nErrorStatus, OMX_XXX_CMDTYPE tCommand,  OMX_PTR pData )

功能说明:消息的回调函数

参数说明:hComponent---指向组件应用实例的指针

          nErrorStatus---该消息的执行结果

          tCommand---命令类型

  pData---消息参数

你可能感兴趣的:(OpenMAX介绍)