目录

video_processing_types.h

概述

视频处理类型定义。

引用文件: <multimedia/video_processing_engine/video_processing_types.h>

库: libvideo_processing.so

系统能力: SystemCapability.Multimedia.VideoProcessingEngine

起始版本: 12

相关模块: VideoProcessing

汇总

[h2]结构体

名称 typedef关键字 描述
VideoProcessing_ColorSpaceInfo VideoProcessing_ColorSpaceInfo 视频颜色空间信息数据结构。
OH_VideoProcessing OH_VideoProcessing

定义视频处理对象。

定义一个OH_VideoProcessing空指针,用于调用OH_VideoProcessing_Create创建视频处理实例。用户可以对不同的处理类型创建不同的视频处理实例。

NativeWindow OHNativeWindow 定义NativeWindow对象。
OH_AVFormat OH_AVFormat 定义OH_AVFormat对象。
VideoProcessing_Callback VideoProcessing_Callback 视频处理回调对象类型。定义视频处理回调对象类型。使用OH_VideoProcessingCallback_Create创建回调对象前,需要将该类型的指针初始化为空指针。创建成功后,可通过调用OH_VideoProcessing_RegisterCallback,将回调对象注册到视频处理实例中。

[h2]枚举

名称 typedef关键字 描述
VideoDetailEnhancer_QualityLevel VideoDetailEnhancer_QualityLevel 用于细节增强的质量等级。
VideoMetadataGeneratorStyleControl VideoMetadataGeneratorStyleControl 视频元数据生成的风格模式。参数的具体取值请参考VIDEO_METADATA_GENERATOR_STYLE_CONTROL。
VideoProcessing_ErrorCode VideoProcessing_ErrorCode 视频处理错误码。
VideoProcessing_State VideoProcessing_State

视频处理状态。

视频处理状态通过回调函数OH_VideoProcessingCallback_OnState进行报告。

[h2]函数

名称 typedef关键字 描述
typedef void (*OH_VideoProcessingCallback_OnError)(OH_VideoProcessing* videoProcessor, VideoProcessing_ErrorCode error, void* userData) OH_VideoProcessingCallback_OnError

视频处理过程中报告错误的回调函数指针。

错误码VideoProcessing_ErrorCode:VIDEO_PROCESSING_ERROR_UNSUPPORTED_PROCESSING,不支持的处理,比如不支持输入输出的颜色空间类型转换。

VIDEO_PROCESSING_ERROR_INVALID_VALUE,无效的视频属性,比如视频的颜色空间无效。

VIDEO_PROCESSING_ERROR_NO_MEMORY,内存不足。

VIDEO_PROCESSING_ERROR_PROCESS_FAILED,处理过程中出错。

typedef void (*OH_VideoProcessingCallback_OnState)(OH_VideoProcessing* videoProcessor, VideoProcessing_State state, void* userData) OH_VideoProcessingCallback_OnState

报告视频处理状态的回调函数指针。

OH_VideoProcessing_Start成功调用之后状态会变为VideoProcessing_State.VIDEO_PROCESSING_STATE_RUNNING。调用OH_VideoProcessing_Stop,所有的缓存buffer处理完成后,状态会变为VideoProcessing_State.VIDEO_PROCESSING_STATE_STOPPED。

typedef void (*OH_VideoProcessingCallback_OnNewOutputBuffer)(OH_VideoProcessing* videoProcessor, uint32_t index, void* userData) OH_VideoProcessingCallback_OnNewOutputBuffer

报告输出buffer已填充好数据的回调函数指针。

每个新输出buffer填充好数据之后该buffer的索引就会报告给用户。调用OH_VideoProcessing_RenderOutputBuffer根据索引来处理渲染并输出该buffer。如果未注册该函数,则输出buffer填充好数据后不会报告用户,而是直接进行处理渲染并输出。

[h2]变量

名称 描述
const int32_t VIDEO_PROCESSING_TYPE_COLOR_SPACE_CONVERSION

表示创建颜色空间转换视频处理实例。

调用OH_VideoProcessing_Create创建颜色空间转换视频处理实例,如果不支持该能力返回VideoProcessing_ErrorCode.VIDEO_PROCESSING_ERROR_UNSUPPORTED_PROCESSING。可以调用OH_VideoProcessing_IsColorSpaceConversionSupported来检查是否支持这种处理。

起始版本: 12

const int32_t VIDEO_PROCESSING_TYPE_METADATA_GENERATION

表示创建元数据生成视频处理实例。

