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