1# video_processing.h 2<!--Kit: Media Kit--> 3<!--Subsystem: Multimedia--> 4<!--Owner: @wang-haizhou6--> 5<!--Designer: @HmQQQ--> 6<!--Tester: @xchaosioda--> 7<!--Adviser: @zengyawen--> 8 9## 概述 10 11声明视频处理函数。 12 13提供视频处理能力,包括颜色空间转换、元数据生成和视频缩放。 14 15**引用文件:** <multimedia/video_processing_engine/video_processing.h> 16 17**库:** libvideo_processing.so 18 19**系统能力:** SystemCapability.Multimedia.VideoProcessingEngine 20 21**起始版本:** 12 22 23**相关模块:** [VideoProcessing](capi-videoprocessing.md) 24 25## 汇总 26 27### 函数 28 29| 名称 | 描述 | 30| -- | -- | 31| [VideoProcessing_ErrorCode OH_VideoProcessing_InitializeEnvironment(void)](#oh_videoprocessing_initializeenvironment) | 初始化视频处理全局环境。<br>该函数是可选的。<br>该函数只在主进程启动时被调用一次,用于初始化视频处理全局环境,这样可以减少[OH_VideoProcessing_Create](#oh_videoprocessing_create)的时间。 | 32| [VideoProcessing_ErrorCode OH_VideoProcessing_DeinitializeEnvironment(void)](#oh_videoprocessing_deinitializeenvironment) | 释放视频处理全局环境。<br>调用前,必须调用[OH_VideoProcessing_InitializeEnvironment](#oh_videoprocessing_initializeenvironment)初始化。<br>通常在主进程即将退出时调用该函数来释放通过调用[OH_VideoProcessing_InitializeEnvironment](#oh_videoprocessing_initializeenvironment)函数初始化的全局环境。<br>如果仍有视频处理的实例运行中,就不能调用该函数。 | 33| [bool OH_VideoProcessing_IsColorSpaceConversionSupported(const VideoProcessing_ColorSpaceInfo* sourceVideoInfo, const VideoProcessing_ColorSpaceInfo* destinationVideoInfo)](#oh_videoprocessing_iscolorspaceconversionsupported) | 查询是否支持视频颜色空间转换。 | 34| [bool OH_VideoProcessing_IsMetadataGenerationSupported(const VideoProcessing_ColorSpaceInfo* sourceVideoInfo)](#oh_videoprocessing_ismetadatagenerationsupported) | 查询是否支持视频元数据生成。 | 35| [VideoProcessing_ErrorCode OH_VideoProcessing_Create(OH_VideoProcessing** videoProcessor, int type)](#oh_videoprocessing_create) | 创建视频处理实例。 | 36| [VideoProcessing_ErrorCode OH_VideoProcessing_Destroy(OH_VideoProcessing* videoProcessor)](#oh_videoprocessing_destroy) | 销毁视频处理实例。<br>销毁之前先停止实例,参阅[OH_VideoProcessing_Stop](#oh_videoprocessing_stop)。 | 37| [VideoProcessing_ErrorCode OH_VideoProcessing_RegisterCallback(OH_VideoProcessing* videoProcessor, const VideoProcessing_Callback* callback, void* userData)](#oh_videoprocessing_registercallback) | 注册回调函数。<br>在开始视频处理之前注册回调函数,视频处理过程中无法注册回调函数。 | 38| [VideoProcessing_ErrorCode OH_VideoProcessing_SetSurface(OH_VideoProcessing* videoProcessor, const OHNativeWindow* window)](#oh_videoprocessing_setsurface) | 设置视频处理输出surface。<br>在视频处理启动之前设置输出surface。 | 39| [VideoProcessing_ErrorCode OH_VideoProcessing_GetSurface(OH_VideoProcessing* videoProcessor, OHNativeWindow** window)](#oh_videoprocessing_getsurface) | 创建surface。<br>在视频处理启动之前创建输入surface。调用[OH_NativeWindow_DestroyNativeWindow](../apis-arkgraphics2d/capi-external-window-h.md#oh_nativewindow_destroynativewindow)销毁输入surface。 | 40| [VideoProcessing_ErrorCode OH_VideoProcessing_SetParameter(OH_VideoProcessing* videoProcessor, const OH_AVFormat* parameter)](#oh_videoprocessing_setparameter) | 设置视频处理输出参数。 | 41| [VideoProcessing_ErrorCode OH_VideoProcessing_GetParameter(OH_VideoProcessing* videoProcessor, OH_AVFormat* parameter)](#oh_videoprocessing_getparameter) | 获取视频处理参数。 | 42| [VideoProcessing_ErrorCode OH_VideoProcessing_Start(OH_VideoProcessing* videoProcessor)](#oh_videoprocessing_start) | 启动视频处理。<br>成功启动后,回调函数[OH_VideoProcessingCallback_OnState](capi-video-processing-types-h.md#oh_videoprocessingcallback_onstate)会报告[VIDEO_PROCESSING_STATE_RUNNING](capi-video-processing-types-h.md#videoprocessing_state)状态。 | 43| [VideoProcessing_ErrorCode OH_VideoProcessing_Stop(OH_VideoProcessing* videoProcessor)](#oh_videoprocessing_stop) | 停止视频处理。<br>成功停止后,回调函数[OH_VideoProcessingCallback_OnState](capi-video-processing-types-h.md#oh_videoprocessingcallback_onstate)会报告[VIDEO_PROCESSING_STATE_STOPPED](capi-video-processing-types-h.md#videoprocessing_state)状态。 | 44| [VideoProcessing_ErrorCode OH_VideoProcessing_RenderOutputBuffer(OH_VideoProcessing* videoProcessor, uint32_t index)](#oh_videoprocessing_renderoutputbuffer) | 渲染处理并输出buffer。<br>如果设置了回调函数[OH_VideoProcessingCallback_OnNewOutputBuffer](capi-video-processing-types-h.md#oh_videoprocessingcallback_onnewoutputbuffer),当输出buffer准备好之后会通过回调函数把buffer的索引返回给用户。 | 45| [VideoProcessing_ErrorCode OH_VideoProcessingCallback_Create(VideoProcessing_Callback** callback)](#oh_videoprocessingcallback_create) | 创建视频处理回调函数对象。 | 46| [VideoProcessing_ErrorCode OH_VideoProcessingCallback_Destroy(VideoProcessing_Callback* callback)](#oh_videoprocessingcallback_destroy) | 销毁回调对象。回调对象在注册之后就可以销毁。 | 47| [VideoProcessing_ErrorCode OH_VideoProcessingCallback_BindOnError(VideoProcessing_Callback* callback, OH_VideoProcessingCallback_OnError onError)](#oh_videoprocessingcallback_bindonerror) | 绑定回调函数[OH_VideoProcessingCallback_OnError](capi-video-processing-types-h.md#oh_videoprocessingcallback_onerror)到回调对象。 | 48| [VideoProcessing_ErrorCode OH_VideoProcessingCallback_BindOnState(VideoProcessing_Callback* callback, OH_VideoProcessingCallback_OnState onState)](#oh_videoprocessingcallback_bindonstate) | 绑定回调函数[OH_VideoProcessingCallback_OnState](capi-video-processing-types-h.md#oh_videoprocessingcallback_onstate)到回调对象。 | 49| [VideoProcessing_ErrorCode OH_VideoProcessingCallback_BindOnNewOutputBuffer(VideoProcessing_Callback* callback, OH_VideoProcessingCallback_OnNewOutputBuffer onNewOutputBuffer)](#oh_videoprocessingcallback_bindonnewoutputbuffer) | 绑定回调函数[OH_VideoProcessingCallback_OnNewOutputBuffer](capi-video-processing-types-h.md#oh_videoprocessingcallback_onnewoutputbuffer)到回调对象。 | 50 51## 函数说明 52 53### OH_VideoProcessing_InitializeEnvironment() 54 55``` 56VideoProcessing_ErrorCode OH_VideoProcessing_InitializeEnvironment(void) 57``` 58 59**描述** 60 61初始化视频处理全局环境。 62 63该函数是可选的。 64 65该函数只在主进程启动时被调用一次,用于初始化视频处理全局环境,这样可以减少[OH_VideoProcessing_Create](#oh_videoprocessing_create)的时间。 66 67调用[OH_VideoProcessing_DeinitializeEnvironment](#oh_videoprocessing_deinitializeenvironment)释放视频处理全局环境。 68 69初始化后,必须释放视频处理全局环境,释放方式及时机详见[OH_VideoProcessing_DeinitializeEnvironment](#oh_videoprocessing_deinitializeenvironment)。 70 71**起始版本:** 12 72 73**返回:** 74 75| 类型 | 说明 | 76| -- | -- | 77| [VideoProcessing_ErrorCode](capi-video-processing-types-h.md#videoprocessing_errorcode) | 如果初始化成功,返回VIDEO_PROCESSING_SUCCESS,否则返回VIDEO_PROCESSING_ERROR_INITIALIZE_FAILED。<br> 如果失败,应用需要检查GPU是否正常工作。 | 78 79### OH_VideoProcessing_DeinitializeEnvironment() 80 81``` 82VideoProcessing_ErrorCode OH_VideoProcessing_DeinitializeEnvironment(void) 83``` 84 85**描述** 86 87释放视频处理全局环境。 88 89调用前,必须调用[OH_VideoProcessing_InitializeEnvironment](#oh_videoprocessing_initializeenvironment)初始化。 90 91通常在主进程即将退出时调用该函数来释放通过调用[OH_VideoProcessing_InitializeEnvironment](#oh_videoprocessing_initializeenvironment)函数初始化的全局环境。 92 93如果仍有视频处理的实例运行中,就不能调用该函数。 94 95**起始版本:** 12 96 97**返回:** 98 99| 类型 | 说明 | 100| -- | -- | 101| [VideoProcessing_ErrorCode](capi-video-processing-types-h.md#videoprocessing_errorcode) | 如果执行成功,返回VIDEO_PROCESSING_SUCCESS。<br> 如果还有视频处理的实例没有销毁或者没有调用[OH_VideoProcessing_InitializeEnvironment](#oh_videoprocessing_initializeenvironment),返回VIDEO_PROCESSING_ERROR_OPERATION_NOT_PERMITTED。 | 102 103### OH_VideoProcessing_IsColorSpaceConversionSupported() 104 105``` 106bool OH_VideoProcessing_IsColorSpaceConversionSupported(const VideoProcessing_ColorSpaceInfo* sourceVideoInfo,const VideoProcessing_ColorSpaceInfo* destinationVideoInfo) 107``` 108 109**描述** 110 111查询是否支持视频颜色空间转换。 112 113**起始版本:** 12 114 115 116**参数:** 117 118| 参数项 | 描述 | 119| -- | -- | 120| const [VideoProcessing_ColorSpaceInfo](capi-videoprocessing-videoprocessing-colorspaceinfo.md)* sourceVideoInfo | 输入视频颜色空间信息。 | 121| const [VideoProcessing_ColorSpaceInfo](capi-videoprocessing-videoprocessing-colorspaceinfo.md)* destinationVideoInfo | 输出视频颜色空间信息。 | 122 123**返回:** 124 125| 类型 | 说明 | 126| -- | -- | 127| bool | 如果支持视频颜色空间转换返回true,否则返回false。 | 128 129### OH_VideoProcessing_IsMetadataGenerationSupported() 130 131``` 132bool OH_VideoProcessing_IsMetadataGenerationSupported(const VideoProcessing_ColorSpaceInfo* sourceVideoInfo) 133``` 134 135**描述** 136 137查询是否支持视频元数据生成。 138 139**起始版本:** 12 140 141 142**参数:** 143 144| 参数项 | 描述 | 145| -- | -- | 146| const [VideoProcessing_ColorSpaceInfo](capi-videoprocessing-videoprocessing-colorspaceinfo.md)* sourceVideoInfo | 输入视频颜色空间信息。 | 147 148**返回:** 149 150| 类型 | 说明 | 151| -- | -- | 152| bool | 如果支持视频元数据生成返回true,否则返回false。 | 153 154### OH_VideoProcessing_Create() 155 156``` 157VideoProcessing_ErrorCode OH_VideoProcessing_Create(OH_VideoProcessing** videoProcessor, int type) 158``` 159 160**描述** 161 162创建视频处理实例。 163 164**起始版本:** 12 165 166 167**参数:** 168 169| 参数项 | 描述 | 170| -- | -- | 171| [OH_VideoProcessing](capi-videoprocessing-oh-videoprocessing.md)** videoProcessor | 输出参数。指向视频处理对象的指针的指针。输入前\*videoProcessor必须是空指针。 | 172| int type | 使用VIDEO_PROCESSING_TYPE_XXX来指定处理类型。实例的处理类型不能改变。 | 173 174**返回:** 175 176| 类型 | 说明 | 177| -- | -- | 178| [VideoProcessing_ErrorCode](capi-video-processing-types-h.md#videoprocessing_errorcode) | 如果视频处理实例创建成功,返回VIDEO_PROCESSING_SUCCESS。<br> 如果处理类型不支持,返回VIDEO_PROCESSING_ERROR_UNSUPPORTED_PROCESSING,例如,不支持元数据生成。<br> 如果创建视频处理实例失败,返回VIDEO_PROCESSING_ERROR_CREATE_FAILED。<br> 如果实例为空或实例的指针非空,返回VIDEO_PROCESSING_ERROR_INVALID_INSTANCE。<br> 如果处理类型无效,返回VIDEO_PROCESSING_ERROR_INVALID_PARAMETER。 | 179 180### OH_VideoProcessing_Destroy() 181 182``` 183VideoProcessing_ErrorCode OH_VideoProcessing_Destroy(OH_VideoProcessing* videoProcessor) 184``` 185 186**描述** 187 188销毁视频处理实例。 189 190销毁之前先停止实例,参阅[OH_VideoProcessing_Stop](#oh_videoprocessing_stop)。 191 192**起始版本:** 12 193 194 195**参数:** 196 197| 参数项 | 描述 | 198| -- | -- | 199| [OH_VideoProcessing](capi-videoprocessing-oh-videoprocessing.md)* videoProcessor | 指向视频处理实例的指针,建议在实例销毁之后将其设置为空指针。 | 200 201**返回:** 202 203| 类型 | 说明 | 204| -- | -- | 205| [VideoProcessing_ErrorCode](capi-video-processing-types-h.md#videoprocessing_errorcode) | 如果实例销毁成功,返回VIDEO_PROCESSING_SUCCESS。<br> 如果实例为空或者不是一个视频处理实例,返回VIDEO_PROCESSING_ERROR_INVALID_INSTANCE。<br> 如果实例仍在运行,返回VIDEO_PROCESSING_ERROR_OPERATION_NOT_PERMITTED。 | 206 207### OH_VideoProcessing_RegisterCallback() 208 209``` 210VideoProcessing_ErrorCode OH_VideoProcessing_RegisterCallback(OH_VideoProcessing* videoProcessor,const VideoProcessing_Callback* callback, void* userData) 211``` 212 213**描述** 214 215注册回调函数。 216 217在开始视频处理之前注册回调函数,视频处理过程中无法注册回调函数。 218 219**起始版本:** 12 220 221 222**参数:** 223 224| 参数项 | 描述 | 225| -- | -- | 226| [OH_VideoProcessing](capi-videoprocessing-oh-videoprocessing.md)* videoProcessor | 指向视频处理实例的指针。 | 227| const [VideoProcessing_Callback](capi-videoprocessing-videoprocessing-callback.md)* callback | 回调函数指针。 | 228| void* userData | 指向用户特定数据的指针。 | 229 230**返回:** 231 232| 类型 | 说明 | 233| -- | -- | 234| [VideoProcessing_ErrorCode](capi-video-processing-types-h.md#videoprocessing_errorcode) | 如果回调函数注册成功,返回VIDEO_PROCESSING_SUCCESS。<br> 如果实例为空或者不是一个视频处理实例,返回VIDEO_PROCESSING_ERROR_INVALID_INSTANCE。<br> 如果回调函数指针为空,返回VIDEO_PROCESSING_ERROR_INVALID_PARAMETER。<br> 如果实例仍在运行,返回VIDEO_PROCESSING_ERROR_OPERATION_NOT_PERMITTED。 | 235 236### OH_VideoProcessing_SetSurface() 237 238``` 239VideoProcessing_ErrorCode OH_VideoProcessing_SetSurface(OH_VideoProcessing* videoProcessor,const OHNativeWindow* window) 240``` 241 242**描述** 243 244设置视频处理输出surface。 245 246在视频处理启动之前设置输出surface。 247 248**起始版本:** 12 249 250 251**参数:** 252 253| 参数项 | 描述 | 254| -- | -- | 255| [OH_VideoProcessing](capi-videoprocessing-oh-videoprocessing.md)* videoProcessor | 指向视频处理实例的指针。 | 256| const [OHNativeWindow](capi-videoprocessing-nativewindow.md)* window | 指向输出surface的指针。 | 257 258**返回:** 259 260| 类型 | 说明 | 261| -- | -- | 262| [VideoProcessing_ErrorCode](capi-video-processing-types-h.md#videoprocessing_errorcode) | 如果输出surface设置成功,返回VIDEO_PROCESSING_SUCCESS。<br> 如果实例为空或者不是一个视频处理实例,返回VIDEO_PROCESSING_ERROR_INVALID_INSTANCE。<br> 如果window为空指针,返回VIDEO_PROCESSING_ERROR_INVALID_PARAMETER。 | 263 264### OH_VideoProcessing_GetSurface() 265 266``` 267VideoProcessing_ErrorCode OH_VideoProcessing_GetSurface(OH_VideoProcessing* videoProcessor, OHNativeWindow** window) 268``` 269 270**描述** 271 272创建surface。 273 274在视频处理启动之前创建输入surface。调用[OH_NativeWindow_DestroyNativeWindow](../apis-arkgraphics2d/capi-external-window-h.md#oh_nativewindow_destroynativewindow)销毁输入surface。 275 276**起始版本:** 12 277 278 279**参数:** 280 281| 参数项 | 描述 | 282| -- | -- | 283| [OH_VideoProcessing](capi-videoprocessing-oh-videoprocessing.md)* videoProcessor | 指向视频处理实例的指针。 | 284| [OHNativeWindow](capi-videoprocessing-nativewindow.md)** window | 指向输入surface的指针。例如,此输入surface指针可以指向视频解码器输出surface。 | 285 286**返回:** 287 288| 类型 | 说明 | 289| -- | -- | 290| [VideoProcessing_ErrorCode](capi-video-processing-types-h.md#videoprocessing_errorcode) | 如果执行成功,返回VIDEO_PROCESSING_SUCCESS。<br> 如果实例为空或者不是一个视频处理实例,返回VIDEO_PROCESSING_ERROR_INVALID_INSTANCE。<br> 如果window为空指针或指向window的指针不为空,返回VIDEO_PROCESSING_ERROR_INVALID_PARAMETER。<br> 如果创建surface失败,或者输入surface已经创建,或者视频处理实例还在运行,返回VIDEO_PROCESSING_ERROR_OPERATION_NOT_PERMITTED。 | 291 292### OH_VideoProcessing_SetParameter() 293 294``` 295VideoProcessing_ErrorCode OH_VideoProcessing_SetParameter(OH_VideoProcessing* videoProcessor,const OH_AVFormat* parameter) 296``` 297 298**描述** 299 300设置视频处理输出参数。 301 302**起始版本:** 12 303 304 305**参数:** 306 307| 参数项 | 描述 | 308| -- | -- | 309| [OH_VideoProcessing](capi-videoprocessing-oh-videoprocessing.md)* videoProcessor | 指向视频处理实例的指针。 | 310| const [OH_AVFormat](capi-videoprocessing-oh-avformat.md)* parameter | 指向视频处理参数实例的指针。 | 311 312**返回:** 313 314| 类型 | 说明 | 315| -- | -- | 316| [VideoProcessing_ErrorCode](capi-video-processing-types-h.md#videoprocessing_errorcode) | 如果参数设置成功,返回VIDEO_PROCESSING_SUCCESS。<br> 如果实例为空或者不是一个视频处理实例,返回VIDEO_PROCESSING_ERROR_INVALID_INSTANCE。<br> 如果参数为空,返回VIDEO_PROCESSING_ERROR_INVALID_PARAMETER。<br> 如果参数的某些属性无效,返回VIDEO_PROCESSING_ERROR_INVALID_VALUE,例如,包含不支持的参数值。<br> 如果内存分配失败,返回VIDEO_PROCESSING_ERROR_NO_MEMORY。 | 317 318### OH_VideoProcessing_GetParameter() 319 320``` 321VideoProcessing_ErrorCode OH_VideoProcessing_GetParameter(OH_VideoProcessing* videoProcessor, OH_AVFormat* parameter) 322``` 323 324**描述** 325 326获取视频处理参数。 327 328**起始版本:** 12 329 330 331**参数:** 332 333| 参数项 | 描述 | 334| -- | -- | 335| [OH_VideoProcessing](capi-videoprocessing-oh-videoprocessing.md)* videoProcessor | 指向视频处理实例的指针。 | 336| [OH_AVFormat](capi-videoprocessing-oh-avformat.md)* parameter | 指向视频处理参数实例的指针。 | 337 338**返回:** 339 340| 类型 | 说明 | 341| -- | -- | 342| [VideoProcessing_ErrorCode](capi-video-processing-types-h.md#videoprocessing_errorcode) | 如果参数获取成功,返回VIDEO_PROCESSING_SUCCESS。<br> 如果实例为空或者不是一个视频处理实例,返回VIDEO_PROCESSING_ERROR_INVALID_INSTANCE。<br> 如果参数为空,返回VIDEO_PROCESSING_ERROR_INVALID_PARAMETER。 | 343 344### OH_VideoProcessing_Start() 345 346``` 347VideoProcessing_ErrorCode OH_VideoProcessing_Start(OH_VideoProcessing* videoProcessor) 348``` 349 350**描述** 351 352启动视频处理。 353 354成功启动后,回调函数[OH_VideoProcessingCallback_OnState](capi-video-processing-types-h.md#oh_videoprocessingcallback_onstate)会报告[VideoProcessing_State](capi-video-processing-types-h.md#videoprocessing_state).VIDEO_PROCESSING_STATE_RUNNING状态。 355 356**起始版本:** 12 357 358 359**参数:** 360 361| 参数项 | 描述 | 362| -- | -- | 363| [OH_VideoProcessing](capi-videoprocessing-oh-videoprocessing.md)* videoProcessor | 指向视频处理实例的指针。 | 364 365**返回:** 366 367| 类型 | 说明 | 368| -- | -- | 369| [VideoProcessing_ErrorCode](capi-video-processing-types-h.md#videoprocessing_errorcode) | 如果执行成功,返回VIDEO_PROCESSING_SUCCESS。<br> 如果实例为空或者不是一个视频处理实例,返回VIDEO_PROCESSING_ERROR_INVALID_INSTANCE。<br> 如果没有设置输出surface,或者没有创建输入surface,或者实例已经运行,返回VIDEO_PROCESSING_ERROR_OPERATION_NOT_PERMITTED。 | 370 371### OH_VideoProcessing_Stop() 372 373``` 374VideoProcessing_ErrorCode OH_VideoProcessing_Stop(OH_VideoProcessing* videoProcessor) 375``` 376 377**描述** 378 379停止视频处理。 380 381成功停止后,回调函数[OH_VideoProcessingCallback_OnState](capi-video-processing-types-h.md#oh_videoprocessingcallback_onstate)会报告[VideoProcessing_State](capi-video-processing-types-h.md#videoprocessing_state).VIDEO_PROCESSING_STATE_STOPPED状态。 382 383**起始版本:** 12 384 385 386**参数:** 387 388| 参数项 | 描述 | 389| -- | -- | 390| [OH_VideoProcessing](capi-videoprocessing-oh-videoprocessing.md)* videoProcessor | 指向视频处理实例的指针。 | 391 392**返回:** 393 394| 类型 | 说明 | 395| -- | -- | 396| [VideoProcessing_ErrorCode](capi-video-processing-types-h.md#videoprocessing_errorcode) | 如果执行成功,返回VIDEO_PROCESSING_SUCCESS。<br> 如果实例为空或者不是一个视频处理实例,返回VIDEO_PROCESSING_ERROR_INVALID_INSTANCE。<br> 如果实例已经停止,返回VIDEO_PROCESSING_ERROR_OPERATION_NOT_PERMITTED。 | 397 398### OH_VideoProcessing_RenderOutputBuffer() 399 400``` 401VideoProcessing_ErrorCode OH_VideoProcessing_RenderOutputBuffer(OH_VideoProcessing* videoProcessor, uint32_t index) 402``` 403 404**描述** 405 406渲染处理并输出buffer。 407 408如果设置了回调函数[OH_VideoProcessingCallback_OnNewOutputBuffer](capi-video-processing-types-h.md#oh_videoprocessingcallback_onnewoutputbuffer),当输出buffer准备好之后会通过回调函数把buffer的索引返回给用户。 409 410**起始版本:** 12 411 412 413**参数:** 414 415| 参数项 | 描述 | 416| -- | -- | 417| [OH_VideoProcessing](capi-videoprocessing-oh-videoprocessing.md)* videoProcessor | 指向视频处理实例的指针。 | 418| uint32_t index | 输出buffer的索引。 | 419 420**返回:** 421 422| 类型 | 说明 | 423| -- | -- | 424| [VideoProcessing_ErrorCode](capi-video-processing-types-h.md#videoprocessing_errorcode) | 如果执行成功,返回VIDEO_PROCESSING_SUCCESS。<br> 如果实例为空或者不是一个视频处理实例,返回VIDEO_PROCESSING_ERROR_INVALID_INSTANCE。<br> 如果索引值无效,输出VIDEO_PROCESSING_ERROR_INVALID_PARAMETER。<br> 如果没有设置回调函数[OH_VideoProcessingCallback_OnNewOutputBuffer](capi-video-processing-types-h.md#oh_videoprocessingcallback_onnewoutputbuffer)或者实例已经停止运行,返回VIDEO_PROCESSING_ERROR_OPERATION_NOT_PERMITTED。 | 425 426### OH_VideoProcessingCallback_Create() 427 428``` 429VideoProcessing_ErrorCode OH_VideoProcessingCallback_Create(VideoProcessing_Callback** callback) 430``` 431 432**描述** 433 434创建视频处理回调函数对象。 435 436**起始版本:** 12 437 438 439**参数:** 440 441| 参数项 | 描述 | 442| -- | -- | 443| [VideoProcessing_Callback](capi-videoprocessing-videoprocessing-callback.md)** callback | 输出参数。\*callback是指向回调函数对象的指针。在创建回调函数对象之前\*callback必须为空指针。 | 444 445**返回:** 446 447| 类型 | 说明 | 448| -- | -- | 449| [VideoProcessing_ErrorCode](capi-video-processing-types-h.md#videoprocessing_errorcode) | 如果回调函数对象创建成功,返回VIDEO_PROCESSING_SUCCESS。<br> 如果callback为空或者callback不为空,返回VIDEO_PROCESSING_ERROR_INVALID_PARAMETER。<br> 如果内存不足,返回VIDEO_PROCESSING_ERROR_NO_MEMORY。 | 450 451### OH_VideoProcessingCallback_Destroy() 452 453``` 454VideoProcessing_ErrorCode OH_VideoProcessingCallback_Destroy(VideoProcessing_Callback* callback) 455``` 456 457**描述** 458 459销毁回调对象。回调对象在注册之后就可以销毁。 460 461**起始版本:** 12 462 463 464**参数:** 465 466| 参数项 | 描述 | 467| -- | -- | 468| [VideoProcessing_Callback](capi-videoprocessing-videoprocessing-callback.md)* callback | 指向回调对象的指针,建议在回调对象销毁之后将其设置为空指针。 | 469 470**返回:** 471 472| 类型 | 说明 | 473| -- | -- | 474| [VideoProcessing_ErrorCode](capi-video-processing-types-h.md#videoprocessing_errorcode) | 如果回调对象销毁成功,返回VIDEO_PROCESSING_SUCCESS。<br> 如果callback为空,返回VIDEO_PROCESSING_ERROR_INVALID_PARAMETER。 | 475 476### OH_VideoProcessingCallback_BindOnError() 477 478``` 479VideoProcessing_ErrorCode OH_VideoProcessingCallback_BindOnError(VideoProcessing_Callback* callback,OH_VideoProcessingCallback_OnError onError) 480``` 481 482**描述** 483 484绑定回调函数[OH_VideoProcessingCallback_OnError](capi-video-processing-types-h.md#oh_videoprocessingcallback_onerror)到回调对象。 485 486**起始版本:** 12 487 488 489**参数:** 490 491| 参数项 | 描述 | 492| -- | -- | 493| [VideoProcessing_Callback](capi-videoprocessing-videoprocessing-callback.md)* callback | 指向回调对象的指针。 | 494| [OH_VideoProcessingCallback_OnError](capi-video-processing-types-h.md#oh_videoprocessingcallback_onerror) onError | 回调函数。 | 495 496**返回:** 497 498| 类型 | 说明 | 499| -- | -- | 500| [VideoProcessing_ErrorCode](capi-video-processing-types-h.md#videoprocessing_errorcode) | 如果函数绑定成功,返回VIDEO_PROCESSING_SUCCESS。<br> 如果callback为空或者onError为空,返回VIDEO_PROCESSING_ERROR_INVALID_PARAMETER。 | 501 502### OH_VideoProcessingCallback_BindOnState() 503 504``` 505VideoProcessing_ErrorCode OH_VideoProcessingCallback_BindOnState(VideoProcessing_Callback* callback,OH_VideoProcessingCallback_OnState onState) 506``` 507 508**描述** 509 510绑定回调函数[OH_VideoProcessingCallback_OnState](capi-video-processing-types-h.md#oh_videoprocessingcallback_onstate)到回调对象。 511 512**起始版本:** 12 513 514 515**参数:** 516 517| 参数项 | 描述 | 518| -- | -- | 519| [VideoProcessing_Callback](capi-videoprocessing-videoprocessing-callback.md)* callback | 指向回调对象的指针。 | 520| [OH_VideoProcessingCallback_OnState](capi-video-processing-types-h.md#oh_videoprocessingcallback_onstate) onState | 回调函数。 | 521 522**返回:** 523 524| 类型 | 说明 | 525| -- | -- | 526| [VideoProcessing_ErrorCode](capi-video-processing-types-h.md#videoprocessing_errorcode) | 如果函数绑定成功,返回VIDEO_PROCESSING_SUCCESS。<br> 如果callback为空或者onState为空,返回VIDEO_PROCESSING_ERROR_INVALID_PARAMETER。 | 527 528### OH_VideoProcessingCallback_BindOnNewOutputBuffer() 529 530``` 531VideoProcessing_ErrorCode OH_VideoProcessingCallback_BindOnNewOutputBuffer(VideoProcessing_Callback* callback,OH_VideoProcessingCallback_OnNewOutputBuffer onNewOutputBuffer) 532``` 533 534**描述** 535 536绑定回调函数[OH_VideoProcessingCallback_OnNewOutputBuffer](capi-video-processing-types-h.md#oh_videoprocessingcallback_onnewoutputbuffer)到回调对象。 537 538**起始版本:** 12 539 540 541**参数:** 542 543| 参数项 | 描述 | 544| -- | -- | 545| [VideoProcessing_Callback](capi-videoprocessing-videoprocessing-callback.md)* callback | 指向回调对象的指针。 | 546| [OH_VideoProcessingCallback_OnNewOutputBuffer](capi-video-processing-types-h.md#oh_videoprocessingcallback_onnewoutputbuffer) onNewOutputBuffer | 回调函数。 | 547 548**返回:** 549 550| 类型 | 说明 | 551| -- | -- | 552| [VideoProcessing_ErrorCode](capi-video-processing-types-h.md#videoprocessing_errorcode) | 如果函数绑定成功,返回VIDEO_PROCESSING_SUCCESS。<br> 如果callback为空,返回VIDEO_PROCESSING_ERROR_INVALID_PARAMETER。 | 553 554 555