fd38c501创建于 2025年5月27日历史提交

AVImageGenerator

概述

提供用于从视频资源中获取指定时间视频帧的API。

系统能力: SystemCapability.Multimedia.Media.AVImageGenerator

起始版本: 18

汇总

文件

名称 描述
avimage_generator.h 定义AVImageGenerator接口。使用其Native API从视频资源中获取指定时间点视频帧。
avimage_generator_base.h 定义AVImageGenerator的枚举。

类型定义

名称 描述
typedef struct OH_AVImageGenerator OH_AVImageGenerator 定义OH_AVImageGenerator类型,用于生成指定时间点视频帧。
typedef enum OH_AVImageGenerator_QueryOptions OH_AVImageGenerator_QueryOptions 指定时间点与视频帧对应关系的枚举类型。

枚举

名称 描述
OH_AVImageGenerator_QueryOptions {
OH_AVIMAGE_GENERATOR_QUERY_NEXT_SYNC = 0,
OH_AVIMAGE_GENERATOR_QUERY_PREVIOUS_SYNC = 1,
OH_AVIMAGE_GENERATOR_QUERY_CLOSEST_SYNC = 2,
OH_AVIMAGE_GENERATOR_QUERY_CLOSEST = 3 }
指定时间点与视频帧对应关系的枚举类型。

函数

名称 描述
OH_AVImageGenerator * OH_AVImageGenerator_Create (void) 创建OH_AVImageGenerator实例,用于生成指定时间点视频帧。
OH_AVErrCode OH_AVImageGenerator_SetFDSource (OH_AVImageGenerator *generator, int32_t fd, int64_t offset, int64_t size) 通过媒体文件描述设置数据源。
OH_AVErrCode OH_AVImageGenerator_FetchFrameByTime (OH_AVImageGenerator *generator, int64_t timeUs, OH_AVImageGenerator_QueryOptions options, OH_PixelmapNative **pixelMap) 从视频资源中获取指定时间点视频帧。
OH_AVErrCode OH_AVImageGenerator_Release (OH_AVImageGenerator *generator) 释放用于OH_AVImageGenerator的资源以及销毁OH_AVImageGenerator实例。

类型定义说明

OH_AVImageGenerator

typedef struct OH_AVImageGenerator OH_AVImageGenerator

描述 定义OH_AVImageGenerator类型,用于生成指定时间点视频帧。

系统能力: SystemCapability.Multimedia.Media.AVImageGenerator

起始版本: 18

OH_AVImageGenerator_QueryOptions

typedef enum OH_AVImageGenerator_QueryOptions OH_AVImageGenerator_QueryOptions

描述 指定时间点与视频帧对应关系的枚举类型。

系统能力: SystemCapability.Multimedia.Media.AVImageGenerator

起始版本: 18

枚举类型说明

OH_AVImageGenerator_QueryOptions

enum OH_AVImageGenerator_QueryOptions

描述 指定时间点与视频帧对应关系的枚举类型。

系统能力: SystemCapability.Multimedia.Media.AVImageGenerator

起始版本: 18

枚举值 描述
OH_AVIMAGE_GENERATOR_QUERY_NEXT_SYNC 此选项用于选取传入时间点或之后的关键帧。
OH_AVIMAGE_GENERATOR_QUERY_PREVIOUS_SYNC 此选项用于选取传入时间点或之前的关键帧。
OH_AVIMAGE_GENERATOR_QUERY_CLOSEST_SYNC 此选项用于选取离传入时间点最近的关键帧。
OH_AVIMAGE_GENERATOR_QUERY_CLOSEST 此选项用于选取离传入时间点最近的帧,该帧不一定是关键帧。

函数说明

OH_AVImageGenerator_Create()

OH_AVImageGenerator* OH_AVImageGenerator_Create(void)

描述 创建OH_AVImageGenerator实例,用于生成指定时间点视频帧。

系统能力: SystemCapability.Multimedia.Media.AVImageGenerator

起始版本: 18

返回:

创建成功时返回指向OH_AVImageGenerator实例的指针,否则返回空指针。

可能的失败原因:HstEngineFactory未能创建AVMetadataHelperEngine。

OH_AVImageGenerator_FetchFrameByTime()

OH_AVErrCode OH_AVImageGenerator_FetchFrameByTime(OH_AVImageGenerator* generator, int64_t timeUs, OH_AVImageGenerator_QueryOptions options, OH_PixelmapNative** pixelMap)

描述 从视频资源中获取指定时间点视频帧。

此函数必须在SetFDSource之后调用。

系统能力: SystemCapability.Multimedia.Media.AVImageGenerator

参数:

名称 描述
generator 指向OH_AVImageGenerator实例的指针。
timeUs 需要获取的视频帧在视频中的时间点,单位为微秒(μs)。
options 关于给定时间Us和视频帧之间关系的时间选项,请参阅OH_AVImageGenerator_QueryOptions
pixelMap 获取的视频帧对象。详细信息请参阅{@link OH_PixelmapNative}。

返回:

函数结果代码OH_AVErrCode

AV_ERR_OK:执行成功。

AV_ERR_INVALID_VAL:输入的generator为空指针或参数无效。

AV_ERR_OPERATE_NOT_PERMIT:操作被禁止。

AV_ERR_UNSUPPORTED_FORMAT:格式不支持。

AV_ERR_NO_MEMORY:内部内存分配失败。

OH_AVImageGenerator_Release()

OH_AVErrCode OH_AVImageGenerator_Release(OH_AVImageGenerator* generator)

描述 释放用于OH_AVImageGenerator的资源以及销毁OH_AVImageGenerator实例。

系统能力: SystemCapability.Multimedia.Media.AVImageGenerator

起始版本: 18

参数:

名称 描述
generator 指向OH_AVImageGenerator实例的指针。

返回:

函数结果代码OH_AVErrCode

AV_ERR_OK:执行成功。

AV_ERR_INVALID_VAL:输入的generator为空指针或参数无效。。

OH_AVImageGenerator_SetFDSource()

OH_AVErrCode OH_AVImageGenerator_SetFDSource(OH_AVImageGenerator* generator, int32_t fd, int64_t offset, int64_t size)

描述 通过媒体文件描述设置数据源。

系统能力: SystemCapability.Multimedia.Media.AVImageGenerator

起始版本: 18

参数:

名称 描述
generator 指向OH_AVImageGenerator实例的指针。
fd 媒体源的文件描述符。
offset 媒体源在文件描述符中的偏移量。
size 媒体源的大小。

返回:

函数结果代码OH_AVErrCode

AV_ERR_OK:执行成功。

AV_ERR_INVALID_VAL:输入的generator为空指针或参数无效。

AV_ERR_OPERATE_NOT_PERMIT:操作被禁止。

AV_ERR_NO_MEMORY:内部内存分配失败。