• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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