# VideoProcessing ## 概述 æä¾›ç”¨äºŽè§†é¢‘处ç†çš„API函数。 æä¾›è§†é¢‘处ç†èƒ½åŠ›ï¼ŒåŒ…æ‹¬é¢œè‰²ç©ºé—´è½¬æ¢ã€å…ƒæ•°æ®ç”Ÿæˆå’Œè§†é¢‘缩放。 <!--RP1--><!--RP1End--> **起始版本:** 12 ## 汇总 ### 文件 | åç§° | æè¿° | | -------- | -------- | | [video_processing.h](video__processing_8h.md) | 声明视频处ç†å‡½æ•°ã€‚ | | [video_processing_types.h](video__processing__types_8h.md) | 视频处ç†ç±»åž‹å®šä¹‰ã€‚ | ### 结构体 | åç§° | æè¿° | | -------- | -------- | | struct [VideoProcessing_ColorSpaceInfo](_video_processing___color_space_info.md) | è§†é¢‘é¢œè‰²ç©ºé—´ä¿¡æ¯æ•°æ®ç»“构。 | ### 类型定义 | åç§° | æè¿° | | -------- | -------- | | typedef struct [OH_VideoProcessing](#oh_videoprocessing-1) [OH_VideoProcessing](#oh_videoprocessing) | 定义视频处ç†å¯¹è±¡ã€‚ | | typedef struct NativeWindow [OHNativeWindow](#ohnativewindow) | 定义NativeWindow对象。 | | typedef struct [OH_AVFormat](#oh_avformat-1) [OH_AVFormat](#oh_avformat) | 定义OH_AVFormat对象。 | | typedef struct [VideoProcessing_ColorSpaceInfo](_video_processing___color_space_info.md) [VideoProcessing_ColorSpaceInfo](#videoprocessing_colorspaceinfo) | è§†é¢‘é¢œè‰²ç©ºé—´ä¿¡æ¯æ•°æ®ç»“构。 | | typedef enum [VideoDetailEnhancer_QualityLevel](#videodetailenhancer_qualitylevel-1) [VideoDetailEnhancer_QualityLevel](#videodetailenhancer_qualitylevel) | 用于细节增强的质é‡ç‰çº§ã€‚ | | typedef enum [VideoProcessing_ErrorCode](#videoprocessing_errorcode-1) [VideoProcessing_ErrorCode](#videoprocessing_errorcode) | 视频处ç†é”™è¯¯ç 。 | | typedef enum [VideoProcessing_State](#videoprocessing_state-1) [VideoProcessing_State](#videoprocessing_state) | 视频处ç†çжæ€ã€‚ | | typedef struct [VideoProcessing_Callback](#videoprocessing_callback) [VideoProcessing_Callback](#videoprocessing_callback) | 视频处ç†å›žè°ƒå¯¹è±¡ç±»åž‹ã€‚ | | typedef void(\* [OH_VideoProcessingCallback_OnError](#oh_videoprocessingcallback_onerror)) ([OH_VideoProcessing](#oh_videoprocessing) \*videoProcessor, [VideoProcessing_ErrorCode](#videoprocessing_errorcode) error, void \*userData) | 视频处ç†è¿‡ç¨‹ä¸æŠ¥å‘Šé”™è¯¯çš„回调函数指针。 | | typedef void(\* [OH_VideoProcessingCallback_OnState](#oh_videoprocessingcallback_onstate)) ([OH_VideoProcessing](#oh_videoprocessing) \*videoProcessor, [VideoProcessing_State](#videoprocessing_state) state, void \*userData) | 报告视频处ç†çжæ€çš„回调函数指针。 | | typedef void(\* [OH_VideoProcessingCallback_OnNewOutputBuffer](#oh_videoprocessingcallback_onnewoutputbuffer)) ([OH_VideoProcessing](#oh_videoprocessing) \*videoProcessor, uint32_t index, void \*userData) | 报告输出buffer已填充好数æ®çš„回调函数指针。 | ### 枚举 | åç§° | æè¿° | | -------- | -------- | | [VideoDetailEnhancer_QualityLevel](#videodetailenhancer_qualitylevel-1) {<br/>VIDEO_DETAIL_ENHANCER_QUALITY_LEVEL_NONE,<br/>VIDEO_DETAIL_ENHANCER_QUALITY_LEVEL_LOW,<br/>VIDEO_DETAIL_ENHANCER_QUALITY_LEVEL_MEDIUM,<br/>VIDEO_DETAIL_ENHANCER_QUALITY_LEVEL_HIGH } | 用于细节增强的质é‡ç‰çº§ã€‚ | | [VideoProcessing_ErrorCode](#videoprocessing_errorcode-1) {<br/>VIDEO_PROCESSING_SUCCESS,<br/>VIDEO_PROCESSING_ERROR_INVALID_PARAMETER = 401,<br/>VIDEO_PROCESSING_ERROR_UNKNOWN = 29210001,<br/>VIDEO_PROCESSING_ERROR_INITIALIZE_FAILED,<br/>VIDEO_PROCESSING_ERROR_CREATE_FAILED,<br/>VIDEO_PROCESSING_ERROR_PROCESS_FAILED,<br/>VIDEO_PROCESSING_ERROR_UNSUPPORTED_PROCESSING,<br/>VIDEO_PROCESSING_ERROR_OPERATION_NOT_PERMITTED,<br/>VIDEO_PROCESSING_ERROR_NO_MEMORY,<br/>VIDEO_PROCESSING_ERROR_INVALID_INSTANCE,<br/>VIDEO_PROCESSING_ERROR_INVALID_VALUE<br/>} | 视频处ç†é”™è¯¯ç 。 | | [VideoProcessing_State](#videoprocessing_state-1) {<br/>VIDEO_PROCESSING_STATE_RUNNING,<br/>VIDEO_PROCESSING_STATE_STOPPED } | 视频处ç†çжæ€ã€‚ | ### 函数 | åç§° | æè¿° | | -------- | -------- | | [VideoProcessing_ErrorCode](#videoprocessing_errorcode) [OH_VideoProcessing_InitializeEnvironment](#oh_videoprocessing_initializeenvironment) (void) | åˆå§‹åŒ–视频处ç†å…¨å±€çŽ¯å¢ƒã€‚ | | [VideoProcessing_ErrorCode](#videoprocessing_errorcode) [OH_VideoProcessing_DeinitializeEnvironment](#oh_videoprocessing_deinitializeenvironment) (void) | 释放视频处ç†å…¨å±€çŽ¯å¢ƒã€‚ | | bool [OH_VideoProcessing_IsColorSpaceConversionSupported](#oh_videoprocessing_iscolorspaceconversionsupported) (const [VideoProcessing_ColorSpaceInfo](_video_processing___color_space_info.md) \*sourceVideoInfo, const [VideoProcessing_ColorSpaceInfo](_video_processing___color_space_info.md) \*destinationVideoInfo) | æŸ¥è¯¢æ˜¯å¦æ”¯æŒè§†é¢‘颜色空间转æ¢ã€‚ | | bool [OH_VideoProcessing_IsMetadataGenerationSupported](#oh_videoprocessing_ismetadatagenerationsupported) (const [VideoProcessing_ColorSpaceInfo](_video_processing___color_space_info.md) \*sourceVideoInfo) | æŸ¥è¯¢æ˜¯å¦æ”¯æŒè§†é¢‘元数æ®ç”Ÿæˆã€‚ | | [VideoProcessing_ErrorCode](#videoprocessing_errorcode) [OH_VideoProcessing_Create](#oh_videoprocessing_create) ([OH_VideoProcessing](#oh_videoprocessing) \*\*videoProcessor, int type) | 创建视频处ç†å®žä¾‹ã€‚ | | [VideoProcessing_ErrorCode](#videoprocessing_errorcode) [OH_VideoProcessing_Destroy](#oh_videoprocessing_destroy) ([OH_VideoProcessing](#oh_videoprocessing) \*videoProcessor) | 销æ¯è§†é¢‘处ç†å®žä¾‹ã€‚ | | [VideoProcessing_ErrorCode](#videoprocessing_errorcode) [OH_VideoProcessing_RegisterCallback](#oh_videoprocessing_registercallback) ([OH_VideoProcessing](#oh_videoprocessing) \*videoProcessor, const [VideoProcessing_Callback](#videoprocessing_callback) \*callback, void \*userData) | 注册回调函数。 | | [VideoProcessing_ErrorCode](#videoprocessing_errorcode) [OH_VideoProcessing_SetSurface](#oh_videoprocessing_setsurface) ([OH_VideoProcessing](#oh_videoprocessing) \*videoProcessor, const [OHNativeWindow](#ohnativewindow) \*window) | 设置视频处ç†è¾“出surface。 | | [VideoProcessing_ErrorCode](#videoprocessing_errorcode) [OH_VideoProcessing_GetSurface](#oh_videoprocessing_getsurface) ([OH_VideoProcessing](#oh_videoprocessing) \*videoProcessor, [OHNativeWindow](#ohnativewindow) \*\*window) | 创建surface。 | | [VideoProcessing_ErrorCode](#videoprocessing_errorcode) [OH_VideoProcessing_SetParameter](#oh_videoprocessing_setparameter) ([OH_VideoProcessing](#oh_videoprocessing) \*videoProcessor, const [OH_AVFormat](#oh_avformat) \*parameter) | 设置视频处ç†è¾“å‡ºå‚æ•°ã€‚ | | [VideoProcessing_ErrorCode](#videoprocessing_errorcode) [OH_VideoProcessing_GetParameter](#oh_videoprocessing_getparameter) ([OH_VideoProcessing](#oh_videoprocessing) \*videoProcessor, [OH_AVFormat](#oh_avformat) \*parameter) | 获å–视频处ç†å‚数。 | | [VideoProcessing_ErrorCode](#videoprocessing_errorcode) [OH_VideoProcessing_Start](#oh_videoprocessing_start) ([OH_VideoProcessing](#oh_videoprocessing) \*videoProcessor) | å¯åŠ¨è§†é¢‘å¤„ç†ã€‚ | | [VideoProcessing_ErrorCode](#videoprocessing_errorcode) [OH_VideoProcessing_Stop](#oh_videoprocessing_stop) ([OH_VideoProcessing](#oh_videoprocessing) \*videoProcessor) | åœæ¢è§†é¢‘处ç†ã€‚ | | [VideoProcessing_ErrorCode](#videoprocessing_errorcode) [OH_VideoProcessing_RenderOutputBuffer](#oh_videoprocessing_renderoutputbuffer) ([OH_VideoProcessing](#oh_videoprocessing) \*videoProcessor, uint32_t index) | 渲染处ç†å¹¶è¾“出buffer。 | | [VideoProcessing_ErrorCode](#videoprocessing_errorcode) [OH_VideoProcessingCallback_Create](#oh_videoprocessingcallback_create) ([VideoProcessing_Callback](#videoprocessing_callback) \*\*callback) | 创建视频处ç†å›žè°ƒå‡½æ•°å¯¹è±¡ã€‚ | | [VideoProcessing_ErrorCode](#videoprocessing_errorcode) [OH_VideoProcessingCallback_Destroy](#oh_videoprocessingcallback_destroy) ([VideoProcessing_Callback](#videoprocessing_callback) \*callback) | 销æ¯å›žè°ƒå¯¹è±¡ã€‚ | | [VideoProcessing_ErrorCode](#videoprocessing_errorcode) [OH_VideoProcessingCallback_BindOnError](#oh_videoprocessingcallback_bindonerror) ([VideoProcessing_Callback](#videoprocessing_callback) \*callback, [OH_VideoProcessingCallback_OnError](#oh_videoprocessingcallback_onerror) onError) | 绑定回调函数[OH_VideoProcessingCallback_OnError](#oh_videoprocessingcallback_onerror)到回调对象。 | | [VideoProcessing_ErrorCode](#videoprocessing_errorcode) [OH_VideoProcessingCallback_BindOnState](#oh_videoprocessingcallback_bindonstate) ([VideoProcessing_Callback](#videoprocessing_callback) \*callback, [OH_VideoProcessingCallback_OnState](#oh_videoprocessingcallback_onstate) onState) | 绑定回调函数[OH_VideoProcessingCallback_OnState](#oh_videoprocessingcallback_onstate)到回调对象。 | | [VideoProcessing_ErrorCode](#videoprocessing_errorcode) [OH_VideoProcessingCallback_BindOnNewOutputBuffer](#oh_videoprocessingcallback_bindonnewoutputbuffer) ([VideoProcessing_Callback](#videoprocessing_callback) \*callback, [OH_VideoProcessingCallback_OnNewOutputBuffer](#oh_videoprocessingcallback_onnewoutputbuffer) onNewOutputBuffer) | 绑定回调函数[OH_VideoProcessingCallback_OnNewOutputBuffer](#oh_videoprocessingcallback_onnewoutputbuffer)到回调对象。 | ### å˜é‡ | åç§° | æè¿° | | -------- | -------- | | const int32_t [VIDEO_PROCESSING_TYPE_COLOR_SPACE_CONVERSION](#video_processing_type_color_space_conversion) | 表示创建颜色空间转æ¢è§†é¢‘处ç†å®žä¾‹ã€‚ | | const int32_t [VIDEO_PROCESSING_TYPE_METADATA_GENERATION](#video_processing_type_metadata_generation) | 表示创建元数æ®ç”Ÿæˆè§†é¢‘处ç†å®žä¾‹ã€‚ | | const int32_t [VIDEO_PROCESSING_TYPE_DETAIL_ENHANCER](#video_processing_type_detail_enhancer) | 表示创建细节增强视频处ç†å®žä¾‹ã€‚ | | const char \* [VIDEO_DETAIL_ENHANCER_PARAMETER_KEY_QUALITY_LEVEL](#video_detail_enhancer_parameter_key_quality_level) | 指定视频细节增强的质é‡ç‰çº§ã€‚ | ## 类型定义说明 ### OH_AVFormat ``` typedef struct OH_AVFormatOH_AVFormat ``` **æè¿°** 定义OH_AVFormat对象。 **起始版本:** 12 ### OH_VideoProcessing ``` typedef struct OH_VideoProcessingOH_VideoProcessing ``` **æè¿°** 定义视频处ç†å¯¹è±¡ã€‚ 定义一个OH_VideoProcessing空指针,调用[OH_VideoProcessing_Create](#oh_videoprocessing_create)创建视频处ç†å®žä¾‹ï¼Œè¯¥æŒ‡é’ˆåœ¨åˆ›å»ºå®žä¾‹ä¹‹å‰å¿…须为空。 用户å¯ä»¥å¯¹ä¸åŒçš„处ç†ç±»åž‹åˆ›å»ºä¸åŒçš„视频处ç†å®žä¾‹ã€‚ **起始版本:** 12 ### OH_VideoProcessingCallback_OnError ``` typedef void(* OH_VideoProcessingCallback_OnError) (OH_VideoProcessing *videoProcessor, VideoProcessing_ErrorCode error, void *userData) ``` **æè¿°** 视频处ç†è¿‡ç¨‹ä¸æŠ¥å‘Šé”™è¯¯çš„回调函数指针。 错误ç [VideoProcessing_ErrorCode](#videoprocessing_errorcode-1): - VIDEO_PROCESSING_ERROR_UNSUPPORTED_PROCESSINGï¼Œä¸æ”¯æŒçš„处ç†ï¼Œæ¯”如䏿”¯æŒè¾“入输出的颜色空间类型转æ¢ã€‚ - VIDEO_PROCESSING_ERROR_INVALID_VALUEï¼Œæ— æ•ˆçš„è§†é¢‘å±žæ€§ï¼Œæ¯”å¦‚è§†é¢‘çš„é¢œè‰²ç©ºé—´æ— æ•ˆã€‚ - VIDEO_PROCESSING_ERROR_NO_MEMORY, 内å˜ä¸è¶³ã€‚ - VIDEO_PROCESSING_ERROR_PROCESS_FAILED,处ç†è¿‡ç¨‹ä¸å‡ºé”™ã€‚ **起始版本:** 12 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | videoProcessor | 视频处ç†å®žä¾‹ã€‚ | | error | 报告给用户的错误ç 。 | | userData | 用户的自定义数æ®ã€‚ | ### OH_VideoProcessingCallback_OnNewOutputBuffer ``` typedef void(* OH_VideoProcessingCallback_OnNewOutputBuffer) (OH_VideoProcessing *videoProcessor, uint32_t index, void *userData) ``` **æè¿°** 报告输出buffer已填充好数æ®çš„回调函数指针。 æ¯ä¸ªæ–°è¾“出buffer填充好数æ®ä¹‹åŽè¯¥buffer的索引就会报告给用户。调用[OH_VideoProcessing_RenderOutputBuffer](#oh_videoprocessing_renderoutputbuffer)æ ¹æ®ç´¢å¼•æ¥å¤„ç†æ¸²æŸ“并输出该buffer。 如果未注册该函数,则输出buffer填充好数æ®åŽä¸ä¼šæŠ¥å‘Šç”¨æˆ·ï¼Œè€Œæ˜¯ç›´æŽ¥è¿›è¡Œå¤„ç†æ¸²æŸ“并输出。 **起始版本:** 12 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | videoProcessor | 视频处ç†å®žä¾‹ã€‚ | | index | 新输出buffer的索引。 | | userData | 用户自定义的数æ®ã€‚ | ### OH_VideoProcessingCallback_OnState ``` typedef void(* OH_VideoProcessingCallback_OnState) (OH_VideoProcessing *videoProcessor, VideoProcessing_State state, void *userData) ``` **æè¿°** 报告视频处ç†çжæ€çš„回调函数指针。 [OH_VideoProcessing_Start](#oh_videoprocessing_start)æˆåŠŸè°ƒç”¨ä¹‹åŽçжæ€ä¼šå˜ä¸ºVIDEO_PROCESSING_STATE_RUNNING。 调用[OH_VideoProcessing_Stop](#oh_videoprocessing_stop),所有的缓å˜buffer处ç†å®ŒæˆåŽï¼Œçжæ€ä¼šå˜ä¸ºVIDEO_PROCESSING_STATE_STOPPED。状æ€è¯´æ˜Žå‚阅[VideoProcessing_State](#videoprocessing_state)。 **起始版本:** 12 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | videoProcessor | 视频处ç†å®žä¾‹ã€‚ | | state | å‚阅 [VideoProcessing_State](#videoprocessing_state)。 | | userData | 用户的自定义数æ®ã€‚ | ### OHNativeWindow ``` typedef struct NativeWindow OHNativeWindow ``` **æè¿°** 定义NativeWindow对象。 **起始版本:** 12 ### VideoDetailEnhancer_QualityLevel ``` typedef enum VideoDetailEnhancer_QualityLevelVideoDetailEnhancer_QualityLevel ``` **æè¿°** 用于细节增强的质é‡ç‰çº§ã€‚ 傿•°[VIDEO_DETAIL_ENHANCER_PARAMETER_KEY_QUALITY_LEVEL](#video_detail_enhancer_parameter_key_quality_level)的具体å–值,设置方法详è§å¼€å‘指å—。 **å‚è§ï¼š**[OH_VideoProcessing_SetParameter](#oh_videoprocessing_setparameter)ã€[OH_VideoProcessing_GetParameter](#oh_videoprocessing_getparameter) **起始版本:** 12 ### VideoProcessing_Callback ``` typedef struct VideoProcessing_CallbackVideoProcessing_Callback ``` **æè¿°** 视频处ç†å›žè°ƒå¯¹è±¡ç±»åž‹ã€‚ 定义一个VideoProcessing_Callback空指针,调用[OH_VideoProcessingCallback_Create](#oh_videoprocessingcallback_create)æ¥åˆ›å»ºä¸€ä¸ªå›žè°ƒå¯¹è±¡ã€‚创建之å‰è¯¥æŒ‡é’ˆå¿…须为空。 通过调用[OH_VideoProcessing_RegisterCallback](#oh_videoprocessing_registercallback)æ¥å‘视频处ç†å®žä¾‹æ³¨å†Œå›žè°ƒå¯¹è±¡ã€‚ **起始版本:** 12 ### VideoProcessing_ColorSpaceInfo ``` typedef struct VideoProcessing_ColorSpaceInfoVideoProcessing_ColorSpaceInfo ``` **æè¿°** è§†é¢‘é¢œè‰²ç©ºé—´ä¿¡æ¯æ•°æ®ç»“构。 **å‚è§ï¼š**[OH_VideoProcessing_IsColorSpaceConversionSupported](#oh_videoprocessing_iscolorspaceconversionsupported) **起始版本:** 12 ### VideoProcessing_ErrorCode ``` typedef enum VideoProcessing_ErrorCodeVideoProcessing_ErrorCode ``` **æè¿°** 视频处ç†é”™è¯¯ç 。 **起始版本:** 12 ### VideoProcessing_State ``` typedef enum VideoProcessing_StateVideoProcessing_State ``` **æè¿°** 视频处ç†çжæ€ã€‚ 视频处ç†çжæ€é€šè¿‡å›žè°ƒå‡½æ•°[OH_VideoProcessingCallback_OnState](#oh_videoprocessingcallback_onstate)进行报告。 **起始版本:** 12 ## 枚举类型说明 ### VideoDetailEnhancer_QualityLevel ``` enum VideoDetailEnhancer_QualityLevel ``` **æè¿°** 用于细节增强的质é‡ç‰çº§ã€‚ 傿•°[VIDEO_DETAIL_ENHANCER_PARAMETER_KEY_QUALITY_LEVEL](#video_detail_enhancer_parameter_key_quality_level)的具体å–值,设置方法详è§å¼€å‘指å—。 **å‚è§ï¼š**[OH_VideoProcessing_SetParameter](#oh_videoprocessing_setparameter)ã€[OH_VideoProcessing_GetParameter](#oh_videoprocessing_getparameter) **起始版本:** 12 | 枚举值 | æè¿° | | -------- | -------- | | VIDEO_DETAIL_ENHANCER_QUALITY_LEVEL_NONE | æ— ç»†èŠ‚å¢žå¼ºã€‚ | | VIDEO_DETAIL_ENHANCER_QUALITY_LEVEL_LOW | 低质é‡ç‰çº§ç»†èŠ‚å¢žå¼ºï¼Œé€Ÿåº¦è¾ƒå¿«ï¼Œé»˜è®¤è®¾ç½®ã€‚ | | VIDEO_DETAIL_ENHANCER_QUALITY_LEVEL_MEDIUM | ä¸ç‰è´¨é‡ç‰çº§ç»†èŠ‚å¢žå¼ºï¼Œé€Ÿåº¦é€‚ä¸ã€‚ | | VIDEO_DETAIL_ENHANCER_QUALITY_LEVEL_HIGH | 高质é‡ç‰çº§ç»†èŠ‚å¢žå¼ºï¼Œé€Ÿåº¦ç›¸å¯¹è¾ƒæ…¢ã€‚ | ### VideoProcessing_ErrorCode ``` enum VideoProcessing_ErrorCode ``` **æè¿°** 视频处ç†é”™è¯¯ç 。 **起始版本:** 12 | 枚举值 | æè¿° | | -------- | -------- | | VIDEO_PROCESSING_SUCCESS | å¤„ç†æˆåŠŸã€‚ | | VIDEO_PROCESSING_ERROR_INVALID_PARAMETER | è¾“å…¥å‚æ•°æ— 效。以下情况都会返回该错误ç :<br/>1 - æ— æ•ˆçš„è¾“å…¥æˆ–è¾“å‡ºè§†é¢‘buffer,视频buffer为空。<br/>2 - æ— æ•ˆçš„å‚æ•°ï¼Œå‚数为空。<br/>3 - æ— æ•ˆçš„å¤„ç†ç±»åž‹ã€‚ | | VIDEO_PROCESSING_ERROR_UNKNOWN | 未知错误,比如GPU计算失败或memcpy失败。 | | VIDEO_PROCESSING_ERROR_INITIALIZE_FAILED | 视频处ç†å…¨å±€çŽ¯å¢ƒåˆå§‹åŒ–失败,比如åˆå§‹åŒ–GPU环境失败。 | | VIDEO_PROCESSING_ERROR_CREATE_FAILED | 创建视频处ç†å®žä¾‹å¤±è´¥ï¼Œæ¯”如实例总数超出上é™ã€‚ | | VIDEO_PROCESSING_ERROR_PROCESS_FAILED | 处ç†è¿‡ç¨‹å¤±è´¥ï¼Œæ¯”å¦‚å¤„ç†æ—¶é—´è¶…时。 | | VIDEO_PROCESSING_ERROR_UNSUPPORTED_PROCESSING | 䏿”¯æŒçš„处ç†ç±»åž‹ï¼Œå¯ä»¥è°ƒç”¨ OH_VideoProcessing_IsXXXSupportedæ¥æ£€æŸ¥æ˜¯å¦æ”¯æŒè¿™ç§å¤„ç†ã€‚ | | VIDEO_PROCESSING_ERROR_OPERATION_NOT_PERMITTED | ä¸å…许的æ“ä½œï¼Œæ¯”å¦‚ä¸æ»¡è¶³è°ƒç”¨æŽ¥å£æ‰€éœ€çš„è¿è¡Œçжæ€ä¸‹è°ƒç”¨è¯¥æŽ¥å£ã€‚ | | VIDEO_PROCESSING_ERROR_NO_MEMORY | 内å˜ä¸è¶³ã€‚ | | VIDEO_PROCESSING_ERROR_INVALID_INSTANCE | 视频处ç†å®žä¾‹æ— 效,比如视频处ç†å®žä¾‹ä¸ºç©ºå®žä¾‹ã€‚ | | VIDEO_PROCESSING_ERROR_INVALID_VALUE | è¾“å…¥å€¼æ— æ•ˆï¼Œä»¥ä¸‹æƒ…å†µéƒ½ä¼šé€ æˆè¿™ç§é”™è¯¯ï¼š<br/>1 - 视频buffer宽高太大或者颜色空间错误。<br/>2 - 傿•°åŒ…嫿— 效的值,比如细节增强的质é‡ç‰çº§é”™è¯¯ã€‚ | ### VideoProcessing_State ``` enum VideoProcessing_State ``` **æè¿°** 视频处ç†çжæ€ã€‚ 视频处ç†çжæ€é€šè¿‡å›žè°ƒå‡½æ•°[OH_VideoProcessingCallback_OnState](#oh_videoprocessingcallback_onstate)进行报告。 **起始版本:** 12 | 枚举值 | æè¿° | | -------- | -------- | | VIDEO_PROCESSING_STATE_RUNNING | 视频处ç†è¿›è¡Œä¸ã€‚ | | VIDEO_PROCESSING_STATE_STOPPED | 视频处ç†å·²åœæ¢ã€‚ | ## 函数说明 ### OH_VideoProcessing_Create() ``` VideoProcessing_ErrorCode OH_VideoProcessing_Create (OH_VideoProcessing ** videoProcessor, int type ) ``` **æè¿°** 创建视频处ç†å®žä¾‹ã€‚ **起始版本:** 12 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | videoProcessor | è¾“å‡ºå‚æ•°ã€‚指å‘视频处ç†å¯¹è±¡çš„æŒ‡é’ˆçš„æŒ‡é’ˆã€‚ 输入å‰\*videoProcessor必须是空指针。 | | type | 使用VIDEO_PROCESSING_TYPE_XXXæ¥æŒ‡å®šå¤„ç†ç±»åž‹ã€‚实例的处ç†ç±»åž‹ä¸èƒ½æ”¹å˜ã€‚ | **返回:** 视频处ç†é”™è¯¯ç [VideoProcessing_ErrorCode](#videoprocessing_errorcode-1): - 如果视频处ç†å®žä¾‹åˆ›å»ºæˆåŠŸï¼Œè¿”å›žVIDEO_PROCESSING_SUCCESS。 - 如果处ç†ç±»åž‹ä¸æ”¯æŒï¼Œè¿”回VIDEO_PROCESSING_ERROR_UNSUPPORTED_PROCESSING, ä¾‹å¦‚ï¼Œå¦‚æžœä¸æ”¯æŒå…ƒæ•°æ®ç”Ÿæˆå°±è¿”回VIDEO_PROCESSING_ERROR_UNSUPPORTED_PROCESSING。 - 如果创建视频处ç†å®žä¾‹å¤±è´¥ï¼Œè¿”回VIDEO_PROCESSING_ERROR_CREATE_FAILED。 - 如果实例为空或实例的指针éžç©ºï¼Œè¿”回VIDEO_PROCESSING_ERROR_INVALID_INSTANCE。 - 如果处ç†ç±»åž‹æ— 效,返回VIDEO_PROCESSING_ERROR_INVALID_PARAMETER。 ### OH_VideoProcessing_DeinitializeEnvironment() ``` VideoProcessing_ErrorCode OH_VideoProcessing_DeinitializeEnvironment (void ) ``` **æè¿°** 释放视频处ç†å…¨å±€çŽ¯å¢ƒã€‚ 调用å‰ï¼Œå¿…须调用[OH_VideoProcessing_InitializeEnvironment](#oh_videoprocessing_initializeenvironment)åˆå§‹åŒ–。 通常在主进程å³å°†é€€å‡ºæ—¶è°ƒç”¨è¯¥å‡½æ•°æ¥é‡Šæ”¾é€šè¿‡è°ƒç”¨[OH_VideoProcessing_InitializeEnvironment](#oh_videoprocessing_initializeenvironment)函数åˆå§‹åŒ–的全局环境。 å¦‚æžœä»æœ‰è§†é¢‘处ç†çš„实例è¿è¡Œä¸ï¼Œå°±ä¸èƒ½è°ƒç”¨è¯¥å‡½æ•°ã€‚ **起始版本:** 12 **返回:** 视频处ç†é”™è¯¯ç [VideoProcessing_ErrorCode](#videoprocessing_errorcode-1): - 如果执行æˆåŠŸï¼Œè¿”å›žVIDEO_PROCESSING_SUCCESS。 - 如果还有视频处ç†çš„å®žä¾‹æ²¡æœ‰é”€æ¯æˆ–者没有调用[OH_VideoProcessing_InitializeEnvironment](#oh_videoprocessing_initializeenvironment),返回VIDEO_PROCESSING_ERROR_OPERATION_NOT_PERMITTED。 ### OH_VideoProcessing_Destroy() ``` VideoProcessing_ErrorCode OH_VideoProcessing_Destroy (OH_VideoProcessing * videoProcessor) ``` **æè¿°** 销æ¯è§†é¢‘处ç†å®žä¾‹ã€‚ 销æ¯ä¹‹å‰å…ˆåœæ¢å®žä¾‹ï¼Œå‚阅[OH_VideoProcessing_Stop](#oh_videoprocessing_stop)。 **起始版本:** 12 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | videoProcessor | 指å‘视频处ç†å®žä¾‹çš„æŒ‡é’ˆï¼Œå»ºè®®åœ¨å®žä¾‹é”€æ¯ä¹‹åŽå°†å…¶è®¾ç½®ä¸ºç©ºæŒ‡é’ˆã€‚ | **返回:** 视频处ç†é”™è¯¯ç [VideoProcessing_ErrorCode](#videoprocessing_errorcode-1): - å¦‚æžœå®žä¾‹é”€æ¯æˆåŠŸï¼Œè¿”å›žVIDEO_PROCESSING_SUCCESS。 - å¦‚æžœå®žä¾‹ä¸ºç©ºæˆ–è€…ä¸æ˜¯ä¸€ä¸ªè§†é¢‘处ç†å®žä¾‹ï¼Œè¿”回VIDEO_PROCESSING_ERROR_INVALID_INSTANCE。 - 如果实例ä»åœ¨è¿è¡Œï¼Œè¿”回VIDEO_PROCESSING_ERROR_OPERATION_NOT_PERMITTED。 ### OH_VideoProcessing_GetParameter() ``` VideoProcessing_ErrorCode OH_VideoProcessing_GetParameter (OH_VideoProcessing * videoProcessor, OH_AVFormat * parameter ) ``` **æè¿°** 获å–视频处ç†å‚数。 **起始版本:** 12 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | videoProcessor | 指å‘视频处ç†å®žä¾‹çš„æŒ‡é’ˆã€‚ | | parameter | 指å‘视频处ç†å‚数实例的指针。 | **返回:** 视频处ç†é”™è¯¯ç [VideoProcessing_ErrorCode](#videoprocessing_errorcode-1): - å¦‚æžœå‚æ•°èŽ·å–æˆåŠŸï¼Œè¿”å›žVIDEO_PROCESSING_SUCCESS。 - å¦‚æžœå®žä¾‹ä¸ºç©ºæˆ–è€…ä¸æ˜¯ä¸€ä¸ªè§†é¢‘处ç†å®žä¾‹ï¼Œè¿”回VIDEO_PROCESSING_ERROR_INVALID_INSTANCE。 - å¦‚æžœå‚æ•°ä¸ºç©ºï¼Œè¿”回VIDEO_PROCESSING_ERROR_INVALID_PARAMETER。 ### OH_VideoProcessing_GetSurface() ``` VideoProcessing_ErrorCode OH_VideoProcessing_GetSurface (OH_VideoProcessing * videoProcessor, OHNativeWindow ** window ) ``` **æè¿°** 创建surface。 在视频处ç†å¯åЍ之å‰åˆ›å»ºè¾“å…¥surface。调用[OH_NativeWindow_DestroyNativeWindow](../apis-arkgraphics2d/_native_window.md#oh_nativewindow_destroynativewindow)销æ¯è¾“å…¥surface。 **起始版本:** 12 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | videoProcessor | 指å‘视频处ç†å®žä¾‹çš„æŒ‡é’ˆã€‚ | | window | 指å‘输入surface的指针。例如,æ¤è¾“å…¥surface指针å¯ä»¥æŒ‡å‘视频解ç 器输出surface。 | **返回:** 视频处ç†é”™è¯¯ç [VideoProcessing_ErrorCode](#videoprocessing_errorcode-1): - 如果执行æˆåŠŸï¼Œè¿”å›žVIDEO_PROCESSING_SUCCESS。 - å¦‚æžœå®žä¾‹ä¸ºç©ºæˆ–è€…ä¸æ˜¯ä¸€ä¸ªè§†é¢‘处ç†å®žä¾‹ï¼Œè¿”回VIDEO_PROCESSING_ERROR_INVALID_INSTANCE。 - 如果window为空指针或指å‘window的指针ä¸ä¸ºç©ºï¼Œè¿”回VIDEO_PROCESSING_ERROR_INVALID_PARAMETER。 - 如果创建surface失败,或者输入surfaceå·²ç»åˆ›å»ºï¼Œæˆ–者视频处ç†å®žä¾‹è¿˜åœ¨è¿è¡Œï¼Œè¿”回VIDEO_PROCESSING_ERROR_OPERATION_NOT_PERMITTED。 ### OH_VideoProcessing_InitializeEnvironment() ``` VideoProcessing_ErrorCode OH_VideoProcessing_InitializeEnvironment (void ) ``` **æè¿°** åˆå§‹åŒ–视频处ç†å…¨å±€çŽ¯å¢ƒã€‚ 该函数是å¯é€‰çš„。 该函数åªåœ¨ä¸»è¿›ç¨‹å¯åŠ¨æ—¶è¢«è°ƒç”¨ä¸€æ¬¡ï¼Œç”¨äºŽåˆå§‹åŒ–视频处ç†å…¨å±€çŽ¯å¢ƒï¼Œè¿™æ ·å¯ä»¥å‡å°‘[OH_VideoProcessing_Create](#oh_videoprocessing_create)的时间。 调用[OH_VideoProcessing_DeinitializeEnvironment](#oh_videoprocessing_deinitializeenvironment)释放视频处ç†å…¨å±€çŽ¯å¢ƒã€‚ åˆå§‹åŒ–åŽï¼Œå¿…须释放视频处ç†å…¨å±€çŽ¯å¢ƒï¼Œé‡Šæ”¾æ–¹å¼åŠæ—¶æœºè¯¦è§[OH_VideoProcessing_DeinitializeEnvironment](#oh_videoprocessing_deinitializeenvironment)。 **起始版本:** 12 **返回:** 视频处ç†é”™è¯¯ç [VideoProcessing_ErrorCode](#videoprocessing_errorcode-1): 如果åˆå§‹åŒ–æˆåŠŸï¼Œè¿”å›žVIDEO_PROCESSING_SUCCESS,å¦åˆ™è¿”回VIDEO_PROCESSING_ERROR_INITIALIZE_FAILED。 å¦‚æžœå¤±è´¥ï¼Œåº”ç”¨éœ€è¦æ£€æŸ¥GPUæ˜¯å¦æ£å¸¸å·¥ä½œã€‚ ### OH_VideoProcessing_IsColorSpaceConversionSupported() ``` bool OH_VideoProcessing_IsColorSpaceConversionSupported (const VideoProcessing_ColorSpaceInfo * sourceVideoInfo, const VideoProcessing_ColorSpaceInfo * destinationVideoInfo ) ``` **æè¿°** æŸ¥è¯¢æ˜¯å¦æ”¯æŒè§†é¢‘颜色空间转æ¢ã€‚ **起始版本:** 12 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | sourceVideoInfo | 输入视频颜色空间信æ¯ã€‚ | | destinationVideoInfo | 输出视频颜色空间信æ¯ã€‚ | **返回:** 如果支æŒè§†é¢‘颜色空间转æ¢è¿”回**true**,å¦åˆ™è¿”回**false**。 ### OH_VideoProcessing_IsMetadataGenerationSupported() ``` bool OH_VideoProcessing_IsMetadataGenerationSupported (const VideoProcessing_ColorSpaceInfo * sourceVideoInfo) ``` **æè¿°** æŸ¥è¯¢æ˜¯å¦æ”¯æŒè§†é¢‘元数æ®ç”Ÿæˆã€‚ **起始版本:** 12 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | sourceVideoInfo | 输入视频颜色空间信æ¯ã€‚ | **返回:** 如果支æŒè§†é¢‘元数æ®ç”Ÿæˆè¿”回**true**,å¦åˆ™è¿”回**false**。 ### OH_VideoProcessing_RegisterCallback() ``` VideoProcessing_ErrorCode OH_VideoProcessing_RegisterCallback (OH_VideoProcessing * videoProcessor, const VideoProcessing_Callback * callback, void * userData ) ``` **æè¿°** 注册回调函数。 在开始视频处ç†ä¹‹å‰æ³¨å†Œå›žè°ƒå‡½æ•°ï¼Œè§†é¢‘处ç†è¿‡ç¨‹ä¸æ— 法注册回调函数。 **起始版本:** 12 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | videoProcessor | 指å‘视频处ç†å®žä¾‹çš„æŒ‡é’ˆã€‚ | | callback | 回调函数指针。 | | userData | 指å‘用户特定数æ®çš„æŒ‡é’ˆã€‚ | **返回:** 视频处ç†é”™è¯¯ç [VideoProcessing_ErrorCode](#videoprocessing_errorcode-1): - 如果回调函数注册æˆåŠŸï¼Œè¿”å›žVIDEO_PROCESSING_SUCCESS。 - å¦‚æžœå®žä¾‹ä¸ºç©ºæˆ–è€…ä¸æ˜¯ä¸€ä¸ªè§†é¢‘处ç†å®žä¾‹ï¼Œè¿”回VIDEO_PROCESSING_ERROR_INVALID_INSTANCE。 - 如果回调函数指针为空,返回VIDEO_PROCESSING_ERROR_INVALID_PARAMETER。 - 如果实例ä»åœ¨è¿è¡Œï¼Œè¿”回VIDEO_PROCESSING_ERROR_OPERATION_NOT_PERMITTED。 ### OH_VideoProcessing_RenderOutputBuffer() ``` VideoProcessing_ErrorCode OH_VideoProcessing_RenderOutputBuffer (OH_VideoProcessing * videoProcessor, uint32_t index ) ``` **æè¿°** 渲染处ç†å¹¶è¾“出buffer。 如果设置了回调函数[OH_VideoProcessingCallback_OnNewOutputBuffer](#oh_videoprocessingcallback_onnewoutputbuffer),当输出buffer准备好之åŽä¼šé€šè¿‡å›žè°ƒå‡½æ•°æŠŠbuffer的索引返回给用户。 **起始版本:** 12 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | videoProcessor | 指å‘视频处ç†å®žä¾‹çš„æŒ‡é’ˆã€‚ | | index | 输出buffer的索引。 | **返回:** 视频处ç†é”™è¯¯ç [VideoProcessing_ErrorCode](#videoprocessing_errorcode-1): - 如果执行æˆåŠŸï¼Œè¿”å›žVIDEO_PROCESSING_SUCCESS。 - å¦‚æžœå®žä¾‹ä¸ºç©ºæˆ–è€…ä¸æ˜¯ä¸€ä¸ªè§†é¢‘处ç†å®žä¾‹ï¼Œè¿”回VIDEO_PROCESSING_ERROR_INVALID_INSTANCE。 - å¦‚æžœç´¢å¼•å€¼æ— æ•ˆï¼Œè¾“å‡ºVIDEO_PROCESSING_ERROR_INVALID_PARAMETER。 - 如果没有设置回调函数[OH_VideoProcessingCallback_OnNewOutputBuffer](#oh_videoprocessingcallback_onnewoutputbuffer)或者实例已ç»åœæ¢è¿è¡Œï¼Œè¿”回VIDEO_PROCESSING_ERROR_OPERATION_NOT_PERMITTED。 ### OH_VideoProcessing_SetParameter() ``` VideoProcessing_ErrorCode OH_VideoProcessing_SetParameter (OH_VideoProcessing * videoProcessor, const OH_AVFormat * parameter ) ``` **æè¿°** 设置视频处ç†è¾“å‡ºå‚æ•°ã€‚ **起始版本:** 12 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | videoProcessor | 指å‘视频处ç†å®žä¾‹çš„æŒ‡é’ˆã€‚ | | parameter | 指å‘视频处ç†å‚数实例的指针。 | **返回:** 视频处ç†é”™è¯¯ç [VideoProcessing_ErrorCode](#videoprocessing_errorcode-1): - å¦‚æžœå‚æ•°è®¾ç½®æˆåŠŸï¼Œè¿”å›žVIDEO_PROCESSING_SUCCESS。 - å¦‚æžœå®žä¾‹ä¸ºç©ºæˆ–è€…ä¸æ˜¯ä¸€ä¸ªè§†é¢‘处ç†å®žä¾‹ï¼Œè¿”回VIDEO_PROCESSING_ERROR_INVALID_INSTANCE。 - å¦‚æžœå‚æ•°ä¸ºç©ºï¼Œè¿”回VIDEO_PROCESSING_ERROR_INVALID_PARAMETER。 - å¦‚æžœå‚æ•°çš„æŸäº›å±žæ€§æ— æ•ˆï¼Œè¿”å›žVIDEO_PROCESSING_ERROR_INVALID_VALUE,例如,包å«ä¸æ”¯æŒçš„傿•°å€¼ã€‚ - 如果内å˜åˆ†é…失败,返回VIDEO_PROCESSING_ERROR_NO_MEMORY。 ### OH_VideoProcessing_SetSurface() ``` VideoProcessing_ErrorCode OH_VideoProcessing_SetSurface (OH_VideoProcessing * videoProcessor, const OHNativeWindow * window ) ``` **æè¿°** 设置视频处ç†è¾“出surface。 在视频处ç†å¯åЍ之å‰è®¾ç½®è¾“出surface。 **起始版本:** 12 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | videoProcessor | 指å‘视频处ç†å®žä¾‹çš„æŒ‡é’ˆã€‚ | | window | 指å‘输出surface的指针。 | **返回:** 视频处ç†é”™è¯¯ç [VideoProcessing_ErrorCode](#videoprocessing_errorcode-1): - 如果输出surface设置æˆåŠŸï¼Œè¿”å›žVIDEO_PROCESSING_SUCCESS。 - å¦‚æžœå®žä¾‹ä¸ºç©ºæˆ–è€…ä¸æ˜¯ä¸€ä¸ªè§†é¢‘处ç†å®žä¾‹ï¼Œè¿”回VIDEO_PROCESSING_ERROR_INVALID_INSTANCE。 - 如果window为空指针,返回VIDEO_PROCESSING_ERROR_INVALID_PARAMETER。 ### OH_VideoProcessing_Start() ``` VideoProcessing_ErrorCode OH_VideoProcessing_Start (OH_VideoProcessing * videoProcessor) ``` **æè¿°** å¯åŠ¨è§†é¢‘å¤„ç†ã€‚ æˆåŠŸå¯åЍåŽï¼Œå›žè°ƒå‡½æ•°[OH_VideoProcessingCallback_OnState](#oh_videoprocessingcallback_onstate)会报告VIDEO_PROCESSING_STATE_RUNNING状æ€ï¼Œçжæ€è¯´æ˜Žå‚阅[VideoProcessing_State](#videoprocessing_state)。 **起始版本:** 12 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | videoProcessor | 指å‘视频处ç†å®žä¾‹çš„æŒ‡é’ˆã€‚ | **返回:** 视频处ç†é”™è¯¯ç [VideoProcessing_ErrorCode](#videoprocessing_errorcode-1): - 如果执行æˆåŠŸï¼Œè¿”å›žVIDEO_PROCESSING_SUCCESS。 - å¦‚æžœå®žä¾‹ä¸ºç©ºæˆ–è€…ä¸æ˜¯ä¸€ä¸ªè§†é¢‘处ç†å®žä¾‹ï¼Œè¿”回VIDEO_PROCESSING_ERROR_INVALID_INSTANCE。 - 如果没有设置输出surface,或者没有创建输入surface,或者实例已ç»è¿è¡Œï¼Œè¿”回VIDEO_PROCESSING_ERROR_OPERATION_NOT_PERMITTED。 ### OH_VideoProcessing_Stop() ``` VideoProcessing_ErrorCode OH_VideoProcessing_Stop (OH_VideoProcessing * videoProcessor) ``` **æè¿°** åœæ¢è§†é¢‘处ç†ã€‚ æˆåŠŸåœæ¢åŽï¼Œå›žè°ƒå‡½æ•°[OH_VideoProcessingCallback_OnState](#oh_videoprocessingcallback_onstate)会报告VIDEO_PROCESSING_STATE_STOPPED状æ€ï¼Œçжæ€è¯´æ˜Žå‚阅[VideoProcessing_State](#videoprocessing_state)。 **起始版本:** 12 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | videoProcessor | 指å‘视频处ç†å®žä¾‹çš„æŒ‡é’ˆã€‚ | **返回:** 视频处ç†é”™è¯¯ç [VideoProcessing_ErrorCode](#videoprocessing_errorcode-1): - 如果执行æˆåŠŸï¼Œè¿”å›žVIDEO_PROCESSING_SUCCESS。 - å¦‚æžœå®žä¾‹ä¸ºç©ºæˆ–è€…ä¸æ˜¯ä¸€ä¸ªè§†é¢‘处ç†å®žä¾‹ï¼Œè¿”回VIDEO_PROCESSING_ERROR_INVALID_INSTANCE。 - 如果实例已ç»åœæ¢ï¼Œè¿”回VIDEO_PROCESSING_ERROR_OPERATION_NOT_PERMITTED。 ### OH_VideoProcessingCallback_BindOnError() ``` VideoProcessing_ErrorCode OH_VideoProcessingCallback_BindOnError (VideoProcessing_Callback * callback, OH_VideoProcessingCallback_OnError onError ) ``` **æè¿°** 绑定回调函数[OH_VideoProcessingCallback_OnError](#oh_videoprocessingcallback_onerror)到回调对象。 **起始版本:** 12 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | callback | 指å‘回调对象的指针。 | | onError | 回调函数。 | **返回:** 视频处ç†é”™è¯¯ç [VideoProcessing_ErrorCode](#videoprocessing_errorcode-1): - 如果函数绑定æˆåŠŸï¼Œè¿”å›žVIDEO_PROCESSING_SUCCESS。 - 如果callback为空或者onError为空,返回VIDEO_PROCESSING_ERROR_INVALID_PARAMETER。 ### OH_VideoProcessingCallback_BindOnNewOutputBuffer() ``` VideoProcessing_ErrorCode OH_VideoProcessingCallback_BindOnNewOutputBuffer (VideoProcessing_Callback * callback, OH_VideoProcessingCallback_OnNewOutputBuffer onNewOutputBuffer ) ``` **æè¿°** 绑定回调函数[OH_VideoProcessingCallback_OnNewOutputBuffer](#oh_videoprocessingcallback_onnewoutputbuffer)到回调对象。 **起始版本:** 12 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | callback | 指å‘回调对象的指针。 | | onNewOutputBuffer | 回调函数。 | **返回:** 视频处ç†é”™è¯¯ç [VideoProcessing_ErrorCode](#videoprocessing_errorcode-1): - 如果函数绑定æˆåŠŸï¼Œè¿”å›žVIDEO_PROCESSING_SUCCESS。 - 如果callback为空,返回VIDEO_PROCESSING_ERROR_INVALID_PARAMETER。 ### OH_VideoProcessingCallback_BindOnState() ``` VideoProcessing_ErrorCode OH_VideoProcessingCallback_BindOnState (VideoProcessing_Callback * callback, OH_VideoProcessingCallback_OnState onState ) ``` **æè¿°** 绑定回调函数[OH_VideoProcessingCallback_OnState](#oh_videoprocessingcallback_onstate)到回调对象。 **起始版本:** 12 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | callback | 指å‘回调对象的指针。 | | onState | 回调函数。 | **返回:** 视频处ç†é”™è¯¯ç [VideoProcessing_ErrorCode](#videoprocessing_errorcode-1): - 如果函数绑定æˆåŠŸï¼Œè¿”å›žVIDEO_PROCESSING_SUCCESS。 - 如果callback为空或者onState为空,返回VIDEO_PROCESSING_ERROR_INVALID_PARAMETER。 ### OH_VideoProcessingCallback_Create() ``` VideoProcessing_ErrorCode OH_VideoProcessingCallback_Create (VideoProcessing_Callback ** callback) ``` **æè¿°** 创建视频处ç†å›žè°ƒå‡½æ•°å¯¹è±¡ã€‚ **起始版本:** 12 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | callback | è¾“å‡ºå‚æ•°ã€‚\*callback是指å‘回调函数对象的指针。在创建回调函数对象之å‰\*callback必须为空指针。 | **返回:** 视频处ç†é”™è¯¯ç [VideoProcessing_ErrorCode](#videoprocessing_errorcode-1): - 如果回调函数对象创建æˆåŠŸï¼Œè¿”å›žVIDEO_PROCESSING_SUCCESS。 - 如果callback为空或者\*callbackä¸ä¸ºç©ºï¼Œè¿”回VIDEO_PROCESSING_ERROR_INVALID_PARAMETER。 - 如果内å˜ä¸è¶³ï¼Œè¿”回VIDEO_PROCESSING_ERROR_NO_MEMORY。 ### OH_VideoProcessingCallback_Destroy() ``` VideoProcessing_ErrorCode OH_VideoProcessingCallback_Destroy (VideoProcessing_Callback * callback) ``` **æè¿°** 销æ¯å›žè°ƒå¯¹è±¡ã€‚ 回调对象在注册之åŽå°±å¯ä»¥é”€æ¯ã€‚ **起始版本:** 12 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | callback | 指å‘回调对象的指针,建议在回调对象销æ¯ä¹‹åŽå°†å…¶è®¾ç½®ä¸ºç©ºæŒ‡é’ˆã€‚ | **返回:** 视频处ç†é”™è¯¯ç [VideoProcessing_ErrorCode](#videoprocessing_errorcode-1): - å¦‚æžœå›žè°ƒå¯¹è±¡é”€æ¯æˆåŠŸï¼Œè¿”å›žVIDEO_PROCESSING_SUCCESS。 - 如果callback为空,返回VIDEO_PROCESSING_ERROR_INVALID_PARAMETER。 ## å˜é‡è¯´æ˜Ž ### VIDEO_DETAIL_ENHANCER_PARAMETER_KEY_QUALITY_LEVEL ``` const char* VIDEO_DETAIL_ENHANCER_PARAMETER_KEY_QUALITY_LEVEL ``` **æè¿°** 指定视频细节增强的质é‡ç‰çº§ã€‚ å‚阅 [VideoDetailEnhancer_QualityLevel](#videodetailenhancer_qualitylevel)查看具体å–值。 调用 [OH_VideoProcessing_SetParameter](#oh_videoprocessing_setparameter)设置质é‡ç‰çº§ã€‚ 调用 [OH_VideoProcessing_GetParameter](#oh_videoprocessing_getparameter)获å–当å‰è´¨é‡ç‰çº§ã€‚ **起始版本:** 12 ### VIDEO_PROCESSING_TYPE_COLOR_SPACE_CONVERSION ``` const int32_t VIDEO_PROCESSING_TYPE_COLOR_SPACE_CONVERSION ``` **æè¿°** 表示创建颜色空间转æ¢è§†é¢‘处ç†å®žä¾‹ã€‚ 调用[OH_VideoProcessing_Create](#oh_videoprocessing_create)创建颜色空间转æ¢è§†é¢‘处ç†å®žä¾‹ï¼Œå¦‚æžœä¸æ”¯æŒè¯¥èƒ½åŠ›è¿”å›ž[VideoProcessing_ErrorCode](#videoprocessing_errorcode-1) VIDEO_PROCESSING_ERROR_UNSUPPORTED_PROCESSING。 **起始版本:** 12 ### VIDEO_PROCESSING_TYPE_DETAIL_ENHANCER ``` const int32_t VIDEO_PROCESSING_TYPE_DETAIL_ENHANCER ``` **æè¿°** 表示创建细节增强视频处ç†å®žä¾‹ã€‚ 调用[OH_VideoProcessing_Create](#oh_videoprocessing_create)创建细节增强视频处ç†å®žä¾‹ï¼Œå¦‚æžœä¸æ”¯æŒè¯¥èƒ½åŠ›è¿”å›ž[VideoProcessing_ErrorCode](#videoprocessing_errorcode-1) VIDEO_PROCESSING_ERROR_UNSUPPORTED_PROCESSING。 **起始版本:** 12 ### VIDEO_PROCESSING_TYPE_METADATA_GENERATION ``` const int32_t VIDEO_PROCESSING_TYPE_METADATA_GENERATION ``` **æè¿°** 表示创建元数æ®ç”Ÿæˆè§†é¢‘处ç†å®žä¾‹ã€‚ 调用[OH_VideoProcessing_Create](#oh_videoprocessing_create)创建元数æ®ç”Ÿæˆè§†é¢‘处ç†å®žä¾‹ï¼Œå¦‚æžœä¸æ”¯æŒè¯¥èƒ½åŠ›è¿”å›ž[VideoProcessing_ErrorCode](#videoprocessing_errorcode-1) VIDEO_PROCESSING_ERROR_UNSUPPORTED_PROCESSING。 **起始版本:** 12