调用OH_VideoProcessing_Create创建元数据生成视频处理实例,如果不支持该能力返回VideoProcessing_ErrorCode.VIDEO_PROCESSING_ERROR_UNSUPPORTED_PROCESSING。可以调用OH_VideoProcessing_IsMetadataGenerationSupported来检查是否支持这种处理。

起始版本: 12

const int32_t VIDEO_PROCESSING_TYPE_DETAIL_ENHANCER

表示创建细节增强视频处理实例。

调用OH_VideoProcessing_Create创建细节增强视频处理实例,如果不支持该能力返回VideoProcessing_ErrorCode.VIDEO_PROCESSING_ERROR_UNSUPPORTED_PROCESSING。

起始版本: 12

const char* VIDEO_DETAIL_ENHANCER_PARAMETER_KEY_QUALITY_LEVEL

指定视频细节增强的质量等级,参考VideoDetailEnhancer_QualityLevel查看具体取值。

调用OH_VideoProcessing_SetParameter设置质量等级。

调用OH_VideoProcessing_GetParameter获取当前质量等级。

起始版本: 12

const char * VIDEO_METADATA_GENERATOR_STYLE_CONTROL

指定视频元数据生成的风格模式。具体取值请参考VideoMetadataGeneratorStyleControl。调用OH_AVFormat_SetIntValue设置视频元数据生成的风格模式到AVFormat参数。调用OH_VideoProcessing_SetParameter设置当前视频元数据生成的风格模式。调用OH_VideoProcessing_GetParameter获取当前视频元数据生成的风格模式。

起始版本: 22

const int32_t VIDEO_PROCESSING_TYPE_AUTOEFFECT_AISR

表示在XComponent中使用的视频AISR(Artificial Intelligence Super Resolution)自动增强效果类型。AISR称作AI超分,是AutoEffect中的一种。

调用OH_VideoProcessing_IsAutoEffectSupported查询是否支持AISR自动增强效果。

起始版本: 26.0.1

const char *VIDEO_AUTOEFFECT_ENABLE

设置启用或禁用自动增强效果的关键字。

调用OH_AVFormat_SetIntValue将启用值(0为false表示禁用,1为true表示启用)设置到AVFormat参数中。调用OH_VideoProcessing_SetAutoEffectParam将参数设置到视频处理实例中。

起始版本: 26.0.1

const char *VIDEO_AUTOEFFECT_AISR_STRENGTH

设置AISR强度。

调用OH_AVFormat_SetFloatValue将强度值设置到AVFormat参数中。当取值在[0.0, 1.0]范围内时,值越大图像质量越好;如果设置为小于0的值,则图像质量增强为自适应模式。调用OH_VideoProcessing_SetAutoEffectParam将参数设置到视频处理实例中。

起始版本: 26.0.1

枚举类型说明

[h2]VideoDetailEnhancer_QualityLevel

enum VideoDetailEnhancer_QualityLevel

描述

用于细节增强的质量等级。参数VIDEO_DETAIL_ENHANCER_PARAMETER_KEY_QUALITY_LEVEL的具体取值,设置方法详见开发指南。

起始版本: 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 高质量等级细节增强,速度相对较慢。

参考:

OH_VideoProcessing_SetParameter

OH_VideoProcessing_GetParameter

[h2]VideoMetadataGeneratorStyleControl

enum VideoMetadataGeneratorStyleControl

描述

视频元数据生成的风格模式。参数的具体取值请参考VIDEO_METADATA_GENERATOR_STYLE_CONTROL。

起始版本: 22

枚举项 描述
VIDEO_METADATA_GENERATOR_CONTRAST_MODE = 0 对比度优先模式。
VIDEO_METADATA_GENERATOR_BRIGHT_MODE = 1 亮度优先模式。

参考:

OH_VideoProcessing_SetParameter

OH_VideoProcessing_GetParameter

OH_AVFormat_SetIntValue

[h2]VideoProcessing_ErrorCode

enum VideoProcessing_ErrorCode

描述

视频处理错误码。

起始版本: 12

枚举项 描述
VIDEO_PROCESSING_SUCCESS 处理成功。
VIDEO_PROCESSING_ERROR_INVALID_PARAMETER = 401

输入参数无效。以下情况都会返回该错误码:

1. 无效的输入或输出视频buffer,视频buffer为空。

2. 无效的参数,参数为空。

3. 无效的处理类型。

