• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# AVImageGenerator
2
3
4## 概述
5
6提供用于从视频资源中获取指定时间点视频帧的API。
7
8**系统能力:** SystemCapability.Multimedia.Media.AVImageGenerator
9
10**起始版本:** 18
11
12
13## 汇总
14
15
16### 文件
17
18| 名称 | 描述 |
19| -------- | -------- |
20| [avimage_generator.h](avimage__generator_8h.md) | 定义AVImageGenerator接口。使用其Native API从视频资源中获取指定时间点视频帧。  |
21| [avimage_generator_base.h](avimage__generator__base_8h.md) | 定义AVImageGenerator的枚举。  |
22
23
24### 类型定义
25
26| 名称 | 描述 |
27| -------- | -------- |
28| typedef struct [OH_AVImageGenerator](#oh_avimagegenerator) [OH_AVImageGenerator](#oh_avimagegenerator) | 定义OH_AVImageGenerator类型,用于生成指定时间点视频帧。  |
29| typedef enum [OH_AVImageGenerator_QueryOptions](#oh_avimagegenerator_queryoptions-1) [OH_AVImageGenerator_QueryOptions](#oh_avimagegenerator_queryoptions) | 指定时间点与视频帧对应关系的枚举类型。  |
30
31
32### 枚举
33
34| 名称 | 描述 |
35| -------- | -------- |
36| [OH_AVImageGenerator_QueryOptions](#oh_avimagegenerator_queryoptions-1) {<br> OH_AVIMAGE_GENERATOR_QUERY_NEXT_SYNC = 0,<br>  OH_AVIMAGE_GENERATOR_QUERY_PREVIOUS_SYNC = 1, <br> OH_AVIMAGE_GENERATOR_QUERY_CLOSEST_SYNC = 2, <br> OH_AVIMAGE_GENERATOR_QUERY_CLOSEST = 3 } | 指定时间点与视频帧对应关系的枚举类型。  |
37
38
39### 函数
40
41| 名称 | 描述 |
42| -------- | -------- |
43| [OH_AVImageGenerator](#oh_avimagegenerator) \* [OH_AVImageGenerator_Create](#oh_avimagegenerator_create) (void) | 创建OH_AVImageGenerator实例,用于生成指定时间点视频帧。  |
44| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVImageGenerator_SetFDSource](#oh_avimagegenerator_setfdsource) ([OH_AVImageGenerator](#oh_avimagegenerator) \*generator, int32_t fd, int64_t offset, int64_t size) | 通过媒体文件描述设置数据源。  |
45| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVImageGenerator_FetchFrameByTime](#oh_avimagegenerator_fetchframebytime) ([OH_AVImageGenerator](#oh_avimagegenerator) \*generator, int64_t timeUs, [OH_AVImageGenerator_QueryOptions](#oh_avimagegenerator_queryoptions) options, OH_PixelmapNative \*\*pixelMap) | 从视频资源中获取指定时间点视频帧。  |
46| [OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode) [OH_AVImageGenerator_Release](#oh_avimagegenerator_release) ([OH_AVImageGenerator](#oh_avimagegenerator) \*generator) | 释放用于OH_AVImageGenerator的资源以及销毁OH_AVImageGenerator实例。  |
47
48
49## 类型定义说明
50
51
52### OH_AVImageGenerator
53
54```
55typedef struct OH_AVImageGenerator OH_AVImageGenerator
56```
57**描述**
58定义OH_AVImageGenerator类型,用于生成指定时间点视频帧。
59
60**系统能力:** SystemCapability.Multimedia.Media.AVImageGenerator
61
62**起始版本:** 18
63
64
65### OH_AVImageGenerator_QueryOptions
66
67```
68typedef enum OH_AVImageGenerator_QueryOptions OH_AVImageGenerator_QueryOptions
69```
70**描述**
71指定时间点与视频帧对应关系的枚举类型。
72
73**系统能力:** SystemCapability.Multimedia.Media.AVImageGenerator
74
75**起始版本:** 18
76
77
78## 枚举类型说明
79
80
81### OH_AVImageGenerator_QueryOptions
82
83```
84enum OH_AVImageGenerator_QueryOptions
85```
86**描述**
87指定时间点与视频帧对应关系的枚举类型。
88
89**系统能力:** SystemCapability.Multimedia.Media.AVImageGenerator
90
91**起始版本:** 18
92
93| 枚举值 | 描述 |
94| -------- | -------- |
95| OH_AVIMAGE_GENERATOR_QUERY_NEXT_SYNC  | 此选项用于选取传入时间点或之后的关键帧。   |
96| OH_AVIMAGE_GENERATOR_QUERY_PREVIOUS_SYNC  | 此选项用于选取传入时间点或之前的关键帧。   |
97| OH_AVIMAGE_GENERATOR_QUERY_CLOSEST_SYNC  | 此选项用于选取离传入时间点最近的关键帧。   |
98| OH_AVIMAGE_GENERATOR_QUERY_CLOSEST  | 此选项用于选取离传入时间点最近的帧,该帧不一定是关键帧。   |
99
100
101## 函数说明
102
103
104### OH_AVImageGenerator_Create()
105
106```
107OH_AVImageGenerator* OH_AVImageGenerator_Create(void)
108```
109**描述**
110创建OH_AVImageGenerator实例,用于生成指定时间点视频帧。
111
112**系统能力:** SystemCapability.Multimedia.Media.AVImageGenerator
113
114**起始版本:** 18
115
116**返回:**
117
118创建成功时返回指向OH_AVImageGenerator实例的指针,否则返回空指针。
119
120可能的失败原因:HstEngineFactory未能创建AVMetadataHelperEngine。
121
122
123### OH_AVImageGenerator_FetchFrameByTime()
124
125```
126OH_AVErrCode OH_AVImageGenerator_FetchFrameByTime(OH_AVImageGenerator* generator, int64_t timeUs, OH_AVImageGenerator_QueryOptions options, OH_PixelmapNative** pixelMap)
127```
128**描述**
129从视频资源中获取指定时间点视频帧。
130
131此函数必须在[SetFDSource](#oh_avimagegenerator_setfdsource)之后调用。
132
133**系统能力:** SystemCapability.Multimedia.Media.AVImageGenerator
134
135**参数:**
136
137| 名称 | 描述 |
138| -------- | -------- |
139| generator | 指向OH_AVImageGenerator实例的指针。  |
140| timeUs | 需要获取的视频帧在视频中的时间点,单位为微秒(μs)。  |
141| options | 关于给定时间Us和视频帧之间关系的时间选项,请参阅[OH_AVImageGenerator_QueryOptions](#oh_avimagegenerator_queryoptions-1)。  |
142| pixelMap | 获取的视频帧对象。详细信息请参阅{@link OH_PixelmapNative}。  |
143
144**返回:**
145
146函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1):
147
148AV_ERR_OK:执行成功。
149
150AV_ERR_INVALID_VAL:输入的generator为空指针或参数无效。
151
152AV_ERR_OPERATE_NOT_PERMIT:操作被禁止。
153
154AV_ERR_UNSUPPORTED_FORMAT:格式不支持。
155
156AV_ERR_NO_MEMORY:内部内存分配失败。
157
158### OH_AVImageGenerator_Release()
159
160```
161OH_AVErrCode OH_AVImageGenerator_Release(OH_AVImageGenerator* generator)
162```
163**描述**
164释放用于OH_AVImageGenerator的资源以及销毁OH_AVImageGenerator实例。
165
166**系统能力:** SystemCapability.Multimedia.Media.AVImageGenerator
167
168**起始版本:** 18
169
170**参数:**
171
172| 名称 | 描述 |
173| -------- | -------- |
174| generator | 指向OH_AVImageGenerator实例的指针。  |
175
176**返回:**
177
178函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1):
179
180AV_ERR_OK:执行成功。
181
182AV_ERR_INVALID_VAL:输入的generator为空指针或参数无效。。
183
184
185### OH_AVImageGenerator_SetFDSource()
186
187```
188OH_AVErrCode OH_AVImageGenerator_SetFDSource(OH_AVImageGenerator* generator, int32_t fd, int64_t offset, int64_t size)
189```
190**描述**
191通过媒体文件描述设置数据源。
192
193**系统能力:** SystemCapability.Multimedia.Media.AVImageGenerator
194
195**起始版本:** 18
196
197**参数:**
198
199| 名称 | 描述 |
200| -------- | -------- |
201| generator | 指向OH_AVImageGenerator实例的指针。  |
202| fd | 媒体源的文件描述符。  |
203| offset | 媒体源在文件描述符中的偏移量。  |
204| size | 媒体源的大小。  |
205
206**返回:**
207
208函数结果代码[OH_AVErrCode](../apis-avcodec-kit/_core.md#oh_averrcode-1):
209
210AV_ERR_OK:执行成功。
211
212AV_ERR_INVALID_VAL:输入的generator为空指针或参数无效。
213
214AV_ERR_OPERATE_NOT_PERMIT:操作被禁止。
215
216AV_ERR_NO_MEMORY:内部内存分配失败。
217