1# avimage_generator.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定义AVImageGenerator接口。使用其C API从视频资源中获取指定时间点视频帧。 12 13**引用文件:** <multimedia/player_framework/avimage_generator.h> 14 15**库:** libavimage_generator.so 16 17**系统能力:** SystemCapability.Multimedia.Media.AVImageGenerator 18 19**起始版本:** 18 20 21**相关模块:** [AVImageGenerator](capi-avimagegenerator.md) 22 23## 汇总 24 25### 结构体 26 27| 名称 | typedef关键字 | 描述 | 28| -- | -- | -- | 29| [OH_AVImageGenerator](capi-avimagegenerator-oh-avimagegenerator.md) | OH_AVImageGenerator | 定义OH_AVImageGenerator类型,用于生成指定时间点视频帧。 | 30 31### 函数 32 33| 名称 | 描述 | 34| -- | -- | 35| [OH_AVImageGenerator* OH_AVImageGenerator_Create(void)](#oh_avimagegenerator_create) | 创建OH_AVImageGenerator实例,用于生成指定时间点视频帧。 | 36| [OH_AVErrCode OH_AVImageGenerator_SetFDSource(OH_AVImageGenerator* generator, int32_t fd, int64_t offset, int64_t size)](#oh_avimagegenerator_setfdsource) | 通过媒体文件描述设置数据源。 | 37| [OH_AVErrCode OH_AVImageGenerator_FetchFrameByTime(OH_AVImageGenerator* generator, int64_t timeUs, OH_AVImageGenerator_QueryOptions options, OH_PixelmapNative** pixelMap)](#oh_avimagegenerator_fetchframebytime) | 从视频资源中获取指定时间点视频帧。<br>此函数必须在[OH_AVImageGenerator_SetFDSource](#oh_avimagegenerator_setfdsource)之后调用。 | 38| [OH_AVErrCode OH_AVImageGenerator_Release(OH_AVImageGenerator* generator)](#oh_avimagegenerator_release) | 释放用于OH_AVImageGenerator的资源以及销毁OH_AVImageGenerator实例。 | 39 40## 函数说明 41 42### OH_AVImageGenerator_Create() 43 44``` 45OH_AVImageGenerator* OH_AVImageGenerator_Create(void) 46``` 47 48**描述** 49 50创建OH_AVImageGenerator实例,用于生成指定时间点视频帧。 51 52**系统能力:** SystemCapability.Multimedia.Media.AVImageGenerator 53 54**起始版本:** 18 55 56**返回:** 57 58| 类型 | 说明 | 59| -- | -- | 60| [OH_AVImageGenerator](capi-avimagegenerator-oh-avimagegenerator.md)* | 创建成功时返回指向OH_AVImageGenerator实例的指针,否则返回空指针。<br> 可能的失败原因:HstEngineFactory未能创建AVMetadataHelperEngine。 | 61 62### OH_AVImageGenerator_SetFDSource() 63 64``` 65OH_AVErrCode OH_AVImageGenerator_SetFDSource(OH_AVImageGenerator* generator,int32_t fd, int64_t offset, int64_t size) 66``` 67 68**描述** 69 70通过媒体文件描述设置数据源。 71 72**系统能力:** SystemCapability.Multimedia.Media.AVImageGenerator 73 74**起始版本:** 18 75 76 77**参数:** 78 79| 参数项 | 描述 | 80| -- | -- | 81| [OH_AVImageGenerator](capi-avimagegenerator-oh-avimagegenerator.md)* generator | 指向OH_AVImageGenerator实例的指针。 | 82| int32_t fd | 媒体源的文件描述符。 | 83| int64_t offset | 媒体源在文件描述符中的偏移量。 | 84| int64_t size | 媒体源的大小。 | 85 86**返回:** 87 88| 类型 | 说明 | 89| -- | -- | 90| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:输入的generator为空指针或参数无效。<br> AV_ERR_OPERATE_NOT_PERMIT:操作被禁止。<br> AV_ERR_NO_MEMORY:内部内存分配失败。 | 91 92### OH_AVImageGenerator_FetchFrameByTime() 93 94``` 95OH_AVErrCode OH_AVImageGenerator_FetchFrameByTime(OH_AVImageGenerator* generator,int64_t timeUs, OH_AVImageGenerator_QueryOptions options, OH_PixelmapNative** pixelMap) 96``` 97 98**描述** 99 100从视频资源中获取指定时间点视频帧。 101 102此函数必须在[OH_AVImageGenerator_SetFDSource](#oh_avimagegenerator_setfdsource)之后调用。 103 104**系统能力:** SystemCapability.Multimedia.Media.AVImageGenerator 105 106**起始版本:** 18 107 108 109**参数:** 110 111| 参数项 | 描述 | 112| -- | -- | 113| [OH_AVImageGenerator](capi-avimagegenerator-oh-avimagegenerator.md)* generator | 指向OH_AVImageGenerator实例的指针。 | 114| int64_t timeUs | 需要获取的视频帧在视频中的时间点,单位为微秒(μs)。 | 115| [OH_AVImageGenerator_QueryOptions](capi-avimage-generator-base-h.md#oh_avimagegenerator_queryoptions) options | 关于给定时间Us和视频帧之间关系的时间选项。 | 116| [OH_PixelmapNative](../apis-image-kit/capi-image-nativemodule-oh-pixelmapnative.md)** pixelMap | 获取的视频帧对象。 | 117 118**返回:** 119 120| 类型 | 说明 | 121| -- | -- | 122| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:输入的generator为空指针或参数无效。<br> AV_ERR_OPERATE_NOT_PERMIT:操作被禁止。<br> AV_ERR_UNSUPPORTED_FORMAT:格式不支持。<br> AV_ERR_NO_MEMORY:内部内存分配失败。 | 123 124### OH_AVImageGenerator_Release() 125 126``` 127OH_AVErrCode OH_AVImageGenerator_Release(OH_AVImageGenerator* generator) 128``` 129 130**描述** 131 132释放用于OH_AVImageGenerator的资源以及销毁OH_AVImageGenerator实例。 133 134**系统能力:** SystemCapability.Multimedia.Media.AVImageGenerator 135 136**起始版本:** 18 137 138 139**参数:** 140 141| 参数项 | 描述 | 142| -- | -- | 143| [OH_AVImageGenerator](capi-avimagegenerator-oh-avimagegenerator.md)* generator | 指向OH_AVImageGenerator实例的指针。 | 144 145**返回:** 146 147| 类型 | 说明 | 148| -- | -- | 149| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:输入的generator为空指针或参数无效。 | 150 151 152