1# ICodecCallback 2 3 4## 概述 5 6Codec回调接口定义。 7 8提供了以下3种回调函数: 9 10- 组件错误事件、命令完成事件、端口设置等事件回调,详见[EventHandler](#eventhandler)。 11 12- 输入端口处理完buffer回调,详见[EmptyBufferDone](#emptybufferdone)。 13 14- 输出端口填充完buffer回调,详见[FillBufferDone](#fillbufferdone)。 通过以下两种方式注册回调: 15 16- 创建组件时,通过**CreateComponent**方法。 17 18- 当组件处于OMX_StateLoaded状态时,通过**SetCallbacks**方法注册回调。 19 20**起始版本:** 3.2 21 22**相关模块:**[Codec](_codec_v10.md) 23 24 25## 汇总 26 27 28### Public 成员函数 29 30| 名称 | 描述 | 31| -------- | -------- | 32| [EventHandler](#eventhandler) ([in] enum OMX_EVENTTYPE event, [in] struct [EventInfo](_event_info_v10.md) info) | 事件上报。 | 33| [EmptyBufferDone](#emptybufferdone) ([in] long appData, [in] struct [OmxCodecBuffer](_omx_codec_buffer_v10.md) buffer) | 上报输入buffer编码或者解码处理完毕。 | 34| [FillBufferDone](#fillbufferdone) ([in] long appData, [in] struct [OmxCodecBuffer](_omx_codec_buffer_v10.md) buffer) | 上报输出buffer填充完毕。 | 35 36 37## 成员函数说明 38 39 40### EmptyBufferDone() 41 42``` 43ICodecCallback::EmptyBufferDone ([in] long appData, [in] struct OmxCodecBuffer buffer ) 44``` 45**描述** 46 47上报输入buffer编码或者解码处理完毕。 48 49组件运行过程中向上报告输入buffer已经使用完毕。 50 51**起始版本:** 3.2 52 53**参数:** 54 55| 名称 | 描述 | 56| -------- | -------- | 57| appData | 上层数据,通常是设置回调时给入的上层实例。 | 58| buffer | 已经处理完毕的输入buffer信息[OmxCodecBuffer](_omx_codec_buffer_v10.md)。 | 59 60**返回:** 61 62HDF_SUCCESS 表示上报成功。 63 64HDF_ERR_INVALID_PARAM 表示参数无效,上报失败。 65 66HDF_FAILURE 表示执行失败。 67 68其他值表示底层返回失败,具体错误码详见OpenMAX IL定义的OMX_ERRORTYPE。 69 70 71### EventHandler() 72 73``` 74ICodecCallback::EventHandler ([in] enum OMX_EVENTTYPE event, [in] struct EventInfo info ) 75``` 76**描述** 77 78事件上报。 79 80组件运行过程中向上报告错误事件、命令完成事件、端口设置更改事件等。 81 82- 当eEvent为OMX_EventCmdComplete,eventData为NULL,data1数据为OMX_COMMANDTYPE, 此时,当data1为OMX_CommandStateSet,data2表示状态,其它情况下,data2表示端口。 83 84- 当event为OMX_EventError时,data1表示错误码,data2和eventData都为0。 85 86- 当event为OMX_EventMark时,data1和data2都为0,eventData指向mark指针。 87 88- 当event为OMX_EventPortSettingsChanged时,data1表示端口,data2和eventData为0。 89 90- 当event为OMX_EventBufferFlag时,data1表示端口,data2表示flag,eventData为0。 91 92- 当event为OMX_EventResourcesAcquired或OMX_EventDynamicResourcesAvailable时,data1、data2和eventData都为0。 93 94**起始版本:** 3.2 95 96**参数:** 97 98| 名称 | 描述 | 99| -------- | -------- | 100| event | 要通知的事件类型,详见**OMX_EVENTTYPE**。 | 101| info | 指向事件上报携带的信息指针,详见[EventInfo](_event_info_v10.md)。 | 102 103**返回:** 104 105HDF_SUCCESS 表示事件上报成功。 106 107HDF_ERR_INVALID_PARAM 表示参数无效,事件上报失败。 108 109HDF_FAILURE 表示执行失败。 110 111其他值表示底层返回失败,具体错误码详见OpenMAX IL定义的OMX_ERRORTYPE。 112 113 114### FillBufferDone() 115 116``` 117ICodecCallback::FillBufferDone ([in] long appData, [in] struct OmxCodecBuffer buffer ) 118``` 119**描述** 120 121上报输出buffer填充完毕。 122 123组件运行过程中向上报告输出buffer已经填充完毕。 124 125**起始版本:** 3.2 126 127**参数:** 128 129| 名称 | 描述 | 130| -------- | -------- | 131| appData | 上层数据,通常是设置回调时给入的上层实例。 | 132| buffer | 已经填充完毕的buffer信息[OmxCodecBuffer](_omx_codec_buffer_v10.md)。 | 133 134**返回:** 135 136HDF_SUCCESS 表示上报成功。 137 138HDF_ERR_INVALID_PARAM 表示参数无效,上报失败。 139 140HDF_FAILURE 表示执行失败。 141 142其他值表示底层返回失败,具体错误码详见OpenMAX IL定义的OMX_ERRORTYPE。 143