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