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