From fed8e4a25dfbf3d7ac3e9c56ecbd46a6d88138e3 Mon Sep 17 00:00:00 2001 From: y30025806 Date: Tue, 17 Jun 2025 16:12:38 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=BE=85=E5=8A=A9?= =?UTF-8?q?=E8=BD=A8=E8=A7=A3=E6=9E=90=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: y30025806 --- .../media/avcodec/audio-video-demuxer.md | 66 ++++++++++++------- .../reference/apis-avcodec-kit/_codec_base.md | 48 +++++++++++++- .../reference/apis-avcodec-kit/_core.md | 37 +++++++++++ .../native__avcodec__base_8h.md | 7 +- .../apis-avcodec-kit/native__avformat_8h.md | 1 + 5 files changed, 130 insertions(+), 29 deletions(-) diff --git a/zh-cn/application-dev/media/avcodec/audio-video-demuxer.md b/zh-cn/application-dev/media/avcodec/audio-video-demuxer.md index d2d005904bf..2e64cf85fd3 100644 --- a/zh-cn/application-dev/media/avcodec/audio-video-demuxer.md +++ b/zh-cn/application-dev/media/avcodec/audio-video-demuxer.md @@ -234,6 +234,18 @@ target_link_libraries(sample PUBLIC libnative_media_core.so) printf("get track type from track format failed"); return; } + if (trackType == OH_MediaType::MEDIA_TYPE_AUXILIARY) { + const char *referenceType; + if (!OH_AVFormat_GetStringValue(trackFormat, OH_MD_KEY_TRACK_REFERENCE_TYPE, &referenceType)) { + printf("get reference type from auxiliary track failed"); + } + int32_t* referenceIds; + size_t referenceIdsCount; + if (!OH_AVFormat_GetIntBuffer(trackFormat, OH_MD_KEY_TRACK_REFERENCE_TYPE, &referenceIds, &referenceIdsCount)) { + printf("get reference track ids from auxiliary track failed"); + } + // 根据辅助轨类型处理轨道参考关系 + } static_cast(trackType) == OH_MediaType::MEDIA_TYPE_AUD ? audioTrackIndex = index : videoTrackIndex = index; // 获取视频轨宽高。 if (trackType == OH_MediaType::MEDIA_TYPE_VID) { @@ -392,32 +404,36 @@ target_link_libraries(sample PUBLIC libnative_media_core.so) > **说明:** > 正常解析时才可以获取对应属性数据;如果文件信息错误或缺失,将导致解析异常,无法获取数据。 +> 辅助轨属性范围与实际媒体类型(音频、视频)保持一致 > > 数据类型及详细取值范围参考[媒体数据键值对](../../reference/apis-avcodec-kit/_codec_base.md#媒体数据键值对)。 **表2** 轨道级别属性支持范围 -| 名称 | 描述 | 视频轨支持 | 音频轨支持 | 字幕轨支持 | -| -- | -- | -- | -- | -- | -|OH_MD_KEY_CODEC_MIME|码流编解码器类型的键|√|√|√| -|OH_MD_KEY_TRACK_TYPE|码流媒体类型的键|√|√|√| -|OH_MD_KEY_TRACK_START_TIME|码流起始时间的键|√|√|√| -|OH_MD_KEY_BITRATE|码流比特率的键|√|√|-| -|OH_MD_KEY_LANGUAGE|码流语言类型的键|√|√|-| -|OH_MD_KEY_CODEC_CONFIG|编解码器特定数据的键,视频中表示传递参数集,音频中表示传递解码器的参数配置信息|√|√|-| -|OH_MD_KEY_WIDTH|视频流宽度的键|√|-|-| -|OH_MD_KEY_HEIGHT|视频流高度的键|√|-|-| -|OH_MD_KEY_FRAME_RATE|视频流帧率的键|√|-|-| -|OH_MD_KEY_ROTATION|视频流旋转角度的键|√|-|-| -|OH_MD_KEY_VIDEO_SAR|视频流样本长宽比的键|√|-|-| -|OH_MD_KEY_PROFILE|视频流编码档次,只针对 h265 码流使用|√|-|-| -|OH_MD_KEY_RANGE_FLAG|视频流视频YUV值域标志的键,只针对 h265 码流使用|√|-|-| -|OH_MD_KEY_COLOR_PRIMARIES|视频流视频色域的键,只针对 h265 码流使用|√|-|-| -|OH_MD_KEY_TRANSFER_CHARACTERISTICS|视频流视频传递函数的键,只针对 h265 码流使用|√|-|-| -|OH_MD_KEY_MATRIX_COEFFICIENTS|视频矩阵系数的键,只针对 h265 码流使用|√|-|-| -|OH_MD_KEY_VIDEO_IS_HDR_VIVID|视频流标记是否为 HDRVivid 的键,只针对 HDRVivid 码流使用|√|-|-| -|OH_MD_KEY_AUD_SAMPLE_RATE|音频流采样率的键|-|√|-| -|OH_MD_KEY_AUD_CHANNEL_COUNT|音频流通道数的键|-|√|-| -|OH_MD_KEY_CHANNEL_LAYOUT|音频流所需编码通道布局的键|-|√|-| -|OH_MD_KEY_AUDIO_SAMPLE_FORMAT|音频流样本格式的键|-|√|-| -|OH_MD_KEY_AAC_IS_ADTS|aac格式的键,只针对 aac 码流使用|-|√|-| -|OH_MD_KEY_BITS_PER_CODED_SAMPLE|音频流每个编码样本位数的键|-|√|-| \ No newline at end of file +| 名称 | 描述 | 视频轨支持 | 音频轨支持 | 字幕轨支持 | 辅助轨支持 | +| -- | -- | -- | -- | -- | -- | +|OH_MD_KEY_CODEC_MIME|码流编解码器类型的键|√|√|√|√| +|OH_MD_KEY_TRACK_TYPE|码流媒体类型的键|√|√|√|√| +|OH_MD_KEY_TRACK_START_TIME|码流起始时间的键|√|√|√|√| +|OH_MD_KEY_BITRATE|码流比特率的键|√|√|-|√| +|OH_MD_KEY_LANGUAGE|码流语言类型的键|√|√|-|√| +|OH_MD_KEY_CODEC_CONFIG|编解码器特定数据的键,视频中表示传递参数集,音频中表示传递解码器的参数配置信息|√|√|-|√| +|OH_MD_KEY_WIDTH|视频流宽度的键|√|-|-|√| +|OH_MD_KEY_HEIGHT|视频流高度的键|√|-|-|√| +|OH_MD_KEY_FRAME_RATE|视频流帧率的键|√|-|-|√| +|OH_MD_KEY_ROTATION|视频流旋转角度的键|√|-|-|√| +|OH_MD_KEY_VIDEO_SAR|视频流样本长宽比的键|√|-|-|√| +|OH_MD_KEY_PROFILE|视频流编码档次,只针对 h265 码流使用|√|-|-|√| +|OH_MD_KEY_RANGE_FLAG|视频流视频YUV值域标志的键,只针对 h265 码流使用|√|-|-|√| +|OH_MD_KEY_COLOR_PRIMARIES|视频流视频色域的键,只针对 h265 码流使用|√|-|-|√| +|OH_MD_KEY_TRANSFER_CHARACTERISTICS|视频流视频传递函数的键,只针对 h265 码流使用|√|-|-|√| +|OH_MD_KEY_MATRIX_COEFFICIENTS|视频矩阵系数的键,只针对 h265 码流使用|√|-|-|√| +|OH_MD_KEY_VIDEO_IS_HDR_VIVID|视频流标记是否为 HDRVivid 的键,只针对 HDRVivid 码流使用|√|-|-|√| +|OH_MD_KEY_AUD_SAMPLE_RATE|音频流采样率的键|-|√|-|√| +|OH_MD_KEY_AUD_CHANNEL_COUNT|音频流通道数的键|-|√|-|√| +|OH_MD_KEY_CHANNEL_LAYOUT|音频流所需编码通道布局的键|-|√|-|√| +|OH_MD_KEY_AUDIO_SAMPLE_FORMAT|音频流样本格式的键|-|√|-|√| +|OH_MD_KEY_AAC_IS_ADTS|aac格式的键,只针对 aac 码流使用|-|√|-|√| +|OH_MD_KEY_BITS_PER_CODED_SAMPLE|音频流每个编码样本位数的键|-|√|-|√| +|OH_MD_KEY_REFERENCE_TRACK_IDS|√|√|√|√| +|OH_MD_KEY_TRACK_REFERENCE_TYPE|-|-|-|√| +|OH_MD_KEY_TRACK_DESCRIPTION|-|-|-|√| \ No newline at end of file diff --git a/zh-cn/application-dev/reference/apis-avcodec-kit/_codec_base.md b/zh-cn/application-dev/reference/apis-avcodec-kit/_codec_base.md index 5313628ec64..cd2d240a424 100644 --- a/zh-cn/application-dev/reference/apis-avcodec-kit/_codec_base.md +++ b/zh-cn/application-dev/reference/apis-avcodec-kit/_codec_base.md @@ -157,6 +157,9 @@ CodecBase模块提供用于音视频封装、解封装、编解码基础功能 | [OH_MD_KEY_CODEC_MIME](#oh_md_key_codec_mime) | 编解码器[MIME](#媒体编解码格式)类型的键,值类型为string。该键是可选的。 | | [OH_MD_KEY_VIDEO_SAR](#oh_md_key_video_sar) | 样本长宽比的键,值类型为double。 | | [OH_MD_KEY_CREATION_TIME](#oh_md_key_creation_time) | 媒体文件创建时间的元数据,值类型为string。 | +| [OH_MD_KEY_REFERENCE_TRACK_IDS](#oh_md_key_reference_track_ids) | 媒体文件轨道间参考、被参考关系,值类型为int32_t\*。 | +| [OH_MD_KEY_TRACK_REFERENCE_TYPE](#oh_md_key_track_reference_type) | 媒体文件辅助轨类型,值类型为string。 | +| [OH_MD_KEY_TRACK_DESCRIPTION](#oh_md_key_track_description) | 媒体文件辅助轨描述信息,值类型为string。 | ## 汇总 @@ -226,7 +229,7 @@ CodecBase模块提供用于音视频封装、解封装、编解码基础功能 | -------- | -------- | | [AudioChannelSet](#audiochannelset) : uint64_t {
FRONT_LEFT = 1ULL << 0U,
FRONT_RIGHT = 1ULL << 1U,
FRONT_CENTER = 1ULL << 2U,
LOW_FREQUENCY = 1ULL << 3U,
BACK_LEFT = 1ULL << 4U,
BACK_RIGHT = 1ULL << 5U,
FRONT_LEFT_OF_CENTER = 1ULL << 6U,
FRONT_RIGHT_OF_CENTER = 1ULL << 7U,
BACK_CENTER = 1ULL << 8U,
SIDE_LEFT = 1ULL << 9U,
SIDE_RIGHT = 1ULL << 10U,
TOP_CENTER = 1ULL << 11U,
TOP_FRONT_LEFT = 1ULL << 12U,
TOP_FRONT_CENTER = 1ULL << 13U,
TOP_FRONT_RIGHT = 1ULL << 14U,
TOP_BACK_LEFT = 1ULL << 15U,
TOP_BACK_CENTER = 1ULL << 16U,
TOP_BACK_RIGHT = 1ULL << 17U,
STEREO_LEFT = 1ULL << 29U,
STEREO_RIGHT = 1ULL << 30U,
WIDE_LEFT = 1ULL << 31U,
WIDE_RIGHT = 1ULL << 32U,
SURROUND_DIRECT_LEFT = 1ULL << 33U,
SURROUND_DIRECT_RIGHT = 1ULL << 34U,
LOW_FREQUENCY_2 = 1ULL << 35U,
TOP_SIDE_LEFT = 1ULL << 36U,
TOP_SIDE_RIGHT = 1ULL << 37U,
BOTTOM_FRONT_CENTER = 1ULL << 38U,
BOTTOM_FRONT_LEFT = 1ULL << 39U,
BOTTOM_FRONT_RIGHT = 1ULL << 40U,
AMBISONICS_ACN0 = 1ULL << 41U,
AMBISONICS_ACN1 = 1ULL << 42U,
AMBISONICS_ACN2 = 1ULL << 43U,
AMBISONICS_ACN3 = 1ULL << 44U,
AMBISONICS_W = AMBISONICS_ACN0,
AMBISONICS_Y = AMBISONICS_ACN1,
AMBISONICS_Z = AMBISONICS_ACN2,
AMBISONICS_X = AMBISONICS_ACN3,
AMBISONICS_ACN4 = 1ULL << 45U,
AMBISONICS_ACN5 = 1ULL << 46U,
AMBISONICS_ACN6 = 1ULL << 47U,
AMBISONICS_ACN7 = 1ULL << 48U,
AMBISONICS_ACN8 = 1ULL << 49U,
AMBISONICS_ACN9 = 1ULL << 50U,
AMBISONICS_ACN10 = 1ULL << 51U,
AMBISONICS_ACN11 = 1ULL << 52U,
AMBISONICS_ACN12 = 1ULL << 53U,
AMBISONICS_ACN13 = 1ULL << 54U,
AMBISONICS_ACN14 = 1ULL << 55U,
AMBISONICS_ACN15 = 1ULL << 56U
} | 音频声道数集合, 将每一个声道数映射为int64_t的变量。(API11废弃)| | [AudioChannelLayout](#audiochannellayout) : uint64_t {
UNKNOWN_CHANNEL_LAYOUT = 0,
MONO = (AudioChannelSet::FRONT_CENTER),
STEREO = (AudioChannelSet::FRONT_LEFT \| AudioChannelSet::FRONT_RIGHT),
CH_2POINT1 = (STEREO \| AudioChannelSet::LOW_FREQUENCY),
CH_2_1 = (STEREO \| AudioChannelSet::BACK_CENTER),
SURROUND = (STEREO \| AudioChannelSet::FRONT_CENTER),
CH_3POINT1 = (SURROUND \| AudioChannelSet::LOW_FREQUENCY),
CH_4POINT0 = (SURROUND \| AudioChannelSet::BACK_CENTER),
CH_4POINT1 = (CH_4POINT0 \| AudioChannelSet::LOW_FREQUENCY),
CH_2_2 = (STEREO \| AudioChannelSet::SIDE_LEFT \| AudioChannelSet::SIDE_RIGHT),
QUAD = (STEREO \| AudioChannelSet::BACK_LEFT \| AudioChannelSet::BACK_RIGHT),
CH_5POINT0 = (SURROUND \| AudioChannelSet::SIDE_LEFT \| AudioChannelSet::SIDE_RIGHT),
CH_5POINT1 = (CH_5POINT0 \| AudioChannelSet::LOW_FREQUENCY),
CH_5POINT0_BACK = (SURROUND \| AudioChannelSet::BACK_LEFT \| AudioChannelSet::BACK_RIGHT),
CH_5POINT1_BACK = (CH_5POINT0_BACK \| AudioChannelSet::LOW_FREQUENCY),
CH_6POINT0 = (CH_5POINT0 \| AudioChannelSet::BACK_CENTER),
CH_6POINT0_FRONT = (CH_2_2 \| AudioChannelSet::FRONT_LEFT_OF_CENTER \| AudioChannelSet::FRONT_RIGHT_OF_CENTER),
HEXAGONAL = (CH_5POINT0_BACK \| AudioChannelSet::BACK_CENTER),
CH_6POINT1 = (CH_5POINT1 \| AudioChannelSet::BACK_CENTER),
CH_6POINT1_BACK = (CH_5POINT1_BACK \| AudioChannelSet::BACK_CENTER),
CH_6POINT1_FRONT = (CH_6POINT0_FRONT \| AudioChannelSet::LOW_FREQUENCY),
CH_7POINT0 = (CH_5POINT0 \| AudioChannelSet::BACK_LEFT \| AudioChannelSet::BACK_RIGHT),
CH_7POINT0_FRONT = (CH_5POINT0 \| AudioChannelSet::FRONT_LEFT_OF_CENTER \| AudioChannelSet::FRONT_RIGHT_OF_CENTER),
CH_7POINT1 = (CH_5POINT1 \| AudioChannelSet::BACK_LEFT \| AudioChannelSet::BACK_RIGHT),
CH_7POINT1_WIDE = (CH_5POINT1 \| AudioChannelSet::FRONT_LEFT_OF_CENTER \| AudioChannelSet::FRONT_RIGHT_OF_CENTER),
CH_7POINT1_WIDE_BACK, CH_3POINT1POINT2 = (CH_3POINT1 \| AudioChannelSet::TOP_FRONT_LEFT \| AudioChannelSet::TOP_FRONT_RIGHT),
CH_5POINT1POINT2 = (CH_5POINT1 \| AudioChannelSet::TOP_SIDE_LEFT \| AudioChannelSet::TOP_SIDE_RIGHT),
CH_5POINT1POINT4, CH_7POINT1POINT2 = (CH_7POINT1 \| AudioChannelSet::TOP_SIDE_LEFT \| AudioChannelSet::TOP_SIDE_RIGHT),
CH_7POINT1POINT4, CH_9POINT1POINT4 = (CH_7POINT1POINT4 \| AudioChannelSet::WIDE_LEFT \| AudioChannelSet::WIDE_RIGHT),
CH_9POINT1POINT6 = (CH_9POINT1POINT4 \| AudioChannelSet::TOP_SIDE_LEFT \| AudioChannelSet::TOP_SIDE_RIGHT),
CH_10POINT2, CH_22POINT2, OCTAGONAL = (CH_5POINT0 \| AudioChannelSet::BACK_LEFT \| AudioChannelSet::BACK_CENTER \| AudioChannelSet::BACK_RIGHT),
HEXADECAGONAL, STEREO_DOWNMIX = (AudioChannelSet::STEREO_LEFT \| AudioChannelSet::STEREO_RIGHT),
HOA_FIRST,
HOA_SECOND,
HOA_THIRD
} | 音频声道数类型,将用户申请的解码器输出格式表示为编解码器的声道类型。(API11废弃) | -| [OH_MediaType](#oh_mediatype-1) {
MEDIA_TYPE_AUD = 0,
MEDIA_TYPE_VID = 1,
MEDIA_TYPE_SUBTITILE = 2
} | 媒体类型。 | +| [OH_MediaType](#oh_mediatype-1) {
MEDIA_TYPE_AUD = 0,
MEDIA_TYPE_VID = 1,
MEDIA_TYPE_SUBTITILE = 2,
MEDIA_TYPE_TIMED_METADATA = 5,
MEDIA_TYPE_AUXILIARY = 6
} | 媒体类型。 | | [OH_AACProfile](#oh_aacprofile-1) {
AAC_PROFILE_LC = 0,
AAC_PROFILE_HE = 3,
AAC_PROFILE_HE_V2 = 4
} | AAC档次。
(AAC_PROFILE_HE, AAC_PROFILE_HE_V2暂未开放) | | [OH_AVCProfile](#oh_avcprofile-1) {
AVC_PROFILE_BASELINE = 0,
AVC_PROFILE_HIGH = 4,
AVC_PROFILE_MAIN = 8
} | AVC档次。 | | [OH_HEVCProfile](#oh_hevcprofile-1) {
HEVC_PROFILE_MAIN = 0,
HEVC_PROFILE_MAIN_10 = 1,
HEVC_PROFILE_MAIN_STILL = 2,
HEVC_PROFILE_MAIN_10_HDR10 = 3,
HEVC_PROFILE_MAIN_10_HDR10_PLUS = 4
} | HEVC档次。
(HEVC_PROFILE_MAIN_10_HDR10、HEVC_PROFILE_MAIN_10_HDR10_PLUS在API 14废弃)。| @@ -362,6 +365,9 @@ CodecBase模块提供用于音视频封装、解封装、编解码基础功能 | const char \* [OH_MD_KEY_CODEC_MIME](#oh_md_key_codec_mime) | 编解码器[MIME](#媒体编解码格式)类型的键,值类型为string。 | | const char \* [OH_MD_KEY_VIDEO_SAR](#oh_md_key_video_sar) | 样本长宽比的键,值类型为double。 | | const char \* [OH_MD_KEY_CREATION_TIME](#oh_md_key_creation_time) | 媒体文件创建时间的元数据,值类型为string。 | +| const char \* [OH_MD_KEY_REFERENCE_TRACK_IDS](#oh_md_key_reference_track_ids) | 媒体文件轨道间参考、被参考关系,值类型为int32_t\*。 | +| const char \* [OH_MD_KEY_TRACK_REFERENCE_TYPE](#oh_md_key_track_reference_type) | 媒体文件辅助轨类型,值类型为string。 | +| const char \* [OH_MD_KEY_TRACK_DESCRIPTION](#oh_md_key_track_description) | 媒体文件辅助轨描述信息,值类型为string。 | ## 类型定义说明 @@ -1333,6 +1339,8 @@ enum OH_MediaType | MEDIA_TYPE_AUD | 音频轨。 | | MEDIA_TYPE_VID | 视频轨。 | | MEDIA_TYPE_SUBTITILE | 字幕轨。
**起始版本:** 12 | +| MEDIA_TYPE_TIMED_METADATA | 时间元数据信息轨。
**起始版本:** 20 | +| MEDIA_TYPE_AUXILIARY | 辅助轨。
**起始版本:** 20 | ### OH_MPEG2Level @@ -3191,4 +3199,40 @@ const char* OH_MD_KEY_VIDEO_ENCODER_REPEAT_PREVIOUS_MAX_COUNT **系统能力:** SystemCapability.Multimedia.Media.CodecBase -**起始版本:** 18 \ No newline at end of file +**起始版本:** 18 + +### OH_MD_KEY_REFERENCE_TRACK_IDS + +``` +const char* OH_MD_KEY_REFERENCE_TRACK_IDS +``` +**描述** +媒体文件轨道间参考、被参考关系,值类型为int32_t\*。 + +**系统能力:** SystemCapability.Multimedia.Media.CodecBase + +**起始版本:** 20 + +### OH_MD_KEY_TRACK_REFERENCE_TYPE + +``` +const char* OH_MD_KEY_TRACK_REFERENCE_TYPE +``` +**描述** +媒体文件辅助轨类型,值类型为string。 + +**系统能力:** SystemCapability.Multimedia.Media.CodecBase + +**起始版本:** 20 + +### OH_MD_KEY_TRACK_DESCRIPTION + +``` +const char* OH_MD_KEY_TRACK_DESCRIPTION +``` +**描述** +媒体文件辅助轨描述信息,值类型为string。 + +**系统能力:** SystemCapability.Multimedia.Media.CodecBase + +**起始版本:** 20 \ No newline at end of file diff --git a/zh-cn/application-dev/reference/apis-avcodec-kit/_core.md b/zh-cn/application-dev/reference/apis-avcodec-kit/_core.md index 393f1fb172e..52cc5e72678 100644 --- a/zh-cn/application-dev/reference/apis-avcodec-kit/_core.md +++ b/zh-cn/application-dev/reference/apis-avcodec-kit/_core.md @@ -94,6 +94,7 @@ Core模块提供用于媒体系统的基础骨干能力,包含内存、错误 | bool [OH_AVFormat_GetDoubleValue](#oh_avformat_getdoublevalue) (struct [OH_AVFormat](#oh_avformat) \*format, const char \*key, double \*out) | 从OH_AVFormat的key获取double类型的值。 | | bool [OH_AVFormat_GetStringValue](#oh_avformat_getstringvalue) (struct [OH_AVFormat](#oh_avformat) \*format, const char \*key, const char \*\*out) | 从OH_AVFormat的key获取string类型的值。 | | bool [OH_AVFormat_GetBuffer](#oh_avformat_getbuffer) (struct [OH_AVFormat](#oh_avformat) \*format, const char \*key, uint8_t \*\*addr, size_t \*size) | 从OH_AVFormat中读取指定长度的数据块。 | +| bool [OH_AVFormat_GetIntBuffer](#oh_avformat_getintbuffer) (struct [OH_AVFormat](#oh_avformat) \*format, const char \*key, int32_t \*\*addr, size_t \*size) | 从OH_AVFormat中读取指定长度的数据块。 | | const char \* [OH_AVFormat_DumpInfo](#oh_avformat_dumpinfo) (struct [OH_AVFormat](#oh_avformat) \*format) | 返回OH_AVFormat中包含的key-value组成的字符串。 | | [OH_AVMemory](#oh_avmemory) \* [OH_AVMemory_Create](#oh_avmemory_create) (int32_t size) | 创建OH_AVMemory实例的指针。(API11废弃) | | uint8_t \* [OH_AVMemory_GetAddr](#oh_avmemory_getaddr) (struct [OH_AVMemory](#oh_avmemory) \*mem) | 获取内存虚拟地址。 (API11废弃)| @@ -1032,6 +1033,42 @@ bool OH_AVFormat_GetBuffer (struct OH_AVFormat *format, const char *key, uint8_t 5. size为空指针; 6. 获取的key不存在或者未设置。 +### OH_AVFormat_GetIntBuffer() + +``` +bool OH_AVFormat_GetIntBuffer (struct OH_AVFormat *format, const char *key, int32_t ** addr, size_t *size) +``` + +**描述** + +从OH_AVFormat中读取指定长度的数据块。 + +**系统能力:** SystemCapability.Multimedia.Media.Core + +**起始版本:** 9 + +**参数:** + +| 名称 | 描述 | +| -------- | -------- | +| format | 指向OH_AVFormat实例的指针。 | +| key | 要读取数据的键。 | +| addr | 保存数据内存的指针。 | +| size | 读到数据的元素个数。 | + +**返回:** + +返回值为TRUE表示成功,返回值为FALSE表示失败。 + +可能的失败原因: + +1. 输入format为空指针; +2. 输入format参数结构校验失败; +3. 输入key为空指针; +4. 输入addr为空指针; +5. size为空指针; + +| bool [OH_AVFormat_GetIntBuffer](#oh_avformat_getintbuffer) (struct [OH_AVFormat](#oh_avformat) \*format, const char \*key, int32_t \*\*addr, size_t \*size) | 从OH_AVFormat中读取指定长度的数据块。 | ### OH_AVFormat_GetDoubleValue() diff --git a/zh-cn/application-dev/reference/apis-avcodec-kit/native__avcodec__base_8h.md b/zh-cn/application-dev/reference/apis-avcodec-kit/native__avcodec__base_8h.md index 053d86a6500..d2f31e7f468 100644 --- a/zh-cn/application-dev/reference/apis-avcodec-kit/native__avcodec__base_8h.md +++ b/zh-cn/application-dev/reference/apis-avcodec-kit/native__avcodec__base_8h.md @@ -66,7 +66,7 @@ | 名称 | 描述 | | -------- | -------- | -| [OH_MediaType](_codec_base.md#oh_mediatype-1) {
MEDIA_TYPE_AUD = 0,
MEDIA_TYPE_VID = 1,
MEDIA_TYPE_SUBTITILE = 2
} | 媒体类型。 | +| [OH_MediaType](_codec_base.md#oh_mediatype-1) {
MEDIA_TYPE_AUD = 0,
MEDIA_TYPE_VID = 1,
MEDIA_TYPE_SUBTITILE = 2,
MEDIA_TYPE_TIMED_METADATA = 5,
MEDIA_TYPE_AUXILIARY = 6
} | 媒体类型。 | | [OH_AACProfile](_codec_base.md#oh_aacprofile-1) {
AAC_PROFILE_LC = 0,
AAC_PROFILE_HE = 3,
AAC_PROFILE_HE_V2 = 4
} | AAC档次。
(AAC_PROFILE_HE, AAC_PROFILE_HE_V2暂未开放) | | [OH_AVCProfile](_codec_base.md#oh_avcprofile-1) {
AVC_PROFILE_BASELINE = 0,
AVC_PROFILE_HIGH = 4,
AVC_PROFILE_MAIN = 8
} | AVC档次。 | | [OH_HEVCProfile](_codec_base.md#oh_hevcprofile-1) {
HEVC_PROFILE_MAIN = 0,
HEVC_PROFILE_MAIN_10 = 1,
HEVC_PROFILE_MAIN_STILL = 2,
HEVC_PROFILE_MAIN_10_HDR10 = 3,
HEVC_PROFILE_MAIN_10_HDR10_PLUS = 4
} | HEVC档次。
(HEVC_PROFILE_MAIN_10_HDR10、HEVC_PROFILE_MAIN_10_HDR10_PLUS在API 14废弃)。 | @@ -199,4 +199,7 @@ | const char \* [OH_MD_KEY_VIDEO_DECODER_OUTPUT_COLOR_SPACE](_codec_base.md#oh_md_key_video_decoder_output_color_space) | 设置视频解码器输出色彩空间的键,值类型为int32_t。 支持的值为OH_COLORSPACE_BT709_LIMIT。| | const char \* [OH_MD_KEY_VIDEO_SAR](_codec_base.md#oh_md_key_video_sar) | 样本长宽比的键,值类型为double。 | | const char \* [OH_MD_KEY_CREATION_TIME](_codec_base.md#oh_md_key_creation_time) | 媒体文件创建时间的元数据,值类型为string。 | -| const char \* [OH_MD_KEY_VIDEO_DECODER_OUTPUT_ENABLE_VRR](_codec_base.md#oh_md_key_video_decoder_output_enable_vrr) | 解码器是否打开视频可变帧率功能的键,值类型为int32_t。 | \ No newline at end of file +| const char \* [OH_MD_KEY_VIDEO_DECODER_OUTPUT_ENABLE_VRR](_codec_base.md#oh_md_key_video_decoder_output_enable_vrr) | 解码器是否打开视频可变帧率功能的键,值类型为int32_t。 | +| const char \* [OH_MD_KEY_REFERENCE_TRACK_IDS](_codec_base.md#oh_md_key_reference_track_ids) | 媒体文件轨道间参考、被参考关系,值类型为int32_t\*。 | +| const char \* [OH_MD_KEY_TRACK_REFERENCE_TYPE](_codec_base.md#oh_md_key_track_reference_type) | 媒体文件辅助轨类型,值类型为string。 | +| const char \* [OH_MD_KEY_TRACK_DESCRIPTION](_codec_base.md#oh_md_key_track_description) | 媒体文件辅助轨描述信息,值类型为string。 | \ No newline at end of file diff --git a/zh-cn/application-dev/reference/apis-avcodec-kit/native__avformat_8h.md b/zh-cn/application-dev/reference/apis-avcodec-kit/native__avformat_8h.md index 6f922442a28..b351200cfeb 100644 --- a/zh-cn/application-dev/reference/apis-avcodec-kit/native__avformat_8h.md +++ b/zh-cn/application-dev/reference/apis-avcodec-kit/native__avformat_8h.md @@ -53,4 +53,5 @@ | bool [OH_AVFormat_GetDoubleValue](_core.md#oh_avformat_getdoublevalue) (struct [OH_AVFormat](_core.md#oh_avformat) \*format, const char \*key, double \*out) | 从OH_AVFormat的key获取double类型的值。 | | bool [OH_AVFormat_GetStringValue](_core.md#oh_avformat_getstringvalue) (struct [OH_AVFormat](_core.md#oh_avformat) \*format, const char \*key, const char \*\*out) | 从OH_AVFormat的key获取string类型的值。 | | bool [OH_AVFormat_GetBuffer](_core.md#oh_avformat_getbuffer) (struct [OH_AVFormat](_core.md#oh_avformat) \*format, const char \*key, uint8_t \*\*addr, size_t \*size) | 从OH_AVFormat中读取指定长度的数据块。 | +| bool [OH_AVFormat_GetIntBuffer](_core.md#oh_avformat_getintbuffer) (struct [OH_AVFormat](#oh_avformat) \*format, const char \*key, int32_t \*\*addr, size_t \*size) | 从OH_AVFormat中读取指定长度的数据块。 | | const char \* [OH_AVFormat_DumpInfo](_core.md#oh_avformat_dumpinfo) (struct [OH_AVFormat](_core.md#oh_avformat) \*format) | 返回OH_AVFormat中包含的key-value组成的字符串。 | -- Gitee From 44306efaf3c6c344903190d345daa3aad88e526c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E4=BF=8A=E6=99=96?= Date: Mon, 23 Jun 2025 09:05:55 +0000 Subject: [PATCH 2/5] update zh-cn/application-dev/reference/apis-avcodec-kit/_core.md. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 杨俊晖 --- zh-cn/application-dev/reference/apis-avcodec-kit/_core.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis-avcodec-kit/_core.md b/zh-cn/application-dev/reference/apis-avcodec-kit/_core.md index 52cc5e72678..a4b1329644c 100644 --- a/zh-cn/application-dev/reference/apis-avcodec-kit/_core.md +++ b/zh-cn/application-dev/reference/apis-avcodec-kit/_core.md @@ -94,7 +94,7 @@ Core模块提供用于媒体系统的基础骨干能力,包含内存、错误 | bool [OH_AVFormat_GetDoubleValue](#oh_avformat_getdoublevalue) (struct [OH_AVFormat](#oh_avformat) \*format, const char \*key, double \*out) | 从OH_AVFormat的key获取double类型的值。 | | bool [OH_AVFormat_GetStringValue](#oh_avformat_getstringvalue) (struct [OH_AVFormat](#oh_avformat) \*format, const char \*key, const char \*\*out) | 从OH_AVFormat的key获取string类型的值。 | | bool [OH_AVFormat_GetBuffer](#oh_avformat_getbuffer) (struct [OH_AVFormat](#oh_avformat) \*format, const char \*key, uint8_t \*\*addr, size_t \*size) | 从OH_AVFormat中读取指定长度的数据块。 | -| bool [OH_AVFormat_GetIntBuffer](#oh_avformat_getintbuffer) (struct [OH_AVFormat](#oh_avformat) \*format, const char \*key, int32_t \*\*addr, size_t \*size) | 从OH_AVFormat中读取指定长度的数据块。 | +| bool [OH_AVFormat_GetIntBuffer](#oh_avformat_getintbuffer) (struct [OH_AVFormat](#oh_avformat) \*format, const char \*key, int32_t \*\*addr, size_t \*size) | 从OH_AVFormat中读取一个int32_t数据的数组。 | | const char \* [OH_AVFormat_DumpInfo](#oh_avformat_dumpinfo) (struct [OH_AVFormat](#oh_avformat) \*format) | 返回OH_AVFormat中包含的key-value组成的字符串。 | | [OH_AVMemory](#oh_avmemory) \* [OH_AVMemory_Create](#oh_avmemory_create) (int32_t size) | 创建OH_AVMemory实例的指针。(API11废弃) | | uint8_t \* [OH_AVMemory_GetAddr](#oh_avmemory_getaddr) (struct [OH_AVMemory](#oh_avmemory) \*mem) | 获取内存虚拟地址。 (API11废弃)| -- Gitee From 59becb0405b320d7000920bec3ad6fb40e985210 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E4=BF=8A=E6=99=96?= Date: Mon, 23 Jun 2025 09:07:21 +0000 Subject: [PATCH 3/5] update zh-cn/application-dev/reference/apis-avcodec-kit/_core.md. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 杨俊晖 --- zh-cn/application-dev/reference/apis-avcodec-kit/_core.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zh-cn/application-dev/reference/apis-avcodec-kit/_core.md b/zh-cn/application-dev/reference/apis-avcodec-kit/_core.md index a4b1329644c..ea2ca7f9128 100644 --- a/zh-cn/application-dev/reference/apis-avcodec-kit/_core.md +++ b/zh-cn/application-dev/reference/apis-avcodec-kit/_core.md @@ -1041,7 +1041,7 @@ bool OH_AVFormat_GetIntBuffer (struct OH_AVFormat *format, const char *key, int3 **描述** -从OH_AVFormat中读取指定长度的数据块。 +从OH_AVFormat中读取一个int32_t数据的数组。 **系统能力:** SystemCapability.Multimedia.Media.Core @@ -1068,7 +1068,7 @@ bool OH_AVFormat_GetIntBuffer (struct OH_AVFormat *format, const char *key, int3 4. 输入addr为空指针; 5. size为空指针; -| bool [OH_AVFormat_GetIntBuffer](#oh_avformat_getintbuffer) (struct [OH_AVFormat](#oh_avformat) \*format, const char \*key, int32_t \*\*addr, size_t \*size) | 从OH_AVFormat中读取指定长度的数据块。 | +| bool [OH_AVFormat_GetIntBuffer](#oh_avformat_getintbuffer) (struct [OH_AVFormat](#oh_avformat) \*format, const char \*key, int32_t \*\*addr, size_t \*size) | 从OH_AVFormat中读取一个int32_t数据的数组。 | ### OH_AVFormat_GetDoubleValue() -- Gitee From bb319d7558a3d2fac383daf62b9590caf02e4e39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E4=BF=8A=E6=99=96?= Date: Mon, 23 Jun 2025 09:08:57 +0000 Subject: [PATCH 4/5] update zh-cn/application-dev/reference/apis-avcodec-kit/_core.md. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 杨俊晖 --- zh-cn/application-dev/reference/apis-avcodec-kit/_core.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/zh-cn/application-dev/reference/apis-avcodec-kit/_core.md b/zh-cn/application-dev/reference/apis-avcodec-kit/_core.md index ea2ca7f9128..049ef4de920 100644 --- a/zh-cn/application-dev/reference/apis-avcodec-kit/_core.md +++ b/zh-cn/application-dev/reference/apis-avcodec-kit/_core.md @@ -1068,8 +1068,6 @@ bool OH_AVFormat_GetIntBuffer (struct OH_AVFormat *format, const char *key, int3 4. 输入addr为空指针; 5. size为空指针; -| bool [OH_AVFormat_GetIntBuffer](#oh_avformat_getintbuffer) (struct [OH_AVFormat](#oh_avformat) \*format, const char \*key, int32_t \*\*addr, size_t \*size) | 从OH_AVFormat中读取一个int32_t数据的数组。 | - ### OH_AVFormat_GetDoubleValue() ``` -- Gitee From f7b743d77c509f5dea63943dec9d8bdb47cdc4d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E4=BF=8A=E6=99=96?= Date: Mon, 23 Jun 2025 09:09:27 +0000 Subject: [PATCH 5/5] update zh-cn/application-dev/reference/apis-avcodec-kit/native__avformat_8h.md. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 杨俊晖 --- .../reference/apis-avcodec-kit/native__avformat_8h.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis-avcodec-kit/native__avformat_8h.md b/zh-cn/application-dev/reference/apis-avcodec-kit/native__avformat_8h.md index b351200cfeb..cd09aa0a261 100644 --- a/zh-cn/application-dev/reference/apis-avcodec-kit/native__avformat_8h.md +++ b/zh-cn/application-dev/reference/apis-avcodec-kit/native__avformat_8h.md @@ -53,5 +53,5 @@ | bool [OH_AVFormat_GetDoubleValue](_core.md#oh_avformat_getdoublevalue) (struct [OH_AVFormat](_core.md#oh_avformat) \*format, const char \*key, double \*out) | 从OH_AVFormat的key获取double类型的值。 | | bool [OH_AVFormat_GetStringValue](_core.md#oh_avformat_getstringvalue) (struct [OH_AVFormat](_core.md#oh_avformat) \*format, const char \*key, const char \*\*out) | 从OH_AVFormat的key获取string类型的值。 | | bool [OH_AVFormat_GetBuffer](_core.md#oh_avformat_getbuffer) (struct [OH_AVFormat](_core.md#oh_avformat) \*format, const char \*key, uint8_t \*\*addr, size_t \*size) | 从OH_AVFormat中读取指定长度的数据块。 | -| bool [OH_AVFormat_GetIntBuffer](_core.md#oh_avformat_getintbuffer) (struct [OH_AVFormat](#oh_avformat) \*format, const char \*key, int32_t \*\*addr, size_t \*size) | 从OH_AVFormat中读取指定长度的数据块。 | +| bool [OH_AVFormat_GetIntBuffer](_core.md#oh_avformat_getintbuffer) (struct [OH_AVFormat](#oh_avformat) \*format, const char \*key, int32_t \*\*addr, size_t \*size) | 从OH_AVFormat中读取一个int32_t数据的数组。 | | const char \* [OH_AVFormat_DumpInfo](_core.md#oh_avformat_dumpinfo) (struct [OH_AVFormat](_core.md#oh_avformat) \*format) | 返回OH_AVFormat中包含的key-value组成的字符串。 | -- Gitee