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:内部内存分配失败。