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 << 0U,<br/>FRONT_RIGHT = 1ULL << 1U,<br/>FRONT_CENTER = 1ULL << 2U,<br/>LOW_FREQUENCY = 1ULL << 3U,<br/>BACK_LEFT = 1ULL << 4U,<br/>BACK_RIGHT = 1ULL << 5U,<br/>FRONT_LEFT_OF_CENTER = 1ULL << 6U,<br/>FRONT_RIGHT_OF_CENTER = 1ULL << 7U,<br/>BACK_CENTER = 1ULL << 8U,<br/>SIDE_LEFT = 1ULL << 9U,<br/>SIDE_RIGHT = 1ULL << 10U,<br/>TOP_CENTER = 1ULL << 11U,<br/>TOP_FRONT_LEFT = 1ULL << 12U,<br/>TOP_FRONT_CENTER = 1ULL << 13U,<br/>TOP_FRONT_RIGHT = 1ULL << 14U,<br/>TOP_BACK_LEFT = 1ULL << 15U,<br/>TOP_BACK_CENTER = 1ULL << 16U,<br/>TOP_BACK_RIGHT = 1ULL << 17U,<br/>STEREO_LEFT = 1ULL << 29U,<br/>STEREO_RIGHT = 1ULL << 30U,<br/>WIDE_LEFT = 1ULL << 31U,<br/>WIDE_RIGHT = 1ULL << 32U,<br/>SURROUND_DIRECT_LEFT = 1ULL << 33U,<br/>SURROUND_DIRECT_RIGHT = 1ULL << 34U,<br/>LOW_FREQUENCY_2 = 1ULL << 35U,<br/>TOP_SIDE_LEFT = 1ULL << 36U,<br/>TOP_SIDE_RIGHT = 1ULL << 37U,<br/>BOTTOM_FRONT_CENTER = 1ULL << 38U,<br/>BOTTOM_FRONT_LEFT = 1ULL << 39U,<br/>BOTTOM_FRONT_RIGHT = 1ULL << 40U,<br/>AMBISONICS_ACN0 = 1ULL << 41U,<br/>AMBISONICS_ACN1 = 1ULL << 42U,<br/>AMBISONICS_ACN2 = 1ULL << 43U,<br/>AMBISONICS_ACN3 = 1ULL << 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 << 45U,<br/>AMBISONICS_ACN5 = 1ULL << 46U,<br/>AMBISONICS_ACN6 = 1ULL << 47U,<br/>AMBISONICS_ACN7 = 1ULL << 48U,<br/>AMBISONICS_ACN8 = 1ULL << 49U,<br/>AMBISONICS_ACN9 = 1ULL << 50U,<br/>AMBISONICS_ACN10 = 1ULL << 51U,<br/>AMBISONICS_ACN11 = 1ULL << 52U,<br/>AMBISONICS_ACN12 = 1ULL << 53U,<br/>AMBISONICS_ACN13 = 1ULL << 54U,<br/>AMBISONICS_ACN14 = 1ULL << 55U,<br/>AMBISONICS_ACN15 = 1ULL << 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 2248在configure/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 2263在configure/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