• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# native_avcapability.h
2
3## 概述
4
5声明用于编解码能力查询到的Native API。
6
7**引用文件:** <multimedia/player_framework/native_avcapability.h>
8
9**库:** libnative_media_codecbase.so
10
11**系统能力:** SystemCapability.Multimedia.Media.CodecBase
12
13**起始版本:** 10
14
15**相关模块:** [AVCapability](capi-avcapability.md)
16
17## 汇总
18
19### 结构体
20
21| 名称 | typedef关键字 | 描述 |
22| -- | -- | -- |
23| [OH_AVRange](capi-avcapability-oh-avrange.md) | OH_AVRange | 范围包含最小值和最大值。 |
24| [OH_AVCapability](capi-avcapability-oh-avcapability.md) | OH_AVCapability | 为OH_AVCapability接口定义native层对象。 |
25
26### 枚举
27
28| 名称 | typedef关键字 | 描述 |
29| -- | -- | -- |
30| [OH_AVCodecCategory](#oh_avcodeccategory) | OH_AVCodecCategory | 编解码器类别。 |
31| [OH_AVCapabilityFeature](#oh_avcapabilityfeature) | OH_AVCapabilityFeature | 可以在特定编解码器场景中使用的可选特性。 |
32
33### 函数
34
35| 名称 | 描述 |
36| -- | -- |
37| [OH_AVCapability *OH_AVCodec_GetCapability(const char *mime, bool isEncoder)](#oh_avcodec_getcapability) | 获取系统推荐的编解码器能力。 |
38| [OH_AVCapability *OH_AVCodec_GetCapabilityByCategory(const char *mime, bool isEncoder, OH_AVCodecCategory category)](#oh_avcodec_getcapabilitybycategory) | 获取指定类别中的编解码器能力。通过指定类别,匹配的编解码器仅限于硬件编解码器或软件编解码器。 |
39| [bool OH_AVCapability_IsHardware(OH_AVCapability *capability)](#oh_avcapability_ishardware) | 检查能力实例是否描述了硬件编解码器。 |
40| [const char *OH_AVCapability_GetName(OH_AVCapability *capability)](#oh_avcapability_getname) | 获取编解码器名称。 |
41| [int32_t OH_AVCapability_GetMaxSupportedInstances(OH_AVCapability *capability)](#oh_avcapability_getmaxsupportedinstances) | 获取编解码器支持的最大实例数。 |
42| [OH_AVErrCode OH_AVCapability_GetEncoderBitrateRange(OH_AVCapability *capability, OH_AVRange *bitrateRange)](#oh_avcapability_getencoderbitraterange) | 获取编码器支持的比特率范围。 |
43| [bool OH_AVCapability_IsEncoderBitrateModeSupported(OH_AVCapability *capability, OH_BitrateMode bitrateMode)](#oh_avcapability_isencoderbitratemodesupported) | 检查编码器是否支持特定的比特率模式。 |
44| [OH_AVErrCode OH_AVCapability_GetEncoderQualityRange(OH_AVCapability *capability, OH_AVRange *qualityRange)](#oh_avcapability_getencoderqualityrange) | 获取编码器支持的质量范围。 |
45| [OH_AVErrCode OH_AVCapability_GetEncoderComplexityRange(OH_AVCapability *capability, OH_AVRange *complexityRange)](#oh_avcapability_getencodercomplexityrange) | 获取编码器支持的编码器复杂性范围。 |
46| [OH_AVErrCode OH_AVCapability_GetAudioSupportedSampleRates(OH_AVCapability *capability, const int32_t **sampleRates, uint32_t *sampleRateNum)](#oh_avcapability_getaudiosupportedsamplerates) | 获取音频编解码器支持的采样率。 |
47| [OH_AVErrCode OH_AVCapability_GetAudioChannelCountRange(OH_AVCapability *capability, OH_AVRange *channelCountRange)](#oh_avcapability_getaudiochannelcountrange) | 获取音频编解码器支持的音频通道计数范围。 |
48| [OH_AVErrCode OH_AVCapability_GetVideoWidthAlignment(OH_AVCapability *capability, int32_t *widthAlignment)](#oh_avcapability_getvideowidthalignment) | 获取视频编解码器支持的视频宽度对齐。 |
49| [OH_AVErrCode OH_AVCapability_GetVideoHeightAlignment(OH_AVCapability *capability, int32_t *heightAlignment)](#oh_avcapability_getvideoheightalignment) | 获取视频编解码器支持的视频高度对齐。 |
50| [OH_AVErrCode OH_AVCapability_GetVideoWidthRangeForHeight(OH_AVCapability *capability, int32_t height, OH_AVRange *widthRange)](#oh_avcapability_getvideowidthrangeforheight) | 获取指定高度情况下视频编解码器支持的视频宽度范围。 |
51| [OH_AVErrCode OH_AVCapability_GetVideoHeightRangeForWidth(OH_AVCapability *capability, int32_t width, OH_AVRange *heightRange)](#oh_avcapability_getvideoheightrangeforwidth) | 获取指定宽度情况下视频编解码器支持的视频高度范围。 |
52| [OH_AVErrCode OH_AVCapability_GetVideoWidthRange(OH_AVCapability *capability, OH_AVRange *widthRange)](#oh_avcapability_getvideowidthrange) | 获取视频编解码器支持的视频宽度范围。 |
53| [OH_AVErrCode OH_AVCapability_GetVideoHeightRange(OH_AVCapability *capability, OH_AVRange *heightRange)](#oh_avcapability_getvideoheightrange) | 获取视频编解码器支持的视频高度范围。 |
54| [bool OH_AVCapability_IsVideoSizeSupported(OH_AVCapability *capability, int32_t width, int32_t height)](#oh_avcapability_isvideosizesupported) | 检查视频编解码器是否支持特定的视频大小。 |
55| [OH_AVErrCode OH_AVCapability_GetVideoFrameRateRange(OH_AVCapability *capability, OH_AVRange *frameRateRange)](#oh_avcapability_getvideoframeraterange) | 获取视频编解码器支持的视频帧率范围。 |
56| [OH_AVErrCode OH_AVCapability_GetVideoFrameRateRangeForSize(OH_AVCapability *capability, int32_t width, int32_t height, OH_AVRange *frameRateRange)](#oh_avcapability_getvideoframeraterangeforsize) | 获取指定视频大小的视频编解码器支持的视频帧率范围。 |
57| [bool OH_AVCapability_AreVideoSizeAndFrameRateSupported(OH_AVCapability *capability, int32_t width, int32_t height, int32_t frameRate)](#oh_avcapability_arevideosizeandframeratesupported) | 检查视频编解码器是否支持视频大小和帧率的特定组合。 |
58| [OH_AVErrCode OH_AVCapability_GetVideoSupportedPixelFormats(OH_AVCapability *capability, const int32_t **pixelFormats, uint32_t *pixelFormatNum)](#oh_avcapability_getvideosupportedpixelformats) | 获取视频编解码器支持的视频像素格式。 |
59| [OH_AVErrCode OH_AVCapability_GetSupportedProfiles(OH_AVCapability *capability, const int32_t **profiles, uint32_t *profileNum)](#oh_avcapability_getsupportedprofiles) | 获取编解码器支持的档次。 |
60| [OH_AVErrCode OH_AVCapability_GetSupportedLevelsForProfile(OH_AVCapability *capability, int32_t profile, const int32_t **levels, uint32_t *levelNum)](#oh_avcapability_getsupportedlevelsforprofile) | 获取特定档次支持的编解码器级别。 |
61| [bool OH_AVCapability_AreProfileAndLevelSupported(OH_AVCapability *capability, int32_t profile, int32_t level)](#oh_avcapability_areprofileandlevelsupported) | 检查编解码器是否支持档次和级别的特定组合。 |
62| [bool OH_AVCapability_IsFeatureSupported(OH_AVCapability *capability, OH_AVCapabilityFeature feature)](#oh_avcapability_isfeaturesupported) | 检查编解码器是否支持指定特性。 |
63| [OH_AVFormat *OH_AVCapability_GetFeatureProperties(OH_AVCapability *capability, OH_AVCapabilityFeature feature)](#oh_avcapability_getfeatureproperties) | 获取指定特性的属性。需要注意的是,返回值指向的OH_AVFormat实例的生命周期需要调用者手动释放。 |
64
65## 枚举类型说明
66
67### OH_AVCodecCategory
68
69```
70enum OH_AVCodecCategory
71```
72
73**描述**
74
75编解码器类别。
76
77**系统能力:** SystemCapability.Multimedia.Media.CodecBase
78
79**起始版本:** 10
80
81| 枚举项 | 描述 |
82| -- | -- |
83| HARDWARE = 0 | 硬件编解码。 |
84| SOFTWARE | 软件编解码。 |
85
86### OH_AVCapabilityFeature
87
88```
89enum OH_AVCapabilityFeature
90```
91
92**描述**
93
94可以在特定编解码器场景中使用的可选特性。
95
96**系统能力:** SystemCapability.Multimedia.Media.CodecBase
97
98**起始版本:** 12
99
100| 枚举项 | 描述 |
101| -- | -- |
102| VIDEO_ENCODER_TEMPORAL_SCALABILITY = 0 | 编解码器支持时域可分层特性,只用于视频编码场景。 |
103| VIDEO_ENCODER_LONG_TERM_REFERENCE = 1 | 编解码器支持长期参考帧特性,只用于视频编码场景。 |
104| VIDEO_LOW_LATENCY = 2 | 编解码器支持低时延特性,用于视频编码和视频解码场景。 |
105
106
107## 函数说明
108
109### OH_AVCodec_GetCapability()
110
111```
112OH_AVCapability *OH_AVCodec_GetCapability(const char *mime, bool isEncoder)
113```
114
115**描述**
116
117获取系统推荐的编解码器能力。
118
119**系统能力:** SystemCapability.Multimedia.Media.CodecBase
120
121**起始版本:** 10
122
123
124**参数:**
125
126| 参数项 | 描述 |
127| -- | -- |
128| const char *mime | MIME类型描述字符串,请参阅[AVCODEC_MIME_TYPE](_codec_base.md#变量)。 |
129| bool isEncoder | 编码器为true,解码器为false。 |
130
131**返回:**
132
133| 类型 | 说明 |
134| -- | -- |
135| [OH_AVCapability](capi-avcapability-oh-avcapability.md) * | 如果现有编解码器匹配,则返回能力实例,如果指定的MIME类型与任何现有编解码器不匹配,则返回NULL。 |
136
137### OH_AVCodec_GetCapabilityByCategory()
138
139```
140OH_AVCapability *OH_AVCodec_GetCapabilityByCategory(const char *mime, bool isEncoder, OH_AVCodecCategory category)
141```
142
143**描述**
144
145获取指定类别中的编解码器能力。通过指定类别,匹配的编解码器仅限于硬件编解码器或软件编解码器。
146
147**系统能力:** SystemCapability.Multimedia.Media.CodecBase
148
149**起始版本:** 10
150
151
152**参数:**
153
154| 参数项 | 描述 |
155| -- | -- |
156| const char *mime | MIME类型描述字符串,请参阅[AVCODEC_MIME_TYPE](_codec_base.md#变量)。 |
157| bool isEncoder | 编码器为true,解码器为false。 |
158| [OH_AVCodecCategory](#oh_avcodeccategory) category | 编解码器类别。 |
159
160**返回:**
161
162| 类型 | 说明 |
163| -- | -- |
164| [OH_AVCapability](capi-avcapability-oh-avcapability.md) * | 如果现有编解码器匹配,则返回能力实例,如果指定的MIME类型与任何现有编解码器不匹配,则返回NULL。 |
165
166### OH_AVCapability_IsHardware()
167
168```
169bool OH_AVCapability_IsHardware(OH_AVCapability *capability)
170```
171
172**描述**
173
174检查能力实例是否描述了硬件编解码器。
175
176**系统能力:** SystemCapability.Multimedia.Media.CodecBase
177
178**起始版本:** 10
179
180
181**参数:**
182
183| 参数项 | 描述 |
184| -- | -- |
185| [OH_AVCapability](capi-avcapability-oh-avcapability.md) *capability | 编解码能力指针。 |
186
187**返回:**
188
189| 类型 | 说明 |
190| -- | -- |
191| bool | 如果能力实例描述的是硬件编解码器,则返回true,如果功能实例描述的是软件编解码器,则为false。 |
192
193### OH_AVCapability_GetName()
194
195```
196const char *OH_AVCapability_GetName(OH_AVCapability *capability)
197```
198
199**描述**
200
201获取编解码器名称。
202
203**系统能力:** SystemCapability.Multimedia.Media.CodecBase
204
205**起始版本:** 10
206
207
208**参数:**
209
210| 参数项 | 描述 |
211| -- | -- |
212| [OH_AVCapability](capi-avcapability-oh-avcapability.md) *capability | 编解码能力指针。 |
213
214**返回:**
215
216| 类型 | 说明 |
217| -- | -- |
218| const char * | 返回编解码器名称字符串。 |
219
220### OH_AVCapability_GetMaxSupportedInstances()
221
222```
223int32_t OH_AVCapability_GetMaxSupportedInstances(OH_AVCapability *capability)
224```
225
226**描述**
227
228获取编解码器支持的最大实例数。
229
230**系统能力:** SystemCapability.Multimedia.Media.CodecBase
231
232**起始版本:** 10
233
234
235**参数:**
236
237| 参数项 | 描述 |
238| -- | -- |
239| [OH_AVCapability](capi-avcapability-oh-avcapability.md) *capability | 编解码能力指针。 |
240
241**返回:**
242
243| 类型 | 说明 |
244| -- | -- |
245| int32_t | 返回支持的最大编解码器实例数。 |
246
247### OH_AVCapability_GetEncoderBitrateRange()
248
249```
250OH_AVErrCode OH_AVCapability_GetEncoderBitrateRange(OH_AVCapability *capability, OH_AVRange *bitrateRange)
251```
252
253**描述**
254
255获取编码器支持的比特率范围。
256
257**系统能力:** SystemCapability.Multimedia.Media.CodecBase
258
259**起始版本:** 10
260
261
262**参数:**
263
264| 参数项 | 描述 |
265| -- | -- |
266| [OH_AVCapability](capi-avcapability-oh-avcapability.md) *capability | 编码器能力指针。如果给的是解码器能力指针,会导致未定义行为。 |
267| [OH_AVRange](capi-avcapability-oh-avrange.md) *bitrateRange | 输出参数。编码器码率范围。 |
268
269**返回:**
270
271| 类型 | 说明 |
272| -- | -- |
273| [OH_AVErrCode](_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:能力实例无效,或者指向编码器码率范围的指针为空指针。 |
274
275### OH_AVCapability_IsEncoderBitrateModeSupported()
276
277```
278bool OH_AVCapability_IsEncoderBitrateModeSupported(OH_AVCapability *capability, OH_BitrateMode bitrateMode)
279```
280
281**描述**
282
283检查编码器是否支持特定的比特率模式。
284
285**系统能力:** SystemCapability.Multimedia.Media.CodecBase
286
287**起始版本:** 10
288
289
290**参数:**
291
292| 参数项 | 描述 |
293| -- | -- |
294| [OH_AVCapability](capi-avcapability-oh-avcapability.md) *capability | 编码器能力指针。如果给的是解码器能力指针,会导致未定义行为。 |
295| [OH_BitrateMode](_codec_base.md#oh_bitratemode-1) bitrateMode | 比特率模式。 |
296
297**返回:**
298
299| 类型 | 说明 |
300| -- | -- |
301| bool | 如果支持该比特率模式,则返回true;如果不支持该比特率模式,则返回false。 |
302
303### OH_AVCapability_GetEncoderQualityRange()
304
305```
306OH_AVErrCode OH_AVCapability_GetEncoderQualityRange(OH_AVCapability *capability, OH_AVRange *qualityRange)
307```
308
309**描述**
310
311获取编码器支持的质量范围。
312
313**系统能力:** SystemCapability.Multimedia.Media.CodecBase
314
315**起始版本:** 10
316
317
318**参数:**
319
320| 参数项 | 描述 |
321| -- | -- |
322| [OH_AVCapability](capi-avcapability-oh-avcapability.md) *capability | 编码器能力指针。如果给的是解码器能力指针,会导致未定义行为。 |
323| [OH_AVRange](capi-avcapability-oh-avrange.md) *qualityRange | 输出参数。编码器质量范围。 |
324
325**返回:**
326
327| 类型 | 说明 |
328| -- | -- |
329| [OH_AVErrCode](_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:能力实例无效,或者指向编码器质量范围的指针为空指针。 |
330
331### OH_AVCapability_GetEncoderComplexityRange()
332
333```
334OH_AVErrCode OH_AVCapability_GetEncoderComplexityRange(OH_AVCapability *capability, OH_AVRange *complexityRange)
335```
336
337**描述**
338
339获取编码器支持的编码器复杂性范围。
340
341**系统能力:** SystemCapability.Multimedia.Media.CodecBase
342
343**起始版本:** 10
344
345
346**参数:**
347
348| 参数项 | 描述 |
349| -- | -- |
350| [OH_AVCapability](capi-avcapability-oh-avcapability.md) *capability | 编码器能力指针。如果给的是解码器能力指针,会导致未定义行为。 |
351| [OH_AVRange](capi-avcapability-oh-avrange.md) *complexityRange | 输出参数。编码器复杂度范围。 |
352
353**返回:**
354
355| 类型 | 说明 |
356| -- | -- |
357| [OH_AVErrCode](_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:能力实例无效,或者指向编码器复杂度范围的指针为空指针。 |
358
359### OH_AVCapability_GetAudioSupportedSampleRates()
360
361```
362OH_AVErrCode OH_AVCapability_GetAudioSupportedSampleRates(OH_AVCapability *capability, const int32_t **sampleRates,uint32_t *sampleRateNum)
363```
364
365**描述**
366
367获取音频编解码器支持的采样率。
368
369**系统能力:** SystemCapability.Multimedia.Media.CodecBase
370
371**起始版本:** 10
372
373
374**参数:**
375
376| 参数项 | 描述 |
377| -- | -- |
378| [OH_AVCapability](capi-avcapability-oh-avcapability.md) *capability | 音频编解码能力指针。如果给的是视频编解码器能力指针,会导致未定义行为。 |
379| const int32_t **sampleRates | 输出参数。指向采样率数组的指针。 |
380| uint32_t *sampleRateNum | 输出参数。采样率数组的元素数目。 |
381
382**返回:**
383
384| 类型 | 说明 |
385| -- | -- |
386| [OH_AVErrCode](_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:能力实例无效,或者指向采样率数组的指针为空指针,或者指向采样率数组的元素数目的指针为空指针。<br> AV_ERR_UNKNOWN:未知错误。<br> AV_ERR_NO_MEMORY:内部使用内存分配失败。 |
387
388### OH_AVCapability_GetAudioChannelCountRange()
389
390```
391OH_AVErrCode OH_AVCapability_GetAudioChannelCountRange(OH_AVCapability *capability, OH_AVRange *channelCountRange)
392```
393
394**描述**
395
396获取音频编解码器支持的音频通道计数范围。
397
398**系统能力:** SystemCapability.Multimedia.Media.CodecBase
399
400**起始版本:** 10
401
402
403**参数:**
404
405| 参数项 | 描述 |
406| -- | -- |
407| [OH_AVCapability](capi-avcapability-oh-avcapability.md) *capability | 音频编解码能力指针。如果给的是视频编解码器能力指针,会导致未定义行为。 |
408| [OH_AVRange](capi-avcapability-oh-avrange.md) *channelCountRange | 输出参数。音频通道计数范围。 |
409
410**返回:**
411
412| 类型 | 说明 |
413| -- | -- |
414| [OH_AVErrCode](_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:能力实例无效,或者指向音频通道计数范围的指针为空指针。 |
415
416### OH_AVCapability_GetVideoWidthAlignment()
417
418```
419OH_AVErrCode OH_AVCapability_GetVideoWidthAlignment(OH_AVCapability *capability, int32_t *widthAlignment)
420```
421
422**描述**
423
424获取视频编解码器支持的视频宽度对齐。
425
426**系统能力:** SystemCapability.Multimedia.Media.CodecBase
427
428**起始版本:** 10
429
430
431**参数:**
432
433| 参数项 | 描述 |
434| -- | -- |
435| [OH_AVCapability](capi-avcapability-oh-avcapability.md) *capability | 视频编解码能力指针。如果给的是音频编解码器能力指针,会导致未定义行为。 |
436| int32_t *widthAlignment | 输出参数。视频宽度对齐。 |
437
438**返回:**
439
440| 类型 | 说明 |
441| -- | -- |
442| [OH_AVErrCode](_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:能力实例无效,或者指向视频宽度对齐的指针为空指针。 |
443
444### OH_AVCapability_GetVideoHeightAlignment()
445
446```
447OH_AVErrCode OH_AVCapability_GetVideoHeightAlignment(OH_AVCapability *capability, int32_t *heightAlignment)
448```
449
450**描述**
451
452获取视频编解码器支持的视频高度对齐。
453
454**系统能力:** SystemCapability.Multimedia.Media.CodecBase
455
456**起始版本:** 10
457
458
459**参数:**
460
461| 参数项 | 描述 |
462| -- | -- |
463| [OH_AVCapability](capi-avcapability-oh-avcapability.md) *capability | 视频编解码能力指针。如果给的是音频编解码器能力指针,会导致未定义行为。 |
464| int32_t *heightAlignment | 输出参数。视频高度对齐。 |
465
466**返回:**
467
468| 类型 | 说明 |
469| -- | -- |
470| [OH_AVErrCode](_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:能力实例无效,或者指向视频高度对齐的指针为空指针。 |
471
472### OH_AVCapability_GetVideoWidthRangeForHeight()
473
474```
475OH_AVErrCode OH_AVCapability_GetVideoWidthRangeForHeight(OH_AVCapability *capability, int32_t height,OH_AVRange *widthRange)
476```
477
478**描述**
479
480获取指定高度情况下视频编解码器支持的视频宽度范围。
481
482**系统能力:** SystemCapability.Multimedia.Media.CodecBase
483
484**起始版本:** 10
485
486
487**参数:**
488
489| 参数项 | 描述 |
490| -- | -- |
491| [OH_AVCapability](capi-avcapability-oh-avcapability.md) *capability | 视频编解码能力指针。如果给的是音频编解码器能力指针,会导致未定义行为。 |
492| int32_t height | 视频垂直像素数。 |
493| [OH_AVRange](capi-avcapability-oh-avrange.md) *widthRange | 输出参数。视频宽度范围。 |
494
495**返回:**
496
497| 类型 | 说明 |
498| -- | -- |
499| [OH_AVErrCode](_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:能力实例无效,或者高度不在通过[OH_AVCapability_GetVideoHeightRange](#oh_avcapability_getvideoheightrange)获取支持的高度范围中,或者指向宽度范围的指针为空指针。 |
500
501### OH_AVCapability_GetVideoHeightRangeForWidth()
502
503```
504OH_AVErrCode OH_AVCapability_GetVideoHeightRangeForWidth(OH_AVCapability *capability, int32_t width,OH_AVRange *heightRange)
505```
506
507**描述**
508
509获取指定宽度情况下视频编解码器支持的视频高度范围。
510
511**系统能力:** SystemCapability.Multimedia.Media.CodecBase
512
513**起始版本:** 10
514
515
516**参数:**
517
518| 参数项 | 描述 |
519| -- | -- |
520| [OH_AVCapability](capi-avcapability-oh-avcapability.md) *capability | 视频编解码能力指针。如果给的是音频编解码器能力指针,会导致未定义行为。 |
521| int32_t width | 视频水平像素数。 |
522| [OH_AVRange](capi-avcapability-oh-avrange.md) *heightRange | 输出参数。视频高度范围。 |
523
524**返回:**
525
526| 类型 | 说明 |
527| -- | -- |
528| [OH_AVErrCode](_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:能力实例无效,或者宽度不在通过[OH_AVCapability_GetVideoWidthRange](#oh_avcapability_getvideowidthrange)获取支持的宽度范围中,或者指向高度范围的指针为空指针。 |
529
530### OH_AVCapability_GetVideoWidthRange()
531
532```
533OH_AVErrCode OH_AVCapability_GetVideoWidthRange(OH_AVCapability *capability, OH_AVRange *widthRange)
534```
535
536**描述**
537
538获取视频编解码器支持的视频宽度范围。
539
540**系统能力:** SystemCapability.Multimedia.Media.CodecBase
541
542**起始版本:** 10
543
544
545**参数:**
546
547| 参数项 | 描述 |
548| -- | -- |
549| [OH_AVCapability](capi-avcapability-oh-avcapability.md) *capability | 视频编解码能力指针。如果给的是音频编解码器能力指针,会导致未定义行为。 |
550| [OH_AVRange](capi-avcapability-oh-avrange.md) *widthRange | 输出参数。视频宽度范围。 |
551
552**返回:**
553
554| 类型 | 说明 |
555| -- | -- |
556| [OH_AVErrCode](_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:能力实例无效,或者指向视频宽度范围的指针为空指针。 |
557
558### OH_AVCapability_GetVideoHeightRange()
559
560```
561OH_AVErrCode OH_AVCapability_GetVideoHeightRange(OH_AVCapability *capability, OH_AVRange *heightRange)
562```
563
564**描述**
565
566获取视频编解码器支持的视频高度范围。
567
568**系统能力:** SystemCapability.Multimedia.Media.CodecBase
569
570**起始版本:** 10
571
572
573**参数:**
574
575| 参数项 | 描述 |
576| -- | -- |
577| [OH_AVCapability](capi-avcapability-oh-avcapability.md) *capability | 视频编解码能力指针。如果给的是音频编解码器能力指针,会导致未定义行为。 |
578| [OH_AVRange](capi-avcapability-oh-avrange.md) *heightRange | 输出参数。视频高度范围。 |
579
580**返回:**
581
582| 类型 | 说明 |
583| -- | -- |
584| [OH_AVErrCode](_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:能力实例无效,或者指向视频高度范围的指针为空指针。 |
585
586### OH_AVCapability_IsVideoSizeSupported()
587
588```
589bool OH_AVCapability_IsVideoSizeSupported(OH_AVCapability *capability, int32_t width, int32_t height)
590```
591
592**描述**
593
594检查视频编解码器是否支持特定的视频大小。
595
596**系统能力:** SystemCapability.Multimedia.Media.CodecBase
597
598**起始版本:** 10
599
600
601**参数:**
602
603| 参数项 | 描述 |
604| -- | -- |
605| [OH_AVCapability](capi-avcapability-oh-avcapability.md) *capability | 视频编解码能力指针。如果给的是音频编解码器能力指针,会导致未定义行为。 |
606| int32_t width | 视频水平像素数。 |
607| int32_t height | 视频垂直像素数。 |
608
609**返回:**
610
611| 类型 | 说明 |
612| -- | -- |
613| bool | 如果支持该视频大小,则返回true,如果不支持该视频大小,则返回false。 |
614
615### OH_AVCapability_GetVideoFrameRateRange()
616
617```
618OH_AVErrCode OH_AVCapability_GetVideoFrameRateRange(OH_AVCapability *capability, OH_AVRange *frameRateRange)
619```
620
621**描述**
622
623获取视频编解码器支持的视频帧率范围。
624
625**系统能力:** SystemCapability.Multimedia.Media.CodecBase
626
627**起始版本:** 10
628
629
630**参数:**
631
632| 参数项 | 描述 |
633| -- | -- |
634| [OH_AVCapability](capi-avcapability-oh-avcapability.md) *capability | 视频编解码能力指针。如果给的是音频编解码器能力指针,会导致未定义行为。 |
635| [OH_AVRange](capi-avcapability-oh-avrange.md) *frameRateRange | 输出参数。视频帧率范围。 |
636
637**返回:**
638
639| 类型 | 说明 |
640| -- | -- |
641| [OH_AVErrCode](_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:能力实例无效,或者指向视频帧率范围的指针为空指针。 |
642
643### OH_AVCapability_GetVideoFrameRateRangeForSize()
644
645```
646OH_AVErrCode OH_AVCapability_GetVideoFrameRateRangeForSize(OH_AVCapability *capability, int32_t width, int32_t height,OH_AVRange *frameRateRange)
647```
648
649**描述**
650
651获取指定视频大小的视频编解码器支持的视频帧率范围。
652
653**系统能力:** SystemCapability.Multimedia.Media.CodecBase
654
655**起始版本:** 10
656
657
658**参数:**
659
660| 参数项 | 描述 |
661| -- | -- |
662| [OH_AVCapability](capi-avcapability-oh-avcapability.md) *capability | 视频编解码能力指针。如果给的是音频编解码器能力指针,会导致未定义行为。 |
663| int32_t width | 视频水平像素数。 |
664| int32_t height | 视频垂直像素数。 |
665| [OH_AVRange](capi-avcapability-oh-avrange.md) *frameRateRange | 输出参数。视频帧率范围。 |
666
667**返回:**
668
669| 类型 | 说明 |
670| -- | -- |
671| [OH_AVErrCode](_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:能力实例无效,或者宽度和高度组合不支持,或者指向帧率范围的指针为空指针。 |
672
673### OH_AVCapability_AreVideoSizeAndFrameRateSupported()
674
675```
676bool OH_AVCapability_AreVideoSizeAndFrameRateSupported(OH_AVCapability *capability, int32_t width, int32_t height,int32_t frameRate)
677```
678
679**描述**
680
681检查视频编解码器是否支持视频大小和帧率的特定组合。
682
683**系统能力:** SystemCapability.Multimedia.Media.CodecBase
684
685**起始版本:** 10
686
687
688**参数:**
689
690| 参数项 | 描述 |
691| -- | -- |
692| [OH_AVCapability](capi-avcapability-oh-avcapability.md) *capability | 视频编解码能力指针。如果给的是音频编解码器能力指针,会导致未定义行为。 |
693| int32_t width | 视频水平像素数。 |
694| int32_t height | 视频垂直像素数。 |
695| int32_t frameRate | 每秒帧数。 |
696
697**返回:**
698
699| 类型 | 说明 |
700| -- | -- |
701| bool | 如果支持视频大小和帧率的组合,则返回true。如果不支持,则为false。 |
702
703### OH_AVCapability_GetVideoSupportedPixelFormats()
704
705```
706OH_AVErrCode OH_AVCapability_GetVideoSupportedPixelFormats(OH_AVCapability *capability, const int32_t **pixelFormats,uint32_t *pixelFormatNum)
707```
708
709**描述**
710
711获取视频编解码器支持的视频像素格式。
712
713**系统能力:** SystemCapability.Multimedia.Media.CodecBase
714
715**起始版本:** 10
716
717
718**参数:**
719
720| 参数项 | 描述 |
721| -- | -- |
722| [OH_AVCapability](capi-avcapability-oh-avcapability.md) *capability | 视频编解码能力指针。如果给的是音频编解码器能力指针,会导致未定义行为。 |
723| const int32_t **pixelFormats | 输出参数。指向视频像素格式数组的指针。 |
724| uint32_t *pixelFormatNum | 输出参数。像素格式数组的元素数目。 |
725
726**返回:**
727
728| 类型 | 说明 |
729| -- | -- |
730| [OH_AVErrCode](_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:能力实例无效,或者指向视频像素格式数组的指针为空指针,或者指向像素格式数组的元素数目的指针为空指针。<br> AV_ERR_UNKNOWN:未知错误。<br> AV_ERR_NO_MEMORY:内部使用内存分配失败。 |
731
732### OH_AVCapability_GetSupportedProfiles()
733
734```
735OH_AVErrCode OH_AVCapability_GetSupportedProfiles(OH_AVCapability *capability, const int32_t **profiles,uint32_t *profileNum)
736```
737
738**描述**
739
740获取编解码器支持的档次。
741
742**系统能力:** SystemCapability.Multimedia.Media.CodecBase
743
744**起始版本:** 10
745
746
747**参数:**
748
749| 参数项 | 描述 |
750| -- | -- |
751| [OH_AVCapability](capi-avcapability-oh-avcapability.md) *capability | 编解码能力指针。 |
752| const int32_t **profiles | 输出参数。指向档次数组的指针。 |
753| uint32_t *profileNum | 输出参数。档次数组的元素数目。 |
754
755**返回:**
756
757| 类型 | 说明 |
758| -- | -- |
759| [OH_AVErrCode](_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:能力实例无效,或者指向档次数组的指针为空指针,或者指向档次数组的元素数目的指针为空指针。<br> AV_ERR_UNKNOWN:未知错误。<br> AV_ERR_NO_MEMORY:内部使用内存分配失败。 |
760
761### OH_AVCapability_GetSupportedLevelsForProfile()
762
763```
764OH_AVErrCode OH_AVCapability_GetSupportedLevelsForProfile(OH_AVCapability *capability, int32_t profile,const int32_t **levels, uint32_t *levelNum)
765```
766
767**描述**
768
769获取特定档次支持的编解码器级别。
770
771**系统能力:** SystemCapability.Multimedia.Media.CodecBase
772
773**起始版本:** 10
774
775
776**参数:**
777
778| 参数项 | 描述 |
779| -- | -- |
780| [OH_AVCapability](capi-avcapability-oh-avcapability.md) *capability | 编解码能力指针。 |
781| int32_t profile | 编解码器档次。 |
782| const int32_t **levels | 输出参数。指向级别数组的指针。 |
783| uint32_t *levelNum | 输出参数。级别数组的元素数目。 |
784
785**返回:**
786
787| 类型 | 说明 |
788| -- | -- |
789| [OH_AVErrCode](_core.md#oh_averrcode-1) | AV_ERR_OK:执行成功。<br> AV_ERR_INVALID_VAL:能力实例无效,或者档次不在通过[OH_AVCapability_GetSupportedProfiles](#oh_avcapability_getsupportedprofiles)获取支持的档次数组中,或者指向级别数组的指针为空指针,或者指向级别数组的元素数目的指针为空指针。<br> AV_ERR_UNKNOWN:未知错误。<br> AV_ERR_NO_MEMORY:内部使用内存分配失败。 |
790
791### OH_AVCapability_AreProfileAndLevelSupported()
792
793```
794bool OH_AVCapability_AreProfileAndLevelSupported(OH_AVCapability *capability, int32_t profile, int32_t level)
795```
796
797**描述**
798
799检查编解码器是否支持档次和级别的特定组合。
800
801**系统能力:** SystemCapability.Multimedia.Media.CodecBase
802
803**起始版本:** 10
804
805
806**参数:**
807
808| 参数项 | 描述 |
809| -- | -- |
810| [OH_AVCapability](capi-avcapability-oh-avcapability.md) *capability | 编解码能力指针。 |
811| int32_t profile | 编解码器档次。 |
812| int32_t level | 编解码器级别。 |
813
814**返回:**
815
816| 类型 | 说明 |
817| -- | -- |
818| bool | 如果支持档次和级别的组合,则返回true。如果不支持,则为false。 |
819
820### OH_AVCapability_IsFeatureSupported()
821
822```
823bool OH_AVCapability_IsFeatureSupported(OH_AVCapability *capability, OH_AVCapabilityFeature feature)
824```
825
826**描述**
827
828检查编解码器是否支持指定特性。
829
830**系统能力:** SystemCapability.Multimedia.Media.CodecBase
831
832**起始版本:** 12
833
834
835**参数:**
836
837| 参数项 | 描述 |
838| -- | -- |
839| [OH_AVCapability](capi-avcapability-oh-avcapability.md) *capability | 编解码能力指针。 |
840| [OH_AVCapabilityFeature](#oh_avcapabilityfeature) feature | 编解码特性。 |
841
842**返回:**
843
844| 类型 | 说明 |
845| -- | -- |
846| bool | 如果支持该特性,则返回true。如果不支持,则为false。 |
847
848### OH_AVCapability_GetFeatureProperties()
849
850```
851OH_AVFormat *OH_AVCapability_GetFeatureProperties(OH_AVCapability *capability, OH_AVCapabilityFeature feature)
852```
853
854**描述**
855
856获取指定特性的属性。需要注意的是,返回值指向的OH_AVFormat实例的生命周期需要调用者手动释放。
857
858**系统能力:** SystemCapability.Multimedia.Media.CodecBase
859
860**起始版本:** 12
861
862
863**参数:**
864
865| 参数项 | 描述 |
866| -- | -- |
867| [OH_AVCapability](capi-avcapability-oh-avcapability.md) *capability | 编解码能力指针。 |
868| [OH_AVCapabilityFeature](#oh_avcapabilityfeature) feature | 编解码特性。 |
869
870**返回:**
871
872| 类型 | 说明 |
873| -- | -- |
874| [OH_AVFormat](_core.md#oh_avformat) * | 返回指向OH_AVFormat实例的指针。 |
875
876
877