VIDEO_PROCESSING_ERROR_UNKNOWN = 29210001 未知错误,比如GPU计算失败或memcpy失败。
VIDEO_PROCESSING_ERROR_INITIALIZE_FAILED 视频处理全局环境初始化失败,比如初始化GPU环境失败。请检查设备是否支持GPU加速,或尝试重启应用后重试。
VIDEO_PROCESSING_ERROR_CREATE_FAILED 创建视频处理实例失败,比如实例总数超出上限。可调用OH_VideoProcessing_Destroy释放不再使用的实例后重试。
VIDEO_PROCESSING_ERROR_PROCESS_FAILED 处理过程失败,比如处理时间超时。
VIDEO_PROCESSING_ERROR_UNSUPPORTED_PROCESSING 不支持的处理类型,比如试图创建不支持的视频处理实例。目前可对两种视频处理功能检查支持情况:OH_VideoProcessing_IsColorSpaceConversionSupported,OH_VideoProcessing_IsMetadataGenerationSupported。
VIDEO_PROCESSING_ERROR_OPERATION_NOT_PERMITTED 不允许的操作,比如不满足调用接口所需的运行状态下调用该接口。
VIDEO_PROCESSING_ERROR_NO_MEMORY 内存不足。请释放不再使用的资源后重试,或减少视频处理的分辨率。
VIDEO_PROCESSING_ERROR_INVALID_INSTANCE 视频处理实例无效,比如视频处理实例为空实例。
VIDEO_PROCESSING_ERROR_INVALID_VALUE

输入值无效,以下情况都会造成这种错误:

1. 视频buffer宽高太大或者颜色空间错误。

2. 参数包含无效的值,比如细节增强的质量等级错误。

[h2]VideoProcessing_State

enum VideoProcessing_State

描述

视频处理状态。视频处理状态通过回调函数OH_VideoProcessingCallback_OnState进行报告。

起始版本: 12

枚举项 描述
VIDEO_PROCESSING_STATE_RUNNING 视频处理进行中。
VIDEO_PROCESSING_STATE_STOPPED 视频处理已停止。

函数说明

[h2]OH_VideoProcessingCallback_OnError()

typedef void (*OH_VideoProcessingCallback_OnError)(OH_VideoProcessing* videoProcessor, VideoProcessing_ErrorCode error, void* userData)

描述

视频处理过程中报告错误的回调函数指针。

错误码VideoProcessing_ErrorCode:

VIDEO_PROCESSING_ERROR_UNSUPPORTED_PROCESSING,不支持的处理,比如不支持输入输出的颜色空间类型转换。

VIDEO_PROCESSING_ERROR_INVALID_VALUE,无效的视频属性,比如视频的颜色空间无效。

VIDEO_PROCESSING_ERROR_NO_MEMORY,内存不足。

VIDEO_PROCESSING_ERROR_PROCESS_FAILED,处理过程中出错。

起始版本: 12

参数:

参数项 描述
OH_VideoProcessing* videoProcessor 视频处理实例。
VideoProcessing_ErrorCode error 报告给用户的错误码。
void* userData 用户的自定义数据。

[h2]OH_VideoProcessingCallback_OnState()

typedef void (*OH_VideoProcessingCallback_OnState)(OH_VideoProcessing* videoProcessor, VideoProcessing_State state, void* userData)

描述

报告视频处理状态的回调函数指针。

OH_VideoProcessing_Start成功调用之后状态会变为VideoProcessing_State.VIDEO_PROCESSING_STATE_RUNNING。调用OH_VideoProcessing_Stop,所有的缓存buffer处理完成后,状态会变为VideoProcessing_State.VIDEO_PROCESSING_STATE_STOPPED。

起始版本: 12

参数:

参数项 描述
OH_VideoProcessing* videoProcessor 视频处理实例。
VideoProcessing_State state 视频处理状态。
void* userData 用户的自定义数据。

[h2]OH_VideoProcessingCallback_OnNewOutputBuffer()

typedef void (*OH_VideoProcessingCallback_OnNewOutputBuffer)(OH_VideoProcessing* videoProcessor, uint32_t index, void* userData)

描述

报告输出buffer已填充好数据的回调函数指针。

每个新输出buffer填充好数据之后该buffer的索引就会报告给用户。调用OH_VideoProcessing_RenderOutputBuffer根据索引来处理渲染并输出该buffer。如果未注册该函数,则输出buffer填充好数据后不会报告用户,而是直接进行处理渲染并输出。

起始版本: 12

参数:

参数项 描述
OH_VideoProcessing* videoProcessor 视频处理实例。
uint32_t index 新输出buffer的索引。
void* userData 用户自定义的数据。