• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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