1# ICodecComponent
2
3
4## 概述
5
6Codec组件接口定义。
7
8主要提供以下功能:
9
10- 获取组件的版本
11
12- 组件参数配置的获取和设置
13
14- 发送命令至组件及获取组件状态
15
16- 设置回调函数
17
18- 设置/释放组件使用的buffer
19
20- 编解码输入输出buffer处理 具体方法使用详见函数说明。
21
22**起始版本:** 4.1
23
24**相关模块:**[Codec](_codec_v20.md)
25
26
27## 汇总
28
29
30### Public 成员函数
31
32| 名称 | 描述 |
33| -------- | -------- |
34| [GetComponentVersion](#getcomponentversion) ([out] struct [CompVerInfo](_comp_ver_info_v20.md) verInfo) | 获取Codec组件版本号。 |
35| [SendCommand](#sendcommand) ([in] enum OMX_COMMANDTYPE cmd, [in] unsigned int param, [in] byte[] cmdData) | 发送命令给组件。 |
36| [GetParameter](#getparameter) ([in] unsigned int index, [in] byte[] inParamStruct, [out] byte[] outParamStruct) | 获取组件参数设置。 |
37| [SetParameter](#setparameter) ([in] unsigned int index, [in] byte[] paramStruct) | 设置组件需要的参数。 |
38| [GetConfig](#getconfig) ([in] unsigned int index, [in] byte[] inCfgStruct, [out] byte[] outCfgStruct) | 获取组件的配置。 |
39| [SetConfig](#setconfig) ([in] unsigned int index, [in] byte[] cfgStruct) | 设置组件的配置。 |
40| [GetExtensionIndex](#getextensionindex) ([in] String paramName, [out] unsigned int indexType) | 根据字符串获取组件的扩展索引。 |
41| [GetState](#getstate) ([out] enum OMX_STATETYPE state) | 获取组件的当前状态。 |
42| [ComponentTunnelRequest](#componenttunnelrequest) ([in] unsigned int port, [in] int tunneledComp, [in] unsigned int tunneledPort, [in] struct [OMX_TUNNELSETUPTYPE](_o_m_x___t_u_n_n_e_l_s_e_t_u_p_t_y_p_e_v20.md) inTunnelSetup, [out] struct [OMX_TUNNELSETUPTYPE](_o_m_x___t_u_n_n_e_l_s_e_t_u_p_t_y_p_e_v20.md) outTunnelSetup) | 设置组件采用Tunnel方式通信。 |
43| [UseBuffer](#usebuffer) ([in] unsigned int portIndex, [in] struct [OmxCodecBuffer](_omx_codec_buffer_v20.md) inBuffer, [out] struct [OmxCodecBuffer](_omx_codec_buffer_v20.md) outBuffer) | 指定组件端口的buffer。 |
44| [AllocateBuffer](#allocatebuffer) ([in] unsigned int portIndex, [in] struct [OmxCodecBuffer](_omx_codec_buffer_v20.md) inBuffer, [out] struct [OmxCodecBuffer](_omx_codec_buffer_v20.md) outBuffer) | 向组件申请端口buffer。 |
45| [FreeBuffer](#freebuffer) ([in] unsigned int portIndex, [in] struct [OmxCodecBuffer](_omx_codec_buffer_v20.md) buffer) | 释放buffer。 |
46| [EmptyThisBuffer](#emptythisbuffer) ([in] struct [OmxCodecBuffer](_omx_codec_buffer_v20.md) buffer) | 编解码输入待处理buffer。 |
47| [FillThisBuffer](#fillthisbuffer) ([in] struct [OmxCodecBuffer](_omx_codec_buffer_v20.md) buffer) | 编解码输出填充buffer。 |
48| [SetCallbacks](#setcallbacks) ([in] [ICodecCallback](interface_i_codec_callback_v20.md) callbacks, [in] long appData) | 设置Codec组件的回调函数。 |
49| [ComponentDeInit](#componentdeinit) () | 组件去初始化。 |
50| [UseEglImage](#useeglimage) ([in] unsigned int portIndex, [in] struct [OmxCodecBuffer](_omx_codec_buffer_v20.md) inBuffer, [out] struct [OmxCodecBuffer](_omx_codec_buffer_v20.md) outBuffer, [in] byte[] eglImage) | 使用已在EGL中申请的空间。 |
51| [ComponentRoleEnum](#componentroleenum) ([out] unsigned char[] role, [in] unsigned int index) | 获取组件角色。 |
52
53
54## 成员函数说明
55
56
57### AllocateBuffer()
58
59```
60ICodecComponent::AllocateBuffer ([in] unsigned int portIndex, [in] struct OmxCodecBuffer inBuffer, [out] struct OmxCodecBuffer outBuffer )
61```
62
63**描述**
64
65向组件申请端口buffer。
66
67向组件申请分配新的buffer,此接口在以下情况下使用:
68
69- 当组件处于OMX_StateLoaded状态,并且用户已经向组件发送OMX_StateIdle状态转换请求。
70
71- 当组件处于OMX_StateWaitForResources状态,所需的资源可用,并且组件已准备好进入OMX_StateIdle状态。
72
73- 在去使能端口上,组件处于OMX_StateExecuting、OMX_StatePause或OMX_StateIdle状态。
74
75更多组件状态的说明请详见**OMX_STATETYPE**。
76
77**起始版本:** 4.1
78
79**参数:**
80
81| 名称 | 描述 |
82| -------- | -------- |
83| portIndex | 指定的组件端口。 |
84| inBuffer | 指向要申请的buffer结构的体指针,结构体介绍详见[OmxCodecBuffer](_omx_codec_buffer_v20.md)。 |
85| outBuffer | 指向要申请的buffer结构的体指针,结构体介绍详见[OmxCodecBuffer](_omx_codec_buffer_v20.md)。 |
86
87**返回:**
88
89HDF_SUCCESS 表示申请buffer成功。
90
91HDF_ERR_INVALID_PARAM 表示参数无效,申请buffer失败。
92
93HDF_FAILURE 表示执行失败。
94
95其他值表示底层返回失败,具体错误码详见OpenMAX IL定义的OMX_ERRORTYPE。
96
97
98### ComponentDeInit()
99
100```
101ICodecComponent::ComponentDeInit ()
102```
103
104**描述**
105
106组件去初始化。
107
108调用此接口使组件去初始化,当组件处于OMX_StateLoaded状态时,将直接关闭组件,更多组件状态的说明请详见**OMX_STATETYPE**。
109
110**起始版本:** 4.1
111
112**返回:**
113
114HDF_SUCCESS 表示去初始化成功。
115
116HDF_ERR_INVALID_PARAM 表示参数无效,去初始化失败。
117
118HDF_FAILURE 表示执行失败。
119
120其他值表示底层返回失败,具体错误码详见OpenMAX IL定义的OMX_ERRORTYPE。
121
122
123### ComponentRoleEnum()
124
125```
126ICodecComponent::ComponentRoleEnum ([out] unsigned char[] role, [in] unsigned int index )
127```
128
129**描述**
130
131获取组件角色。
132
133根据组件角色索引获取对应组件角色。
134
135**起始版本:** 4.1
136
137**参数:**
138
139| 名称 | 描述 |
140| -------- | -------- |
141| role | 角色名称。 |
142| index | 角色的索引,一个组件可能支持多种角色。 |
143
144**返回:**
145
146HDF_SUCCESS 表示获取角色成功。
147
148HDF_ERR_INVALID_PARAM 表示参数无效,获取角色失败。
149
150HDF_FAILURE 表示执行失败。
151
152其他值表示底层返回失败,具体错误码详见OpenMAX IL定义的OMX_ERRORTYPE。
153
154
155### ComponentTunnelRequest()
156
157```
158ICodecComponent::ComponentTunnelRequest ([in] unsigned int port, [in] int tunneledComp, [in] unsigned int tunneledPort, [in] struct OMX_TUNNELSETUPTYPE inTunnelSetup, [out] struct OMX_TUNNELSETUPTYPE outTunnelSetup )
159```
160
161**描述**
162
163设置组件采用Tunnel方式通信。
164
165当组件处于OMX_StateLoaded状态时(表示组件已加载),用户通过调用此接口确定组件是否可以进行Tunnel传输,如果可以则设置组件的Tunnel传输。 更多组件状态的说明请详见**OMX_STATETYPE**。
166
167**起始版本:** 4.1
168
169**参数:**
170
171| 名称 | 描述 |
172| -------- | -------- |
173| port | 组件设置的端口。 |
174| tunneledComp | 组件的tunnel组件句柄。 |
175| tunneledPort | 组件用来Tunnel通信的端口。 |
176| inTunnelSetup | 指向Tunnel设置的结构体[OMX_TUNNELSETUPTYPE](_o_m_x___t_u_n_n_e_l_s_e_t_u_p_t_y_p_e_v20.md)指针。 |
177| outTunnelSetup | 指向Tunnel设置的结构体[OMX_TUNNELSETUPTYPE](_o_m_x___t_u_n_n_e_l_s_e_t_u_p_t_y_p_e_v20.md)指针。 |
178
179**返回:**
180
181HDF_SUCCESS 表示设置成功。
182
183HDF_ERR_INVALID_PARAM 表示参数无效,设置失败。
184
185HDF_FAILURE 表示执行失败。
186
187其他值表示底层返回失败,具体错误码详见OpenMAX IL定义的OMX_ERRORTYPE。
188
189
190### EmptyThisBuffer()
191
192```
193ICodecComponent::EmptyThisBuffer ([in] struct OmxCodecBuffer buffer)
194```
195
196**描述**
197
198编解码输入待处理buffer。
199
200此接口在组件处于OMX_StateExecuting或者OMX_StatePause状态时调用,更多组件状态的说明请详见**OMX_STATETYPE**。
201
202**起始版本:** 4.1
203
204**参数:**
205
206| 名称 | 描述 |
207| -------- | -------- |
208| buffer | 指向要输入的buffer结构体的指针,结构体介绍详见[OmxCodecBuffer](_omx_codec_buffer_v20.md)。 |
209
210**返回:**
211
212HDF_SUCCESS 表示输入buffer成功。
213
214HDF_ERR_INVALID_PARAM 表示参数无效,输入buffer失败。
215
216HDF_FAILURE 表示执行失败。
217
218其他值表示底层返回失败,具体错误码详见OpenMAX IL定义的OMX_ERRORTYPE。
219
220
221### FillThisBuffer()
222
223```
224ICodecComponent::FillThisBuffer ([in] struct OmxCodecBuffer buffer)
225```
226
227**描述**
228
229编解码输出填充buffer。
230
231此接口在组件处于OMX_StateExecuting或者OMX_StatePause状态时调用,更多组件状态的说明请详见**OMX_STATETYPE**。
232
233**起始版本:** 4.1
234
235**参数:**
236
237| 名称 | 描述 |
238| -------- | -------- |
239| buffer | 指向要填充的buffer结构体的指针,结构体介绍详见[OmxCodecBuffer](_omx_codec_buffer_v20.md)。 |
240
241**返回:**
242
243HDF_SUCCESS 表示填充buffer成功。
244
245HDF_ERR_INVALID_PARAM 表示参数无效,填充buffer失败。
246
247HDF_FAILURE 表示执行失败。
248
249其他值表示底层返回失败,具体错误码详见OpenMAX IL定义的OMX_ERRORTYPE。
250
251
252### FreeBuffer()
253
254```
255ICodecComponent::FreeBuffer ([in] unsigned int portIndex, [in] struct OmxCodecBuffer buffer )
256```
257
258**描述**
259
260释放buffer。
261
262此接口在以下情况下使用:
263
264- 当组件处于OMX_StateIdle状态,并且已经向组件发送OMX_StateLoaded状态转换请求。
265
266- 在去使能端口上,组件处于OMX_StateExecuting、OMX_StatePause或OMX_StateIdle时调用。 更多组件状态的说明请详见**OMX_STATETYPE**。
267
268- 此接口调用可随时进行,但是如果未在上述情况下执行,可能会导致组件上报OMX_ErrorPortUnpopulated事件。
269
270**起始版本:** 4.1
271
272**参数:**
273
274| 名称 | 描述 |
275| -------- | -------- |
276| portIndex | 指定的组件端口。 |
277| buffer | 指向要释放的buffer结构体的结构体的指针,结构体介绍详见[OmxCodecBuffer](_omx_codec_buffer_v20.md)。 |
278
279**返回:**
280
281HDF_SUCCESS 表示释放buffer成功。
282
283HDF_ERR_INVALID_PARAM 表示参数无效,释放buffer失败。
284
285HDF_FAILURE 表示执行失败。
286
287其他值表示底层返回失败,具体错误码详见OpenMAX IL定义的OMX_ERRORTYPE。
288
289
290### GetComponentVersion()
291
292```
293ICodecComponent::GetComponentVersion ([out] struct CompVerInfo verInfo)
294```
295
296**描述**
297
298获取Codec组件版本号。
299
300通过查询组件,返回组件版本信息。
301
302**起始版本:** 4.1
303
304**参数:**
305
306| 名称 | 描述 |
307| -------- | -------- |
308| verInfo | 指向组件版本信息的对象,详见[CompVerInfo](_comp_ver_info_v20.md)。 |
309
310**返回:**
311
312HDF_SUCCESS 表示获取版本号成功。
313
314HDF_ERR_INVALID_PARAM 表示参数无效,获取版本号失败。
315
316HDF_FAILURE 表示执行失败。
317
318其他值表示底层返回失败,具体错误码详见OpenMAX IL定义的OMX_ERRORTYPE。
319
320
321### GetConfig()
322
323```
324ICodecComponent::GetConfig ([in] unsigned int index, [in] byte[] inCfgStruct, [out] byte[] outCfgStruct )
325```
326
327**描述**
328
329获取组件的配置。
330
331加载组件后可以随时调用此接口获取组件的配置。
332
333**起始版本:** 4.1
334
335**参数:**
336
337| 名称 | 描述 |
338| -------- | -------- |
339| index | 待填充结构的索引,详见**OMX_INDEXTYPE**。 |
340| inCfgStruct | 指向由组件填充的应用程序分配的结构体指针。 |
341| outCfgStruct | 指向由组件填充的应用程序分配的结构体指针。 |
342
343**返回:**
344
345HDF_SUCCESS 表示获取配置成功。
346
347HDF_ERR_INVALID_PARAM 表示参数无效,获取配置失败。
348
349HDF_FAILURE 表示执行失败。
350
351其他值表示底层返回失败,具体错误码详见OpenMAX IL定义的OMX_ERRORTYPE。
352
353
354### GetExtensionIndex()
355
356```
357ICodecComponent::GetExtensionIndex ([in] String paramName, [out] unsigned int indexType )
358```
359
360**描述**
361
362根据字符串获取组件的扩展索引。
363
364将扩展字符串转换为Openmax IL结构索引,此索引可用于获取([GetParameter](#getparameter))或者设置([SetParameter](#setparameter))组件参数。
365
366**起始版本:** 4.1
367
368**参数:**
369
370| 名称 | 描述 |
371| -------- | -------- |
372| paramName | 组件用来转换为配置索引的字符串。 |
373| indexType | 由paramName转换的配置索引,详见**OMX_INDEXTYPE**。 |
374
375**返回:**
376
377HDF_SUCCESS 表示获取扩展索引成功。
378
379HDF_ERR_INVALID_PARAM 表示参数无效,获取扩展索引失败。
380
381HDF_FAILURE 表示执行失败。
382
383其他值表示底层返回失败,具体错误码详见OpenMAX IL定义的OMX_ERRORTYPE。
384
385
386### GetParameter()
387
388```
389ICodecComponent::GetParameter ([in] unsigned int index, [in] byte[] inParamStruct, [out] byte[] outParamStruct )
390```
391
392**描述**
393
394获取组件参数设置。
395
396当组件处于除了OMX_StateInvalid(组件状态异常)之外的其他状态,用户可通过此接口获取组件参数,组件状态详见**OMX_STATETYPE**。
397
398**起始版本:** 4.1
399
400**参数:**
401
402| 名称 | 描述 |
403| -------- | -------- |
404| index | 待填充结构的索引,详见OMX IL定义的OMX_INDEXTYPE。 |
405| inParamStruct | 指向由组件填充的应用程序分配的结构体指针。 |
406| outParamStruct | 指向由组件填充的应用程序分配的结构体指针。 |
407
408**返回:**
409
410HDF_SUCCESS 表示获取参数成功。
411
412HDF_ERR_INVALID_PARAM 表示参数无效,获取参数失败。
413
414HDF_FAILURE 表示执行失败。
415
416其他值表示底层返回失败,具体错误码详见OpenMAX IL定义的OMX_ERRORTYPE。
417
418
419### GetState()
420
421```
422ICodecComponent::GetState ([out] enum OMX_STATETYPE state)
423```
424
425**描述**
426
427获取组件的当前状态。
428
429用户可调用此接口获取组件的当前状态。
430
431**起始版本:** 4.1
432
433**参数:**
434
435| 名称 | 描述 |
436| -------- | -------- |
437| state | 指向获取到的状态指针,组件状态详见**OMX_STATETYPE**。 |
438
439**返回:**
440
441HDF_SUCCESS 表示获取状态成功。
442
443HDF_ERR_INVALID_PARAM 表示参数无效,获取状态失败。
444
445HDF_FAILURE 表示执行失败。
446
447其他值表示底层返回失败,具体错误码详见OpenMAX IL定义的OMX_ERRORTYPE。
448
449
450### SendCommand()
451
452```
453ICodecComponent::SendCommand ([in] enum OMX_COMMANDTYPE cmd, [in] unsigned int param, [in] byte[] cmdData )
454```
455
456**描述**
457
458发送命令给组件。
459
460发送命令给组件,当命令为设置状态时,会有事件回调通知结果给上层,其他命令则没有事件上报。
461
462**起始版本:** 4.1
463
464**参数:**
465
466| 名称 | 描述 |
467| -------- | -------- |
468| cmd | 组件要执行的命令,详见**OMX_COMMANDTYPE**。 |
469| param | 组件要执行的命令携带的参数。<br/>- 当cmd为OMX_CommandStateSet时,param的值详见**OMX_STATETYPE**。<br/>- 当cmd为OMX_CommandFlush、OMX_CommandPortDisable、OMX_CommandPortEnable、OMX_CommandMarkBuffer时,param为目标端口。 |
470| cmdData | 当cmd为OMX_CommandMarkBuffer时,指向OMX_MARKTYPE结构体指针。 |
471
472**返回:**
473
474HDF_SUCCESS 表示发送命令成功。
475
476HDF_ERR_INVALID_PARAM 表示参数无效,发送命令失败。
477
478HDF_FAILURE 表示执行失败。
479
480其他值表示底层返回失败,具体错误码详见OpenMAX IL定义的OMX_ERRORTYPE。
481
482
483### SetCallbacks()
484
485```
486ICodecComponent::SetCallbacks ([in] ICodecCallback callbacks, [in] long appData )
487```
488
489**描述**
490
491设置Codec组件的回调函数。
492
493当组件处于OMX_StateLoaded状态时,使用此回调函数向上通知事件以及上报可用的输入输出信息。更多组件状态的说明请详见**OMX_STATETYPE**。
494
495**起始版本:** 4.1
496
497**参数:**
498
499| 名称 | 描述 |
500| -------- | -------- |
501| callbacks | 指向回调函数[ICodecCallback](interface_i_codec_callback_v20.md)对象的指针。 |
502| appData | 指向应用程序定义的值的指针,该值将在回调期间返回。 |
503
504**返回:**
505
506HDF_SUCCESS 表示设置回调成功。
507
508HDF_ERR_INVALID_PARAM 表示参数无效,设置回调失败。
509
510HDF_FAILURE 表示执行失败。
511
512其他值表示底层返回失败,具体错误码详见OpenMAX IL定义的OMX_ERRORTYPE。
513
514
515### SetConfig()
516
517```
518ICodecComponent::SetConfig ([in] unsigned int index, [in] byte[] cfgStruct )
519```
520
521**描述**
522
523设置组件的配置。
524
525加载组件后可以随时调用此接口设置组件的配置。
526
527**起始版本:** 4.1
528
529**参数:**
530
531| 名称 | 描述 |
532| -------- | -------- |
533| index | 要设置的结构索引,详见**OMX_INDEXTYPE**。 |
534| cfgStruct | 指向组件用于初始化的应用程序分配结构的指针。 |
535
536**返回:**
537
538HDF_SUCCESS 表示设置配置成功。
539
540HDF_ERR_INVALID_PARAM 表示参数无效,设置失败。
541
542HDF_FAILURE 表示执行失败。
543
544其他值表示底层返回失败,具体错误码详见OpenMAX IL定义的OMX_ERRORTYPE。
545
546
547### SetParameter()
548
549```
550ICodecComponent::SetParameter ([in] unsigned int index, [in] byte[] paramStruct )
551```
552
553**描述**
554
555设置组件需要的参数。
556
557当出现如下情况时,用户可以通过此接口设置组件参数。
558
559- 当组件处于OMX_StateLoaded(表示组件已加载)。
560
561- 当组件处于OMX_StateWaitForResources(表示组件等待所需要的资源)。
562
563- 当状态或者端口是去使能状态,用户可通过此接口设置组件参数。
564
565更多组件状态的说明请详见**OMX_STATETYPE**。
566
567**起始版本:** 4.1
568
569**参数:**
570
571| 名称 | 描述 |
572| -------- | -------- |
573| index | 要设置的结构索引,详见OMX IL定义的OMX_INDEXTYPE。 |
574| paramStruct | 指向组件用于初始化的应用程序分配结构的指针。 |
575
576**返回:**
577
578HDF_SUCCESS 表示设置参数成功。
579
580HDF_ERR_INVALID_PARAM 表示参数无效,设置参数失败。
581
582HDF_FAILURE 表示执行失败。
583
584其他值表示底层返回失败,具体错误码详见OpenMAX IL定义的OMX_ERRORTYPE。
585
586
587### UseBuffer()
588
589```
590ICodecComponent::UseBuffer ([in] unsigned int portIndex, [in] struct OmxCodecBuffer inBuffer, [out] struct OmxCodecBuffer outBuffer )
591```
592
593**描述**
594
595指定组件端口的buffer。
596
597此接口在以下情况下使用:
598
599- 当组件处于OMX_StateLoaded状态(表示组件已加载),并且用户已经向组件发送OMX_StateIdle状态转换请求。
600
601- 当组件处于OMX_StateWaitForResources状态,所需的资源可用,并且组件已准备好进入OMX_StateIdle状态。
602
603- 在去使能端口上,组件处于OMX_StateExecuting、OMX_StatePause或OMX_StateIdle状态。
604
605更多组件状态的说明请详见**OMX_STATETYPE**。
606
607**起始版本:** 4.1
608
609**参数:**
610
611| 名称 | 描述 |
612| -------- | -------- |
613| portIndex | 指定的组件端口。 |
614| inBuffer | 指向要使用的buffer结构体的指针,结构体介绍详见[OmxCodecBuffer](_omx_codec_buffer_v20.md)。 |
615| outBuffer | 指向要使用的buffer结构体的指针,结构体介绍详见[OmxCodecBuffer](_omx_codec_buffer_v20.md)。 |
616
617**返回:**
618
619HDF_SUCCESS 表示指定成功。
620
621HDF_ERR_INVALID_PARAM 表示参数无效,指定失败。
622
623HDF_FAILURE 表示执行失败。
624
625其他值表示底层返回失败,具体错误码详见OpenMAX IL定义的OMX_ERRORTYPE。
626
627
628### UseEglImage()
629
630```
631ICodecComponent::UseEglImage ([in] unsigned int portIndex, [in] struct OmxCodecBuffer inBuffer, [out] struct OmxCodecBuffer outBuffer, [in] byte[] eglImage )
632```
633
634**描述**
635
636使用已在EGL中申请的空间。
637
638此接口在以下情况下使用:
639
640- 当组件处于OMX_StateLoaded状态,并且已经向组件发送OMX_StateIdle状态转换请求。
641
642- 当组件处于OMX_StateWaitForResources状态,所需的资源可用,并且组件已准备好进入OMX_StateIdle状态。
643
644- 在去使能端口上,组件处于OMX_StateExecuting、OMX_StatePause或OMX_StateIdle状态。
645
646更多组件状态的说明请详见**OMX_STATETYPE**。
647
648**起始版本:** 4.1
649
650**参数:**
651
652| 名称 | 描述 |
653| -------- | -------- |
654| portIndex | 指定的组件端口。 |
655| inBuffer | 指向[OmxCodecBuffer](_omx_codec_buffer_v20.md)结构体的指针。 |
656| outBuffer | 指向[OmxCodecBuffer](_omx_codec_buffer_v20.md)结构体的指针。 |
657| eglImage | EGL申请的图像指针。 |
658
659**返回:**
660
661HDF_SUCCESS 表示使用成功。
662
663HDF_ERR_INVALID_PARAM 表示参数无效,使用失败。
664
665HDF_FAILURE 表示执行失败。
666
667其他值表示底层返回失败,具体错误码详见OpenMAX IL定义的OMX_ERRORTYPE。
668