1# CodecBase
2
3
4## 概述
5
6CodecBase模块提供用于音视频封装、解封装、编解码基础功能的变量、属性以及函数。
7
8**系统能力:** SystemCapability.Multimedia.Media.CodecBase
9
10**起始版本:** 9
11
12### 媒体编解码格式
13
14用于描述媒体编解码格式的名字如下表。类型是常量字符串。
15
16| 名称                                                         | 描述                                                   |
17| ------------------------------------------------------------ | ------------------------------------------------------ |
18| [OH_AVCODEC_MIMETYPE_AUDIO_AAC](#oh_avcodec_mimetype_audio_aac) | AAC音频编解码器的MIME类型。                            |
19| [OH_AVCODEC_MIMETYPE_AUDIO_FLAC](#oh_avcodec_mimetype_audio_flac) | FLAC音频编解码器的MIME类型。                           |
20| [OH_AVCODEC_MIMETYPE_AUDIO_OPUS](#oh_avcodec_mimetype_audio_opus) | OPUS音频编解码器的MIME类型。<!--Del-->(此规格暂未开放)<!--DelEnd-->        |
21| [OH_AVCODEC_MIMETYPE_AUDIO_G711MU](#oh_avcodec_mimetype_audio_g711mu) | G711MU音频编解码器的MIME类型。                         |
22| [OH_AVCODEC_MIMETYPE_AUDIO_VORBIS](#oh_avcodec_mimetype_audio_vorbis) | VORBIS音频解码器的MIME类型。                           |
23| [OH_AVCODEC_MIMETYPE_AUDIO_MPEG](#oh_avcodec_mimetype_audio_mpeg) | MP3音频解码器的MIME类型。                              |
24| [OH_AVCODEC_MIMETYPE_AUDIO_VIVID](#oh_avcodec_mimetype_audio_vivid) | Audio Vivid音频解码器的MIME类型。<!--Del-->(此规格暂未开放)<!--DelEnd-->     |
25| [OH_AVCODEC_MIMETYPE_AUDIO_AMR_NB](#oh_avcodec_mimetype_audio_amr_nb) | AMR_NB音频解码器的MIME类型。                           |
26| [OH_AVCODEC_MIMETYPE_AUDIO_AMR_WB](#oh_avcodec_mimetype_audio_amr_wb) | AMR_WB音频解码器的MIME类型。                           |
27| [OH_AVCODEC_MIMETYPE_AUDIO_APE](#oh_avcodec_mimetype_audio_ape) |APE音频解码器的MIME类型。                         |
28| [OH_AVCODEC_MIMETYPE_VIDEO_HEVC](#oh_avcodec_mimetype_video_hevc) | HEVC(H.265)视频编解码器的MIME类型。                    |
29| [OH_AVCODEC_MIMETYPE_VIDEO_AVC](#oh_avcodec_mimetype_video_avc) | AVC(H.264)视频编解码器的MIME类型。                     |
30| [OH_AVCODEC_MIMETYPE_VIDEO_MPEG4](#oh_avcodec_mimetype_video_mpeg4) | MPEG4视频编码的MIME类型,仅用于封装MPEG4视频码流使用。 |
31| [OH_AVCODEC_MIMETYPE_IMAGE_JPG](#oh_avcodec_mimetype_image_jpg) | JPG图片编码的MIME类型,仅用于封装JPG封面时使用。       |
32| [OH_AVCODEC_MIMETYPE_IMAGE_PNG](#oh_avcodec_mimetype_image_png) | PNG图片编码的MIME类型,仅用于封装PNG封面时使用。       |
33| [OH_AVCODEC_MIMETYPE_IMAGE_BMP](#oh_avcodec_mimetype_image_bmp) | BMP图片编码的MIME类型,仅用于封装BMP封面时使用。       |
34| [OH_AVCODEC_MIMETYPE_SUBTITLE_WEBVTT](#oh_avcodec_mimetype_subtitle_webvtt) |WEBVTT字幕解封装器的MIME类型。                         |
35| [OH_AVCODEC_MIMETYPE_SUBTITLE_SRT](#oh_avcodec_mimetype_subtitle_srt) |SRT字幕解封装器的MIME类型。                         |
36
37
38### 媒体数据键值对
39
40用于描述媒体数据的键值对查找表如下。键的类型是常量字符串,值的类型可以是int32_t/int64_t/float/double/char */uint8_t *。
41
42使用以下key的主要接口是OH_AVFormat,通过以下key可以进行参数配置或查询。
43
44能力查询专有的键值对:
45
46| 名称                                                         | 描述                                                         |
47| ------------------------------------------------------------ | ------------------------------------------------------------ |
48| [OH_FEATURE_PROPERTY_KEY_VIDEO_ENCODER_MAX_LTR_FRAME_COUNT](#oh_feature_property_key_video_encoder_max_ltr_frame_count)     | 在视频编码中获取长期参考帧的最大个数的键,值类型为int32_t。 |
49
50音视频公共的键值对:
51
52| 名称                                                         | 描述                                                         |
53| ------------------------------------------------------------ | ------------------------------------------------------------ |
54| [OH_MD_KEY_CODEC_CONFIG](#oh_md_key_codec_config)            | 编解码器特定数据的键,视频中表示传递SPS/PPS,音频中表示传递extraData,值类型为uint8_t\*。该键是可选的。 <!--Del-->(视频编解码此功能暂未支持)<!--DelEnd--> |
55| [OH_MD_MAX_INPUT_BUFFER_COUNT](#oh_md_max_input_buffer_count) | 最大输入缓冲区个数的键,值类型为int32_t。该键是可选的。      |
56| [OH_MD_MAX_OUTPUT_BUFFER_COUNT](#oh_md_max_output_buffer_count) | 最大输出缓冲区个数的键,值类型int32_t。该键是可选的。        |
57| [OH_MD_KEY_BITRATE](#oh_md_key_bitrate)                      | 比特率的键,值类型为int64_t。该键用于音视频编码场景。在视频编码场景下该键是可选的。 |
58| [OH_MD_KEY_PROFILE](#oh_md_key_profile)                      | 编码档次,值类型为int32_t,请参见[OH_AVCProfile](#oh_avcprofile),[OH_HEVCProfile](#oh_hevcprofile),[OH_AACProfile](#oh_aacprofile)。该键是可选的。 |
59| [OH_MD_KEY_MAX_INPUT_SIZE](#oh_md_key_max_input_size)        | 设置解码输入码流大小最大值的键,值类型为int32_t。该键是可选的。           |
60
61
62视频专有的键值对:
63
64| 名称                                                         | 描述                                                         |
65| ------------------------------------------------------------ | ------------------------------------------------------------ |
66| [OH_ED_KEY_TIME_STAMP](#oh_ed_key_time_stamp)                | 表示surfacebuffer时间戳的键,值类型为int64_t。该键是可选的。<!--Del-->(此功能暂未支持)<!--DelEnd--> |
67| [OH_ED_KEY_EOS](#oh_ed_key_eos)                              | 表示surfacebuffer流结束符的键,值类型为int32_t。该键是可选的。<!--Del-->(此功能暂未支持)<!--DelEnd-->|
68| [OH_MD_KEY_WIDTH](#oh_md_key_width)                          | 视频宽度的键,值类型为int32_t。                             |
69| [OH_MD_KEY_HEIGHT](#oh_md_key_height)                        | 视频高度键,值类型为int32_t。                               |
70| [OH_MD_KEY_PIXEL_FORMAT](#oh_md_key_pixel_format)            | 视频像素格式的键,值类型为int32_t,请参见[OH_AVPixelFormat](_core.md#oh_avpixelformat)。 |
71| [OH_MD_KEY_FRAME_RATE](#oh_md_key_frame_rate)                | 视频帧率的键,值类型为double。该键是可选的。                 |
72| [OH_MD_KEY_RANGE_FLAG](#oh_md_key_range_flag)                | 视频YUV值域标志的键,值类型为int32_t,1表示full range,0表示limited range。该键是可选的。 |
73| [OH_MD_KEY_COLOR_PRIMARIES](#oh_md_key_color_primaries)      | 视频色域的键,值类型为int32_t,请参见[OH_ColorPrimary](#oh_colorprimary),遵循H.273标准Table2。该键是可选的。 |
74| [OH_MD_KEY_TRANSFER_CHARACTERISTICS](#oh_md_key_transfer_characteristics) | 视频传递函数的键,值类型为int32_t,请参见[OH_TransferCharacteristic](#oh_transfercharacteristic),遵循H.273标准Table3。该键是可选的。 |
75| [OH_MD_KEY_MATRIX_COEFFICIENTS](#oh_md_key_matrix_coefficients) | 视频矩阵系数的键,值类型为int32_t,请参见[OH_MatrixCoefficient](#oh_matrixcoefficient),遵循H.273标准Table4。该键是可选的。 |
76| [OH_MD_KEY_VIDEO_STRIDE](#oh_md_key_video_stride)       | 描述视频帧宽跨距的键,值类型为int32_t。该键是可选的。        |
77| [OH_MD_KEY_VIDEO_SLICE_HEIGHT](#oh_md_key_video_slice_height)    | 描述视频帧高跨距的键,值类型为int32_t。该键是可选的。        |
78| [OH_MD_KEY_VIDEO_PIC_WIDTH](#oh_md_key_video_pic_width)       | 描述视频帧真实宽度的键,值类型为int32_t。该键是可选的。        |
79| [OH_MD_KEY_VIDEO_PIC_HEIGHT](#oh_md_key_video_pic_height)    | 描述视频帧真实高度的键,值类型为int32_t。该键是可选的。        |
80| [OH_MD_KEY_VIDEO_ENABLE_LOW_LATENCY](#oh_md_key_video_enable_low_latency)   | 使能低时延视频编解码的键,值类型为int32_t,1表示使能,0表示其它情况。该键是可选,在configure阶段使用。 |
81| [OH_MD_KEY_VIDEO_ENCODE_BITRATE_MODE](#oh_md_key_video_encode_bitrate_mode) | 视频编码码率模式,值类型为int32_t,请参见[OH_VideoEncodeBitrateMode](_video_encoder.md#oh_videoencodebitratemode)。该键是可选的。 |
82| [OH_MD_KEY_QUALITY](#oh_md_key_quality)                      | 所需编码质量的键。值类型为int32_t,此键仅适用于配置在恒定质量模式下的编码器。该键是可选的。 |
83| [OH_MD_KEY_REQUEST_I_FRAME](#oh_md_key_request_i_frame)      | 请求立即编码I帧的键。值类型为int32_t。该键是可选的。            |
84| [OH_MD_KEY_I_FRAME_INTERVAL](#oh_md_key_i_frame_interval)    | 关键帧间隔的键,值类型为int32_t,单位为毫秒。该键是可选的且只用于视频编码。 |
85| [OH_MD_KEY_VIDEO_ENCODER_ENABLE_TEMPORAL_SCALABILITY](#oh_md_key_video_encoder_enable_temporal_scalability)          | 使能分层编码的键,值类型为int32_t,1表示使能,0表示其它情况。该键是可选的且只用于视频编码,在configure阶段使用。 |
86| [OH_MD_KEY_VIDEO_ENCODER_TEMPORAL_GOP_SIZE](#oh_md_key_video_encoder_temporal_gop_size)       | 描述图片组基本层图片的间隔大小的键,值类型为int32_t,只在使能分层编码时生效。该键是可选的且只用于视频编码,在configure阶段使用。 |
87| [OH_MD_KEY_VIDEO_ENCODER_TEMPORAL_GOP_REFERENCE_MODE](#oh_md_key_video_encoder_temporal_gop_reference_mode)         | 描述图片组内参考模式的键,值类型为int32_t,请参见[OH_TemporalGopReferenceMode](#oh_temporalgopreferencemode-1),只在使能分层编码时生效。该键是可选的且只用于视频编码,在configure阶段使用。 |
88| [OH_MD_KEY_VIDEO_ENCODER_LTR_FRAME_COUNT](#oh_md_key_video_encoder_ltr_frame_count)        | 描述长期参考帧个数的键,值类型为int32_t,必须在支持的值范围内使用。该键是可选的且只用于视频编码。|
89| [OH_MD_KEY_VIDEO_ENCODER_PER_FRAME_MARK_LTR](#oh_md_key_video_encoder_per_frame_mark_ltr)  | 标记当前帧为长期参考帧的键,值类型为int32_t,1表示被标记,0表示其它情况。该键是可选的且只用于视频编码。 |
90| [OH_MD_KEY_VIDEO_ENCODER_PER_FRAME_USE_LTR](#oh_md_key_video_encoder_per_frame_use_ltr)    | 	描述当前帧参考的长期参考帧帧号的键,值类型为int32_t。该键是可选的且只用于视频编码。 |
91| [OH_MD_KEY_VIDEO_PER_FRAME_IS_LTR](#oh_md_key_video_per_frame_is_ltr)      | 当前OH_AVBuffer中输出的码流对应的帧是否为长期参考帧的键,值类型为int32_t,1表示是LTR,0表示其它情况。该键是可选的且只用于视频编码。 |
92| [OH_MD_KEY_VIDEO_PER_FRAME_POC](#oh_md_key_video_per_frame_poc)            | 描述帧的POC的键,值类型为int32_t。该键是可选的且只用于视频编码。 |
93| [OH_MD_KEY_VIDEO_ENCODER_QP_MAX](#oh_md_key_video_encoder_qp_max)       | 描述视频编码器允许的最大量化参数的键,值类型为int32_t。该键是可选的。 |
94| [OH_MD_KEY_VIDEO_ENCODER_QP_MIN](#oh_md_key_video_encoder_qp_min)      | 描述视频编码器允许的最小量化参数的键,值类型为int32_t。该键是可选的。 |
95| [OH_MD_KEY_VIDEO_ENCODER_QP_AVERAGE](#oh_md_key_video_encoder_qp_average)     |描述视频帧平均量化参数的键,值类型为int32_t。该键是可选的。  |
96| [OH_MD_KEY_VIDEO_ENCODER_MSE](#oh_md_key_video_encoder_mse)     |描述视频帧平方误差的键,值类型为double。该键是可选的。  |
97| [OH_MD_KEY_VIDEO_DECODER_OUTPUT_COLOR_SPACE](#oh_md_key_video_decoder_output_color_space)    | 设置视频解码器输出色彩空间的键,值类型为int32_t。 支持的值为OH_COLORSPACE_BT709_LIMIT。|
98| [OH_MD_KEY_ROTATION](#oh_md_key_rotation)                    | surface旋转角度的键。值类型为int32_t:应为{0, 90, 180, 270},默认值为0。该键只在视频解码Surface模式下使用。该键是可选的。 |
99| [OH_MD_KEY_SCALING_MODE](#oh_md_key_scaling_mode)            | 视频缩放模式,值类型为int32_t,请参见[OH_ScalingMode](#oh_scalingmode)。该键是可选的且只用于视频解码Surface模式。建议直接调用[OH_NativeWindow_NativeWindowSetScalingModeV2](../apis-arkgraphics2d/_native_window.md)接口进行设置。|
100| [OH_MD_KEY_VIDEO_CROP_TOP](#oh_md_key_video_crop_top)       | 描述裁剪矩形顶部坐标(y)值的键,值类型为int32_t。该键是可选的且只用于视频解码。 |
101| [OH_MD_KEY_VIDEO_CROP_BOTTOM](#oh_md_key_video_crop_bottom)        | 描述裁剪矩形底部坐标(y)值的键,值类型为int32_t。该键是可选的且只用于视频解码。 |
102| [OH_MD_KEY_VIDEO_CROP_LEFT](#oh_md_key_video_crop_left)     | 描述裁剪矩形左坐标(x)值的键,值类型为int32_t。该键是可选的且只用于视频解码。 |
103| [OH_MD_KEY_VIDEO_CROP_RIGHT](#oh_md_key_video_crop_right)     | 描述裁剪矩形右坐标(x)值的键,值类型为int32_t。该键是可选的且只用于视频解码。 |
104
105
106音频专有的键值对:
107
108| 名称                                                         | 描述                                                         |
109| ------------------------------------------------------------ | ------------------------------------------------------------ |
110| [OH_MD_KEY_AUDIO_SAMPLE_FORMAT](#oh_md_key_audio_sample_format) | 音频原始格式的键,值类型为int32_t。 请参见[AudioSampleFormat](../apis-audio-kit/js-apis-audio.md#audiosampleformat8)                        |
111| [OH_MD_KEY_AUD_CHANNEL_COUNT](#oh_md_key_aud_channel_count)  | 音频通道计数键,值类型为int32_t。                           |
112| [OH_MD_KEY_AUD_SAMPLE_RATE](#oh_md_key_aud_sample_rate)      | 音频采样率键,值类型为int32_t。                             |
113| [OH_MD_KEY_AUDIO_COMPRESSION_LEVEL](#oh_md_key_audio_compression_level) | 音频编解码压缩水平的键,只在音频编码使用,值类型为int32_t。该键是可选的。     |
114| [OH_MD_KEY_CHANNEL_LAYOUT](#oh_md_key_channel_layout)        | 所需编码通道布局的键。值类型为int64_t,此键仅适用于编码器。  |
115| [OH_MD_KEY_BITS_PER_CODED_SAMPLE](#oh_md_key_bits_per_coded_sample) | 每个编码样本位数的键,值类型为int32_t,支持flac编码器,请参见[OH_BitsPerSample](#oh_bitspersample)。该键是可选的。 |
116| [OH_MD_KEY_SBR](#oh_md_key_sbr)                              | aac sbr模式的键,值类型为int32_t,aac编码器支持。该键是可选的。 |
117| [OH_MD_KEY_COMPLIANCE_LEVEL](#oh_md_key_compliance_level)    | flac兼容性等级的键,值类型为int32_t,仅在音频编码使用。该键是可选的。          |
118| [OH_MD_KEY_AAC_IS_ADTS](#oh_md_key_aac_is_adts)              | aac格式的键,aac格式分为ADTS格式和LATM格式。值类型为int32_t,aac解码器支持。该键是可选的。  |
119| [OH_MD_KEY_IDENTIFICATION_HEADER](#oh_md_key_identification_header) | vorbis标识头的键,值类型为uint8_t\*,仅vorbis解码器支持。该键是可选的。 |
120| [OH_MD_KEY_SETUP_HEADER](#oh_md_key_setup_header)            | vorbis设置头的键,值类型为uint8_t\*,仅vorbis解码器支持。该键是可选的。 |
121| [OH_MD_KEY_AUDIO_OBJECT_NUMBER](#oh_md_key_audio_object_number) | 音频对象数目的键,值类型为int32_t,只有Audio Vivid解码使用。该键是可选的。            |
122| [OH_MD_KEY_AUDIO_VIVID_METADATA](#oh_md_key_audio_vivid_metadata) | Audio Vivid元数据的键,值类型为uint8_t\*,只有Audio Vivid解码使用。该键是可选的。     |
123
124封装/解封装专有的键值对:
125
126| 名称                                                         | 描述                                                         |
127| ------------------------------------------------------------ | ------------------------------------------------------------ |
128| [OH_MD_KEY_VIDEO_IS_HDR_VIVID](#oh_md_key_video_is_hdr_vivid) | 媒体文件中的视频轨是否为HDR Vivid的键,支持封装和解封装,值类型为int32_t。该键是可选的。  |
129| [OH_MD_KEY_START_TIME](#oh_md_key_start_time) | 媒体文件中第一帧起始位置开始时间的键,值类型为int64_t。该键是可选的。            |
130| [OH_MD_KEY_TRACK_START_TIME](#oh_md_key_track_start_time) | 轨道开始时间的键,值类型为int64_t。该键是可选的。            |
131| [OH_MD_KEY_TRACK_TYPE](#oh_md_key_track_type)                | 轨道媒体类型的键,值类型为int32_t,请参见[OH_MediaType](#oh_mediatype-1)。该键是可选的。 |
132| [OH_MD_KEY_DURATION](#oh_md_key_duration)                    | 媒体文件持续时间的键,值类型为int64_t。该键是可选的。                  |
133| [OH_MD_KEY_TITLE](#oh_md_key_title)                          | 媒体文件标题的键,值类型为string。该键是可选的。               |
134| [OH_MD_KEY_ARTIST](#oh_md_key_artist)                        | 艺术家的键,值类型为string。该键是可选的。             |
135| [OH_MD_KEY_ALBUM](#oh_md_key_album)                          | 专辑的媒体文件的键,值类型为string。该键是可选的。               |
136| [OH_MD_KEY_ALBUM_ARTIST](#oh_md_key_album_artist)            | 专辑艺术家的键,值类型为string。该键是可选的。               |
137| [OH_MD_KEY_DATE](#oh_md_key_date)                            | 媒体文件日期的键,值类型为string,例如2024年。该键是可选的。    |
138| [OH_MD_KEY_COMMENT](#oh_md_key_comment)                      | 媒体文件注释的键,值类型为string。该键是可选的。               |
139| [OH_MD_KEY_GENRE](#oh_md_key_genre)                          | 媒体文件流派的键,值类型为string。该键是可选的。               |
140| [OH_MD_KEY_COPYRIGHT](#oh_md_key_copyright)                  | 媒体文件版权的键,值类型为string。该键是可选的。               |
141| [OH_MD_KEY_LANGUAGE](#oh_md_key_language)                    | 媒体文件语言的键,值类型为string。该键是可选的。               |
142| [OH_MD_KEY_DESCRIPTION](#oh_md_key_description)              | 媒体文件描述的键,值类型为string。该键是可选的。               |
143| [OH_MD_KEY_LYRICS](#oh_md_key_lyrics)                        | 媒体文件歌词的键,值类型为string。该键是可选的。               |
144| [OH_MD_KEY_TRACK_COUNT](#oh_md_key_track_count)              | 媒体文件轨道数量的键,值类型为int32_t。该键是可选的。         |
145| [OH_MD_KEY_BUFFER_DURATION](#oh_md_key_buffer_duration) | AVBuffer中携带的音视频或字幕的sample对应的持续时间的键,以微秒为单位,值类型为int64_t。该键是可选的。            |
146| [OH_MD_KEY_DECODING_TIMESTAMP](#oh_md_key_decoding_timestamp) | AVBuffer中携带的音视频或字幕的sample对应的解码时间戳的键,以微秒为单位,值类型为int64_t。该键是可选的。            |
147| [OH_MD_KEY_CODEC_MIME](#oh_md_key_codec_mime)                | 编解码器MIME类型的键,值类型为string。该键是可选的。         |
148| [OH_MD_KEY_VIDEO_SAR](#oh_md_key_video_sar)                  | 样本长宽比的键,值类型为double。 |
149
150
151## 汇总
152
153
154### 文件
155
156| 名称 | 描述 | 
157| -------- | -------- |
158| [avcodec_audio_channel_layout.h](avcodec__audio__channel__layout_8h.md) | 声明用于音频编解码的枚举。 | 
159| [native_avcodec_base.h](native__avcodec__base_8h.md) | 声明用于音视频封装、解封装、编解码基础功能的Native API。 | 
160
161
162### 结构体
163
164| 名称 | 描述 | 
165| -------- | -------- |
166| struct  [OH_AVCodecAsyncCallback](_o_h___a_v_codec_async_callback.md) | OH_AVCodec中所有异步回调函数指针的集合。(API11废弃)| 
167| struct  [OH_AVCodecCallback](_o_h___a_v_codec_callback.md) | OH_AVCodec中所有异步回调函数指针的集合。 | 
168| struct  [OH_AVDataSource](_o_h___a_v_data_source.md) | 用户自定义数据源。  | 
169
170
171### 类型定义
172
173| 名称 | 描述 | 
174| -------- | -------- |
175| typedef struct NativeWindow [OHNativeWindow](#ohnativewindow) | 为图形接口定义native层对象。  | 
176| typedef struct [OH_AVCodec](#oh_avcodec) [OH_AVCodec](#oh_avcodec) | 为音视频编解码接口定义native层对象。  | 
177| typedef void(\* [OH_AVCodecOnError](#oh_avcodeconerror)) ([OH_AVCodec](#oh_avcodec) \*codec, int32_t errorCode, void \*userData) | 当OH_AVCodec实例运行出错时,会调用来上报具体的错误信息的函数指针。 | 
178| typedef void(\* [OH_AVCodecOnStreamChanged](#oh_avcodeconstreamchanged)) ([OH_AVCodec](#oh_avcodec) \*codec, [OH_AVFormat](_core.md#oh_avformat) \*format, void \*userData) | 当解码输入码流分辨率或者编码输出码流的分辨率发生变化时,将调用此函数指针报告新的流描述信息。 | 
179| typedef void(\* [OH_AVCodecOnNeedInputData](#oh_avcodeconneedinputdata)) ([OH_AVCodec](#oh_avcodec) \*codec, uint32_t index, [OH_AVMemory](_core.md#oh_avmemory) \*data, void \*userData) | 当OH_AVCodec在运行过程中需要新的输入数据时,将调用此函数指针,并携带可用的缓冲区来填充新的输入数据。(API11废弃)| 
180| typedef void(\* [OH_AVCodecOnNewOutputData](#oh_avcodeconnewoutputdata)) ([OH_AVCodec](#oh_avcodec) \*codec, uint32_t index, [OH_AVMemory](_core.md#oh_avmemory) \*data, [OH_AVCodecBufferAttr](_o_h___a_v_codec_buffer_attr.md) \*attr, void \*userData) | 当OH_AVCodec运行过程中生成新的输出数据时,将调用此函数指针,并携带包含新输出数据的缓冲区。(API11废弃)| 
181| typedef void(\* [OH_AVCodecOnNeedInputBuffer](#oh_avcodeconneedinputbuffer)) ([OH_AVCodec](#oh_avcodec) \*codec, uint32_t index, [OH_AVBuffer](_core.md#oh_avbuffer) \*buffer, void \*userData) | 当OH_AVCodec在运行过程中需要新的输入数据时,将调用此函数指针,并携带可用的缓冲区来填充新的输入数据。 | 
182| typedef void(\* [OH_AVCodecOnNewOutputBuffer](#oh_avcodeconnewoutputbuffer)) ([OH_AVCodec](#oh_avcodec) \*codec, uint32_t index, [OH_AVBuffer](_core.md#oh_avbuffer) \*buffer, void \*userData) | 当OH_AVCodec运行过程中生成新的输出数据时,将调用此函数指针,并携带包含新输出数据的缓冲区。 | 
183| typedef struct [OH_AVCodecAsyncCallback](_o_h___a_v_codec_async_callback.md) [OH_AVCodecAsyncCallback](#oh_avcodecasynccallback) | OH_AVCodec中所有异步回调函数指针的集合。(API11废弃)| 
184| typedef struct [OH_AVCodecCallback](_o_h___a_v_codec_callback.md) [OH_AVCodecCallback](#oh_avcodeccallback) | OH_AVCodec中所有异步回调函数指针的集合。 | 
185| typedef int32_t(\* [OH_AVDataSourceReadAt](#oh_avdatasourcereadat)) (OH_AVBuffer \*data, int32_t length, int64_t pos) | 函数指针定义,用于提供获取用户自定义媒体数据的能力。  | 
186| typedef struct [OH_AVDataSource](_o_h___a_v_data_source.md) [OH_AVDataSource](#oh_avdatasource) | 用户自定义数据源。  | 
187| typedef enum [OH_MediaType](#oh_mediatype-1) [OH_MediaType](#oh_mediatype) | 媒体类型。 | 
188| typedef enum [OH_AACProfile](#oh_aacprofile-1) [OH_AACProfile](#oh_aacprofile) | AAC档次。 | 
189| typedef enum [OH_AVCProfile](#oh_avcprofile-1) [OH_AVCProfile](#oh_avcprofile) | AVC档次。 | 
190| typedef enum [OH_HEVCProfile](#oh_hevcprofile-1) [OH_HEVCProfile](#oh_hevcprofile) | HEVC档次。 | 
191| typedef enum [OH_AVOutputFormat](#oh_avoutputformat-1) [OH_AVOutputFormat](#oh_avoutputformat) | 封装器支持的输出文件格式。 | 
192| typedef enum [OH_AVSeekMode](#oh_avseekmode-1) [OH_AVSeekMode](#oh_avseekmode) | 跳转模式。 | 
193| typedef enum [OH_ScalingMode](#oh_scalingmode-1) [OH_ScalingMode](#oh_scalingmode) | 缩放模式,只在Surface模式下使用。 | 
194| typedef enum [OH_BitsPerSample](#oh_bitspersample-1) [OH_BitsPerSample](#oh_bitspersample) | 每个编码样本的音频位数。 | 
195| typedef enum [OH_ColorPrimary](#oh_colorprimary-1) [OH_ColorPrimary](#oh_colorprimary) | 色域。 | 
196| typedef enum [OH_TransferCharacteristic](#oh_transfercharacteristic-1) [OH_TransferCharacteristic](#oh_transfercharacteristic) | 转移特性。 | 
197| typedef enum [OH_MatrixCoefficient](#oh_matrixcoefficient-1) [OH_MatrixCoefficient](#oh_matrixcoefficient) | 矩阵系数。 | 
198| typedef enum [OH_AVCLevel](#oh_avclevel-1) [OH_AVCLevel](#oh_avclevel) | AVC级别。  | 
199| typedef enum [OH_HEVCLevel](#oh_hevclevel-1) [OH_HEVCLevel](#oh_hevclevel) | HEVC级别。  | 
200| typedef enum [OH_TemporalGopReferenceMode](#oh_temporalgopreferencemode-1) [OH_TemporalGopReferenceMode](#oh_temporalgopreferencemode) | 时域图片组参考模式。  | 
201
202
203### 枚举
204
205| 名称 | 描述 | 
206| -------- | -------- |
207| [AudioChannelSet](#audiochannelset) : uint64_t {<br/>FRONT_LEFT = 1ULL &lt;&lt; 0U,<br/>FRONT_RIGHT = 1ULL &lt;&lt; 1U,<br/>FRONT_CENTER = 1ULL &lt;&lt; 2U,<br/>LOW_FREQUENCY = 1ULL &lt;&lt; 3U,<br/>BACK_LEFT = 1ULL &lt;&lt; 4U,<br/>BACK_RIGHT = 1ULL &lt;&lt; 5U,<br/>FRONT_LEFT_OF_CENTER = 1ULL &lt;&lt; 6U,<br/>FRONT_RIGHT_OF_CENTER = 1ULL &lt;&lt; 7U,<br/>BACK_CENTER = 1ULL &lt;&lt; 8U,<br/>SIDE_LEFT = 1ULL &lt;&lt; 9U,<br/>SIDE_RIGHT = 1ULL &lt;&lt; 10U,<br/>TOP_CENTER = 1ULL &lt;&lt; 11U,<br/>TOP_FRONT_LEFT = 1ULL &lt;&lt; 12U,<br/>TOP_FRONT_CENTER = 1ULL &lt;&lt; 13U,<br/>TOP_FRONT_RIGHT = 1ULL &lt;&lt; 14U,<br/>TOP_BACK_LEFT = 1ULL &lt;&lt; 15U,<br/>TOP_BACK_CENTER = 1ULL &lt;&lt; 16U,<br/>TOP_BACK_RIGHT = 1ULL &lt;&lt; 17U,<br/>STEREO_LEFT = 1ULL &lt;&lt; 29U,<br/>STEREO_RIGHT = 1ULL &lt;&lt; 30U,<br/>WIDE_LEFT = 1ULL &lt;&lt; 31U,<br/>WIDE_RIGHT = 1ULL &lt;&lt; 32U,<br/>SURROUND_DIRECT_LEFT = 1ULL &lt;&lt; 33U,<br/>SURROUND_DIRECT_RIGHT = 1ULL &lt;&lt; 34U,<br/>LOW_FREQUENCY_2 = 1ULL &lt;&lt; 35U,<br/>TOP_SIDE_LEFT = 1ULL &lt;&lt; 36U,<br/>TOP_SIDE_RIGHT = 1ULL &lt;&lt; 37U,<br/>BOTTOM_FRONT_CENTER = 1ULL &lt;&lt; 38U,<br/>BOTTOM_FRONT_LEFT = 1ULL &lt;&lt; 39U,<br/>BOTTOM_FRONT_RIGHT = 1ULL &lt;&lt; 40U,<br/>AMBISONICS_ACN0 = 1ULL &lt;&lt; 41U,<br/>AMBISONICS_ACN1 = 1ULL &lt;&lt; 42U,<br/>AMBISONICS_ACN2 = 1ULL &lt;&lt; 43U,<br/>AMBISONICS_ACN3 = 1ULL &lt;&lt; 44U,<br/>AMBISONICS_W = AMBISONICS_ACN0,<br/>AMBISONICS_Y = AMBISONICS_ACN1,<br/>AMBISONICS_Z = AMBISONICS_ACN2,<br/>AMBISONICS_X = AMBISONICS_ACN3,<br/>AMBISONICS_ACN4 = 1ULL &lt;&lt; 45U,<br/>AMBISONICS_ACN5 = 1ULL &lt;&lt; 46U,<br/>AMBISONICS_ACN6 = 1ULL &lt;&lt; 47U,<br/>AMBISONICS_ACN7 = 1ULL &lt;&lt; 48U,<br/>AMBISONICS_ACN8 = 1ULL &lt;&lt; 49U,<br/>AMBISONICS_ACN9 = 1ULL &lt;&lt; 50U,<br/>AMBISONICS_ACN10 = 1ULL &lt;&lt; 51U,<br/>AMBISONICS_ACN11 = 1ULL &lt;&lt; 52U,<br/>AMBISONICS_ACN12 = 1ULL &lt;&lt; 53U,<br/>AMBISONICS_ACN13 = 1ULL &lt;&lt; 54U,<br/>AMBISONICS_ACN14 = 1ULL &lt;&lt; 55U,<br/>AMBISONICS_ACN15 = 1ULL &lt;&lt; 56U<br/>} | 音频声道数集合, 将每一个声道数映射为int64_t的变量。(API11废弃)| 
208| [AudioChannelLayout](#audiochannellayout) : uint64_t {<br/>UNKNOWN_CHANNEL_LAYOUT = 0,<br/>MONO = (AudioChannelSet::FRONT_CENTER),<br/>STEREO = (AudioChannelSet::FRONT_LEFT \| AudioChannelSet::FRONT_RIGHT),<br/>CH_2POINT1 = (STEREO \| AudioChannelSet::LOW_FREQUENCY),<br/>CH_2_1 = (STEREO \| AudioChannelSet::BACK_CENTER),<br/>SURROUND = (STEREO \| AudioChannelSet::FRONT_CENTER),<br/>CH_3POINT1 = (SURROUND \| AudioChannelSet::LOW_FREQUENCY),<br/>CH_4POINT0 = (SURROUND \| AudioChannelSet::BACK_CENTER),<br/>CH_4POINT1 = (CH_4POINT0 \| AudioChannelSet::LOW_FREQUENCY),<br/>CH_2_2 = (STEREO \| AudioChannelSet::SIDE_LEFT \| AudioChannelSet::SIDE_RIGHT),<br/>QUAD = (STEREO \| AudioChannelSet::BACK_LEFT \| AudioChannelSet::BACK_RIGHT),<br/>CH_5POINT0 = (SURROUND \| AudioChannelSet::SIDE_LEFT \| AudioChannelSet::SIDE_RIGHT),<br/>CH_5POINT1 = (CH_5POINT0 \| AudioChannelSet::LOW_FREQUENCY),<br/>CH_5POINT0_BACK = (SURROUND \| AudioChannelSet::BACK_LEFT \| AudioChannelSet::BACK_RIGHT),<br/>CH_5POINT1_BACK = (CH_5POINT0_BACK \| AudioChannelSet::LOW_FREQUENCY),<br/>CH_6POINT0 = (CH_5POINT0 \| AudioChannelSet::BACK_CENTER),<br/>CH_6POINT0_FRONT = (CH_2_2 \| AudioChannelSet::FRONT_LEFT_OF_CENTER \| AudioChannelSet::FRONT_RIGHT_OF_CENTER),<br/>HEXAGONAL = (CH_5POINT0_BACK \| AudioChannelSet::BACK_CENTER),<br/>CH_6POINT1 = (CH_5POINT1 \| AudioChannelSet::BACK_CENTER),<br/>CH_6POINT1_BACK = (CH_5POINT1_BACK \| AudioChannelSet::BACK_CENTER),<br/>CH_6POINT1_FRONT = (CH_6POINT0_FRONT \| AudioChannelSet::LOW_FREQUENCY),<br/>CH_7POINT0 = (CH_5POINT0 \| AudioChannelSet::BACK_LEFT \| AudioChannelSet::BACK_RIGHT),<br/>CH_7POINT0_FRONT = (CH_5POINT0 \| AudioChannelSet::FRONT_LEFT_OF_CENTER \| AudioChannelSet::FRONT_RIGHT_OF_CENTER),<br/>CH_7POINT1 = (CH_5POINT1 \| AudioChannelSet::BACK_LEFT \| AudioChannelSet::BACK_RIGHT),<br/>CH_7POINT1_WIDE = (CH_5POINT1 \| AudioChannelSet::FRONT_LEFT_OF_CENTER \| AudioChannelSet::FRONT_RIGHT_OF_CENTER),<br/>CH_7POINT1_WIDE_BACK, CH_3POINT1POINT2 = (CH_3POINT1 \| AudioChannelSet::TOP_FRONT_LEFT \| AudioChannelSet::TOP_FRONT_RIGHT),<br/>CH_5POINT1POINT2 = (CH_5POINT1 \| AudioChannelSet::TOP_SIDE_LEFT \| AudioChannelSet::TOP_SIDE_RIGHT),<br/>CH_5POINT1POINT4, CH_7POINT1POINT2 = (CH_7POINT1 \| AudioChannelSet::TOP_SIDE_LEFT \| AudioChannelSet::TOP_SIDE_RIGHT),<br/>CH_7POINT1POINT4, CH_9POINT1POINT4 = (CH_7POINT1POINT4 \| AudioChannelSet::WIDE_LEFT \| AudioChannelSet::WIDE_RIGHT),<br/>CH_9POINT1POINT6 = (CH_9POINT1POINT4 \| AudioChannelSet::TOP_SIDE_LEFT \| AudioChannelSet::TOP_SIDE_RIGHT),<br/>CH_10POINT2, CH_22POINT2, OCTAGONAL = (CH_5POINT0 \| AudioChannelSet::BACK_LEFT \| AudioChannelSet::BACK_CENTER \| AudioChannelSet::BACK_RIGHT),<br/>HEXADECAGONAL, STEREO_DOWNMIX = (AudioChannelSet::STEREO_LEFT \| AudioChannelSet::STEREO_RIGHT),<br/>HOA_FIRST,<br/>HOA_SECOND,<br/>HOA_THIRD<br/>} | 音频声道数类型, 将用户申请的解码器输出格式表示为编解码器的声道类型。 | 
209| [OH_MediaType](#oh_mediatype-1) {<br/>MEDIA_TYPE_AUD = 0,<br/>MEDIA_TYPE_VID = 1,<br/>MEDIA_TYPE_SUBTITILE = 2<br/>} | 媒体类型。 |
210| [OH_AACProfile](#oh_aacprofile-1) { AAC_PROFILE_LC = 0 } | AAC档次。 | 
211| [OH_AVCProfile](#oh_avcprofile-1) {<br/>AVC_PROFILE_BASELINE = 0,<br/>AVC_PROFILE_HIGH = 4,<br/>AVC_PROFILE_MAIN = 8<br/>} | AVC档次。 | 
212| [OH_HEVCProfile](#oh_hevcprofile-1) {<br/>HEVC_PROFILE_MAIN = 0,<br/>HEVC_PROFILE_MAIN_10 = 1,<br/>HEVC_PROFILE_MAIN_STILL = 2,<br/>HEVC_PROFILE_MAIN_10_HDR10 = 3,<br/>HEVC_PROFILE_MAIN_10_HDR10_PLUS = 4<br/>} | HEVC档次。 | 
213| [OH_AVOutputFormat](#oh_avoutputformat-1) {<br/>AV_OUTPUT_FORMAT_DEFAULT = 0,<br/>AV_OUTPUT_FORMAT_MPEG_4 = 2,<br/>AV_OUTPUT_FORMAT_M4A = 6,<br/>AV_OUTPUT_FORMAT_AMR = 8,<br/>AV_OUTPUT_FORMAT_MP3 = 9,<br/>AV_OUTPUT_FORMAT_WAV = 10<br/>} | 封装器支持的输出文件格式。 |
214| [OH_AVSeekMode](#oh_avseekmode-1) {<br/>SEEK_MODE_NEXT_SYNC = 0,<br/>SEEK_MODE_PREVIOUS_SYNC,<br/>SEEK_MODE_CLOSEST_SYNC<br/>} | 跳转模式。 | 
215| [OH_ScalingMode](#oh_scalingmode-1) {<br/>SCALING_MODE_SCALE_TO_WINDOW = 1,<br/>SCALING_MODE_SCALE_CROP = 2<br/>} | 缩放模式。 | 
216| [OH_BitsPerSample](#oh_bitspersample-1) {<br/>SAMPLE_U8 = 0, SAMPLE_S16LE = 1,<br/>SAMPLE_S24LE = 2, SAMPLE_S32LE = 3,<br/>SAMPLE_F32LE = 4, SAMPLE_U8P = 5,<br/>SAMPLE_S16P = 6, SAMPLE_S24P = 7,<br/>SAMPLE_S32P = 8, SAMPLE_F32P = 9,<br/>INVALID_WIDTH = -1<br/>} | 每个编码样本的音频位数。 | 
217| [OH_ColorPrimary](#oh_colorprimary-1) {<br/>COLOR_PRIMARY_BT709 = 1,<br/>COLOR_PRIMARY_UNSPECIFIED = 2,<br/>COLOR_PRIMARY_BT470_M = 4,<br/>COLOR_PRIMARY_BT601_625 = 5,<br/>COLOR_PRIMARY_BT601_525 = 6,<br/>COLOR_PRIMARY_SMPTE_ST240 = 7,<br/>COLOR_PRIMARY_GENERIC_FILM = 8,<br/>COLOR_PRIMARY_BT2020 = 9,<br/>COLOR_PRIMARY_SMPTE_ST428 = 10,<br/>COLOR_PRIMARY_P3DCI = 11,<br/>COLOR_PRIMARY_P3D65 = 12<br/>} | 色域。 | 
218| [OH_TransferCharacteristic](#oh_transfercharacteristic-1) {<br/>TRANSFER_CHARACTERISTIC_BT709 = 1,<br/>TRANSFER_CHARACTERISTIC_UNSPECIFIED = 2,<br/>TRANSFER_CHARACTERISTIC_GAMMA_2_2 = 4,<br/>TRANSFER_CHARACTERISTIC_GAMMA_2_8 = 5,<br/>TRANSFER_CHARACTERISTIC_BT601 = 6,<br/>TRANSFER_CHARACTERISTIC_SMPTE_ST240 = 7,<br/>TRANSFER_CHARACTERISTIC_LINEAR = 8,<br/>TRANSFER_CHARACTERISTIC_LOG = 9,<br/>TRANSFER_CHARACTERISTIC_LOG_SQRT = 10,<br/>TRANSFER_CHARACTERISTIC_IEC_61966_2_4 = 11,<br/>TRANSFER_CHARACTERISTIC_BT1361 = 12,<br/>TRANSFER_CHARACTERISTIC_IEC_61966_2_1 = 13,<br/>TRANSFER_CHARACTERISTIC_BT2020_10BIT = 14,<br/>TRANSFER_CHARACTERISTIC_BT2020_12BIT = 15,<br/>TRANSFER_CHARACTERISTIC_PQ = 16,<br/>TRANSFER_CHARACTERISTIC_SMPTE_ST428 = 17,<br/>TRANSFER_CHARACTERISTIC_HLG = 18<br/>} | 转移特性。 | 
219| [OH_MatrixCoefficient](#oh_matrixcoefficient-1) {<br/>MATRIX_COEFFICIENT_IDENTITY = 0,<br/>MATRIX_COEFFICIENT_BT709 = 1,<br/>MATRIX_COEFFICIENT_UNSPECIFIED = 2,<br/>MATRIX_COEFFICIENT_FCC = 4,<br/>MATRIX_COEFFICIENT_BT601_625 = 5,<br/>MATRIX_COEFFICIENT_BT601_525 = 6, MATRIX_COEFFICIENT_SMPTE_ST240 = 7,<br/>MATRIX_COEFFICIENT_YCGCO = 8,<br/>MATRIX_COEFFICIENT_BT2020_NCL = 9,<br/>MATRIX_COEFFICIENT_BT2020_CL = 10,<br/>MATRIX_COEFFICIENT_SMPTE_ST2085 = 11,<br/>MATRIX_COEFFICIENT_CHROMATICITY_NCL = 12,<br/>MATRIX_COEFFICIENT_CHROMATICITY_CL = 13,<br/>MATRIX_COEFFICIENT_ICTCP = 14<br/>} | 矩阵系数。 | 
220| [OH_AVCLevel](#oh_avclevel-1) {<br/>AVC_LEVEL_1 = 0, <br/>AVC_LEVEL_1b = 1, <br/>AVC_LEVEL_11 = 2, <br/>AVC_LEVEL_12 = 3,<br/>AVC_LEVEL_13 = 4, <br/>AVC_LEVEL_2 = 5, <br/>AVC_LEVEL_21 = 6, <br/>AVC_LEVEL_22 = 7,<br/>AVC_LEVEL_3 = 8, <br/>AVC_LEVEL_31 = 9, <br/>AVC_LEVEL_32 = 10, <br/>AVC_LEVEL_4 = 11,<br/>AVC_LEVEL_41 = 12, <br/>AVC_LEVEL_42 = 13, <br/>AVC_LEVEL_5 = 14, <br/>AVC_LEVEL_51 = 15, <br/>AVC_LEVEL_52 = 16, <br/>AVC_LEVEL_6 = 17, <br/>AVC_LEVEL_61 = 18, <br/>AVC_LEVEL_62 = 19<br/>} | AVC级别。  | 
221| [OH_HEVCLevel](#oh_hevclevel-1) {<br/>HEVC_LEVEL_1 = 0, <br/>HEVC_LEVEL_2 = 1, <br/>HEVC_LEVEL_21 = 2, <br/>HEVC_LEVEL_3 = 3,<br/>HEVC_LEVEL_31 = 4, <br/>HEVC_LEVEL_4 = 5, <br/>HEVC_LEVEL_41 = 6, <br/>HEVC_LEVEL_5 = 7,<br/>HEVC_LEVEL_51 = 8, <br/>HEVC_LEVEL_52 = 9, <br/>HEVC_LEVEL_6 = 10, <br/>HEVC_LEVEL_61 = 11,<br/>HEVC_LEVEL_62 = 12<br/>} | HEVC级别。  | 
222| [OH_TemporalGopReferenceMode](#oh_temporalgopreferencemode-1) { <br/>ADJACENT_REFERENCE = 0, <br/>JUMP_REFERENCE = 1, <br/>UNIFORMLY_SCALED_REFERENCE = 2 <br/>} | 时域图片组参考模式。  | 
223
224
225### 变量
226
227| 名称 | 描述 | 
228| -------- | -------- |
229| const char \* [OH_AVCODEC_MIMETYPE_AUDIO_AAC](#oh_avcodec_mimetype_audio_aac) | AAC音频编解码器的MIME类型。 |
230| const char \* [OH_AVCODEC_MIMETYPE_AUDIO_FLAC](#oh_avcodec_mimetype_audio_flac) | FLAC音频编解码器的MIME类型。 |
231| const char \* [OH_AVCODEC_MIMETYPE_AUDIO_OPUS](#oh_avcodec_mimetype_audio_opus) | OPUS音频编解码器的MIME类型。<!--Del-->(此规格暂未开放)<!--DelEnd-->  |
232| const char \* [OH_AVCODEC_MIMETYPE_AUDIO_G711MU](#oh_avcodec_mimetype_audio_g711mu) | G711MU音频编解码器的MIME类型。 |
233| const char \* [OH_AVCODEC_MIMETYPE_AUDIO_VORBIS](#oh_avcodec_mimetype_audio_vorbis) | VORBIS音频解码器的MIME类型。 |
234| const char \* [OH_AVCODEC_MIMETYPE_AUDIO_MPEG](#oh_avcodec_mimetype_audio_mpeg) | MP3音频解码器的MIME类型。 |
235| const char \* [OH_AVCODEC_MIMETYPE_AUDIO_VIVID](#oh_avcodec_mimetype_audio_vivid) | Audio Vivid音频解码器的MIME类型。<!--Del-->(此规格暂未开放)<!--DelEnd-->  |
236| const char \* [OH_AVCODEC_MIMETYPE_AUDIO_AMR_NB](#oh_avcodec_mimetype_audio_amr_nb) | AMR_NB音频解码器的MIME类型。 |
237| const char \* [OH_AVCODEC_MIMETYPE_AUDIO_AMR_WB](#oh_avcodec_mimetype_audio_amr_wb) | AMR_WB音频解码器的MIME类型。 |
238| const char \* [OH_AVCODEC_MIMETYPE_AUDIO_APE](#oh_avcodec_mimetype_audio_ape) |APE音频解码器的MIME类型。                         |
239| const char \* [OH_AVCODEC_MIMETYPE_VIDEO_HEVC](#oh_avcodec_mimetype_video_hevc) | HEVC(H.265)视频编解码器的MIME类型。 |
240| const char \* [OH_AVCODEC_MIMETYPE_VIDEO_AVC](#oh_avcodec_mimetype_video_avc) | AVC(H.264)视频编解码器的MIME类型。 |
241| const char \* [OH_AVCODEC_MIMETYPE_VIDEO_MPEG4](#oh_avcodec_mimetype_video_mpeg4) | MPEG4视频编码的MIME类型,仅用于封装MPEG4视频码流使用。 |
242| const char \* [OH_AVCODEC_MIMETYPE_IMAGE_JPG](#oh_avcodec_mimetype_image_jpg) | JPG图片编码的MIME类型,仅用于封装JPG封面时使用。 |
243| const char \* [OH_AVCODEC_MIMETYPE_IMAGE_PNG](#oh_avcodec_mimetype_image_png) | PNG图片编码的MIME类型,仅用于封装PNG封面时使用。 |
244| const char \* [OH_AVCODEC_MIMETYPE_IMAGE_BMP](#oh_avcodec_mimetype_image_bmp) | BMP图片编码的MIME类型,仅用于封装BMP封面时使用。 |
245| const char \* [OH_AVCODEC_MIMETYPE_SUBTITLE_WEBVTT](#oh_avcodec_mimetype_subtitle_webvtt) |WEBVTT字幕解封装器的MIME类型。                 |
246| const char \* [OH_AVCODEC_MIMETYPE_SUBTITLE_SRT](#oh_avcodec_mimetype_subtitle_srt) |SRT字幕解封装器的MIME类型。                         |
247| const char \* [OH_FEATURE_PROPERTY_KEY_VIDEO_ENCODER_MAX_LTR_FRAME_COUNT](#oh_feature_property_key_video_encoder_max_ltr_frame_count) | 在视频编码中获取长期参考帧的最大个数的键,值类型为int32_t。  |
248| const char \* [OH_MD_KEY_CODEC_CONFIG](#oh_md_key_codec_config) | 编解码器特定数据的键,视频中表示传递SPS/PPS,音频中表示传递extraData,值类型为uint8_t\*。 <!--Del-->(视频编解码此功能暂未支持)<!--DelEnd--> |
249| const char \* [OH_MD_MAX_INPUT_BUFFER_COUNT](#oh_md_max_input_buffer_count) | 最大输入缓冲区个数的键,值类型为int32_t。 |
250| const char \* [OH_MD_MAX_OUTPUT_BUFFER_COUNT](#oh_md_max_output_buffer_count) | 最大输出缓冲区个数的键,值类型int32_t。 |
251| const char \* [OH_MD_KEY_BITRATE](#oh_md_key_bitrate) | 比特率的键,值类型为int64_t。 |
252| const char \* [OH_MD_KEY_PROFILE](#oh_md_key_profile) | 编码档次,值类型为int32_t,请参见[OH_AVCProfile](#oh_avcprofile),[OH_HEVCProfile](#oh_hevcprofile),[OH_AACProfile](#oh_aacprofile)。 |
253| const char \* [OH_MD_KEY_MAX_INPUT_SIZE](#oh_md_key_max_input_size) | 设置解码输入码流大小最大值的键,值类型为int32_t。 |
254| const char \* [OH_ED_KEY_TIME_STAMP](#oh_ed_key_time_stamp) | 表示surfacebuffer时间戳的键,值类型为int64_t。 <!--Del-->(此功能暂未支持)<!--DelEnd--> |
255| const char \* [OH_ED_KEY_EOS](#oh_ed_key_eos) | 表示surfacebuffer流结束符的键,值类型为int32_t。 <!--Del-->(此功能暂未支持)<!--DelEnd--> |
256| const char \* [OH_MD_KEY_WIDTH](#oh_md_key_width) | 视频宽度的键,值类型为int32_t。 |
257| const char \* [OH_MD_KEY_HEIGHT](#oh_md_key_height) | 视频高度键,值类型为int32_t。 |
258| const char \* [OH_MD_KEY_PIXEL_FORMAT](#oh_md_key_pixel_format) | 视频像素格式的键,值类型为int32_t,请参见[OH_AVPixelFormat](_core.md#oh_avpixelformat)。 |
259| const char \* [OH_MD_KEY_FRAME_RATE](#oh_md_key_frame_rate) | 视频帧率的键,值类型为double。 |
260| const char \* [OH_MD_KEY_ROTATION](#oh_md_key_rotation) | surface旋转角度的键。值类型为int32_t:应为{0, 90, 180, 270},默认值为0。该键只在视频解码Surface模式下使用。 |
261| const char \* [OH_MD_KEY_RANGE_FLAG](#oh_md_key_range_flag) | 视频YUV值域标志的键,值类型为int32_t,1表示full range,0表示limited range。 |
262| const char \* [OH_MD_KEY_COLOR_PRIMARIES](#oh_md_key_color_primaries) | 视频色域的键,值类型为int32_t,请参见[OH_ColorPrimary](#oh_colorprimary),遵循H.273标准Table2。 |
263| const char \* [OH_MD_KEY_TRANSFER_CHARACTERISTICS](#oh_md_key_transfer_characteristics) | 视频传递函数的键,值类型为int32_t,请参见[OH_TransferCharacteristic](#oh_transfercharacteristic),遵循H.273标准Table3。 |
264| const char \* [OH_MD_KEY_MATRIX_COEFFICIENTS](#oh_md_key_matrix_coefficients) | 视频矩阵系数的键,值类型为int32_t,请参见[OH_MatrixCoefficient](#oh_matrixcoefficient),遵循H.273标准Table4。 |
265| const char \* [OH_MD_KEY_SCALING_MODE](#oh_md_key_scaling_mode) | 视频缩放模式,值类型为int32_t,请参见[OH_ScalingMode](#oh_scalingmode)。该键是可选的且只用于视频解码Surface模式。建议直接调用[OH_NativeWindow_NativeWindowSetScalingModeV2](../apis-arkgraphics2d/_native_window.md)接口进行设置。|
266| const char \* [OH_MD_KEY_VIDEO_CROP_TOP](#oh_md_key_video_crop_top) | 描述裁剪矩形顶部坐标(y)值的键,值类型为int32_t。  | 
267| const char \* [OH_MD_KEY_VIDEO_CROP_BOTTOM](#oh_md_key_video_crop_bottom) | 描述裁剪矩形底部坐标(y)值的键,值类型为int32_t。  | 
268| const char \* [OH_MD_KEY_VIDEO_CROP_LEFT](#oh_md_key_video_crop_left) | 描述裁剪矩形左坐标(x)值的键,值类型为int32_t。  | 
269| const char \* [OH_MD_KEY_VIDEO_CROP_RIGHT](#oh_md_key_video_crop_right) | 描述裁剪矩形右坐标(x)值的键,值类型为int32_t。 | 
270| const char \* [OH_MD_KEY_VIDEO_STRIDE](#oh_md_key_video_stride) | 描述视频帧宽跨距的键,值类型为int32_t。本。  | 
271| const char \* [OH_MD_KEY_VIDEO_SLICE_HEIGHT](#oh_md_key_video_slice_height) | 描述视频帧高跨距的键,值类型为int32_t。  | 
272| const char \* [OH_MD_KEY_VIDEO_PIC_WIDTH](#oh_md_key_video_pic_width) | 描述视频帧真实宽度的键,值类型为int32_t。  | 
273| const char \* [OH_MD_KEY_VIDEO_PIC_HEIGHT](#oh_md_key_video_pic_height) | 描述视频帧真实高度的键,值类型为int32_t。  | 
274| const char \* [OH_MD_KEY_VIDEO_ENABLE_LOW_LATENCY](#oh_md_key_video_enable_low_latency) | 使能低时延视频编解码的键,值类型为int32_t,1表示使能,0表示其它情况。如果使能,则视频编码器或视频解码器持有的输入和输出数据不会超过编解码器标准所要求的数量。   | 
275| const char \* [OH_MD_KEY_VIDEO_ENCODE_BITRATE_MODE](#oh_md_key_video_encode_bitrate_mode) | 视频编码码率模式,值类型为int32_t,请参见[OH_VideoEncodeBitrateMode](_video_encoder.md#oh_videoencodebitratemode)。 |
276| const char \* [OH_MD_KEY_QUALITY](#oh_md_key_quality) | 所需编码质量的键。值类型为int32_t,此键仅适用于配置在恒定质量模式下的编码器。 |
277| const char \* [OH_MD_KEY_REQUEST_I_FRAME](#oh_md_key_request_i_frame) | 请求立即编码I帧的键。值类型为int32_t。 |
278| const char \* [OH_MD_KEY_I_FRAME_INTERVAL](#oh_md_key_i_frame_interval) | 关键帧间隔的键,值类型为int32_t,单位为毫秒。该键是可选的且只用于视频编码。 |
279| const char \* [OH_MD_KEY_VIDEO_ENCODER_ENABLE_TEMPORAL_SCALABILITY](#oh_md_key_video_encoder_enable_temporal_scalability) | 使能分层编码的键,值类型为int32_t,1表示使能,0表示其它情况。  | 
280| const char \* [OH_MD_KEY_VIDEO_ENCODER_TEMPORAL_GOP_SIZE](#oh_md_key_video_encoder_temporal_gop_size) | 描述图片组基本层图片的间隔大小的键,值类型为int32_t,只在使能分层编码时生效。  |
281| const char \* [OH_MD_KEY_VIDEO_ENCODER_TEMPORAL_GOP_REFERENCE_MODE](#oh_md_key_video_encoder_temporal_gop_reference_mode) | 描述图片组内参考模式的键,值类型为int32_t,请参见[OH_TemporalGopReferenceMode](#oh_temporalgopreferencemode),只在使能分层编码时生效。  | 
282| const char \* [OH_MD_KEY_VIDEO_ENCODER_LTR_FRAME_COUNT](#oh_md_key_video_encoder_ltr_frame_count) | 描述长期参考帧个数的键,值类型为int32_t,必须在支持的值范围内使用。该键是可选的且只用于视频编码。  | 
283| const char \* [OH_MD_KEY_VIDEO_ENCODER_PER_FRAME_MARK_LTR](#oh_md_key_video_encoder_per_frame_mark_ltr) | 标记当前帧为长期参考帧的键,值类型为int32_t,1表示被标记,0表示其它情况。该键是可选的且只用于视频编码。  | 
284| const char \* [OH_MD_KEY_VIDEO_ENCODER_PER_FRAME_USE_LTR](#oh_md_key_video_encoder_per_frame_use_ltr) | 描述当前帧参考的长期参考帧帧号的键,值类型为int32_t。该键是可选的且只用于视频编码。  | 
285| const char \* [OH_MD_KEY_VIDEO_PER_FRAME_IS_LTR](#oh_md_key_video_per_frame_is_ltr) | 当前OH_AVBuffer中输出的码流对应的帧是否为长期参考帧的键,值类型为int32_t,1表示是LTR,0表示其它情况。该键是可选的且只用于视频编码。  | 
286| const char \* [OH_MD_KEY_VIDEO_PER_FRAME_POC](#oh_md_key_video_per_frame_poc) | 描述帧的POC的键,值类型为int32_t。该键是可选的且只用于视频编码。  | 
287| const char \* [OH_MD_KEY_VIDEO_ENCODER_QP_MAX](#oh_md_key_video_encoder_qp_max) | 描述视频编码器允许的最大量化参数的键,值类型为int32_t。  | 
288| const char \* [OH_MD_KEY_VIDEO_ENCODER_QP_MIN](#oh_md_key_video_encoder_qp_min) | 描述视频编码器允许的最小量化参数的键,值类型为int32_t。  | 
289| const char \* [OH_MD_KEY_VIDEO_ENCODER_QP_AVERAGE](#oh_md_key_video_encoder_qp_average) | 描述视频帧平均量化参数的键,值类型为int32_t。 |
290| const char \* [OH_MD_KEY_VIDEO_ENCODER_MSE](#oh_md_key_video_encoder_mse)     |描述视频帧平方误差的键,值类型为double。  |
291| const char \* [OH_MD_KEY_VIDEO_DECODER_OUTPUT_COLOR_SPACE](#oh_md_key_video_decoder_output_color_space)   | 设置视频解码器输出色彩空间的键,值类型为int32_t。 支持的值为OH_COLORSPACE_BT709_LIMIT。|
292| const char \* [OH_MD_KEY_AUDIO_SAMPLE_FORMAT](#oh_md_key_audio_sample_format) | 音频原始格式的键,值类型为int32_t。 |
293| const char \* [OH_MD_KEY_AUD_CHANNEL_COUNT](#oh_md_key_aud_channel_count) | 音频通道计数键,值类型为int32_t。 |
294| const char \* [OH_MD_KEY_AUD_SAMPLE_RATE](#oh_md_key_aud_sample_rate) | 音频采样率键,值类型为int32_t。 |
295| const char \* [OH_MD_KEY_AUDIO_COMPRESSION_LEVEL](#oh_md_key_audio_compression_level) | 音频编解码压缩水平的键,只在音频编码使用,值类型为int32_t。 |
296| const char \* [OH_MD_KEY_CHANNEL_LAYOUT](#oh_md_key_channel_layout) | 所需编码通道布局的键。值类型为int64_t,此键仅适用于编码器。 |
297| const char \* [OH_MD_KEY_BITS_PER_CODED_SAMPLE](#oh_md_key_bits_per_coded_sample) | 每个编码样本位数的键,值类型为int32_t,支持flac编码器,请参见[OH_BitsPerSample](#oh_bitspersample)。 |
298| const char \* [OH_MD_KEY_SBR](#oh_md_key_sbr) | aac sbr模式的键,值类型为int32_t,aac编码器支持。 |
299| const char \* [OH_MD_KEY_COMPLIANCE_LEVEL](#oh_md_key_compliance_level) | flac兼容性等级的键,值类型为int32_t,仅在音频编码使用。 |
300| const char \* [OH_MD_KEY_AAC_IS_ADTS](#oh_md_key_aac_is_adts) | aac格式的键,aac格式分为ADTS格式和LATM格式。值类型为int32_t,aac解码器支持。 |
301| const char \* [OH_MD_KEY_IDENTIFICATION_HEADER](#oh_md_key_identification_header) | vorbis标识头的键,值类型为uint8_t\*,仅vorbis解码器支持。 |
302| const char \* [OH_MD_KEY_SETUP_HEADER](#oh_md_key_setup_header) | vorbis设置头的键,值类型为uint8_t\*,仅vorbis解码器支持。 |
303| const char \* [OH_MD_KEY_AUDIO_OBJECT_NUMBER](#oh_md_key_audio_object_number) | 音频对象数目的键,值类型为int32_t,只有Audio Vivid解码使用。 |
304| const char \* [OH_MD_KEY_AUDIO_VIVID_METADATA](#oh_md_key_audio_vivid_metadata) | Audio Vivid元数据的键,值类型为uint8_t\*,只有Audio Vivid解码使用。 |
305| const char \* [OH_MD_KEY_VIDEO_IS_HDR_VIVID](#oh_md_key_video_is_hdr_vivid) | 媒体文件中的视频轨是否为HDR Vivid的键,支持封装和解封装,值类型为int32_t。 |
306| const char \* [OH_MD_KEY_START_TIME](#oh_md_key_start_time) | 媒体文件中第一帧起始位置开始时间的键,值类型为int64_t。     |
307| const char \* [OH_MD_KEY_TRACK_START_TIME](#oh_md_key_track_start_time) | 轨道开始时间的键,值类型为int64_t。     |
308| const char \* [OH_MD_KEY_TRACK_TYPE](#oh_md_key_track_type) | 轨道媒体类型的键,值类型为int32_t,请参见[OH_MediaType](#oh_mediatype-1)。 |
309| const char \* [OH_MD_KEY_DURATION](#oh_md_key_duration) | 媒体文件持续时间的键,值类型为int64_t。 |
310| const char \* [OH_MD_KEY_TITLE](#oh_md_key_title) | 媒体文件标题的键,值类型为string。 |
311| const char \* [OH_MD_KEY_ARTIST](#oh_md_key_artist) | 媒体文件艺术家的键,值类型为string。 |
312| const char \* [OH_MD_KEY_ALBUM](#oh_md_key_album) | 专辑的媒体文件的键,值类型为string。 |
313| const char \* [OH_MD_KEY_ALBUM_ARTIST](#oh_md_key_album_artist) | 专辑艺术家的键,值类型为string。 |
314| const char \* [OH_MD_KEY_DATE](#oh_md_key_date) | 媒体文件日期的键,值类型为string,例如2024年。 |
315| const char \* [OH_MD_KEY_COMMENT](#oh_md_key_comment) | 媒体文件注释的键,值类型为string。 |
316| const char \* [OH_MD_KEY_GENRE](#oh_md_key_genre) | 媒体文件流派的键,值类型为string。 |
317| const char \* [OH_MD_KEY_COPYRIGHT](#oh_md_key_copyright) | 媒体文件版权的键,值类型为string。 |
318| const char \* [OH_MD_KEY_LANGUAGE](#oh_md_key_language) | 媒体文件语言的键,值类型为string。 |
319| const char \* [OH_MD_KEY_DESCRIPTION](#oh_md_key_description) | 媒体文件描述的键,值类型为string。 |
320| const char \* [OH_MD_KEY_LYRICS](#oh_md_key_lyrics) | 媒体文件歌词的键,值类型为string。 |
321| const char \* [OH_MD_KEY_TRACK_COUNT](#oh_md_key_track_count) | 媒体文件轨道数量的键,值类型为int32_t。 |
322| const char \* [OH_MD_KEY_BUFFER_DURATION](#oh_md_key_buffer_duration) | AVBuffer中携带的音视频或字幕的sample对应的持续时间的键,以微秒为单位,值类型为int64_t。       |
323| const char \* [OH_MD_KEY_DECODING_TIMESTAMP](#oh_md_key_decoding_timestamp) | AVBuffer中携带的音视频或字幕的sample对应的解码时间戳的键,以微秒为单位,值类型为int64_t。  |
324| const char \* [OH_MD_KEY_CODEC_MIME](#oh_md_key_codec_mime) | 编解码器MIME类型的键,值类型为string。 |
325| const char \* [OH_MD_KEY_VIDEO_SAR](#oh_md_key_video_sar)            | 样本长宽比的键,值类型为double。 |
326
327
328## 类型定义说明
329
330
331### OH_AACProfile
332
333```
334typedef enum OH_AACProfile OH_AACProfile
335```
336**描述**
337AAC档次。
338
339**系统能力:** SystemCapability.Multimedia.Media.CodecBase
340
341**起始版本:** 9
342
343
344### OH_AVCLevel
345
346```
347typedef enum OH_AVCLevel OH_AVCLevel
348```
349**描述**
350AVC级别。
351
352**系统能力:** SystemCapability.Multimedia.Media.CodecBase
353
354**起始版本:** 12
355
356
357### OH_AVCodec
358
359```
360typedef struct OH_AVCodec OH_AVCodec
361```
362**描述**
363为音视频编解码接口定义native层对象。
364
365**起始版本:** 9
366
367
368### OH_AVCodecAsyncCallback
369
370```
371typedef struct OH_AVCodecAsyncCallback OH_AVCodecAsyncCallback
372```
373**描述**
374OH_AVCodec中所有异步回调函数指针的集合。将该结构体的实例注册到OH_AVCodec实例中, 并处理回调上报的信息,以保证OH_AVCodec的正常运行。
375
376**系统能力:** SystemCapability.Multimedia.Media.CodecBase
377
378**起始版本:** 9
379
380**废弃版本:** 11
381
382**替代接口:**[OH_AVCodecCallback](#oh_avcodeccallback)
383
384**参数:**
385
386| 名称 | 描述 | 
387| -------- | -------- |
388| onError | 监控编解码器操作错误,请参见[OH_AVCodecOnError](#oh_avcodeconerror)。 | 
389| onStreamChanged | 监控编解码器流变化,请参见[OH_AVCodecOnStreamChanged](#oh_avcodeconstreamchanged)。 | 
390| onNeedInputData | 监控编解码器需要输入数据,请参见[OH_AVCodecOnNeedInputData](#oh_avcodeconneedinputdata)。 | 
391| onNeedOutputData | 监控编解码器已生成输出数据,请参见[OH_AVCodecOnNewOutputData](#oh_avcodeconnewoutputdata)。 | 
392
393
394### OH_AVCodecCallback
395
396```
397typedef struct OH_AVCodecCallback OH_AVCodecCallback
398```
399**描述**
400OH_AVCodec中所有异步回调函数指针的集合。将该结构体的实例注册到OH_AVCodec实例中, 并处理回调上报的信息,以保证OH_AVCodec的正常运行。
401
402**系统能力:** SystemCapability.Multimedia.Media.CodecBase
403
404**起始版本:** 11
405
406**参数:**
407
408| 名称 | 描述 | 
409| -------- | -------- |
410| onError | 监控编解码器操作错误,请参见[OH_AVCodecOnError](#oh_avcodeconerror)。 | 
411| onStreamChanged | 监控编解码器流变化,请参见[OH_AVCodecOnStreamChanged](#oh_avcodeconstreamchanged)。 | 
412| onNeedInputBuffer | 监控编解码器需要输入数据,请参见[OH_AVCodecOnNeedInputBuffer](#oh_avcodeconneedinputbuffer)。 | 
413| onNewOutputBuffer | 监控编解码器已生成输出数据,请参见[OH_AVCodecOnNewOutputBuffer](#oh_avcodeconnewoutputbuffer)。 | 
414
415
416### OH_AVCodecOnError
417
418```
419typedef void(* OH_AVCodecOnError) (OH_AVCodec *codec, int32_t errorCode, void *userData)
420```
421**描述**
422当OH_AVCodec实例运行出错时,回调将上报具体的错误信息的函数指针。
423
424| 使用场景| 错误码 |
425| -------- | -------- |
426| 音频编解码 | AV_ERR_DRM_DECRYPT_FAILED:DRM解密失败。  |
427| 视频编解码 | AV_ERROR_NO_MEMORY:系统资源不足。<br>AV_ERROR_UNKNOWN:未知错误,请通过具体日志分析。<br>AV_ERR_SERVICE_DIED:服务状态已消亡。  |
428| 视频解码 | AV_ERR_VIDEO_UNSUPPORTED_COLOR_SPACE_CONVERSION:当前输入不支持色彩空间转换功能。  |
429<!--RP1--><!--RP1End-->
430
431**系统能力:** SystemCapability.Multimedia.Media.CodecBase
432
433**起始版本:** 9
434
435**参数:**
436
437| 名称 | 描述 | 
438| -------- | -------- |
439| codec | OH_AVCodec实例。  | 
440| errorCode | 特定错误代码。  | 
441| userData | 用户执行回调所依赖的数据。  |
442
443
444### OH_AVCodecOnNeedInputBuffer
445
446```
447typedef void(* OH_AVCodecOnNeedInputBuffer) (OH_AVCodec *codec, uint32_t index, OH_AVBuffer *buffer, void *userData)
448```
449**描述**
450当OH_AVCodec在运行过程中需要新的输入数据时,将调用此函数指针,并携带可用的缓冲区来填充新的输入数据。
451
452**系统能力:** SystemCapability.Multimedia.Media.CodecBase
453
454**起始版本:** 11
455
456**参数:**
457
458| 名称 | 描述 | 
459| -------- | -------- |
460| codec | OH_AVCodec实例。  | 
461| index | 与新可用的输入缓冲区相对应的索引。  | 
462| buffer | 新的可用输入缓冲区。  | 
463| userData | 用户执行回调所依赖的数据。  | 
464
465
466### OH_AVCodecOnNeedInputData
467
468```
469typedef void(* OH_AVCodecOnNeedInputData) (OH_AVCodec *codec, uint32_t index, OH_AVMemory *data, void *userData)
470```
471**描述**
472当OH_AVCodec在运行过程中需要新的输入数据时,将调用此函数指针,并携带可用的缓冲区来填充新的输入数据。
473
474**系统能力:** SystemCapability.Multimedia.Media.CodecBase
475
476**起始版本:** 9
477
478**废弃版本:** 11
479
480**替代接口:**[OH_AVCodecOnNeedInputBuffer](#oh_avcodeconneedinputbuffer)
481
482**参数:**
483
484| 名称 | 描述 | 
485| -------- | -------- |
486| codec | OH_AVCodec实例。  | 
487| index | 与新可用的输入缓冲区相对应的索引。  | 
488| data | 新的可用输入缓冲区。  | 
489| userData | 用户执行回调所依赖的数据。  | 
490
491
492### OH_AVCodecOnNewOutputBuffer
493
494```
495typedef void(* OH_AVCodecOnNewOutputBuffer) (OH_AVCodec *codec, uint32_t index, OH_AVBuffer *buffer, void *userData)
496```
497**描述**
498当OH_AVCodec运行过程中生成新的输出数据时,将调用此函数指针,并携带包含新输出数据的缓冲区。
499
500**系统能力:** SystemCapability.Multimedia.Media.CodecBase
501
502**起始版本:** 11
503
504**参数:**
505
506| 名称 | 描述 | 
507| -------- | -------- |
508| codec | OH_AVCodec实例。  | 
509| index | 与新输出缓冲区对应的索引。  | 
510| buffer | 包含新输出数据的缓冲区。  | 
511| userData | 用户执行回调所依赖的数据。  | 
512
513
514### OH_AVCodecOnNewOutputData
515
516```
517typedef void(* OH_AVCodecOnNewOutputData) (OH_AVCodec *codec, uint32_t index, OH_AVMemory *data, OH_AVCodecBufferAttr *attr, void *userData)
518```
519**描述**
520当OH_AVCodec运行过程中生成新的输出数据时,将调用此函数指针,并携带包含新输出数据的缓冲区。 需要注意的是,OH_AVCodecBufferAttr指针的生命周期仅在调用函数指针时有效,这将禁止调用结束后继续访问。
521
522**系统能力:** SystemCapability.Multimedia.Media.CodecBase
523
524**起始版本:** 9
525
526**废弃版本:** 11
527
528**替代接口:**[OH_AVCodecOnNewOutputBuffer](#oh_avcodeconnewoutputbuffer)
529
530**参数:**
531
532| 名称 | 描述 | 
533| -------- | -------- |
534| codec | OH_AVCodec实例。  | 
535| index | 与新输出缓冲区对应的索引。  | 
536| data | 包含新输出数据的缓冲区。  | 
537| attr | 新输出缓冲区的说明,请参见**OH_AVCodecBufferAttr**。  | 
538| userData | 用户执行回调所依赖的数据。  | 
539
540
541### OH_AVCodecOnStreamChanged
542
543```
544typedef void(* OH_AVCodecOnStreamChanged) (OH_AVCodec *codec, OH_AVFormat *format, void *userData)
545```
546**描述**
547当解码输入码流分辨率或者编码输出码流的分辨率发生变化时,调用此函数指针报告新的流描述信息。需要注意的是, 
548OH_AVFormat指针的生命周期只有在函数指针被调用时才有效,调用结束后禁止继续访问。
549
550**系统能力:** SystemCapability.Multimedia.Media.CodecBase
551
552**起始版本:** 9
553
554**参数:**
555
556| 名称 | 描述 | 
557| -------- | -------- |
558| codec | OH_AVCodec实例。  |
559| format | 新输出流描述信息。  |
560| userData | 用户执行回调所依赖的数据。  |
561
562
563### OH_AVCProfile
564
565```
566typedef enum OH_AVCProfile OH_AVCProfile
567```
568**描述**
569AVC档次。
570
571**系统能力:** SystemCapability.Multimedia.Media.CodecBase
572
573**起始版本:** 9
574
575
576### OH_AVDataSource
577
578```
579typedef struct OH_AVDataSource OH_AVDataSource
580```
581**描述**
582用户自定义数据源。
583
584**系统能力:** SystemCapability.Multimedia.Media.CodecBase
585
586**起始版本:** 12
587
588
589### OH_AVDataSourceReadAt
590
591```
592typedef int32_t(* OH_AVDataSourceReadAt) (OH_AVBuffer *data, int32_t length, int64_t pos)
593```
594**描述**
595函数指针定义,用于提供获取用户自定义媒体数据的能力。
596
597**系统能力:** SystemCapability.Multimedia.Media.CodecBase
598
599**起始版本:** 12
600
601**参数:**
602
603| 名称 | 描述 | 
604| -------- | -------- |
605| data | 要填充的缓冲区。  | 
606| length | 要读取的数据长度。  | 
607| pos | 从偏移量位置读取。  | 
608
609**返回:**
610
611读取到缓冲区的数据的实际长度。
612
613
614### OH_AVOutputFormat
615
616```
617typedef enum OH_AVOutputFormat OH_AVOutputFormat
618```
619**描述**
620封装器支持的输出文件格式。
621
622**系统能力:** SystemCapability.Multimedia.Media.CodecBase
623
624**起始版本:** 10
625
626
627### OH_AVSeekMode
628
629```
630typedef enum OH_AVSeekMode OH_AVSeekMode
631```
632**描述**
633跳转模式。
634
635**系统能力:** SystemCapability.Multimedia.Media.CodecBase
636
637**起始版本:** 10
638
639
640### OH_BitsPerSample
641
642```
643typedef enum OH_BitsPerSample OH_BitsPerSample
644```
645**描述**
646每个编码样本的音频位数。
647
648**系统能力:** SystemCapability.Multimedia.Media.CodecBase
649
650**起始版本:** 10
651
652
653### OH_ColorPrimary
654
655```
656typedef enum OH_ColorPrimary OH_ColorPrimary
657```
658**描述**
659色域。
660
661**系统能力:** SystemCapability.Multimedia.Media.CodecBase
662
663**起始版本:** 10
664
665
666### OH_HEVCLevel
667
668```
669typedef enum OH_HEVCLevel OH_HEVCLevel
670```
671**描述**
672HEVC级别。
673
674**系统能力:** SystemCapability.Multimedia.Media.CodecBase
675
676**起始版本:** 12
677
678
679### OH_HEVCProfile
680
681```
682typedef enum OH_HEVCProfile OH_HEVCProfile
683```
684**描述**
685HEVC档次。
686
687**系统能力:** SystemCapability.Multimedia.Media.CodecBase
688
689**起始版本:** 10
690
691
692### OH_MatrixCoefficient
693
694```
695typedef enum OH_MatrixCoefficient OH_MatrixCoefficient
696```
697**描述**
698矩阵系数。
699
700**系统能力:** SystemCapability.Multimedia.Media.CodecBase
701
702**起始版本:** 10
703
704
705### OH_MediaType
706
707```
708typedef enum OH_MediaType OH_MediaType
709```
710**描述**
711媒体类型。
712
713**系统能力:** SystemCapability.Multimedia.Media.CodecBase
714
715**起始版本:** 9
716
717
718### OH_ScalingMode
719
720```
721typedef enum OH_ScalingMode OH_ScalingMode
722```
723**描述**
724缩放模式,只在Surface模式下使用。
725
726**系统能力:** SystemCapability.Multimedia.Media.CodecBase
727
728**起始版本:** 10
729
730
731### OH_TemporalGopReferenceMode
732
733```
734typedef enum OH_TemporalGopReferenceMode OH_TemporalGopReferenceMode
735```
736**描述**
737时域图片组参考模式。
738
739**系统能力:** SystemCapability.Multimedia.Media.CodecBase
740
741**起始版本:** 12
742
743
744### OH_TransferCharacteristic
745
746```
747typedef enum OH_TransferCharacteristic OH_TransferCharacteristic
748```
749**描述**
750转移特性。
751
752**系统能力:** SystemCapability.Multimedia.Media.CodecBase
753
754**起始版本:** 10
755
756
757### OHNativeWindow
758
759```
760typedef struct NativeWindow OHNativeWindow
761```
762**描述**
763为图形接口定义native层对象。
764
765**起始版本:** 9
766
767
768## 枚举类型说明
769
770
771### AudioChannelLayout
772
773```
774enum AudioChannelLayout : uint64_t
775```
776
777**描述**
778音频声道数类型, 将用户申请的解码器输出格式表示为编解码器的声道类型。
779
780**系统能力:** SystemCapability.Multimedia.Media.CodecBase
781
782**起始版本:** 10
783
784**废弃版本:** 11
785
786**替代接口:**[OH_AudioChannelLayout](_core.md#oh_audiochannellayout)
787
788| 枚举值 | 描述 | 
789| -------- | -------- |
790| UNKNOWN_CHANNEL_LAYOUT | 未知通道布局 | 
791| MONO | 单通道布局 | 
792| STEREO | 立体声布局 | 
793| CH_2POINT1 | 2.1布局 | 
794| CH_2_1 | 2_1布局 | 
795| SURROUND | 环绕布局 | 
796| CH_3POINT1 | 3.1布局 | 
797| CH_4POINT0 | 4.0布局 | 
798| CH_4POINT1 | 4.1布局 | 
799| CH_2_2 | 2_2布局 | 
800| QUAD | 四角形布局 | 
801| CH_5POINT0 | 5.0布局 | 
802| CH_5POINT1 | 5.1布局 | 
803| CH_5POINT0_BACK | 5.0后置布局 | 
804| CH_5POINT1_BACK | 5.1后置布局 | 
805| CH_6POINT0 | 6.0布局 | 
806| CH_6POINT0_FRONT | 6.0前置布局 | 
807| HEXAGONAL | 六角形布局 | 
808| CH_6POINT1 | 6.1布局 | 
809| CH_6POINT1_BACK | 6.1后置布局 | 
810| CH_6POINT1_FRONT | 6.1前置布局 | 
811| CH_7POINT0 | 7.0布局 | 
812| CH_7POINT0_FRONT | 7.0前置布局 | 
813| CH_7POINT1 | 7.1布局 | 
814| CH_7POINT1_WIDE | 7.1宽布局 | 
815| CH_7POINT1_WIDE_BACK | 7.1后置宽布局 | 
816| CH_3POINT1POINT2 | 3.1.2布局 | 
817| CH_5POINT1POINT2 | 5.1.2布局 | 
818| CH_5POINT1POINT4 | 5.1.4布局 | 
819| CH_7POINT1POINT2 | 7.1.2布局 | 
820| CH_7POINT1POINT4 | 7.1.4布局 | 
821| CH_9POINT1POINT4 | 9.1.4布局 | 
822| CH_9POINT1POINT6 | 9.1.6布局 | 
823| CH_10POINT2 | 10.2布局 | 
824| CH_22POINT2 | 22.2布局 | 
825| OCTAGONAL | 八边形布局 | 
826| HEXADECAGONAL | 十六边形布局 | 
827| STEREO_DOWNMIX | 立体声下混布局 | 
828| HOA_FIRST | 高阶立体声一阶布局 | 
829| HOA_SECOND | 高阶立体声二阶布局 | 
830| HOA_THIRD | 高阶立体声三阶布局 | 
831
832
833### AudioChannelSet
834
835```
836enum AudioChannelSet : uint64_t
837```
838
839**描述**
840音频声道数集合, 将每一个声道数映射为int64_t的变量。
841
842**系统能力:** SystemCapability.Multimedia.Media.CodecBase
843
844**起始版本:** 10
845
846**废弃版本:** 11,请使用[OH_AudioChannelSet](_core.md#oh_audiochannelset)替代。
847
848| 枚举值 | 描述 | 
849| -------- | -------- |
850| FRONT_LEFT | 左前声道 | 
851| FRONT_RIGHT | 右前声道 | 
852| FRONT_CENTER | 中前声道 | 
853| LOW_FREQUENCY | 低频声道 | 
854| BACK_LEFT | 左后声道 | 
855| BACK_RIGHT | 右后声道 | 
856| FRONT_LEFT_OF_CENTER | 左前中置声道 | 
857| FRONT_RIGHT_OF_CENTER | 右前中置声道 | 
858| BACK_CENTER | 后方中置声道 | 
859| SIDE_LEFT | 左侧声道 | 
860| SIDE_RIGHT | 右侧声道 | 
861| TOP_CENTER | 上方中置声道 | 
862| TOP_FRONT_LEFT | 上方左前声道 | 
863| TOP_FRONT_CENTER | 上方中前声道 | 
864| TOP_FRONT_RIGHT | 上方右前声道 | 
865| TOP_BACK_LEFT | 上方左后声道 | 
866| TOP_BACK_CENTER | 上方中后声道 | 
867| TOP_BACK_RIGHT | 上方右后声道 | 
868| STEREO_LEFT | 立体声左声道 | 
869| STEREO_RIGHT | 立体声右声道 | 
870| WIDE_LEFT | 宽左声道 | 
871| WIDE_RIGHT | 宽右声道 | 
872| SURROUND_DIRECT_LEFT | 左环绕声道 | 
873| SURROUND_DIRECT_RIGHT | 右环绕声道 | 
874| LOW_FREQUENCY_2 | 低频声道2 | 
875| TOP_SIDE_LEFT | 上方左侧声道 | 
876| TOP_SIDE_RIGHT | 上方右侧声道 | 
877| BOTTOM_FRONT_CENTER | 下方中前声道 | 
878| BOTTOM_FRONT_LEFT | 下方左前声道 | 
879| BOTTOM_FRONT_RIGHT | 下方右前声道 | 
880| AMBISONICS_ACN0 | 零阶立体声声道数 0 | 
881| AMBISONICS_ACN1 | 一阶立体声声道数 1 | 
882| AMBISONICS_ACN2 | 一阶立体声声道数 2 | 
883| AMBISONICS_ACN3 | 一阶立体声声道数 3 | 
884| AMBISONICS_W | 同于零阶立体声声道数 0 | 
885| AMBISONICS_Y | 同于一阶立体声声道数 1 | 
886| AMBISONICS_Z | 同于一阶立体声声道数 2 | 
887| AMBISONICS_X | 同于一阶立体声声道数 3 | 
888| AMBISONICS_ACN4 | 二阶立体声声道数 4 | 
889| AMBISONICS_ACN5 | 二阶立体声声道数 5 | 
890| AMBISONICS_ACN6 | 二阶立体声声道数 6 | 
891| AMBISONICS_ACN7 | 二阶立体声声道数 7 | 
892| AMBISONICS_ACN8 | 二阶立体声声道数 8 | 
893| AMBISONICS_ACN9 | 三阶立体声声道数 9 | 
894| AMBISONICS_ACN10 | 三阶立体声声道数 10 | 
895| AMBISONICS_ACN11 | 三阶立体声声道数 11 | 
896| AMBISONICS_ACN12 | 三阶立体声声道数 12 | 
897| AMBISONICS_ACN13 | 三阶立体声声道数 13 | 
898| AMBISONICS_ACN14 | 三阶立体声声道数 14 | 
899| AMBISONICS_ACN15 | 三阶立体声声道数 15 | 
900
901
902### OH_AACProfile
903
904```
905enum OH_AACProfile
906```
907**描述**
908AAC档次。
909
910**系统能力:** SystemCapability.Multimedia.Media.CodecBase
911
912**起始版本:** 9
913
914| 枚举值 | 描述 | 
915| -------- | -------- |
916| AAC_PROFILE_LC  | AAC编码档次为Low Complexity级别。   | 
917
918
919### OH_AVCLevel
920
921```
922enum OH_AVCLevel
923```
924**描述**
925AVC级别。
926
927**系统能力:** SystemCapability.Multimedia.Media.CodecBase
928
929**起始版本:** 12
930
931| 枚举值 | 描述 | 
932| -------- | -------- |
933| AVC_LEVEL_1  | 级别1   | 
934| AVC_LEVEL_1b  | 级别1b   | 
935| AVC_LEVEL_11  | 级别1.1   | 
936| AVC_LEVEL_12  | 级别1.2   | 
937| AVC_LEVEL_13  | 级别1.3   | 
938| AVC_LEVEL_2  | 级别2   | 
939| AVC_LEVEL_21  | 级别2.1   | 
940| AVC_LEVEL_22  | 级别2.2   | 
941| AVC_LEVEL_3  | 级别3   | 
942| AVC_LEVEL_31  | 级别3.1   | 
943| AVC_LEVEL_32  | 级别3.2   | 
944| AVC_LEVEL_4  | 级别4   | 
945| AVC_LEVEL_41  | 级别4.1   | 
946| AVC_LEVEL_42  | 级别4.2   | 
947| AVC_LEVEL_5  | 级别5   | 
948| AVC_LEVEL_51  | 级别5.1   | 
949| AVC_LEVEL_52  | 级别5.2   | 
950| AVC_LEVEL_6  | 级别6   | 
951| AVC_LEVEL_61  | 级别6.1   | 
952| AVC_LEVEL_62  | 级别6.2   | 
953
954
955### OH_AVCProfile
956
957```
958enum OH_AVCProfile
959```
960**描述**
961AVC档次。
962
963**系统能力:** SystemCapability.Multimedia.Media.CodecBase
964
965**起始版本:** 9
966
967| 枚举值 | 描述 | 
968| -------- | -------- |
969| AVC_PROFILE_BASELINE  | AVC编码档次为基本档次。   |
970| AVC_PROFILE_HIGH  | AVC编码档次为高档次。   |
971| AVC_PROFILE_MAIN  | AVC编码档次为主档次。   |
972
973
974### OH_AVOutputFormat
975
976```
977enum OH_AVOutputFormat
978```
979**描述**
980封装器支持的输出文件格式。
981
982**系统能力:** SystemCapability.Multimedia.Media.CodecBase
983
984**起始版本:** 10
985
986| 枚举值 | 描述 | 
987| -------- | -------- |
988| AV_OUTPUT_FORMAT_DEFAULT  | 输出文件格式默认值,默认为MP4格式。   | 
989| AV_OUTPUT_FORMAT_MPEG_4  | 输出文件格式为MP4格式。   | 
990| AV_OUTPUT_FORMAT_M4A  | 输出文件格式为M4A格式。   | 
991| AV_OUTPUT_FORMAT_AMR  | 输出文件格式为AMR格式。<br>**起始版本:** 12    | 
992| AV_OUTPUT_FORMAT_MP3  | 输出文件格式为MP3格式。<br>**起始版本:** 12   | 
993| AV_OUTPUT_FORMAT_WAV  | 输出文件格式为WAV格式。<br>**起始版本:** 12   | 
994
995### OH_AVSeekMode
996
997```
998enum OH_AVSeekMode
999```
1000**描述**
1001跳转模式。
1002
1003**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1004
1005**起始版本:** 10
1006
1007| 枚举值 | 描述 | 
1008| -------- | -------- |
1009| SEEK_MODE_NEXT_SYNC  | 指定时间位置的下一I帧。若时间点后没有I帧,该模式可能跳转失败。   |
1010| SEEK_MODE_PREVIOUS_SYNC  | 指定时间位置的上一I帧。   | 
1011| SEEK_MODE_CLOSEST_SYNC  | 指定时间位置的最近I帧。   | 
1012
1013
1014### OH_BitsPerSample
1015
1016```
1017enum OH_BitsPerSample
1018```
1019**描述**
1020每个编码样本的音频位数。
1021
1022**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1023
1024**起始版本:** 10
1025
1026| 枚举值 | 描述 | 
1027| -------- | -------- |
1028| SAMPLE_U8  | 8位无符号整数采样。   | 
1029| SAMPLE_S16LE  | 16位有符号整数采样。   | 
1030| SAMPLE_S24LE  | 24位有符号整数采样。   | 
1031| SAMPLE_S32LE  | 32位有符号整数采样。   | 
1032| SAMPLE_F32LE  | 32位浮点采样。   | 
1033| SAMPLE_U8P  | 8位无符号整数平面采样。   | 
1034| SAMPLE_S16P  | 16位有符号整数平面采样。   | 
1035| SAMPLE_S24P  | 24位有符号整数平面采样。   | 
1036| SAMPLE_S32P  | 32位有符号整数平面采样。   | 
1037| SAMPLE_F32P  | 32位浮点平面采样。   | 
1038| INVALID_WIDTH  | 无效采样格式。   | 
1039
1040
1041### OH_ColorPrimary
1042
1043```
1044enum OH_ColorPrimary
1045```
1046**描述**
1047色域。编解码都支持。
1048
1049**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1050
1051**起始版本:** 10
1052
1053| 枚举值 | 描述 | 
1054| -------- | -------- |
1055| COLOR_PRIMARY_BT709  | BT709色域。   | 
1056| COLOR_PRIMARY_UNSPECIFIED  | 未指定色域。   | 
1057| COLOR_PRIMARY_BT470_M  | BT470_M色域。   | 
1058| COLOR_PRIMARY_BT601_625  | BT601_625色域。   | 
1059| COLOR_PRIMARY_BT601_525  | BT601_525色域。   | 
1060| COLOR_PRIMARY_SMPTE_ST240  | SMPTE_ST240色域。   | 
1061| COLOR_PRIMARY_GENERIC_FILM  | GENERIC_FILM色域。   | 
1062| COLOR_PRIMARY_BT2020  | BT2020色域。   | 
1063| COLOR_PRIMARY_SMPTE_ST428  | SMPTE_ST428色域。   | 
1064| COLOR_PRIMARY_P3DCI  | P3DCI色域。   | 
1065| COLOR_PRIMARY_P3D65  | P3D65色域。   | 
1066
1067
1068### OH_HEVCLevel
1069
1070```
1071enum OH_HEVCLevel
1072```
1073**描述**
1074HEVC级别。
1075
1076**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1077
1078**起始版本:** 12
1079
1080| 枚举值 | 描述 | 
1081| -------- | -------- |
1082| HEVC_LEVEL_1  | 级别1   | 
1083| HEVC_LEVEL_2  | 级别2   | 
1084| HEVC_LEVEL_21  | 级别2.1   | 
1085| HEVC_LEVEL_3  | 级别3   | 
1086| HEVC_LEVEL_31  | 级别3.1   | 
1087| HEVC_LEVEL_4  | 级别4   | 
1088| HEVC_LEVEL_41  | 级别4.1   | 
1089| HEVC_LEVEL_5  | 级别5   | 
1090| HEVC_LEVEL_51  | 级别5.1   | 
1091| HEVC_LEVEL_52  | 级别5.2   | 
1092| HEVC_LEVEL_6  | 级别6   | 
1093| HEVC_LEVEL_61  | 级别6.1   | 
1094| HEVC_LEVEL_62  | 级别6.2   | 
1095
1096
1097### OH_HEVCProfile
1098
1099```
1100enum OH_HEVCProfile
1101```
1102**描述**
1103HEVC档次。
1104
1105**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1106
1107**起始版本:** 10
1108
1109| 枚举值 | 描述 | 
1110| -------- | -------- |
1111| HEVC_PROFILE_MAIN  | HEVC编码档次为主档次。   | 
1112| HEVC_PROFILE_MAIN_10  | HEVC编码档次为10bit主档次。   | 
1113| HEVC_PROFILE_MAIN_STILL  | HEVC编码档次为静止图像主档次。   | 
1114| HEVC_PROFILE_MAIN_10_HDR10  | HEVC编码档次为HDR10主档次。   | 
1115| HEVC_PROFILE_MAIN_10_HDR10_PLUS  | HEVC编码档次为HDR10+主档次。   | 
1116
1117
1118### OH_MatrixCoefficient
1119
1120```
1121enum OH_MatrixCoefficient
1122```
1123**描述**
1124矩阵系数。编解码都支持。
1125
1126**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1127
1128**起始版本:** 10
1129
1130| 枚举值 | 描述 | 
1131| -------- | -------- |
1132| MATRIX_COEFFICIENT_IDENTITY  | 单位矩阵。   | 
1133| MATRIX_COEFFICIENT_BT709  | BT709转换矩阵。   | 
1134| MATRIX_COEFFICIENT_UNSPECIFIED  | 未指定转换矩阵。   | 
1135| MATRIX_COEFFICIENT_FCC  | FCC转换矩阵。   | 
1136| MATRIX_COEFFICIENT_BT601_625  | BT601_625转换矩阵。   | 
1137| MATRIX_COEFFICIENT_BT601_525  | BT601_525转换矩阵。   | 
1138| MATRIX_COEFFICIENT_SMPTE_ST240  | SMPTE_ST240转换矩阵。   | 
1139| MATRIX_COEFFICIENT_YCGCO  | YCGCO转换矩阵。   | 
1140| MATRIX_COEFFICIENT_BT2020_NCL  | BT2020_NCL转换矩阵。   | 
1141| MATRIX_COEFFICIENT_BT2020_CL  | BT2020_CL转换矩阵。   | 
1142| MATRIX_COEFFICIENT_SMPTE_ST2085  | SMPTE_ST2085转换矩阵。   | 
1143| MATRIX_COEFFICIENT_CHROMATICITY_NCL  | CHROMATICITY_NCL转换矩阵。   | 
1144| MATRIX_COEFFICIENT_CHROMATICITY_CL  | CHROMATICITY_CL转换矩阵。   | 
1145| MATRIX_COEFFICIENT_ICTCP  | ICTCP转换矩阵。   | 
1146
1147
1148### OH_MediaType
1149
1150```
1151enum OH_MediaType
1152```
1153**描述**
1154媒体类型。
1155
1156**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1157
1158**起始版本:** 9
1159
1160| 枚举值 | 描述 | 
1161| -------- | -------- |
1162| MEDIA_TYPE_AUD  | 音频轨。   | 
1163| MEDIA_TYPE_VID  | 视频轨。   | 
1164| MEDIA_TYPE_SUBTITILE  | 字幕轨。 <br>**起始版本:** 12   |
1165
1166### OH_ScalingMode
1167
1168```
1169enum OH_ScalingMode
1170```
1171**描述**
1172缩放模式,只在Surface模式下使用。
1173
1174**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1175
1176**起始版本:** 10
1177
1178| 枚举值 | 描述 | 
1179| -------- | -------- |
1180| SCALING_MODE_SCALE_TO_WINDOW  | 根据窗口尺寸自适应调整图像大小。   | 
1181| SCALING_MODE_SCALE_CROP  | 根据窗口尺寸裁剪图像大小。   | 
1182
1183
1184### OH_TemporalGopReferenceMode
1185
1186```
1187enum OH_TemporalGopReferenceMode
1188```
1189**描述**
1190时域图片组参考模式。
1191
1192**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1193
1194**起始版本:** 12
1195
1196| 枚举值 | 描述 | 
1197| -------- | -------- |
1198| ADJACENT_REFERENCE  | 参考最近的短期参考帧。   | 
1199| JUMP_REFERENCE  | 参考最近的长期参考帧。   | 
1200| UNIFORMLY_SCALED_REFERENCE  | 均匀分层参考结构,在丢弃最高层级视频帧后,视频帧均匀分布。其中时域图片组个数必须为2的幂   | 
1201
1202
1203### OH_TransferCharacteristic
1204
1205```
1206enum OH_TransferCharacteristic
1207```
1208**描述**
1209转移特性。编解码都支持。
1210
1211**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1212
1213**起始版本:** 10
1214
1215| 枚举值 | 描述 | 
1216| -------- | -------- |
1217| TRANSFER_CHARACTERISTIC_BT709  | BT709传递函数。   | 
1218| TRANSFER_CHARACTERISTIC_UNSPECIFIED  | 未指定传递函数。   | 
1219| TRANSFER_CHARACTERISTIC_GAMMA_2_2  | GAMMA_2_2传递函数。   | 
1220| TRANSFER_CHARACTERISTIC_GAMMA_2_8  | GAMMA_2_8传递函数。   | 
1221| TRANSFER_CHARACTERISTIC_BT601  | BT601传递函数。   | 
1222| TRANSFER_CHARACTERISTIC_SMPTE_ST240  | SMPTE_ST240传递函数。   | 
1223| TRANSFER_CHARACTERISTIC_LINEAR  | LINEAR传递函数。   | 
1224| TRANSFER_CHARACTERISTIC_LOG  | LOG传递函数。   | 
1225| TRANSFER_CHARACTERISTIC_LOG_SQRT  | LOG_SQRT传递函数。   | 
1226| TRANSFER_CHARACTERISTIC_IEC_61966_2_4  | IEC_61966_2_4传递函数。   | 
1227| TRANSFER_CHARACTERISTIC_BT1361  | BT1361传递函数。   | 
1228| TRANSFER_CHARACTERISTIC_IEC_61966_2_1  | IEC_61966_2_1传递函数。   | 
1229| TRANSFER_CHARACTERISTIC_BT2020_10BIT  | BT2020_10BIT传递函数。   | 
1230| TRANSFER_CHARACTERISTIC_BT2020_12BIT  | BT2020_12BIT传递函数。   | 
1231| TRANSFER_CHARACTERISTIC_PQ  | PQ传递函数。   | 
1232| TRANSFER_CHARACTERISTIC_SMPTE_ST428  | SMPTE_ST428传递函数。   | 
1233| TRANSFER_CHARACTERISTIC_HLG  | HLG传递函数。   | 
1234
1235
1236## 变量说明
1237
1238
1239### OH_AVCODEC_MIMETYPE_SUBTITLE_SRT
1240
1241```
1242const char* OH_AVCODEC_MIMETYPE_SUBTITLE_SRT
1243```
1244**描述**
1245SRT字幕解封装器的MIME类型。
1246
1247**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1248
1249**起始版本:** 12
1250
1251
1252### OH_AVCODEC_MIMETYPE_SUBTITLE_WEBVTT
1253
1254```
1255const char* OH_AVCODEC_MIMETYPE_SUBTITLE_WEBVTT
1256```
1257**描述**
1258WEBVTT字幕解封装器的MIME类型。
1259
1260**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1261
1262**起始版本:** 12
1263
1264
1265### OH_AVCODEC_MIMETYPE_AUDIO_APE
1266
1267```
1268const char* OH_AVCODEC_MIMETYPE_AUDIO_APE
1269```
1270**描述**
1271APE音频解码器的MIME类型。
1272
1273**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1274
1275**起始版本:** 12
1276
1277
1278### OH_AVCODEC_MIMETYPE_AUDIO_AAC
1279
1280```
1281const char* OH_AVCODEC_MIMETYPE_AUDIO_AAC
1282```
1283**描述**
1284AAC音频编解码器的MIME类型。
1285
1286**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1287
1288**起始版本:** 9
1289
1290
1291### OH_AVCODEC_MIMETYPE_AUDIO_AMR_NB
1292
1293```
1294const char* OH_AVCODEC_MIMETYPE_AUDIO_AMR_NB
1295```
1296**描述**
1297AMR_NB音频解码器的MIME类型。
1298
1299**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1300
1301**起始版本:** 11
1302
1303
1304### OH_AVCODEC_MIMETYPE_AUDIO_AMR_WB
1305
1306```
1307const char* OH_AVCODEC_MIMETYPE_AUDIO_AMR_WB
1308```
1309**描述**
1310AMR_WB音频解码器的MIME类型。
1311
1312**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1313
1314**起始版本:** 11
1315
1316
1317### OH_AVCODEC_MIMETYPE_AUDIO_FLAC
1318
1319```
1320const char* OH_AVCODEC_MIMETYPE_AUDIO_FLAC
1321```
1322**描述**
1323FLAC音频编解码器的MIME类型。
1324
1325**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1326
1327**起始版本:** 10
1328
1329
1330### OH_AVCODEC_MIMETYPE_AUDIO_G711MU
1331
1332```
1333const char* OH_AVCODEC_MIMETYPE_AUDIO_G711MU
1334```
1335**描述**
1336G711MU音频编解码器的MIME类型。
1337
1338**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1339
1340**起始版本:** 11
1341
1342
1343### OH_AVCODEC_MIMETYPE_AUDIO_MPEG
1344
1345```
1346const char* OH_AVCODEC_MIMETYPE_AUDIO_MPEG
1347```
1348**描述**
1349MP3音频解码器的MIME类型。
1350
1351**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1352
1353**起始版本:** 10
1354
1355
1356### OH_AVCODEC_MIMETYPE_AUDIO_OPUS
1357
1358```
1359const char* OH_AVCODEC_MIMETYPE_AUDIO_OPUS
1360```
1361**描述**
1362OPUS音频编解码器的MIME类型。<!--Del-->(此规格暂未开放)<!--DelEnd--> 
1363
1364**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1365
1366**起始版本:** 11
1367
1368
1369### OH_AVCODEC_MIMETYPE_AUDIO_VIVID
1370
1371```
1372const char* OH_AVCODEC_MIMETYPE_AUDIO_VIVID
1373```
1374**描述**
1375Audio Vivid音频解码器的MIME类型。<!--Del-->(目前本规格未开放)<!--DelEnd-->
1376
1377**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1378
1379**起始版本:** 11
1380
1381
1382### OH_AVCODEC_MIMETYPE_AUDIO_VORBIS
1383
1384```
1385const char* OH_AVCODEC_MIMETYPE_AUDIO_VORBIS
1386```
1387**描述**
1388VORBIS音频解码器的MIME类型。
1389
1390**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1391
1392**起始版本:** 10
1393
1394
1395### OH_AVCODEC_MIMETYPE_IMAGE_BMP
1396
1397```
1398const char* OH_AVCODEC_MIMETYPE_IMAGE_BMP
1399```
1400**描述**
1401BMP图片编码的MIME类型,仅用于封装BMP封面时使用。
1402
1403**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1404
1405**起始版本:** 10
1406
1407
1408### OH_AVCODEC_MIMETYPE_IMAGE_JPG
1409
1410```
1411const char* OH_AVCODEC_MIMETYPE_IMAGE_JPG
1412```
1413**描述**
1414JPG图片编码的MIME类型,仅用于封装JPG封面时使用。
1415
1416**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1417
1418**起始版本:** 10
1419
1420
1421### OH_AVCODEC_MIMETYPE_IMAGE_PNG
1422
1423```
1424const char* OH_AVCODEC_MIMETYPE_IMAGE_PNG
1425```
1426**描述**
1427PNG图片编码的MIME类型,仅用于封装PNG封面时使用。
1428
1429**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1430
1431**起始版本:** 10
1432
1433
1434### OH_AVCODEC_MIMETYPE_VIDEO_AVC
1435
1436```
1437const char* OH_AVCODEC_MIMETYPE_VIDEO_AVC
1438```
1439**描述**
1440AVC(H.264)视频编解码器的MIME类型。
1441
1442**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1443
1444**起始版本:** 9
1445
1446
1447### OH_AVCODEC_MIMETYPE_VIDEO_HEVC
1448
1449```
1450const char* OH_AVCODEC_MIMETYPE_VIDEO_HEVC
1451```
1452**描述**
1453HEVC(H.265)视频编解码器的MIME类型。
1454
1455**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1456
1457**起始版本:** 10
1458
1459
1460### OH_AVCODEC_MIMETYPE_VIDEO_MPEG4
1461
1462```
1463const char* OH_AVCODEC_MIMETYPE_VIDEO_MPEG4
1464```
1465**描述**
1466MPEG4视频编码的MIME类型,仅用于封装MPEG4视频码流使用。
1467
1468**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1469
1470**起始版本:** 10
1471
1472**废弃版本:** 11
1473
1474
1475### OH_ED_KEY_EOS
1476
1477```
1478const char* OH_ED_KEY_EOS
1479```
1480**描述**
1481表示surfacebuffer流结束符的键,值类型为int32_t。<!--Del-->(此功能暂未支持)<!--DelEnd-->
1482
1483**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1484
1485**起始版本:** 9
1486
1487
1488### OH_ED_KEY_TIME_STAMP
1489
1490```
1491const char* OH_ED_KEY_TIME_STAMP
1492```
1493**描述**
1494表示surfacebuffer时间戳的键,值类型为int64_t。 <!--Del-->(此功能暂未支持)<!--DelEnd-->
1495
1496**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1497
1498**起始版本:** 9
1499
1500
1501### OH_FEATURE_PROPERTY_KEY_VIDEO_ENCODER_MAX_LTR_FRAME_COUNT
1502
1503```
1504const char* OH_FEATURE_PROPERTY_KEY_VIDEO_ENCODER_MAX_LTR_FRAME_COUNT
1505```
1506**描述**
1507在视频编码中获取长期参考帧的最大个数的键,值类型为int32_t。 
1508
1509可以通过[OH_AVCapability_GetFeatureProperties](_a_v_capability.md#oh_avcapability_getfeatureproperties)接口和枚举值[VIDEO_ENCODER_LONG_TERM_REFERENCE](_a_v_capability.md#oh_avcapabilityfeature)来查询这个最大值。
1510
1511**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1512
1513**起始版本:** 12
1514
1515
1516### OH_MD_KEY_AAC_IS_ADTS
1517
1518```
1519const char* OH_MD_KEY_AAC_IS_ADTS
1520```
1521**描述**
1522aac格式的键,aac格式分为ADTS格式和LATM格式。值类型为int32_t,0表示LATM格式,1表示ADTS格式。aac解码器支持。
1523
1524**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1525
1526**起始版本:** 10
1527
1528
1529### OH_MD_KEY_ALBUM
1530
1531```
1532const char* OH_MD_KEY_ALBUM
1533```
1534**描述**
1535专辑的媒体文件的键,值类型为string。
1536
1537**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1538
1539**起始版本:** 10
1540
1541
1542### OH_MD_KEY_ALBUM_ARTIST
1543
1544```
1545const char* OH_MD_KEY_ALBUM_ARTIST
1546```
1547**描述**
1548专辑艺术家的键,值类型为string。
1549
1550**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1551
1552**起始版本:** 10
1553
1554
1555### OH_MD_KEY_ARTIST
1556
1557```
1558const char* OH_MD_KEY_ARTIST
1559```
1560**描述**
1561媒体文件艺术家的键,值类型为string。
1562
1563**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1564
1565**起始版本:** 10
1566
1567
1568### OH_MD_KEY_AUD_CHANNEL_COUNT
1569
1570```
1571const char* OH_MD_KEY_AUD_CHANNEL_COUNT
1572```
1573**描述**
1574音频通道计数键,值类型为int32_t。
1575
1576**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1577
1578**起始版本:** 9
1579
1580
1581### OH_MD_KEY_AUD_SAMPLE_RATE
1582
1583```
1584const char* OH_MD_KEY_AUD_SAMPLE_RATE
1585```
1586**描述**
1587音频采样率键,值类型为int32_t。
1588
1589**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1590
1591**起始版本:** 9
1592
1593
1594### OH_MD_KEY_AUDIO_COMPRESSION_LEVEL
1595
1596```
1597const char* OH_MD_KEY_AUDIO_COMPRESSION_LEVEL
1598```
1599**描述**
1600音频编解码压缩水平的键,只在音频编码使用,值类型为int32_t。
1601
1602**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1603
1604**起始版本:** 11
1605
1606
1607### OH_MD_KEY_AUDIO_OBJECT_NUMBER
1608
1609```
1610const char* OH_MD_KEY_AUDIO_OBJECT_NUMBER
1611```
1612**描述**
1613音频对象数目的键,值类型为int32_t,只有Audio Vivid解码使用。
1614
1615**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1616
1617**起始版本:** 11
1618
1619
1620### OH_MD_KEY_AUDIO_SAMPLE_FORMAT
1621
1622```
1623const char* OH_MD_KEY_AUDIO_SAMPLE_FORMAT
1624```
1625**描述**
1626音频原始格式的键,值类型为int32_t。请参见[AudioSampleFormat](../apis-audio-kit/js-apis-audio.md#audiosampleformat8)。
1627
1628**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1629
1630**起始版本:** 9
1631
1632
1633### OH_MD_KEY_AUDIO_VIVID_METADATA
1634
1635```
1636const char* OH_MD_KEY_AUDIO_VIVID_METADATA
1637```
1638**描述**
1639Audio Vivid元数据的键,值类型为uint8_t\*,只有Audio Vivid解码使用。
1640
1641**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1642
1643**起始版本:** 11
1644
1645
1646### OH_MD_KEY_BITRATE
1647
1648```
1649const char* OH_MD_KEY_BITRATE
1650```
1651**描述**
1652比特率的键,值类型为int64_t。
1653
1654**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1655
1656**起始版本:** 9
1657
1658
1659### OH_MD_KEY_BITS_PER_CODED_SAMPLE
1660
1661```
1662const char* OH_MD_KEY_BITS_PER_CODED_SAMPLE
1663```
1664**描述**
1665每个编码样本位数的键,值类型为int32_t,支持flac编码器,请参见[OH_BitsPerSample](#oh_bitspersample)。
1666
1667**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1668
1669**起始版本:** 10
1670
1671
1672### OH_MD_KEY_CHANNEL_LAYOUT
1673
1674```
1675const char* OH_MD_KEY_CHANNEL_LAYOUT
1676```
1677**描述**
1678所需编码通道布局的键。值类型为int64_t,此键仅适用于编码器。
1679
1680**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1681
1682**起始版本:** 10
1683
1684
1685### OH_MD_KEY_CODEC_CONFIG
1686
1687```
1688const char* OH_MD_KEY_CODEC_CONFIG
1689```
1690**描述**
1691
1692编解码器特定数据的键,视频中表示传递SPS/PPS,音频中表示传递extraData,值类型为uint8_t\*。 <!--Del-->(视频编解码此功能暂未支持)<!--DelEnd-->
1693
1694**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1695
1696**起始版本:** 10
1697
1698
1699### OH_MD_KEY_CODEC_MIME
1700
1701```
1702const char* OH_MD_KEY_CODEC_MIME
1703```
1704**描述**
1705编解码器MIME类型的键,值类型为string。
1706
1707**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1708
1709**起始版本:** 9
1710
1711
1712### OH_MD_KEY_COLOR_PRIMARIES
1713
1714```
1715const char* OH_MD_KEY_COLOR_PRIMARIES
1716```
1717**描述**
1718视频色域的键,值类型为int32_t,请参见[OH_ColorPrimary](#oh_colorprimary),遵循H.273标准Table2。
1719
1720**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1721
1722**起始版本:** 10
1723
1724
1725### OH_MD_KEY_COMMENT
1726
1727```
1728const char* OH_MD_KEY_COMMENT
1729```
1730**描述**
1731媒体文件注释的键,值类型为string。
1732
1733**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1734
1735**起始版本:** 10
1736
1737
1738### OH_MD_KEY_COMPLIANCE_LEVEL
1739
1740```
1741const char* OH_MD_KEY_COMPLIANCE_LEVEL
1742```
1743**描述**
1744flac兼容性等级的键,值类型为int32_t,仅在音频编码使用。
1745
1746**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1747
1748**起始版本:** 10
1749
1750
1751### OH_MD_KEY_COPYRIGHT
1752
1753```
1754const char* OH_MD_KEY_COPYRIGHT
1755```
1756**描述**
1757媒体文件版权的键,值类型为string。
1758
1759**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1760
1761**起始版本:** 10
1762
1763
1764### OH_MD_KEY_DATE
1765
1766```
1767const char* OH_MD_KEY_DATE
1768```
1769**描述**
1770媒体文件日期的键,值类型为string,例如2024年。
1771
1772**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1773
1774**起始版本:** 10
1775
1776
1777### OH_MD_KEY_DESCRIPTION
1778
1779```
1780const char* OH_MD_KEY_DESCRIPTION
1781```
1782**描述**
1783媒体文件描述的键,值类型为string。
1784
1785**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1786
1787**起始版本:** 10
1788
1789
1790### OH_MD_KEY_DURATION
1791
1792```
1793const char* OH_MD_KEY_DURATION
1794```
1795**描述**
1796媒体文件持续时间的键,单位为微秒,值类型为int64_t。
1797
1798**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1799
1800**起始版本:** 9
1801
1802
1803### OH_MD_KEY_FRAME_RATE
1804
1805```
1806const char* OH_MD_KEY_FRAME_RATE
1807```
1808**描述**
1809视频帧率的键,值类型为double。该值必须大于 0。
1810
1811**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1812
1813**起始版本:** 9
1814
1815
1816### OH_MD_KEY_GENRE
1817
1818```
1819const char* OH_MD_KEY_GENRE
1820```
1821**描述**
1822媒体文件流派的键,值类型为string。
1823
1824**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1825
1826**起始版本:** 10
1827
1828
1829### OH_MD_KEY_HEIGHT
1830
1831```
1832const char* OH_MD_KEY_HEIGHT
1833```
1834**描述**
1835视频高度键,值类型为int32_t。
1836
1837**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1838
1839**起始版本:** 9
1840
1841
1842### OH_MD_KEY_I_FRAME_INTERVAL
1843
1844```
1845const char* OH_MD_KEY_I_FRAME_INTERVAL
1846```
1847
1848**描述**
1849关键帧间隔的键,值类型为int32_t,单位为毫秒。该键是可选的且只用于视频编码。
1850
1851负值表示只有第一帧是关键帧,零表示所有帧都是关键帧。
1852
1853**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1854
1855**起始版本:** 9
1856
1857
1858### OH_MD_KEY_IDENTIFICATION_HEADER
1859
1860```
1861const char* OH_MD_KEY_IDENTIFICATION_HEADER
1862```
1863**描述**
1864vorbis标识头的键,值类型为uint8_t\*,仅vorbis解码器支持。
1865
1866**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1867
1868**起始版本:** 10
1869
1870
1871### OH_MD_KEY_LANGUAGE
1872
1873```
1874const char* OH_MD_KEY_LANGUAGE
1875```
1876**描述**
1877媒体文件语言的键,值类型为string。
1878
1879**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1880
1881**起始版本:** 10
1882
1883
1884### OH_MD_KEY_LYRICS
1885
1886```
1887const char* OH_MD_KEY_LYRICS
1888```
1889**描述**
1890媒体文件歌词的键,值类型为string。
1891
1892**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1893
1894**起始版本:** 10
1895
1896
1897### OH_MD_KEY_MATRIX_COEFFICIENTS
1898
1899```
1900const char* OH_MD_KEY_MATRIX_COEFFICIENTS
1901```
1902**描述**
1903视频矩阵系数的键,值类型为int32_t,请参见[OH_MatrixCoefficient](#oh_matrixcoefficient),遵循H.273标准Table4。
1904
1905**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1906
1907**起始版本:** 10
1908
1909
1910### OH_MD_KEY_MAX_INPUT_SIZE
1911
1912```
1913const char* OH_MD_KEY_MAX_INPUT_SIZE
1914```
1915**描述**
1916设置解码输入码流大小最大值的键,值类型为int32_t。
1917
1918**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1919
1920**起始版本:** 9
1921
1922
1923### OH_MD_KEY_PIXEL_FORMAT
1924
1925```
1926const char* OH_MD_KEY_PIXEL_FORMAT
1927```
1928**描述**
1929视频像素格式的键,值类型为int32_t,请参见[OH_AVPixelFormat](_core.md#oh_avpixelformat)。
1930
1931**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1932
1933**起始版本:** 9
1934
1935
1936### OH_MD_KEY_PROFILE
1937
1938```
1939const char* OH_MD_KEY_PROFILE
1940```
1941**描述**
1942编码档次,值类型为int32_t,请参见[OH_AVCProfile](#oh_avcprofile),[OH_HEVCProfile](#oh_hevcprofile),[OH_AACProfile](#oh_aacprofile)。
1943
1944**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1945
1946**起始版本:** 9
1947
1948
1949### OH_MD_KEY_QUALITY
1950
1951```
1952const char* OH_MD_KEY_QUALITY
1953```
1954**描述**
1955所需编码质量的键。值类型为int32_t,在H264、H265编码场景值范围可以根据能力查询接口OH_AVCapability_GetEncoderQualityRange()获取,此键仅适用于配置在恒定质量模式下的编码器。
1956
1957**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1958
1959**起始版本:** 10
1960
1961
1962### OH_MD_KEY_RANGE_FLAG
1963
1964```
1965const char* OH_MD_KEY_RANGE_FLAG
1966```
1967**描述**
1968视频YUV值域标志的键,值类型为int32_t,1表示full range,0表示limited range。
1969
1970**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1971
1972**起始版本:** 10
1973
1974
1975### OH_MD_KEY_REQUEST_I_FRAME
1976
1977```
1978const char* OH_MD_KEY_REQUEST_I_FRAME
1979```
1980**描述**
1981请求立即编码I帧的键。值类型为int32_t。在调用OH_VideoEncoder_SetParameter()阶段使用,或随帧立即生效。
1982
1983**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1984
1985**起始版本:** 10
1986
1987
1988### OH_MD_KEY_ROTATION
1989
1990```
1991const char* OH_MD_KEY_ROTATION
1992```
1993**描述**
1994surface旋转角度的键。值类型为int32_t:应为{0, 90, 180, 270},默认值为0。该键只在视频解码Surface模式下使用。
1995
1996**系统能力:** SystemCapability.Multimedia.Media.CodecBase
1997
1998**起始版本:** 9
1999
2000
2001### OH_MD_KEY_SBR
2002
2003```
2004const char* OH_MD_KEY_SBR
2005```
2006**描述**
2007aac sbr模式的键,值类型为int32_t,aac编码器支持。
2008
2009**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2010
2011**起始版本:** 10
2012
2013
2014### OH_MD_KEY_SCALING_MODE
2015
2016```
2017const char* OH_MD_KEY_SCALING_MODE
2018```
2019**描述**
2020视频缩放模式,值类型为int32_t,请参见[OH_ScalingMode](#oh_scalingmode)。建议直接调用[OH_NativeWindow_NativeWindowSetScalingModeV2](../apis-arkgraphics2d/_native_window.md)接口进行设置。该键是可选的且只用于视频解码Surface模式。
2021
2022**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2023
2024**起始版本:** 10
2025
2026
2027### OH_MD_KEY_SETUP_HEADER
2028
2029```
2030const char* OH_MD_KEY_SETUP_HEADER
2031```
2032**描述**
2033vorbis设置头的键,值类型为uint8_t\*,仅vorbis解码器支持。
2034
2035**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2036
2037**起始版本:** 10
2038
2039
2040### OH_MD_KEY_TITLE
2041
2042```
2043const char* OH_MD_KEY_TITLE
2044```
2045**描述**
2046媒体文件标题的键,值类型为string。
2047
2048**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2049
2050**起始版本:** 10
2051
2052
2053### OH_MD_KEY_TRACK_COUNT
2054
2055```
2056const char* OH_MD_KEY_TRACK_COUNT
2057```
2058**描述**
2059媒体文件轨道数量的键,值类型为int32_t。
2060
2061**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2062
2063**起始版本:** 10
2064
2065
2066### OH_MD_KEY_TRACK_TYPE
2067
2068```
2069const char* OH_MD_KEY_TRACK_TYPE
2070```
2071**描述**
2072
2073轨道媒体类型的键,值类型为int32_t,请参见[OH_MediaType](#oh_mediatype-1)。
2074
2075**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2076
2077**起始版本:** 9
2078
2079
2080### OH_MD_KEY_TRANSFER_CHARACTERISTICS
2081
2082```
2083const char* OH_MD_KEY_TRANSFER_CHARACTERISTICS
2084```
2085**描述**
2086视频传递函数的键,值类型为int32_t,请参见[OH_TransferCharacteristic](#oh_transfercharacteristic),遵循H.273标准Table3。
2087
2088**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2089
2090**起始版本:** 10
2091
2092### OH_MD_KEY_VIDEO_CROP_BOTTOM
2093
2094```
2095const char* OH_MD_KEY_VIDEO_CROP_BOTTOM
2096```
2097**描述**
2098描述裁剪矩形底部坐标(y)值的键,值类型为int32_t。 包含裁剪框底部的行,行索引从0开始。该键只用于视频解码。
2099
2100**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2101
2102**起始版本:** 12
2103
2104
2105### OH_MD_KEY_VIDEO_CROP_LEFT
2106
2107```
2108const char* OH_MD_KEY_VIDEO_CROP_LEFT
2109```
2110**描述**
2111描述裁剪矩形左坐标(x)值的键,值类型为int32_t。包含裁剪框最左边的列,列索引从0开始。该键只用于视频解码。
2112
2113**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2114
2115**起始版本:** 12
2116
2117
2118### OH_MD_KEY_VIDEO_CROP_RIGHT
2119
2120```
2121const char* OH_MD_KEY_VIDEO_CROP_RIGHT
2122```
2123**描述**
2124描述裁剪矩形右坐标(x)值的键,值类型为int32_t。包含裁剪框最右边的列,列索引从0开始。该键只用于视频解码。
2125
2126**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2127
2128**起始版本:** 12
2129
2130
2131### OH_MD_KEY_VIDEO_CROP_TOP
2132
2133```
2134const char* OH_MD_KEY_VIDEO_CROP_TOP
2135```
2136**描述**
2137描述裁剪矩形顶部坐标(y)值的键,值类型为int32_t。 包含裁剪框顶部的行,行索引从0开始。该键只用于视频解码。
2138
2139**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2140
2141**起始版本:** 12
2142
2143
2144### OH_MD_KEY_VIDEO_ENABLE_LOW_LATENCY
2145
2146```
2147const char* OH_MD_KEY_VIDEO_ENABLE_LOW_LATENCY
2148```
2149**描述**
2150使能低时延视频编解码的键,值类型为int32_t,1表示使能,0表示其它情况。
2151
2152如果使能,则视频编码器或视频解码器持有的输入和输出数据不会超过编解码器标准所要求的数量。 
2153
2154该键是可选的,在configure阶段使用。
2155
2156**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2157
2158**起始版本:** 12
2159
2160
2161### OH_MD_KEY_VIDEO_ENCODE_BITRATE_MODE
2162
2163```
2164const char* OH_MD_KEY_VIDEO_ENCODE_BITRATE_MODE
2165```
2166**描述**
2167视频编码码率模式,值类型为int32_t,请参见[OH_VideoEncodeBitrateMode](_video_encoder.md#oh_videoencodebitratemode)。
2168
2169**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2170
2171**起始版本:** 9
2172
2173### OH_MD_KEY_VIDEO_ENCODER_ENABLE_TEMPORAL_SCALABILITY
2174
2175```
2176const char* OH_MD_KEY_VIDEO_ENCODER_ENABLE_TEMPORAL_SCALABILITY
2177```
2178**描述**
2179使能分层编码的键,值类型为int32_t,1表示使能,0表示其它情况。
2180
2181使用前可以通过[OH_AVCapability_IsFeatureSupported](_a_v_capability.md#oh_avcapability_isfeaturesupported)接口和枚举值
2182[VIDEO_ENCODER_TEMPORAL_SCALABILITY](_a_v_capability.md#oh_avcapabilityfeature)来查询当前视频编码器是否支持分层编码。
2183
2184该键是可选的且只用于视频编码,在configure阶段使用。
2185
2186**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2187
2188**起始版本:** 12
2189
2190
2191### OH_MD_KEY_VIDEO_ENCODER_LTR_FRAME_COUNT
2192
2193```
2194const char* OH_MD_KEY_VIDEO_ENCODER_LTR_FRAME_COUNT
2195```
2196**描述**
2197描述长期参考帧个数的键,值类型为int32_t,必须在支持的值范围内使用。 
2198
2199使用前可以通过[OH_AVCapability_GetFeatureProperties](_a_v_capability.md#oh_avcapability_getfeatureproperties)接口和枚举值[VIDEO_ENCODER_LONG_TERM_REFERENCE](_a_v_capability.md#oh_avcapabilityfeature)来查询支持的LTR数目。 
2200
2201该键是可选的且只用于视频编码,在configure阶段使用。
2202
2203**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2204
2205**起始版本:** 12
2206
2207
2208### OH_MD_KEY_VIDEO_ENCODER_PER_FRAME_MARK_LTR
2209
2210```
2211const char* OH_MD_KEY_VIDEO_ENCODER_PER_FRAME_MARK_LTR
2212```
2213**描述**
2214标记当前帧为长期参考帧的键,值类型为int32_t,1表示被标记,0表示其它情况。 
2215
2216只在长期参考帧个数被配置后生效。 
2217
2218该键是可选的且只用于视频编码输入轮转中,配置后立即生效。
2219
2220**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2221
2222**起始版本:** 12
2223
2224
2225### OH_MD_KEY_VIDEO_ENCODER_PER_FRAME_USE_LTR
2226
2227```
2228const char* OH_MD_KEY_VIDEO_ENCODER_PER_FRAME_USE_LTR
2229```
2230**描述**
2231描述当前帧参考的长期参考帧帧号的键,值类型为int32_t。
2232
2233该键是可选的且只用于视频编码输入轮转中,配置后立即生效。
2234
2235**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2236
2237**起始版本:** 12
2238
2239
2240### OH_MD_KEY_VIDEO_ENCODER_QP_MAX
2241
2242```
2243const char* OH_MD_KEY_VIDEO_ENCODER_QP_MAX
2244```
2245**描述**
2246描述视频编码器允许的最大量化参数的键,值类型为int32_t。 
2247
2248configure/setparameter阶段使用,或随帧立即生效。
2249
2250**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2251
2252**起始版本:** 12
2253
2254
2255### OH_MD_KEY_VIDEO_ENCODER_QP_MIN
2256
2257```
2258const char* OH_MD_KEY_VIDEO_ENCODER_QP_MIN
2259```
2260**描述**
2261描述视频编码器允许的最小量化参数的键,值类型为int32_t。 
2262
2263configure/setparameter阶段使用,或随帧立即生效。
2264
2265**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2266
2267**起始版本:** 12
2268
2269
2270### OH_MD_KEY_VIDEO_ENCODER_QP_AVERAGE
2271
2272```
2273const char* OH_MD_KEY_VIDEO_ENCODER_QP_AVERAGE
2274```
2275**描述**
2276描述视频帧平均量化参数的键,值类型为int32_t。
2277
2278表示当前帧编码块的平均qp值,随OH_AVBuffer输出。
2279
2280**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2281
2282**起始版本:** 12
2283
2284
2285### OH_MD_KEY_VIDEO_ENCODER_MSE
2286
2287```
2288const char* OH_MD_KEY_VIDEO_ENCODER_MSE
2289```
2290**描述**
2291描述视频帧平方误差的键,值类型为double。
2292
2293表示当前帧编码块的MSE统计值,随OH_AVBuffer输出。
2294
2295**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2296
2297**起始版本:** 12
2298
2299
2300### OH_MD_KEY_VIDEO_ENCODER_TEMPORAL_GOP_REFERENCE_MODE
2301
2302```
2303const char* OH_MD_KEY_VIDEO_ENCODER_TEMPORAL_GOP_REFERENCE_MODE
2304```
2305**描述**
2306描述图片组内参考模式的键,值类型为int32_t,请参见[OH_TemporalGopReferenceMode](#oh_temporalgopreferencemode),只在使能分层编码时生效。 
2307
2308该键是可选的且只用于视频编码,在configure阶段使用。
2309
2310**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2311
2312**起始版本:** 12
2313
2314
2315### OH_MD_KEY_VIDEO_ENCODER_TEMPORAL_GOP_SIZE
2316
2317```
2318const char* OH_MD_KEY_VIDEO_ENCODER_TEMPORAL_GOP_SIZE
2319```
2320**描述**
2321描述图片组基本层图片的间隔大小的键,值类型为int32_t,只在使能分层编码时生效。
2322
2323该键是可选的且只用于视频编码,在configure阶段使用。
2324
2325**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2326
2327**起始版本:** 12
2328
2329
2330### OH_MD_KEY_VIDEO_IS_HDR_VIVID
2331
2332```
2333const char* OH_MD_KEY_VIDEO_IS_HDR_VIVID
2334```
2335**描述**
2336媒体文件中的视频轨是否为HDR Vivid的键,支持封装和解封装,值类型为int32_t。
2337
2338**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2339
2340**起始版本:** 11
2341
2342
2343### OH_MD_KEY_DECODING_TIMESTAMP
2344
2345```
2346const char* OH_MD_KEY_DECODING_TIMESTAMP
2347```
2348**描述**
2349AVBuffer中携带的音视频或字幕的sample对应的解码时间戳的键,以微秒为单位,值类型为int64_t。
2350
2351**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2352
2353**起始版本:** 12
2354
2355
2356### OH_MD_KEY_BUFFER_DURATION
2357
2358```
2359const char* OH_MD_KEY_BUFFER_DURATION
2360```
2361**描述**
2362AVBuffer中携带的音视频或字幕的sample对应的持续时间的键,以微秒为单位,值类型为int64_t。
2363
2364**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2365
2366**起始版本:** 12
2367
2368
2369### OH_MD_KEY_START_TIME
2370
2371```
2372const char* OH_MD_KEY_START_TIME
2373```
2374**描述**
2375媒体文件中第一帧起始位置开始时间的键,值类型为int64_t。
2376
2377**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2378
2379**起始版本:** 12
2380
2381### OH_MD_KEY_TRACK_START_TIME
2382
2383```
2384const char* OH_MD_KEY_TRACK_START_TIME
2385```
2386**描述**
2387轨道开始时间的键,值类型为int64_t。
2388
2389**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2390
2391**起始版本:** 12
2392
2393
2394### OH_MD_KEY_VIDEO_DECODER_OUTPUT_COLOR_SPACE
2395
2396```
2397const char* OH_MD_KEY_VIDEO_DECODER_OUTPUT_COLOR_SPACE
2398```
2399**描述**
2400设置视频解码器输出色彩空间的键,值类型为int32_t。
2401
2402支持的值为OH_COLORSPACE_BT709_LIMIT,请参见[OH_NativeBuffer_ColorSpace](../../reference/apis-arkgraphics2d/_o_h___native_buffer.md#oh_nativebuffer_colorspace-1)。
2403
2404在视频解码调用[OH_VideoDecoder_Configure](_video_decoder.md#oh_videodecoder_configure)接口时使用。
2405
2406如果支持色彩空间转换功能并配置了此键,则视频解码器会自动将HDR Vivid视频转码为色彩空间BT709的SDR视频。
2407
2408如果不支持色彩空间转换功能,则接口[OH_VideoDecoder_Configure](_video_decoder.md#oh_videodecoder_configure)返回错误码[AV_ERR_VIDEO_UNSUPPORTED_COLOR_SPACE_CONVERSION](_core.md#oh_averrcode-1)。
2409
2410如果输入视频不是HDR Vivid视频,则会通过回调函数[OH_AVCodecOnError](#oh_avcodeconerror)报告错误码[AV_ERR_VIDEO_UNSUPPORTED_COLOR_SPACE_CONVERSION](_core.md#oh_averrcode-1)。
2411
2412**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2413
2414**起始版本:** 12
2415
2416
2417### OH_MD_KEY_VIDEO_PER_FRAME_IS_LTR
2418
2419```
2420const char* OH_MD_KEY_VIDEO_PER_FRAME_IS_LTR
2421```
2422**描述**
2423当前OH_AVBuffer中输出的码流对应的帧是否为长期参考帧的键,值类型为int32_t,1表示是LTR,0表示其它情况。 
2424
2425该键是可选的且只用于视频编码输出轮转中。
2426
2427表示帧的属性。
2428
2429**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2430
2431**起始版本:** 12
2432
2433
2434### OH_MD_KEY_VIDEO_PER_FRAME_POC
2435
2436```
2437const char* OH_MD_KEY_VIDEO_PER_FRAME_POC
2438```
2439**描述**
2440描述帧的POC的键,值类型为int32_t。 
2441
2442该键是可选的且只用于视频编码输出轮转中。 
2443
2444表示帧的属性。
2445
2446**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2447
2448**起始版本:** 12
2449
2450
2451### OH_MD_KEY_VIDEO_PIC_HEIGHT
2452
2453```
2454const char* OH_MD_KEY_VIDEO_PIC_HEIGHT
2455```
2456**描述**
2457描述视频帧真实高度的键,值类型为int32_t。
2458
2459视频解码时调用[OH_VideoDecoder_GetOutputDescription](_video_decoder.md#oh_videodecoder_getoutputdescription)接口,可以从其返回的OH_AVFormat中解析出高度值。
2460
2461当解码输出码流<!--RP2--><!--RP2End-->变化时,也可从[OH_AVCodecOnStreamChanged](#oh_avcodeconstreamchanged)返回的OH_AVForamt实例中解析出高度值。
2462
2463**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2464
2465**起始版本:** 12
2466
2467
2468### OH_MD_KEY_VIDEO_PIC_WIDTH
2469
2470```
2471const char* OH_MD_KEY_VIDEO_PIC_WIDTH
2472```
2473**描述**
2474描述视频帧真实宽度的键,值类型为int32_t。
2475
2476视频解码时调用[OH_VideoDecoder_GetOutputDescription](_video_decoder.md#oh_videodecoder_getoutputdescription)接口,可以从其返回的OH_AVFormat中解析出宽度值。
2477
2478当解码输出码流<!--RP2--><!--RP2End-->变化时,也可从[OH_AVCodecOnStreamChanged](#oh_avcodeconstreamchanged)返回的OH_AVForamt实例中解析出宽度值。
2479
2480**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2481
2482**起始版本:** 12
2483
2484
2485### OH_MD_KEY_VIDEO_SLICE_HEIGHT
2486
2487```
2488const char* OH_MD_KEY_VIDEO_SLICE_HEIGHT
2489```
2490**描述**
2491描述视频帧高跨距的键,值类型为int32_t。
2492
2493高跨距是指从Y平面顶部到U平面顶部必须偏移的行数。本质上,U平面的偏移量是sliceHeight \* stride。 
2494
2495U/V平面的高度可以根据颜色格式计算,尽管它通常是未定义的,并且取决于设备和版本。
2496
2497**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2498
2499**起始版本:** 12
2500
2501
2502### OH_MD_KEY_VIDEO_STRIDE
2503
2504```
2505const char* OH_MD_KEY_VIDEO_STRIDE
2506```
2507**描述**
2508描述视频帧宽跨距的键,值类型为int32_t。
2509
2510宽跨距是像素的索引与正下方像素的索引之间的差。 
2511
2512对于YUV420格式,宽跨距对应于Y平面,U和V平面的跨距可以根据颜色格式计算,但通常未定义,并且取决于设备和版本。
2513
2514**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2515
2516**起始版本:** 12
2517
2518
2519### OH_MD_KEY_WIDTH
2520
2521```
2522const char* OH_MD_KEY_WIDTH
2523```
2524**描述**
2525视频宽度的键,值类型为int32_t。
2526
2527**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2528
2529**起始版本:** 9
2530
2531
2532### OH_MD_MAX_INPUT_BUFFER_COUNT
2533
2534```
2535const char* OH_MD_MAX_INPUT_BUFFER_COUNT
2536```
2537**描述**
2538最大输入缓冲区个数的键,值类型为int32_t。
2539
2540**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2541
2542**起始版本:** 10
2543
2544
2545### OH_MD_MAX_OUTPUT_BUFFER_COUNT
2546
2547```
2548const char* OH_MD_MAX_OUTPUT_BUFFER_COUNT
2549```
2550**描述**
2551最大输出缓冲区个数的键,值类型int32_t。
2552
2553**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2554
2555**起始版本:** 10
2556
2557
2558### OH_MD_KEY_VIDEO_SAR
2559
2560```
2561const char* OH_MD_KEY_VIDEO_SAR
2562```
2563**描述**
2564样本长宽比的键,值类型为double。
2565
2566**系统能力:** SystemCapability.Multimedia.Media.CodecBase
2567
2568**起始版本:** 12