• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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上报输入buffer编码或者解码处理完毕。
47
48组件运行过程中向上报告输入buffer已经使用完毕。
49
50**起始版本:** 3.2
51
52**参数:**
53
54| 名称 | 描述 |
55| -------- | -------- |
56| appData | 上层数据,通常是设置回调时给入的上层实例。  |
57| buffer | 已经处理完毕的输入buffer信息[OmxCodecBuffer](_omx_codec_buffer_v10.md)。 |
58
59**返回:**
60
61HDF_SUCCESS 表示上报成功。
62
63HDF_ERR_INVALID_PARAM 表示参数无效,上报失败。
64
65HDF_FAILURE 表示执行失败。
66
67其他值表示底层返回失败,具体错误码详见OpenMAX IL定义的OMX_ERRORTYPE。
68
69
70### EventHandler()
71
72```
73ICodecCallback::EventHandler ([in] enum OMX_EVENTTYPE event, [in] struct EventInfo info )
74```
75**描述**
76事件上报。
77
78组件运行过程中向上报告错误事件、命令完成事件、端口设置更改事件等。
79
80- 当eEvent为OMX_EventCmdComplete,eventData为NULL,data1数据为OMX_COMMANDTYPE, 此时,当data1为OMX_CommandStateSet,data2表示状态,其它情况下,data2表示端口。
81
82- 当event为OMX_EventError时,data1表示错误码,data2和eventData都为0。
83
84- 当event为OMX_EventMark时,data1和data2都为0,eventData指向mark指针。
85
86- 当event为OMX_EventPortSettingsChanged时,data1表示端口,data2和eventData为0。
87
88- 当event为OMX_EventBufferFlag时,data1表示端口,data2表示flag,eventData为0。
89
90- 当event为OMX_EventResourcesAcquired或OMX_EventDynamicResourcesAvailable时,data1、data2和eventData都为0。
91
92**起始版本:** 3.2
93
94**参数:**
95
96| 名称 | 描述 |
97| -------- | -------- |
98| event | 要通知的事件类型,详见**OMX_EVENTTYPE**。  |
99| info | 指向事件上报携带的信息指针,详见[EventInfo](_event_info_v10.md)。 |
100
101**返回:**
102
103HDF_SUCCESS 表示事件上报成功。
104
105HDF_ERR_INVALID_PARAM 表示参数无效,事件上报失败。
106
107HDF_FAILURE 表示执行失败。
108
109其他值表示底层返回失败,具体错误码详见OpenMAX IL定义的OMX_ERRORTYPE。
110
111
112### FillBufferDone()
113
114```
115ICodecCallback::FillBufferDone ([in] long appData, [in] struct OmxCodecBuffer buffer )
116```
117**描述**
118上报输出buffer填充完毕。
119
120组件运行过程中向上报告输出buffer已经填充完毕。
121
122**起始版本:** 3.2
123
124**参数:**
125
126| 名称 | 描述 |
127| -------- | -------- |
128| appData | 上层数据,通常是设置回调时给入的上层实例。  |
129| buffer | 已经填充完毕的buffer信息[OmxCodecBuffer](_omx_codec_buffer_v10.md)。 |
130
131**返回:**
132
133HDF_SUCCESS 表示上报成功。
134
135HDF_ERR_INVALID_PARAM 表示参数无效,上报失败。
136
137HDF_FAILURE 表示执行失败。
138
139其他值表示底层返回失败,具体错误码详见OpenMAX IL定义的OMX_ERRORTYPE。
140