• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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