1# native_avcodec_base.h 2 3## 概述 4 5声明用于音视频封装、解封装、编解码基础功能的Native API。 6 7**引用文件:** <multimedia/player_framework/native_avcodec_base.h> 8 9**库:** libnative_media_codecbase.so 10 11**系统能力:** SystemCapability.Multimedia.Media.CodecBase 12 13**起始版本:** 9 14 15**相关模块:** [CodecBase](capi-codecbase.md) 16 17**相关示例:** [AVCodec](https://gitcode.com/openharmony/applications_app_samples/tree/master/code/BasicFeature/Media/AVCodec) 18 19## 汇总 20 21### 结构体 22 23| 名称 | typedef关键字 | 描述 | 24| -- | -- | -- | 25| [OH_AVCodecAsyncCallback](capi-codecbase-oh-avcodecasynccallback.md) | OH_AVCodecAsyncCallback | (API11废弃)OH_AVCodec中所有异步回调函数指针的集合。将该结构体的实例注册到OH_AVCodec实例中,并处理回调上报的信息,以保证OH_AVCodec的正常运行。 | 26| [OH_AVCodecCallback](capi-codecbase-oh-avcodeccallback.md) | OH_AVCodecCallback | OH_AVCodec中所有异步回调函数指针的集合。将该结构体的实例注册到OH_AVCodec实例中,并处理回调上报的信息,以保证OH_AVCodec的正常运行。 | 27| [OH_AVDataSource](capi-codecbase-oh-avdatasource.md) | OH_AVDataSource | 用户自定义数据源。 | 28| [OH_AVDataSourceExt](capi-codecbase-oh-avdatasourceext.md) | OH_AVDataSourceExt | 用户自定义数据源,回调支持通过userData传递用户自定义数据。 | 29| [NativeWindow](../apis-arkgraphics2d/capi-nativewindow-nativewindow.md) | OHNativeWindow | 为图形接口定义native层对象。 | 30| [OH_AVCodec](capi-codecbase-oh-avcodec.md) | OH_AVCodec | 为音视频编解码接口定义native层对象。 | 31 32### 枚举 33 34| 名称 | typedef关键字 | 描述 | 35| -- | -- | -- | 36| [OH_MediaType](#oh_mediatype) | OH_MediaType | 媒体类型。 | 37| [OH_AACProfile](#oh_aacprofile) | OH_AACProfile | AAC档次。<!--Del--><br/>(AAC_PROFILE_HE、AAC_PROFILE_HE_V2暂未开放)<!--DelEnd--> | 38| [OH_AVCProfile](#oh_avcprofile) | OH_AVCProfile | AVC档次。 | 39| [OH_HEVCProfile](#oh_hevcprofile) | OH_HEVCProfile | HEVC档次。 | 40| [OH_VVCProfile](#oh_vvcprofile) | OH_VVCProfile | VVC档次。 | 41| [OH_MPEG2Profile](#oh_mpeg2profile) | OH_MPEG2Profile | MPEG2档次。 | 42| [OH_MPEG4Profile](#oh_mpeg4profile) | OH_MPEG4Profile | MPEG4档次。 | 43| [OH_H263Profile](#oh_h263profile) | OH_H263Profile | H.263档次。 | 44| [OH_AVOutputFormat](#oh_avoutputformat) | OH_AVOutputFormat | 封装器支持的输出文件格式。 | 45| [OH_AVSeekMode](#oh_avseekmode) | OH_AVSeekMode | 跳转模式。 | 46| [OH_ScalingMode](#oh_scalingmode) | OH_ScalingMode | 缩放模式,只在Surface模式下使用。 | 47| [OH_BitsPerSample](#oh_bitspersample) | OH_BitsPerSample | 每个编码样本的音频位数。 | 48| [OH_ColorPrimary](#oh_colorprimary) | OH_ColorPrimary | 色域。编解码都支持。 | 49| [OH_TransferCharacteristic](#oh_transfercharacteristic) | OH_TransferCharacteristic | 转移特性。编解码都支持。 | 50| [OH_MatrixCoefficient](#oh_matrixcoefficient) | OH_MatrixCoefficient | 矩阵系数。编解码都支持。 | 51| [OH_AVCLevel](#oh_avclevel) | OH_AVCLevel | AVC级别。 | 52| [OH_HEVCLevel](#oh_hevclevel) | OH_HEVCLevel | HEVC级别。 | 53| [OH_VVCLevel](#oh_vvclevel) | OH_VVCLevel | VVC级别。 | 54| [OH_MPEG2Level](#oh_mpeg2level) | OH_MPEG2Level | MPEG2级别。 | 55| [OH_MPEG4Level](#oh_mpeg4level) | OH_MPEG4Level | MPEG4级别。 | 56| [OH_H263Level](#oh_h263level) | OH_H263Level | H.263级别。 | 57| [OH_TemporalGopReferenceMode](#oh_temporalgopreferencemode) | OH_TemporalGopReferenceMode | 时域图片组参考模式。 | 58| [OH_BitrateMode](#oh_bitratemode) | OH_BitrateMode | 编码器的比特率模式。 | 59 60### 函数 61 62| 名称 | typedef关键字 | 描述 | 63| -- | -- | -- | 64| [typedef void (\*OH_AVCodecOnError)(OH_AVCodec *codec, int32_t errorCode, void *userData)](#oh_avcodeconerror) | OH_AVCodecOnError | 当OH_AVCodec实例运行出错时,会调用来上报具体的错误信息的函数指针。 | 65| [typedef void (\*OH_AVCodecOnStreamChanged)(OH_AVCodec *codec, OH_AVFormat *format, void *userData)](#oh_avcodeconstreamchanged) | OH_AVCodecOnStreamChanged | 当解码输入码流分辨率或者编码输出码流的分辨率发生变化时,将调用此函数指针报告新的流描述信息。需要注意的是,OH_AVFormat指针的生命周期只有在函数指针被调用时才有效,调用结束后禁止继续访问。 | 66| [typedef void (\*OH_AVCodecOnNeedInputData)(OH_AVCodec *codec, uint32_t index, OH_AVMemory *data, void *userData)](#oh_avcodeconneedinputdata) | OH_AVCodecOnNeedInputData | 当OH_AVCodec在运行过程中需要新的输入数据时,将调用此函数指针,并携带可用的缓冲区来填充新的输入数据。 | 67| [typedef void (\*OH_AVCodecOnNewOutputData)(OH_AVCodec *codec, uint32_t index, OH_AVMemory *data,OH_AVCodecBufferAttr *attr, void *userData)](#oh_avcodeconnewoutputdata) | OH_AVCodecOnNewOutputData | 当OH_AVCodec运行过程中生成新的输出数据时,将调用此函数指针,并携带包含新输出数据的缓冲区。需要注意的是,OH_AVCodecBufferAttr指针的生命周期仅在调用函数指针时有效,这将禁止调用结束后继续访问。 | 68| [typedef void (\*OH_AVCodecOnNeedInputBuffer)(OH_AVCodec *codec, uint32_t index, OH_AVBuffer *buffer, void *userData)](#oh_avcodeconneedinputbuffer) | OH_AVCodecOnNeedInputBuffer | 当OH_AVCodec在运行过程中需要新的输入数据时,将调用此函数指针,并携带可用的缓冲区来填充新的输入数据。 | 69| [typedef void (\*OH_AVCodecOnNewOutputBuffer)(OH_AVCodec *codec, uint32_t index, OH_AVBuffer *buffer, void *userData)](#oh_avcodeconnewoutputbuffer) | OH_AVCodecOnNewOutputBuffer | 当OH_AVCodec运行过程中生成新的输出数据时,将调用此函数指针,并携带包含新输出数据的缓冲区。 | 70| [typedef int32_t (\*OH_AVDataSourceReadAt)(OH_AVBuffer *data, int32_t length, int64_t pos)](#oh_avdatasourcereadat) | OH_AVDataSourceReadAt | 函数指针定义,用于提供获取用户自定义媒体数据的能力。 | 71| [typedef int32_t (\*OH_AVDataSourceReadAtExt)(OH_AVBuffer *data, int32_t length, int64_t pos, void *userData)](#oh_avdatasourcereadatext) | OH_AVDataSourceReadAtExt | 函数指针定义,用于提供获取用户自定义媒体数据的能力。 | 72 73### 变量 74 75| 名称 | 描述 | 76| -- | -- | 77| const char * OH_AVCODEC_MIMETYPE_VIDEO_AVC | AVC(H.264)视频编解码器的MIME类型。<br>**起始版本:** 9<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 78| const char * OH_AVCODEC_MIMETYPE_AUDIO_AAC | AAC音频编解码器的MIME类型。<br>**起始版本:** 9<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 79| const char * OH_AVCODEC_MIMETYPE_AUDIO_FLAC | FLAC音频编解码器的MIME类型。<br>**起始版本:** 10<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 80| const char * OH_AVCODEC_MIMETYPE_AUDIO_VORBIS | VORBIS音频解码器的MIME类型。<br>**起始版本:** 10<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 81| const char * OH_AVCODEC_MIMETYPE_AUDIO_MPEG | MP3音频编解码器的MIME类型。。<br>**起始版本:** 10<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 82| const char * OH_AVCODEC_MIMETYPE_VIDEO_HEVC | HEVC(H.265)视频编解码器的MIME类型。<br>**起始版本:** 10<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 83| const char * OH_AVCODEC_MIMETYPE_VIDEO_MPEG4 | MPEG4视频编码的MIME类型,仅用于封装MPEG4视频码流使用。<br>**起始版本:** 10<br>**废弃版本:** 11<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 84| const char * OH_AVCODEC_MIMETYPE_VIDEO_MPEG4_PART2 | 视频MPEG4 Part2编解码器的MIME类型。<br>**起始版本:** 17<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 85| const char * OH_AVCODEC_MIMETYPE_VIDEO_MPEG2 | 视频MPEG2编解码器的MIME类型。<br>**起始版本:** 17<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 86| const char * OH_AVCODEC_MIMETYPE_VIDEO_H263 | H.263视频编解码器的MIME类型。<br>**起始版本:** 17<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 87| const char * OH_AVCODEC_MIMETYPE_IMAGE_JPG | JPG图片编码的MIME类型,仅用于封装JPG封面时使用。<br>**起始版本:** 10<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 88| const char * OH_AVCODEC_MIMETYPE_IMAGE_PNG | PNG图片编码的MIME类型,仅用于封装PNG封面时使用。<br>**起始版本:** 10<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 89| const char * OH_AVCODEC_MIMETYPE_IMAGE_BMP | BMP图片编码的MIME类型,仅用于封装BMP封面时使用。<br>**起始版本:** 10<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 90| const char * OH_AVCODEC_MIMETYPE_AUDIO_VIVID | Audio Vivid音频解码器的MIME类型。<!--Del-->(当前规格暂未开放)<!--DelEnd--><br>**起始版本:** 11<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 91| const char * OH_AVCODEC_MIMETYPE_AUDIO_AMR_NB | AMR_NB音频解码器的MIME类型。<br>**起始版本:** 11<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 92| const char * OH_AVCODEC_MIMETYPE_AUDIO_AMR_WB | AMR_WB音频解码器的MIME类型。<br>**起始版本:** 11<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 93| const char * OH_AVCODEC_MIMETYPE_AUDIO_OPUS | OPUS音频编解码器的MIME类型。<!--Del-->(当前规格暂未开放)<!--DelEnd--><br>**起始版本:** 11<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 94| const char * OH_AVCODEC_MIMETYPE_AUDIO_G711MU | G711MU音频编解码器的MIME类型。<br>**起始版本:** 11<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 95| const char * OH_AVCODEC_MIMETYPE_VIDEO_VVC | VVC(H.266)视频编解码器的MIME类型。<br>**起始版本:** 12<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 96| const char * OH_AVCODEC_MIMETYPE_AUDIO_APE | APE音频解码器的MIME类型。<br>**起始版本:** 12<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 97| const char * OH_AVCODEC_MIMETYPE_SUBTITLE_SRT | SRT字幕解封装器的MIME类型。<br>**起始版本:** 12<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 98| const char * OH_AVCODEC_MIMETYPE_SUBTITLE_WEBVTT | WEBVTT字幕解封装器的MIME类型。<br>**起始版本:** 12<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 99| const char * OH_AVCODEC_MIMETYPE_AUDIO_RAW | RAW音频码流的MIME类型。<br>**起始版本:** 18<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 100| const char * OH_AVCODEC_MIMETYPE_AUDIO_G711A | G711A音频解码器的MIME类型。<br>**起始版本:** 20<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 101| const char * OH_ED_KEY_TIME_STAMP | 表示surfacebuffer时间戳的键,值类型为int64_t。<br>**起始版本:** 9<br>**废弃版本:** 14<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 102| const char * OH_ED_KEY_EOS | 表示surfacebuffer流结束符的键,值类型为int32_t。<br>**起始版本:** 9<br>**废弃版本:** 14<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 103| const char * OH_MD_KEY_TRACK_TYPE | 轨道媒体类型的键,值类型为int32_t,请参见[OH_MediaType](#oh_mediatype)。<br>**起始版本:** 9<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 104| const char * OH_MD_KEY_CODEC_MIME | 编解码器MIME类型的键,值类型为string。<br>**起始版本:** 9<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 105| const char * OH_MD_KEY_DURATION | 媒体文件持续时间的键,单位为微秒,值类型为int64_t。<br>**起始版本:** 9<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 106| const char * OH_MD_KEY_BITRATE | 比特率的键,值类型为int64_t。<br>**起始版本:** 9<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 107| const char * OH_MD_KEY_MAX_INPUT_SIZE | 设置解码输入码流大小最大值的键,值类型为int32_t。<br>**起始版本:** 9<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 108| const char * OH_MD_KEY_WIDTH | 视频宽度的键,值类型为int32_t。<br>在视频编解码流程中调用Configure接口时,使用此接口来设置视频帧的显示宽度。<br>使用指导请参见:[视频编码](../../media/avcodec/video-encoding.md)中的Surface模式的“步骤-5”或Buffer模式“步骤-4”。<br>**起始版本:** 9<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 109| const char * OH_MD_KEY_HEIGHT | 视频高度键,值类型为int32_t。<br>在视频编解码流程中调用Configure接口时,使用此接口来设置视频帧的显示高度。<br>使用指导请参见:[视频编码](../../media/avcodec/video-encoding.md)中的中的Surface模式的“步骤-5”或Buffer模式“步骤-4”。<br>**起始版本:** 9<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 110| const char * OH_MD_KEY_PIXEL_FORMAT | 视频像素格式的键,值类型为int32_t,请参见[OH_AVPixelFormat](_core.md#oh_avpixelformat-1)。<br>**起始版本:** 9<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 111| const char * OH_MD_KEY_AUDIO_SAMPLE_FORMAT | 音频原始格式的键,值类型为int32_t,请参见[OH_BitsPerSample](#oh_bitspersample)。<br>**起始版本:** 9<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 112| const char * OH_MD_KEY_FRAME_RATE | 视频帧率的键,值类型为double。该值必须大于 0。<br>**起始版本:** 9<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 113| const char * OH_MD_KEY_VIDEO_ENCODE_BITRATE_MODE | 视频编码码率模式,值类型为int32_t,请参见[OH_BitrateMode](#oh_bitratemode)。<br>**起始版本:** 9<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 114| const char * OH_MD_KEY_PROFILE | 编码档次,值类型为int32_t,请参见[OH_AVCProfile](#oh_avcprofile)、[OH_HEVCProfile](#oh_hevcprofile)、[OH_AACProfile](#oh_aacprofile)。<br>**起始版本:** 9<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 115| const char * OH_MD_KEY_AUD_CHANNEL_COUNT | 音频通道计数键,值类型为int32_t。<br>**起始版本:** 9<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 116| const char * OH_MD_KEY_AUD_SAMPLE_RATE | 音频采样率键,值类型为int32_t。<br>**起始版本:** 9<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 117| const char * OH_MD_KEY_I_FRAME_INTERVAL | 关键帧间隔的键,值类型为int32_t,单位为毫秒。该键是可选的且只用于视频编码。<br>负值表示只有第一帧是关键帧,零表示所有帧都是关键帧。<br>**起始版本:** 9<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 118| const char * OH_MD_KEY_ROTATION | surface旋转角度的键。值类型为int32_t,应为{0, 90, 180, 270},默认值为0。<br>该键只在视频解码Surface模式下使用。<br>**起始版本:** 9<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 119| const char * OH_MD_KEY_RANGE_FLAG | 视频YUV值域标志的键,值类型为int32_t,1表示full range,0表示limited range。<br>**起始版本:** 10<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 120| const char * OH_MD_KEY_COLOR_PRIMARIES | 视频色域的键,值类型为int32_t,请参见[OH_ColorPrimary](#oh_colorprimary),遵循H.273标准Table2。<br>**起始版本:** 10<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 121| const char * OH_MD_KEY_TRANSFER_CHARACTERISTICS | 视频传递函数的键,值类型为int32_t,请参见[OH_TransferCharacteristic](#oh_transfercharacteristic),遵循H.273标准Table3。<br>**起始版本:** 10<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 122| const char * OH_MD_KEY_MATRIX_COEFFICIENTS | 视频矩阵系数的键,值类型为int32_t,请参见[OH_MatrixCoefficient](#oh_matrixcoefficient),遵循H.273标准Table4。<br>**起始版本:** 10<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 123| const char * OH_MD_KEY_REQUEST_I_FRAME | 请求立即编码I帧的键。值类型为int32_t。在调用[OH_VideoEncoder_SetParameter](_video_encoder.md#oh_videoencoder_setparameter)阶段使用,或随帧立即生效。<br>**起始版本:** 10<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 124| const char * OH_MD_KEY_QUALITY | 所需编码质量的键。值类型为int32_t,在H.264、H.265编码场景值范围可以根据能力查询接口[OH_AVCapability_GetEncoderQualityRange](capi-native-avcapability-h.md#oh_avcapability_getencoderqualityrange)获取,此键仅适用于配置在恒定质量模式下的编码器。<br>**起始版本:** 10<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 125| const char * OH_MD_KEY_CODEC_CONFIG | 编解码器特定数据的键,视频中表示传递SPS/PPS,音频中表示传递extraData,值类型为uint8_t*。 <!--Del-->(视频编解码此功能暂未支持)<!--DelEnd--><br>**起始版本:** 10<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 126| const char * OH_MD_KEY_TITLE | 媒体文件标题的键,值类型为string。<br>**起始版本:** 10<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 127| const char * OH_MD_KEY_ARTIST | 媒体文件艺术家的键,值类型为string。<br>**起始版本:** 10<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 128| const char * OH_MD_KEY_ALBUM | 专辑的媒体文件的键,值类型为string。<br>**起始版本:** 10<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 129| const char * OH_MD_KEY_ALBUM_ARTIST | 专辑艺术家的键,值类型为string。<br>**起始版本:** 10。<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 130| const char * OH_MD_KEY_DATE | 媒体文件日期的键,值类型为string,例如2024年。<br>**起始版本:** 10<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 131| const char * OH_MD_KEY_COMMENT | 媒体文件注释的键,值类型为string。<br>**起始版本:** 10<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 132| const char * OH_MD_KEY_GENRE | 媒体文件流派的键,值类型为string。<br>**起始版本:** 10<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 133| const char * OH_MD_KEY_COPYRIGHT | 媒体文件版权的键,值类型为string。<br>**起始版本:** 10<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 134| const char * OH_MD_KEY_LANGUAGE | 媒体文件语言的键,值类型为string。<br>**起始版本:** 10<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 135| const char * OH_MD_KEY_DESCRIPTION | 媒体文件描述的键,值类型为string。<br>**起始版本:** 10<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 136| const char * OH_MD_KEY_LYRICS | 媒体文件歌词的键,值类型为string。<br>**起始版本:** 10<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 137| const char * OH_MD_KEY_TRACK_COUNT | 媒体文件轨道数量的键,值类型为int32_t。<br>**起始版本:** 10<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 138| const char * OH_MD_KEY_CHANNEL_LAYOUT | 所需编码通道布局的键。值类型为int64_t,此键仅适用于编码器。请参见[OH_AudioChannelLayout](_core.md#oh_audiochannellayout-1)。<br>**起始版本:** 10<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 139| const char * OH_MD_KEY_BITS_PER_CODED_SAMPLE | 每个编码样本位数的键,值类型为int32_t。<br>API 20前,FLAC编码必须设置此参数,设置为1即可;未设置此参数配置FLAC编码器时,调用OH_AudioCodec_Configure会返回错误码AV_ERR_INVALID_VAL。该值无实际作用,不会影响编码结果。<br>从API 20开始,无需设置此参数。<br>**起始版本:** 10<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 140| const char * OH_MD_KEY_AAC_IS_ADTS | aac格式的键,aac格式分为ADTS格式和LATM格式。值类型为int32_t,0表示LATM格式,1表示ADTS格式。aac解码器支持。<br>**起始版本:** 10<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 141| const char * OH_MD_KEY_SBR | aac sbr模式的键,值类型为int32_t,aac编码器支持。<br>**起始版本:** 10<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 142| const char * OH_MD_KEY_COMPLIANCE_LEVEL | flac兼容性等级的键,值类型为int32_t,仅在音频编码使用。<br>**起始版本:** 10<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 143| const char * OH_MD_KEY_IDENTIFICATION_HEADER | vorbis标识头的键,值类型为uint8_t*,仅vorbis解码器支持。<br>**起始版本:** 10<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 144| const char * OH_MD_KEY_SETUP_HEADER | vorbis设置头的键,值类型为uint8_t*,仅vorbis解码器支持。<br>**起始版本:** 10<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 145| const char * OH_MD_KEY_SCALING_MODE | 视频缩放模式,值类型为int32_t,请参见[OH_ScalingMode](#oh_scalingmode)。<br>建议直接调用[OH_NativeWindow_NativeWindowSetScalingModeV2](../apis-arkgraphics2d/capi-external-window-h.md#oh_nativewindow_nativewindowsetscalingmodev2)接口进行设置。该键是可选的且只用于视频解码Surface模式。<br>**起始版本:** 10<br>**废弃版本:** 14<br>**替代接口:** [OH_NativeWindow_NativeWindowSetScalingModeV2](../apis-arkgraphics2d/capi-external-window-h.md#oh_nativewindow_nativewindowsetscalingmodev2)<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 146| const char * OH_MD_MAX_INPUT_BUFFER_COUNT | 最大输入缓冲区个数的键,值类型为int32_t。<br>**起始版本:** 10<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 147| const char * OH_MD_MAX_OUTPUT_BUFFER_COUNT | 最大输出缓冲区个数的键,值类型int32_t。<br>**起始版本:** 10<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 148| const char * OH_MD_KEY_AUDIO_COMPRESSION_LEVEL | 音频编解码压缩水平的键,只在音频编码使用,值类型为int32_t。<br>**起始版本:** 11<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 149| const char * OH_MD_KEY_VIDEO_IS_HDR_VIVID | 媒体文件中的视频轨是否为HDR Vivid的键,支持封装和解封装,值类型为int32_t。<br>1代表是HDR Vivid视频轨,0表示其他情况。<br>**起始版本:** 11<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 150| const char * OH_MD_KEY_AUDIO_OBJECT_NUMBER | 音频对象数目的键. 值类型为int32_t,只有Audio Vivid解码使用。<br>**起始版本:** 11<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 151| const char * OH_MD_KEY_AUDIO_VIVID_METADATA | Audio Vivid元数据的键,值类型为uint8_t*,只有Audio Vivid解码使用。<br>**起始版本:** 11<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 152| const char * OH_FEATURE_PROPERTY_KEY_VIDEO_ENCODER_MAX_LTR_FRAME_COUNT | 在视频编码中获取长期参考帧的最大个数的键,值类型为int32_t。可以通过[OH_AVCapability_GetFeatureProperties](capi-native-avcapability-h.md#oh_avcapability_getfeatureproperties)接口和枚举值[OH_AVCapabilityFeature](capi-native-avcapability-h.md#oh_avcapabilityfeature)中的VIDEO_ENCODER_LONG_TERM_REFERENCE来查询这个最大值。<br>**起始版本:** 12<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 153| const char * OH_MD_KEY_VIDEO_ENCODER_ENABLE_TEMPORAL_SCALABILITY | 使能分层编码的键,值类型为int32_t,1表示使能,0表示其它情况。<br>使用前可以通过[OH_AVCapability_IsFeatureSupported](capi-native-avcapability-h.md#oh_avcapability_isfeaturesupported)接口和枚举值[OH_AVCapabilityFeature](capi-native-avcapability-h.md#oh_avcapabilityfeature)中的VIDEO_ENCODER_TEMPORAL_SCALABILITY来查询当前视频编码器是否支持分层编码。详情请参见:[时域可分层视频编码](../../media/avcodec/video-encoding-temporal-scalability.md#接口介绍)。<br>该键是可选的且只用于视频编码,在Configure阶段使用。<br>**起始版本:** 12<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 154| const char * OH_MD_KEY_VIDEO_ENCODER_TEMPORAL_GOP_SIZE | 描述图片组基本层图片的间隔大小的键,值类型为int32_t,只在使能分层编码时生效。<br>该键是可选的且只用于视频编码,在Configure阶段使用。<br>**起始版本:** 12<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 155| const char * OH_MD_KEY_VIDEO_ENCODER_TEMPORAL_GOP_REFERENCE_MODE | 描述图片组内参考模式的键,值类型为int32_t,请参见[OH_TemporalGopReferenceMode](#oh_temporalgopreferencemode),只在使能分层编码时生效。<br>该键是可选的且只用于视频编码,在Configure阶段使用。<br>**起始版本:** 12<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 156| const char * OH_MD_KEY_VIDEO_ENCODER_LTR_FRAME_COUNT | 描述长期参考帧个数的键,值类型为int32_t,必须在支持的值范围内使用。<br>使用前可以通过[OH_AVCapability_GetFeatureProperties](capi-native-avcapability-h.md#oh_avcapability_getfeatureproperties)接口和枚举值[OH_AVCapabilityFeature](capi-native-avcapability-h.md#oh_avcapabilityfeature)中的VIDEO_ENCODER_LONG_TERM_REFERENCE来查询支持的LTR数目。<br>该键是可选的且只用于视频编码,在Configure阶段使用。<br>**起始版本:** 12<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 157| const char * OH_MD_KEY_VIDEO_ENCODER_PER_FRAME_MARK_LTR | 标记当前帧为长期参考帧的键,值类型为int32_t,1表示被标记,0表示其它情况。<br>只在长期参考帧个数被配置后生效。<br>该键是可选的且只用于视频编码输入轮转中,配置后立即生效。<br>详情请参见:[时域可分层视频编码](../../media/avcodec/video-encoding-temporal-scalability.md#接口介绍)。<br>**起始版本:** 12<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 158| const char * OH_MD_KEY_VIDEO_ENCODER_PER_FRAME_USE_LTR | 描述当前帧参考的长期参考帧帧的POC号的键,值类型为int32_t。<br>该键是可选的且只用于视频编码输入轮转中,配置后立即生效。<br>详情请参见:[时域可分层视频编码](../../media/avcodec/video-encoding-temporal-scalability.md#接口介绍)。<br>**起始版本:** 12<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 159| const char * OH_MD_KEY_VIDEO_PER_FRAME_IS_LTR | 当前OH_AVBuffer中输出的码流对应的帧是否为长期参考帧的键,值类型为int32_t,1表示是LTR,0表示其它情况。<br>该键是可选的且只用于视频编码输出轮转中。<br>表示帧的属性。<br>**起始版本:** 12<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 160| const char * OH_MD_KEY_VIDEO_PER_FRAME_POC | 描述帧的POC的键,值类型为int32_t。<br>该键是可选的且只用于视频编码输出轮转中。<br>表示帧的属性。<br>**起始版本:** 12<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 161| const char * OH_MD_KEY_VIDEO_CROP_TOP | 描述裁剪矩形顶部坐标(y)值的键,值类型为int32_t。<br>包含裁剪框顶部的行,行索引从0开始。<br>该键只用于视频解码。<br>**起始版本:** 12<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 162| const char * OH_MD_KEY_VIDEO_CROP_BOTTOM | 描述裁剪矩形底部坐标(y)值的键,值类型为int32_t。<br>包含裁剪框底部的行,行索引从0开始。<br>该键只用于视频解码。<br>**起始版本:** 12<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 163| const char * OH_MD_KEY_VIDEO_CROP_LEFT | 描述裁剪矩形左坐标(x)值的键,值类型为int32_t。<br>包含裁剪框最左边的列,列索引从0开始。<br>该键只用于视频解码。<br>**起始版本:** 12<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 164| const char * OH_MD_KEY_VIDEO_CROP_RIGHT | 描述裁剪矩形右坐标(x)值的键,值类型为int32_t。<br>包含裁剪框最右边的列,列索引从0开始。<br>该键只用于视频解码。<br>**起始版本:** 12<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 165| const char * OH_MD_KEY_VIDEO_STRIDE | 描述视频帧宽跨距的键,值类型为int32_t。<br>宽跨距是像素的索引与正下方像素的索引之间的差。<br>对于YUV420格式,宽跨距对应于Y平面,U和V平面的跨距可以根据颜色格式计算,但通常未定义,并且取决于设备和版本。<br>使用指导请参见:[视频编码Buffer模式](../../media/avcodec/video-encoding.md#buffer模式)的“步骤-3”。<br>width、height、wStride、hStride图像排布与使用示例请参考:[视频编码Buffer模式](../../media/avcodec/video-encoding.md#buffer模式)的“步骤-8”或[视频解码Buffer模式](../../media/avcodec/video-decoding.md#buffer模式)“步骤-11”。<br>**起始版本:** 12<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 166| const char * OH_MD_KEY_VIDEO_SLICE_HEIGHT | 描述视频帧高跨距的键,值类型为int32_t。<br>高跨距是指从Y平面顶部到U平面顶部必须偏移的行数。本质上,U平面的偏移量是sliceHeight \* stride。<br>U/V平面的高度可以根据颜色格式计算,尽管它通常是未定义的,并且取决于设备和版本。<br>使用指导请参见:[视频编码Buffer模式](../../media/avcodec/video-encoding.md#buffer模式)的“步骤-3”。<br>width、height、wStride、hStride图像排布与使用示例请参考:[视频编码Buffer模式](../../media/avcodec/video-encoding.md#buffer模式)的“步骤-8”或[视频解码Buffer模式](../../media/avcodec/video-decoding.md#buffer模式)“步骤-11”。<br>**起始版本:** 12<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 167| const char * OH_MD_KEY_VIDEO_PIC_WIDTH | 描述视频帧真实宽度的键,值类型为int32_t。<br>视频解码时调用[OH_VideoDecoder_GetOutputDescription](_video_decoder.md#oh_videodecoder_getoutputdescription)接口,可以从其返回的OH_AVFormat中解析出宽度值。<br>当解码输出码流<!--RP2--><!--RP2End-->变化时,也可从[OH_AVCodecOnStreamChanged](#oh_avcodeconstreamchanged)返回的OH_AVForamt实例中解析出宽度值。<br>从OH_AVForamt实例中解析出来的是对齐后的宽、高与调用Configure接口设置的OH_MD_KEY_WIDTH、OH_MD_KEY_HEIGHT不一样。<br>width、height、wStride、hStride图像排布与使用示例请参考:[视频编码Buffer模式](../../media/avcodec/video-encoding.md#buffer模式)的“步骤-8”或[视频解码Buffer模式](../../media/avcodec/video-decoding.md#buffer模式)“步骤-11”。<br>**起始版本:** 12<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 168| const char * OH_MD_KEY_VIDEO_PIC_HEIGHT | 描述视频帧真实高度的键,值类型为int32_t。<br>视频解码时调用[OH_VideoDecoder_GetOutputDescription](_video_decoder.md#oh_videodecoder_getoutputdescription)接口,可以从其返回的OH_AVFormat中解析出高度值。<br>当解码输出码流<!--RP2--><!--RP2End-->变化时,也可从[OH_AVCodecOnStreamChanged](#oh_avcodeconstreamchanged)返回的OH_AVForamt实例中解析出高度值。<br>从OH_AVForamt实例中解析出来的是对齐后的宽、高与调用Configure接口设置的OH_MD_KEY_WIDTH、OH_MD_KEY_HEIGHT不一样。<br>width、height、wStride、hStride图像排布与使用示例请参考:[视频编码Buffer模式](../../media/avcodec/video-encoding.md#buffer模式)的“步骤-8”或[视频解码Buffer模式](../../media/avcodec/video-decoding.md#buffer模式)“步骤-11”。<br>**起始版本:** 12<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 169| const char * OH_MD_KEY_VIDEO_ENABLE_LOW_LATENCY | 使能低时延视频编解码的键,值类型为int32_t,1表示使能,0表示其它情况。<br>该键是可选的,在Configure阶段使用。<br>如果使能,则视频编码器或视频解码器持有的输入和输出数据不会超过编解码器标准所要求的数量。<br>若平台支持,当使能此接口时,视频解码器将按照解码序输出帧。<br>**起始版本:** 12<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 170| const char * OH_MD_KEY_VIDEO_ENCODER_QP_MAX | 描述视频编码器允许的最大量化参数的键,值类型为int32_t。<br>在Configure/SetParameter阶段使用,或随帧立即生效。<br>**起始版本:** 12<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 171| const char * OH_MD_KEY_VIDEO_ENCODER_QP_MIN | 描述视频编码器允许的最小量化参数的键,值类型为int32_t。<br>在在Configure/SetParameter阶段使用,或随帧立即生效。<br>**起始版本:** 12<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 172| const char * OH_MD_KEY_VIDEO_ENCODER_QP_AVERAGE | 描述视频帧平均量化参数的键,值类型为int32_t。<br>表示当前帧编码块的平均qp值,随[OH_AVBuffer](_core.md#oh_avbuffer)输出。<br>**起始版本:** 12<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 173| const char * OH_MD_KEY_VIDEO_ENCODER_MSE | 描述视频帧平方误差的键,值类型为double。<br>表示当前帧编码块的MSE统计值,随[OH_AVBuffer](_core.md#oh_avbuffer)输出。<br>**起始版本:** 12<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 174| const char * OH_MD_KEY_DECODING_TIMESTAMP | AVBuffer中携带的音视频或字幕的sample对应的解码时间戳的键,以微秒为单位,值类型为int64_t。<br>**起始版本:** 12<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 175| const char * OH_MD_KEY_BUFFER_DURATION | AVBuffer中携带的音视频或字幕的sample对应的持续时间的键,以微秒为单位,值类型为int64_t。<br>**起始版本:** 12<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 176| const char * OH_MD_KEY_VIDEO_SAR | 样本长宽比的键,值类型为double。<br>**起始版本:** 12<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 177| const char * OH_MD_KEY_START_TIME | 媒体文件中第一帧起始位置开始时间的键,以微秒为单位,值类型为int64_t。<br>**起始版本:** 12<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 178| const char * OH_MD_KEY_TRACK_START_TIME | 轨道开始时间的键,以微秒为单位,值类型为int64_t。<br>**起始版本:** 12<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 179| const char * OH_MD_KEY_VIDEO_DECODER_OUTPUT_COLOR_SPACE | 设置视频解码器输出色彩空间的键,值类型为int32_t。<br>支持的值为OH_COLORSPACE_BT709_LIMIT,请参见[OH_NativeBuffer_ColorSpace](../apis-arkgraphics2d/capi-buffer-common-h.md#oh_nativebuffer_colorspace)。<br>在视频解码调用[OH_VideoDecoder_Configure](_video_decoder.md#oh_videodecoder_configure)接口时使用此接口。<br>在启动OH_VideoDecoder_Start接口前,必须要先调用OH_VideoDecoder_Prepare接口。<br>如果支持色彩空间转换功能并配置了此键,则视频解码器会自动将HDR Vivid视频转码为指定的色彩空间。<br>如果不支持色彩空间转换功能,则接口[OH_VideoDecoder_Configure](_video_decoder.md#oh_videodecoder_configure)返回错误码[OH_AVErrCode](_core.md#oh_averrcode-1)中的AV_ERR_VIDEO_UNSUPPORTED_COLOR_SPACE_CONVERSION。<br>如果输入视频不是HDR Vivid视频,则会通过回调函数[OH_AVCodecOnError](#oh_avcodeconerror)报告错误码[OH_AVErrCode](_core.md#oh_averrcode-1)中的AV_ERR_VIDEO_UNSUPPORTED_COLOR_SPACE_CONVERSION。<br>**起始版本:** 12<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 180| const char * OH_MD_KEY_VIDEO_DECODER_OUTPUT_ENABLE_VRR | 解码器是否打开视频可变帧率功能的键,值类型为int32_t。<br>1代表使能视频可变帧率功能,0代表不使能。<br>**起始版本:** 15<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 181| const char * OH_MD_KEY_CREATION_TIME | 媒体文件创建时间的元数据,值类型为string。使用ISO 8601标准的时间格式且为UTC时间,时间格式参考:"2024-12-28T00:00:00:000000Z"。<br>**起始版本:** 14<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 182| const char * OH_MD_KEY_VIDEO_ENCODER_REPEAT_PREVIOUS_FRAME_AFTER | 如果在上一帧提交给编码器之后没有新的帧可用,则会以毫秒为单位重复提交最后一帧,值类型为int32_t。<br>该键只用于视频编码Surface模式,在Configure阶段使用。<br>配置的值:<br>- 小于等于0:Configure阶段会被拦截,返回ERROR AV_ERR_INVALID_VAL。<br>- 大于0:如果在上一帧提交给编码器之后没有新的帧可用,则会以毫秒为单位重复提交最后一帧。<br>**起始版本:** 18<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 183| const char * OH_MD_KEY_VIDEO_ENCODER_REPEAT_PREVIOUS_MAX_COUNT | 描述编码器在没有新的帧可用的情况下,可以对之前的帧进行重复编码的最大次数,值类型为int32_t。<br>该键仅在OH_MD_KEY_VIDEO_ENCODER_REPEAT_PREVIOUS_FRAME_AFTER可用时生效,在Configure阶段使用。<br>配置的值:<br>- 等于0:Configure阶段会被拦截,返回ERROR AV_ERR_INVALID_VAL。<br>- 小于0:在没有新的帧提交给编码器的这段时间内,编码器会一直重复编上一帧,直到达到系统上限。<br>- 大于0:在没有新的帧提交给编码器的这段时间内,最多可以重复编码的帧数。<br>**起始版本:** 18<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 184| const char * OH_MD_KEY_VIDEO_ENCODER_ROI_PARAMS | 用于视频编码中,使能ROI编码并下发ROI参数,随帧设置且实时生效。<br>参数需满足"Top1,Left1-Bottom1,Right1=Offset1;Top2,Left2-Bottom2,Right2=Offset2;"的格式,多个ROI参数之间使用";"连接。<br>Top、Left、Bottom、Right指定一个ROI区域的上、左、下、右边界,Offset指定deltaQP,“=Offset”可以省略,省略时使用默认值(-3)。<br>**起始版本:** 20<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 185| const char * OH_MD_KEY_SQR_FACTOR | 指定SQR码控模式的质量参数,取值范围为[0, 51](同编码量化参数QP),值越小,编码输出码率越大,质量越好。<br>在Configure/SetParameter阶段使用。<br>**起始版本:** 20<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 186| const char * OH_MD_KEY_MAX_BITRATE | 指定SQR码控模式的最大码率,使用[OH_AVCapability_GetEncoderBitrateRange](capi-native-avcapability-h.md#oh_avcapability_getencoderbitraterange)方法获取取值范围(同OH_MD_KEY_BITRATE),单位bps。<br>在Configure/SetParameter阶段使用。<br>**起始版本:** 20<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 187| const char * OH_MD_KEY_VIDEO_ENCODER_ENABLE_PTS_BASED_RATECONTROL | 使能基于显示时间戳(PTS)的码控模式的键,值类型为int32_t,1表示使能,0表示其它情况。<br>该键值是可选的且只用于视频编码,默认值为0。<br>如果使能,则必须在每个视频帧中携带PTS信息,并发送到编码器。Surface模式下,通过[OH_NativeWindow_NativeWindowHandleOpt](../apis-arkgraphics2d/capi-external-window-h.md#oh_nativewindow_nativewindowhandleopt)接口设置PTS,时间单位为纳秒(ns);Buffer模式下,通过[OH_AVBuffer_SetBufferAttr](_core.md#oh_avbuffer_setbufferattr)接口设置PTS,时间单位为微秒(us)。<br>在Configure阶段使用。<br>**起始版本:** 20<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 188| const char * OH_MD_KEY_REFERENCE_TRACK_IDS | 媒体文件轨道间参考、被参考关系,值类型为int32_t\*。<br>**起始版本:** 20<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 189| const char * OH_MD_KEY_TRACK_REFERENCE_TYPE | 媒体文件辅助轨类型,值类型为string。<br>**起始版本:** 20<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 190| const char * OH_MD_KEY_TRACK_DESCRIPTION | 媒体文件辅助轨描述信息,值类型为string。<br>**起始版本:** 20<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 191| const char * OH_MD_KEY_ENABLE_SYNC_MODE | 使能视频编解码同步模式的键,值类型为int32_t,1表示使能,0表示其它情况。该键是可选,默认值为0。<br>如果使能,需要注意:<br> 1. 编解码器不可设置回调函数。<br> 2. 必须使用缓冲区查询接口替代回调。<br> 3. 只能在Configure阶段使用。<br>**起始版本:** 20<br>**系统能力:** SystemCapability.Multimedia.Media.CodecBase | 192 193## 枚举类型说明 194 195### OH_MediaType 196 197``` 198enum OH_MediaType 199``` 200 201**描述** 202 203媒体类型。 204 205**系统能力:** SystemCapability.Multimedia.Media.CodecBase 206 207**起始版本:** 9 208 209| 枚举项 | 描述 | 210| -- | -- | 211| MEDIA_TYPE_AUD = 0 | 音频轨。 | 212| MEDIA_TYPE_VID = 1 | 视频轨。 | 213| MEDIA_TYPE_SUBTITLE = 2 | 字幕轨。<br>**起始版本:** 12 | 214| MEDIA_TYPE_TIMED_METADATA = 5 | timed metadata轨。<br>**起始版本:** 20 | 215| MEDIA_TYPE_AUXILIARY = 6 | 辅助轨。<br>**起始版本:** 20 | 216 217### OH_AACProfile 218 219``` 220enum OH_AACProfile 221``` 222 223**描述** 224 225AAC档次。<!--Del--><br/>(AAC_PROFILE_HE、AAC_PROFILE_HE_V2暂未开放)<!--DelEnd--> 226 227**系统能力:** SystemCapability.Multimedia.Media.CodecBase 228 229**起始版本:** 9 230 231| 枚举项 | 描述 | 232| -- | -- | 233| AAC_PROFILE_LC = 0 | AAC编码档次为Low Complexity级别。 | 234| AAC_PROFILE_HE | AAC编码档次为High Efficiency级别。<!--Del-->(此规格暂未开放)<!--DelEnd--> <br>**起始版本:** 14 | 235| AAC_PROFILE_HE_V2 | AAC编码档次为High Efficiency v2级别。<!--Del-->(此规格暂未开放)<!--DelEnd--> <br>**起始版本:** 14 | 236 237### OH_AVCProfile 238 239``` 240enum OH_AVCProfile 241``` 242 243**描述** 244 245AVC档次。 246 247**系统能力:** SystemCapability.Multimedia.Media.CodecBase 248 249**起始版本:** 9 250 251| 枚举项 | 描述 | 252| -- | -- | 253| AVC_PROFILE_BASELINE = 0 | AVC编码档次为基本档次。 | 254| AVC_PROFILE_HIGH = 4 | AVC编码档次为高档次。 | 255| AVC_PROFILE_MAIN = 8 | AVC编码档次为主档次。 | 256 257### OH_HEVCProfile 258 259``` 260enum OH_HEVCProfile 261``` 262 263**描述** 264 265HEVC档次。 266 267**系统能力:** SystemCapability.Multimedia.Media.CodecBase 268 269**起始版本:** 10 270 271| 枚举项 | 描述 | 272| -- | -- | 273| HEVC_PROFILE_MAIN = 0 | HEVC编码档次为主档次。 | 274| HEVC_PROFILE_MAIN_10 = 1 | HEVC编码档次为10bit主档次。 | 275| HEVC_PROFILE_MAIN_STILL = 2 | HEVC编码档次为静止图像主档次。 | 276| HEVC_PROFILE_MAIN_10_HDR10 = 3 | HEVC编码档次为HDR10主档次。<br>**废弃版本:** 14 | 277| HEVC_PROFILE_MAIN_10_HDR10_PLUS = 4 | HEVC编码档次为HDR10+主档次。<br>**废弃版本:** 14 | 278 279### OH_VVCProfile 280 281``` 282enum OH_VVCProfile 283``` 284 285**描述** 286 287VVC档次。 288 289**系统能力:** SystemCapability.Multimedia.Media.CodecBase 290 291**起始版本:** 15 292 293| 枚举项 | 描述 | 294| -- | -- | 295| VVC_PROFILE_MAIN_10 = 1 | VVC编码档次为10bit主档次。 | 296| VVC_PROFILE_MAIN_12 = 2 | VVC编码档次为12bit主档次。 | 297| VVC_PROFILE_MAIN_12_INTRA = 10 | VVC编码档次为12bit帧内主档次。 | 298| VVC_PROFILE_MULTI_MAIN_10 = 17 | VVC编码档次为多层编码10bit主档次。 | 299| VVC_PROFILE_MAIN_10_444 = 33 | VVC编码档次为10bit全采样主档次。 | 300| VVC_PROFILE_MAIN_12_444 = 34 | VVC编码档次为12bit全采样主档次。 | 301| VVC_PROFILE_MAIN_16_444 = 36 | VVC编码档次为16bit全采样主档次。 | 302| VVC_PROFILE_MAIN_12_444_INTRA = 42 | VVC编码档次为12bit全采样帧内主档次。 | 303| VVC_PROFILE_MAIN_16_444_INTRA = 44 | VVC编码档次为16bit全采样帧内主档次。 | 304| VVC_PROFILE_MULTI_MAIN_10_444 = 49 | VVC编码档次为多层编码10bit全采样主档次。 | 305| VVC_PROFILE_MAIN_10_STILL = 65 | VVC编码档次为10bit静止图像主档次。 | 306| VVC_PROFILE_MAIN_12_STILL = 66 | VVC编码档次为12bit静止图像主档次。 | 307| VVC_PROFILE_MAIN_10_444_STILL = 97 | VVC编码档次为10bit全采样静止图像主档次。 | 308| VVC_PROFILE_MAIN_12_444_STILL = 98 | VVC编码档次为12bit全采样静止图像主档次。 | 309| VVC_PROFILE_MAIN_16_444_STILL = 100 | VVC编码档次为16bit全采样静止图像主档次。 | 310 311### OH_MPEG2Profile 312 313``` 314enum OH_MPEG2Profile 315``` 316 317**描述** 318 319MPEG2档次。 320 321**系统能力:** SystemCapability.Multimedia.Media.CodecBase 322 323**起始版本:** 17 324 325| 枚举项 | 描述 | 326| -- | -- | 327| MPEG2_PROFILE_SIMPLE = 0 | 简单档次。 | 328| MPEG2_PROFILE_MAIN = 1 | 主档次。 | 329| MPEG2_PROFILE_SNR_SCALABLE = 2 | 信噪比可分级档次。 | 330| MPEG2_PROFILE_SPATIALLY_SCALABLE = 3 | 空间可分级档次。 | 331| MPEG2_PROFILE_HIGH = 4 | 高级档次。 | 332| MPEG2_PROFILE_422 = 5 | 4:2:2档次。 | 333 334### OH_MPEG4Profile 335 336``` 337enum OH_MPEG4Profile 338``` 339 340**描述** 341 342MPEG4档次。 343 344**系统能力:** SystemCapability.Multimedia.Media.CodecBase 345 346**起始版本:** 17 347 348| 枚举项 | 描述 | 349| -- | -- | 350| MPEG4_PROFILE_SIMPLE = 0 | 简单档次。 | 351| MPEG4_PROFILE_SIMPLE_SCALABLE = 1 | 简单可分级档次。 | 352| MPEG4_PROFILE_CORE = 2 | 核心档次。 | 353| MPEG4_PROFILE_MAIN = 3 | 主档次。 | 354| MPEG4_PROFILE_N_BIT = 4 | N位档次。 | 355| MPEG4_PROFILE_HYBRID = 5 | 混合档次。 | 356| MPEG4_PROFILE_BASIC_ANIMATED_TEXTURE = 6 | 基本动画纹理档次。 | 357| MPEG4_PROFILE_SCALABLE_TEXTURE = 7 | 可分级纹理档次。 | 358| MPEG4_PROFILE_SIMPLE_FA = 8 | 简单FA档次。 | 359| MPEG4_PROFILE_ADVANCED_REAL_TIME_SIMPLE = 9 | 高级实时简单档次。 | 360| MPEG4_PROFILE_CORE_SCALABLE = 10 | 核心可分级档次。 | 361| MPEG4_PROFILE_ADVANCED_CODING_EFFICIENCY = 11 | 高级编码效率档次。 | 362| MPEG4_PROFILE_ADVANCED_CORE = 12 | 高级核心档次。 | 363| MPEG4_PROFILE_ADVANCED_SCALABLE_TEXTURE = 13 | 高级可分级纹理档次。 | 364| MPEG4_PROFILE_ADVANCED_SIMPLE = 17 | 高级简单档次。 | 365 366### OH_H263Profile 367 368``` 369enum OH_H263Profile 370``` 371 372**描述** 373 374H.263档次。 375 376**系统能力:** SystemCapability.Multimedia.Media.CodecBase 377 378**起始版本:** 17 379 380| 枚举项 | 描述 | 381| -- | -- | 382| H263_PROFILE_BASELINE = 0 | 基线档次。 | 383| H263_PROFILE_VERSION_1_BACKWARD_COMPATIBILITY = 2 | 版本1向后兼容档次。 | 384 385### OH_AVOutputFormat 386 387``` 388enum OH_AVOutputFormat 389``` 390 391**描述** 392 393封装器支持的输出文件格式。 394 395**系统能力:** SystemCapability.Multimedia.Media.CodecBase 396 397**起始版本:** 10 398 399| 枚举项 | 描述 | 400| -- | -- | 401| AV_OUTPUT_FORMAT_DEFAULT = 0 | 输出文件格式默认值,默认为MP4格式。 | 402| AV_OUTPUT_FORMAT_MPEG_4 = 2 | 输出文件格式为MP4格式。 | 403| AV_OUTPUT_FORMAT_M4A = 6 | 输出文件格式为M4A格式。 | 404| AV_OUTPUT_FORMAT_AMR = 8 | 输出文件格式为AMR格式。<br>**起始版本:** 12 | 405| AV_OUTPUT_FORMAT_MP3 = 9 | 输出文件格式为MP3格式。<br>**起始版本:** 12 | 406| AV_OUTPUT_FORMAT_WAV = 10 | 输出文件格式为WAV格式。<br>**起始版本:** 12 | 407| AV_OUTPUT_FORMAT_AAC = 11 | 输出文件格式为AAC格式。<br>**起始版本:** 18 | 408| AV_OUTPUT_FORMAT_FLAC = 12 | 输出文件格式为FLAC格式。<br>**起始版本:** 20 | 409 410### OH_AVSeekMode 411 412``` 413enum OH_AVSeekMode 414``` 415 416**描述** 417 418跳转模式。 419 420**系统能力:** SystemCapability.Multimedia.Media.CodecBase 421 422**起始版本:** 10 423 424| 枚举项 | 描述 | 425| -- | -- | 426| SEEK_MODE_NEXT_SYNC = 0 | 指定时间位置的下一I帧。若时间点后没有I帧,该模式可能跳转失败。 | 427| SEEK_MODE_PREVIOUS_SYNC | 指定时间位置的上一I帧。 | 428| SEEK_MODE_CLOSEST_SYNC | 指定时间位置的最近I帧。 | 429 430### OH_ScalingMode 431 432``` 433enum OH_ScalingMode 434``` 435 436**描述** 437 438缩放模式,只在Surface模式下使用。 439 440**系统能力:** SystemCapability.Multimedia.Media.CodecBase 441 442**起始版本:** 10 443 444**废弃版本:** 14 445 446**替代接口:** [OHScalingModeV2](../apis-arkgraphics2d/capi-external-window-h.md#ohscalingmodev2) 447 448| 枚举项 | 描述 | 449| -- | -- | 450| SCALING_MODE_SCALE_TO_WINDOW = 1 | 根据窗口尺寸自适应调整图像大小。<br>**废弃版本:** 14 <br>**替代接口:** [OHScalingModeV2](../apis-arkgraphics2d/capi-external-window-h.md#ohscalingmodev2).OH_SCALING_MODE_SCALE_TO_WINDOW_V2 | 451| SCALING_MODE_SCALE_CROP = 2 | 根据窗口尺寸裁剪图像大小。<br>**废弃版本:** 14 <br>**替代接口:** [OHScalingModeV2](../apis-arkgraphics2d/capi-external-window-h.md#ohscalingmodev2).OH_SCALING_MODE_SCALE_CROP_V2 | 452 453### OH_BitsPerSample 454 455``` 456enum OH_BitsPerSample 457``` 458 459**描述** 460 461每个编码样本的音频位数。 462 463**系统能力:** SystemCapability.Multimedia.Media.CodecBase 464 465**起始版本:** 10 466 467| 枚举项 | 描述 | 468| -- | -- | 469| SAMPLE_U8 = 0 | 8位无符号整数采样。 | 470| SAMPLE_S16LE = 1 | 16位有符号整数交样。 | 471| SAMPLE_S24LE = 2 | 24位有符号整数采样。 | 472| SAMPLE_S32LE = 3 | 32位有符号整数采样。 | 473| SAMPLE_F32LE = 4 | 32位浮点采样。 | 474| SAMPLE_U8P = 5 | 8位无符号整数平面采样。 | 475| SAMPLE_S16P = 6 | 16位有符号整数平面采样。 | 476| SAMPLE_S24P = 7 | 24位有符号整数平面采样。 | 477| SAMPLE_S32P = 8 | 32位有符号整数平面采样。 | 478| SAMPLE_F32P = 9 | 32位浮点平面采样。 | 479| INVALID_WIDTH = -1 | 无效采样格式。 | 480 481### OH_ColorPrimary 482 483``` 484enum OH_ColorPrimary 485``` 486 487**描述** 488 489色域。编解码都支持。 490 491**系统能力:** SystemCapability.Multimedia.Media.CodecBase 492 493**起始版本:** 10 494 495| 枚举项 | 描述 | 496| -- | -- | 497| COLOR_PRIMARY_BT709 = 1 | BT709色域。 | 498| COLOR_PRIMARY_UNSPECIFIED = 2 | 未指定色域。 | 499| COLOR_PRIMARY_BT470_M = 4 | BT470_M色域。 | 500| COLOR_PRIMARY_BT601_625 = 5 | BT601_625色域。 | 501| COLOR_PRIMARY_BT601_525 = 6 | BT601_525色域。 | 502| COLOR_PRIMARY_SMPTE_ST240 = 7 | SMPTE_ST240色域。 | 503| COLOR_PRIMARY_GENERIC_FILM = 8 | GENERIC_FILM色域。 | 504| COLOR_PRIMARY_BT2020 = 9 | BT2020色域。 | 505| COLOR_PRIMARY_SMPTE_ST428 = 10 | SMPTE_ST428色域。 | 506| COLOR_PRIMARY_P3DCI = 11 | P3DCI色域。 | 507| COLOR_PRIMARY_P3D65 = 12 | P3D65色域。 | 508 509### OH_TransferCharacteristic 510 511``` 512enum OH_TransferCharacteristic 513``` 514 515**描述** 516 517转移特性。编解码都支持。 518 519**系统能力:** SystemCapability.Multimedia.Media.CodecBase 520 521**起始版本:** 10 522 523| 枚举项 | 描述 | 524| -- | -- | 525| TRANSFER_CHARACTERISTIC_BT709 = 1 | BT709传递函数。 | 526| TRANSFER_CHARACTERISTIC_UNSPECIFIED = 2 | 未指定传递函数。 | 527| TRANSFER_CHARACTERISTIC_GAMMA_2_2 = 4 | GAMMA_2_2传递函数。 | 528| TRANSFER_CHARACTERISTIC_GAMMA_2_8 = 5 | GAMMA_2_8传递函数。 | 529| TRANSFER_CHARACTERISTIC_BT601 = 6 | BT601传递函数。 | 530| TRANSFER_CHARACTERISTIC_SMPTE_ST240 = 7 | SMPTE_ST240传递函数。 | 531| TRANSFER_CHARACTERISTIC_LINEAR = 8 | LINEAR传递函数。 | 532| TRANSFER_CHARACTERISTIC_LOG = 9 | LOG传递函数。 | 533| TRANSFER_CHARACTERISTIC_LOG_SQRT = 10 | LOG_SQRT传递函数。 | 534| TRANSFER_CHARACTERISTIC_IEC_61966_2_4 = 11 | IEC_61966_2_4传递函数。 | 535| TRANSFER_CHARACTERISTIC_BT1361 = 12 | BT1361传递函数。 | 536| TRANSFER_CHARACTERISTIC_IEC_61966_2_1 = 13 | IEC_61966_2_1传递函数。 | 537| TRANSFER_CHARACTERISTIC_BT2020_10BIT = 14 | BT2020_10BIT传递函数。 | 538| TRANSFER_CHARACTERISTIC_BT2020_12BIT = 15 | BT2020_12BIT传递函数。 | 539| TRANSFER_CHARACTERISTIC_PQ = 16 | PQ传递函数。 | 540| TRANSFER_CHARACTERISTIC_SMPTE_ST428 = 17 | SMPTE_ST428传递函数。 | 541| TRANSFER_CHARACTERISTIC_HLG = 18 | HLG传递函数。 | 542 543### OH_MatrixCoefficient 544 545``` 546enum OH_MatrixCoefficient 547``` 548 549**描述** 550 551矩阵系数。编解码都支持。 552 553**系统能力:** SystemCapability.Multimedia.Media.CodecBase 554 555**起始版本:** 10 556 557| 枚举项 | 描述 | 558| -- | -- | 559| MATRIX_COEFFICIENT_IDENTITY = 0 | 单位矩阵。 | 560| MATRIX_COEFFICIENT_BT709 = 1 | BT709转换矩阵。 | 561| MATRIX_COEFFICIENT_UNSPECIFIED = 2 | 未指定转换矩阵。 | 562| MATRIX_COEFFICIENT_FCC = 4 | FCC转换矩阵。 | 563| MATRIX_COEFFICIENT_BT601_625 = 5 | BT601_625转换矩阵。 | 564| MATRIX_COEFFICIENT_BT601_525 = 6 | BT601_525转换矩阵。 | 565| MATRIX_COEFFICIENT_SMPTE_ST240 = 7 | SMPTE_ST240转换矩阵。 | 566| MATRIX_COEFFICIENT_YCGCO = 8 | YCGCO转换矩阵。 | 567| MATRIX_COEFFICIENT_BT2020_NCL = 9 | BT2020_NCL转换矩阵。 | 568| MATRIX_COEFFICIENT_BT2020_CL = 10 | BT2020_CL转换矩阵。 | 569| MATRIX_COEFFICIENT_SMPTE_ST2085 = 11 | SMPTE_ST2085转换矩阵。 | 570| MATRIX_COEFFICIENT_CHROMATICITY_NCL = 12 | CHROMATICITY_NCL转换矩阵。 | 571| MATRIX_COEFFICIENT_CHROMATICITY_CL = 13 | CHROMATICITY_CL转换矩阵。 | 572| MATRIX_COEFFICIENT_ICTCP = 14 | ICTCP转换矩阵。 | 573 574### OH_AVCLevel 575 576``` 577enum OH_AVCLevel 578``` 579 580**描述** 581 582AVC级别。 583 584**系统能力:** SystemCapability.Multimedia.Media.CodecBase 585 586**起始版本:** 12 587 588| 枚举项 | 描述 | 589| -- | -- | 590| AVC_LEVEL_1 = 0 | 级别1 | 591| AVC_LEVEL_1b = 1 | 级别1b | 592| AVC_LEVEL_11 = 2 | 级别1.1 | 593| AVC_LEVEL_12 = 3 | 级别1.2 | 594| AVC_LEVEL_13 = 4 | 级别1.3 | 595| AVC_LEVEL_2 = 5 | 级别2 | 596| AVC_LEVEL_21 = 6 | 级别2.1 | 597| AVC_LEVEL_22 = 7 | 级别2.2 | 598| AVC_LEVEL_3 = 8 | 级别3 | 599| AVC_LEVEL_31 = 9 | 级别3.1 | 600| AVC_LEVEL_32 = 10 | 级别3.2 | 601| AVC_LEVEL_4 = 11 | 级别4 | 602| AVC_LEVEL_41 = 12 | 级别4.1 | 603| AVC_LEVEL_42 = 13 | 级别4.2 | 604| AVC_LEVEL_5 = 14 | 级别5 | 605| AVC_LEVEL_51 = 15 | 级别5.1 | 606| AVC_LEVEL_52 = 16 | 级别5.2 | 607| AVC_LEVEL_6 = 17 | 级别6 | 608| AVC_LEVEL_61 = 18 | 级别6.1 | 609| AVC_LEVEL_62 = 19 | 级别6.2 | 610 611### OH_HEVCLevel 612 613``` 614enum OH_HEVCLevel 615``` 616 617**描述** 618 619HEVC级别。 620 621**系统能力:** SystemCapability.Multimedia.Media.CodecBase 622 623**起始版本:** 12 624 625| 枚举项 | 描述 | 626| -- | -- | 627| HEVC_LEVEL_1 = 0 | 级别1 | 628| HEVC_LEVEL_2 = 1 | 级别2 | 629| HEVC_LEVEL_21 = 2 | 级别2.1 | 630| HEVC_LEVEL_3 = 3 | 级别3 | 631| HEVC_LEVEL_31 = 4 | 级别3.1 | 632| HEVC_LEVEL_4 = 5 | 级别4 | 633| HEVC_LEVEL_41 = 6 | 级别4.1 | 634| HEVC_LEVEL_5 = 7 | 级别5 | 635| HEVC_LEVEL_51 = 8 | 级别5.1 | 636| HEVC_LEVEL_52 = 9 | 级别5.2 | 637| HEVC_LEVEL_6 = 10 | 级别6 | 638| HEVC_LEVEL_61 = 11 | 级别6.1 | 639| HEVC_LEVEL_62 = 12 | 级别6.2 | 640 641### OH_VVCLevel 642 643``` 644enum OH_VVCLevel 645``` 646 647**描述** 648 649VVC级别。 650 651**系统能力:** SystemCapability.Multimedia.Media.CodecBase 652 653**起始版本:** 15 654 655| 枚举项 | 描述 | 656| -- | -- | 657| VVC_LEVEL_1 = 16 | 级别1.0 | 658| VVC_LEVEL_2 = 32 | 级别2.0 | 659| VVC_LEVEL_21 = 35 | 级别2.1 | 660| VVC_LEVEL_3 = 48 | 级别3.0 | 661| VVC_LEVEL_31 = 51 | 级别3.1 | 662| VVC_LEVEL_4 = 64 | 级别4.0 | 663| VVC_LEVEL_41 = 67 | 级别4.1 | 664| VVC_LEVEL_5 = 80 | 级别5.0 | 665| VVC_LEVEL_51 = 83 | 级别5.1 | 666| VVC_LEVEL_52 = 86 | 级别5.2 | 667| VVC_LEVEL_6 = 96 | 级别6.0 | 668| VVC_LEVEL_61 = 99 | 级别6.1 | 669| VVC_LEVEL_62 = 102 | 级别6.2 | 670| VVC_LEVEL_63 = 105 | 级别6.3 | 671| VVC_LEVEL_155 = 255 | 级别15.5 | 672 673### OH_MPEG2Level 674 675``` 676enum OH_MPEG2Level 677``` 678 679**描述** 680 681MPEG2级别。 682 683**系统能力:** SystemCapability.Multimedia.Media.CodecBase 684 685**起始版本:** 17 686 687| 枚举项 | 描述 | 688| -- | -- | 689| MPEG2_LEVEL_LOW = 0 | 低级别。 | 690| MPEG2_LEVEL_MAIN = 1 | 主级别。 | 691| MPEG2_LEVEL_HIGH_1440 = 2 | 高1440级别。 | 692| MPEG2_LEVEL_HIGH = 3 | 高级别。 | 693 694### OH_MPEG4Level 695 696``` 697enum OH_MPEG4Level 698``` 699 700**描述** 701 702MPEG4级别。 703 704**系统能力:** SystemCapability.Multimedia.Media.CodecBase 705 706**起始版本:** 17 707 708| 枚举项 | 描述 | 709| -- | -- | 710| MPEG4_LEVEL_0 = 0 | 级别0 | 711| MPEG4_LEVEL_0B = 1 | 级别0B。 | 712| MPEG4_LEVEL_1 = 2 | 级别1。 | 713| MPEG4_LEVEL_2 = 3 | 级别2。 | 714| MPEG4_LEVEL_3 = 4 | 级别3。 | 715| MPEG4_LEVEL_3B = 5 | 级别3B。 | 716| MPEG4_LEVEL_4 = 6 | 级别4。 | 717| MPEG4_LEVEL_4A = 7 | 级别4A。 | 718| MPEG4_LEVEL_5 = 8 | 级别5。 | 719| MPEG4_LEVEL_6 = 9 | 级别6。 | 720 721### OH_H263Level 722 723``` 724enum OH_H263Level 725``` 726 727**描述** 728 729H.263级别。 730 731**系统能力:** SystemCapability.Multimedia.Media.CodecBase 732 733**起始版本:** 17 734 735| 枚举项 | 描述 | 736| -- | -- | 737| H263_LEVEL_10 = 0 | 级别10。 | 738| H263_LEVEL_20 = 1 | 级别20。 | 739| H263_LEVEL_30 = 2 | 级别30。 | 740| H263_LEVEL_40 = 3 | 级别40。 | 741| H263_LEVEL_45 = 4 | 级别45。 | 742| H263_LEVEL_50 = 5 | 级别50。 | 743| H263_LEVEL_60 = 6 | 级别60。 | 744| H263_LEVEL_70 = 7 | 级别70。 | 745 746### OH_TemporalGopReferenceMode 747 748``` 749enum OH_TemporalGopReferenceMode 750``` 751 752**描述** 753 754时域图片组参考模式。 755 756**系统能力:** SystemCapability.Multimedia.Media.CodecBase 757 758**起始版本:** 12 759 760| 枚举项 | 描述 | 761| -- | -- | 762| ADJACENT_REFERENCE = 0 | 参考最近的短期参考帧。 | 763| JUMP_REFERENCE = 1 | 参考最近的长期参考帧。 | 764| UNIFORMLY_SCALED_REFERENCE = 2 | 均匀分层参考结构,在丢弃最高层级视频帧后,视频帧均匀分布。其中时域图片组个数必须为2的幂。 | 765 766### OH_BitrateMode 767 768``` 769enum OH_BitrateMode 770``` 771 772**描述** 773 774编码器的比特率模式。 775 776**系统能力:** SystemCapability.Multimedia.Media.CodecBase 777 778**起始版本:** 10 779 780| 枚举项 | 描述 | 781| -- | -- | 782| BITRATE_MODE_CBR = 0 | 恒定比特率模式。 | 783| BITRATE_MODE_VBR = 1 | 可变比特率模式。 | 784| BITRATE_MODE_CQ = 2 | 恒定质量模式。 | 785| BITRATE_MODE_SQR = 3 | 质量稳定模式,仅支持H265(HEVC)。<br>**起始版本:** 20 | 786 787 788## 函数说明 789 790### OH_AVCodecOnError() 791 792``` 793typedef void (*OH_AVCodecOnError)(OH_AVCodec *codec, int32_t errorCode, void *userData) 794``` 795 796**描述** 797 798当OH_AVCodec实例运行出错时,会调用来上报具体的错误信息的函数指针。 799 800| 使用场景| 错误码 | 801| -------- | -------- | 802| 音频编解码 | AV_ERR_DRM_DECRYPT_FAILED:DRM解密失败。 | 803| 视频编解码 | AV_ERROR_NO_MEMORY:系统资源不足。<br>AV_ERROR_UNKNOWN:未知错误,请通过具体日志分析。<br>AV_ERR_SERVICE_DIED:服务状态已消亡。 | 804| 视频解码 | AV_ERR_VIDEO_UNSUPPORTED_COLOR_SPACE_CONVERSION:当前输入不支持色彩空间转换功能。 | 805<!--RP1--><!--RP1End--> 806 807**系统能力:** SystemCapability.Multimedia.Media.CodecBase 808 809**起始版本:** 9 810 811 812**参数:** 813 814| 参数项 | 描述 | 815| -- | -- | 816| [OH_AVCodec](capi-codecbase-oh-avcodec.md) *codec | OH_AVCodec实例。 | 817| int32_t errorCode | 特定错误代码。 | 818| void *userData | 开发者执行回调所依赖的数据。 | 819 820### OH_AVCodecOnStreamChanged() 821 822``` 823typedef void (*OH_AVCodecOnStreamChanged)(OH_AVCodec *codec, OH_AVFormat *format, void *userData) 824``` 825 826**描述** 827 828当视频解码输入码流分辨率或者视频编码输出码流的分辨率发生变化时,调用此函数指针报告新的流描述信息。<br>从API 15开始,支持音频解码时,码流采样率、声道数或者音频采样格式发生变化时,将调用此函数指针报告新的流描述信息,支持检测此变化的解码格式有:<!--RP3--><!--RP3End-->AAC,FLAC,MP3,VORBIS。<br>需要注意的是,OH_AVFormat指针的生命周期只有在函数指针被调用时才有效,调用结束后禁止继续访问。 829 830**系统能力:** SystemCapability.Multimedia.Media.CodecBase 831 832**起始版本:** 9 833 834 835**参数:** 836 837| 参数项 | 描述 | 838| -- | -- | 839| [OH_AVCodec](capi-codecbase-oh-avcodec.md) *codec | OH_AVCodec实例。 | 840| [OH_AVFormat](_core.md#oh_avformat) *format | 新输出流描述信息。 | 841| void *userData | 开发者执行回调所依赖的数据。 | 842 843### OH_AVCodecOnNeedInputData() 844 845``` 846typedef void (*OH_AVCodecOnNeedInputData)(OH_AVCodec *codec, uint32_t index, OH_AVMemory *data, void *userData) 847``` 848 849**描述** 850 851当OH_AVCodec在运行过程中需要新的输入数据时,将调用此函数指针,并携带可用的缓冲区来填充新的输入数据。 852 853**系统能力:** SystemCapability.Multimedia.Media.CodecBase 854 855**起始版本:** 9 856 857**废弃版本:** 11 858 859**替代接口:** [OH_AVCodecOnNeedInputBuffer](#oh_avcodeconneedinputbuffer) 860 861 862**参数:** 863 864| 参数项 | 描述 | 865| -- | -- | 866| [OH_AVCodec](capi-codecbase-oh-avcodec.md) *codec | OH_AVCodec实例。 | 867| uint32_t index | 与新可用的输入缓冲区相对应的索引。 | 868| [OH_AVMemory](_core.md#oh_avmemory) *data | 新的可用输入缓冲区。 | 869| void *userData | 开发者执行回调所依赖的数据。 | 870 871### OH_AVCodecOnNewOutputData() 872 873``` 874typedef void (*OH_AVCodecOnNewOutputData)(OH_AVCodec *codec, uint32_t index, OH_AVMemory *data,OH_AVCodecBufferAttr *attr, void *userData) 875``` 876 877**描述** 878 879当OH_AVCodec运行过程中生成新的输出数据时,将调用此函数指针,并携带包含新输出数据的缓冲区。需要注意的是,OH_AVCodecBufferAttr指针的生命周期仅在调用函数指针时有效,这将禁止调用结束后继续访问。 880 881**系统能力:** SystemCapability.Multimedia.Media.CodecBase 882 883**起始版本:** 9 884 885**废弃版本:** 11 886 887**替代接口:** [OH_AVCodecOnNewOutputBuffer](#oh_avcodeconnewoutputbuffer) 888 889 890**参数:** 891 892| 参数项 | 描述 | 893| -- | -- | 894| [OH_AVCodec](capi-codecbase-oh-avcodec.md) *codec | OH_AVCodec实例。 | 895| uint32_t index | 与新输出缓冲区对应的索引。 | 896| [OH_AVMemory](_core.md#oh_avmemory) *data | 包含新输出数据的缓冲区。 | 897| [OH_AVCodecBufferAttr](_o_h___a_v_codec_buffer_attr.md) *attr | 新输出缓冲区的说明。 | 898| void *userData | 开发者执行回调所依赖的数据。 | 899 900### OH_AVCodecOnNeedInputBuffer() 901 902``` 903typedef void (*OH_AVCodecOnNeedInputBuffer)(OH_AVCodec *codec, uint32_t index, OH_AVBuffer *buffer, void *userData) 904``` 905 906**描述** 907 908当OH_AVCodec在运行过程中需要新的输入数据时,将调用此函数指针,并携带可用的缓冲区来填充新的输入数据。 909 910**系统能力:** SystemCapability.Multimedia.Media.CodecBase 911 912**起始版本:** 11 913 914 915**参数:** 916 917| 参数项 | 描述 | 918| -- | -- | 919| [OH_AVCodec](capi-codecbase-oh-avcodec.md) *codec | OH_AVCodec实例。 | 920| uint32_t index | 与新可用的输入缓冲区相对应的索引。 | 921| [OH_AVBuffer](_core.md#oh_avbuffer) *buffer | 新的可用输入缓冲区。 | 922| void *userData | 开发者执行回调所依赖的数据。 | 923 924### OH_AVCodecOnNewOutputBuffer() 925 926``` 927typedef void (*OH_AVCodecOnNewOutputBuffer)(OH_AVCodec *codec, uint32_t index, OH_AVBuffer *buffer, void *userData) 928``` 929 930**描述** 931 932当OH_AVCodec运行过程中生成新的输出数据时,将调用此函数指针,并携带包含新输出数据的缓冲区。 933 934**系统能力:** SystemCapability.Multimedia.Media.CodecBase 935 936**起始版本:** 11 937 938 939**参数:** 940 941| 参数项 | 描述 | 942| -- | -- | 943| [OH_AVCodec](capi-codecbase-oh-avcodec.md) *codec | OH_AVCodec实例。 | 944| uint32_t index | 与新输出缓冲区对应的索引。 | 945| [OH_AVBuffer](_core.md#oh_avbuffer) *buffer | 包含新输出数据的缓冲区。 | 946| void *userData | 开发者执行回调所依赖的数据。 | 947 948### OH_AVDataSourceReadAt() 949 950``` 951typedef int32_t (*OH_AVDataSourceReadAt)(OH_AVBuffer *data, int32_t length, int64_t pos) 952``` 953 954**描述** 955 956函数指针定义,用于提供获取用户自定义媒体数据的能力。 957 958**系统能力:** SystemCapability.Multimedia.Media.CodecBase 959 960**起始版本:** 12 961 962 963**参数:** 964 965| 参数项 | 描述 | 966| -- | -- | 967| [OH_AVBuffer](_core.md#oh_avbuffer) *data | 要填充的缓冲区。 | 968| int32_t length | 要读取的数据长度。 | 969| int64_t pos | 从偏移量位置读取。 | 970 971**返回:** 972 973| 类型 | 说明 | 974| -- | -- | 975| int32_t | 读取到缓冲区的数据的实际长度。 | 976 977### OH_AVDataSourceReadAtExt() 978 979``` 980typedef int32_t (*OH_AVDataSourceReadAtExt)(OH_AVBuffer *data, int32_t length, int64_t pos, void *userData) 981``` 982 983**描述** 984 985函数指针定义,用于提供获取用户自定义媒体数据的能力。 986 987**系统能力:** SystemCapability.Multimedia.Media.CodecBase 988 989**起始版本:** 20 990 991 992**参数:** 993 994| 参数项 | 描述 | 995| -- | -- | 996| [OH_AVBuffer](_core.md#oh_avbuffer) *data | 要填充的缓冲区。 | 997| int32_t length | 要读取的数据长度。 | 998| int64_t pos | 从偏移量位置读取。 | 999| void *userData | 用户自定义数据。 | 1000 1001**返回:** 1002 1003| 类型 | 说明 | 1004| -- | -- | 1005| int32_t | 读取到缓冲区的数据的实际长度。 | 1006 1007 1008