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