From fc138d6c94303b4bd07f943c3e6193481d3eaf7f Mon Sep 17 00:00:00 2001 From: SuRuoyan Date: Thu, 5 Dec 2024 11:41:26 +0800 Subject: [PATCH] add AAC_PROFILE_HE and AAC_PROFILE_HE_V2 for API 14 and fix audio-encoding aac code demo Signed-off-by: SuRuoyan --- zh-cn/application-dev/media/avcodec/audio-encoding.md | 8 ++------ .../reference/apis-avcodec-kit/_codec_base.md | 4 +++- .../apis-avcodec-kit/native__avcodec__base_8h.md | 4 ++-- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/zh-cn/application-dev/media/avcodec/audio-encoding.md b/zh-cn/application-dev/media/avcodec/audio-encoding.md index 52712c192d7..0137ce86d40 100644 --- a/zh-cn/application-dev/media/avcodec/audio-encoding.md +++ b/zh-cn/application-dev/media/avcodec/audio-encoding.md @@ -177,7 +177,7 @@ target_link_libraries(sample PUBLIC libnative_media_acodec.so) 对于44100Hz采样率、2声道立体声、SAMPLE_S16LE采样格式的PCM音频,以32000bps的码率进行AAC编码的调用流程如下: - + ```cpp int32_t ret; // 配置音频采样率(必须) @@ -190,10 +190,6 @@ target_link_libraries(sample PUBLIC libnative_media_acodec.so) constexpr OH_AudioChannelLayout CHANNEL_LAYOUT = OH_AudioChannelLayout::CH_LAYOUT_STEREO; // 配置音频位深(必须) constexpr OH_BitsPerSample SAMPLE_FORMAT = OH_BitsPerSample::SAMPLE_S16LE; - // 配置音频compliance level (默认值0,取值范围-2~2) - constexpr int32_t COMPLIANCE_LEVEL = 0; - // 配置音频精度(必须) SAMPLE_S16LE - constexpr OH_BitsPerSample BITS_PER_CODED_SAMPLE = OH_BitsPerSample::SAMPLE_S16LE; // 每20ms一帧音频数据 constexpr float TIME_PER_FRAME = 0.02; // 配置最大输入长度, 每帧音频数据的大小(可选) @@ -212,7 +208,7 @@ target_link_libraries(sample PUBLIC libnative_media_acodec.so) // 异常处理 } ``` - + 例FLAC调用流程: ```cpp 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 7008ea8f994..5a614b14184 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 @@ -208,7 +208,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
} | 音频声道数类型, 将用户申请的解码器输出格式表示为编解码器的声道类型。 | | [OH_MediaType](#oh_mediatype-1) {
MEDIA_TYPE_AUD = 0,
MEDIA_TYPE_VID = 1,
MEDIA_TYPE_SUBTITILE = 2
} | 媒体类型。 | -| [OH_AACProfile](#oh_aacprofile-1) { AAC_PROFILE_LC = 0 } | AAC档次。 | +| [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档次。 | | [OH_AVOutputFormat](#oh_avoutputformat-1) {
AV_OUTPUT_FORMAT_DEFAULT = 0,
AV_OUTPUT_FORMAT_MPEG_4 = 2,
AV_OUTPUT_FORMAT_M4A = 6,
AV_OUTPUT_FORMAT_AMR = 8,
AV_OUTPUT_FORMAT_MP3 = 9,
AV_OUTPUT_FORMAT_WAV = 10
} | 封装器支持的输出文件格式。 | @@ -916,6 +916,8 @@ AAC档次。 | 枚举值 | 描述 | | -------- | -------- | | AAC_PROFILE_LC | AAC编码档次为Low Complexity级别。 | +| AAC_PROFILE_HE | AAC编码档次为High Efficiency级别。(此规格暂未开放)
**起始版本:** 14 | +| AAC_PROFILE_HE_V2 | AAC编码档次为High Efficiency v2级别。(此规格暂未开放)
**起始版本:** 14 | ### OH_AVCLevel 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 c028291aeea..f5281d4d5d5 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 @@ -58,8 +58,8 @@ | 名称 | 描述 | | -------- | -------- | -| [OH_MediaType](_codec_base.md#oh_mediatype-1) {
MEDIA_TYPE_AUD = 0,
MEDIA_TYPE_VID = 1,
MEDIA_TYPE_SUBTITILE = 2
} | 媒体类型。 | -| [OH_AACProfile](_codec_base.md#oh_aacprofile-1) { AAC_PROFILE_LC = 0 } | AAC档次。 | +| [OH_MediaType](_codec_base.md#oh_mediatype-1) {
MEDIA_TYPE_AUD = 0,
MEDIA_TYPE_VID = 1,
MEDIA_TYPE_SUBTITILE = 2
} | 媒体类型。 | +| [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档次。 | | [OH_AVOutputFormat](_codec_base.md#oh_avoutputformat-1) {
AV_OUTPUT_FORMAT_DEFAULT = 0,
AV_OUTPUT_FORMAT_MPEG_4 = 2,
AV_OUTPUT_FORMAT_M4A = 6,
AV_OUTPUT_FORMAT_AMR = 8,
AV_OUTPUT_FORMAT_MP3 = 9,
AV_OUTPUT_FORMAT_WAV = 10
} | 封装器支持的输出文件格式。 | -- Gitee