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