|
|
/*
|
|
|
* Copyright (c) Hisilicon Technologies Co., Ltd. 2019-2020. All rights reserved.
|
|
|
* Description: common IAPI header file for Huanglong audio
|
|
|
* Author: Hisilicon
|
|
|
* Create: 2019-05-30
|
|
|
*/
|
|
|
|
|
|
#ifndef __UAPI_AUDIO_H__
|
|
|
#define __UAPI_AUDIO_H__
|
|
|
|
|
|
#include "uapi_stream.h"
|
|
|
#include "uapi_acodec.h"
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
#if __cplusplus
|
|
|
extern "C" {
|
|
|
#endif
|
|
|
#endif /* __cplusplus */
|
|
|
|
|
|
/* CNcomment: ¶¨ÒåÒôƵ²ÉÑùÂÊö¾Ù */
|
|
|
typedef enum {
|
|
|
/* Unknown */
|
|
|
/* CNcomment: δ֪²ÉÑùƵÂÊ */
|
|
|
UAPI_AUDIO_SAMPLE_RATE_UNKNOWN = 0,
|
|
|
|
|
|
/* 8 kHz sampling rate */
|
|
|
/* CNcomment: 8K²ÉÑùƵÂÊ */
|
|
|
UAPI_AUDIO_SAMPLE_RATE_8K = 8000,
|
|
|
|
|
|
/* 11.025 kHz sampling rate */
|
|
|
/* CNcomment: 11.025K²ÉÑùƵÂÊ */
|
|
|
UAPI_AUDIO_SAMPLE_RATE_11K = 11025,
|
|
|
|
|
|
/* 12 kHz sampling rate */
|
|
|
/* CNcomment: 12K²ÉÑùƵÂÊ */
|
|
|
UAPI_AUDIO_SAMPLE_RATE_12K = 12000,
|
|
|
|
|
|
/* 16 kHz sampling rate */
|
|
|
/* CNcomment: 16K²ÉÑùƵÂÊ */
|
|
|
UAPI_AUDIO_SAMPLE_RATE_16K = 16000,
|
|
|
|
|
|
/* 22.050 kHz sampling rate */
|
|
|
/* CNcomment: 22.050K²ÉÑùƵÂÊ */
|
|
|
UAPI_AUDIO_SAMPLE_RATE_22K = 22050,
|
|
|
|
|
|
/* 24 kHz sampling rate */
|
|
|
/* CNcomment: 24K²ÉÑùƵÂÊ */
|
|
|
UAPI_AUDIO_SAMPLE_RATE_24K = 24000,
|
|
|
|
|
|
/* 32 kHz sampling rate */
|
|
|
/* CNcomment: 32K²ÉÑùƵÂÊ */
|
|
|
UAPI_AUDIO_SAMPLE_RATE_32K = 32000,
|
|
|
|
|
|
/* 44.1 kHz sampling rate */
|
|
|
/* CNcomment: 44.1K²ÉÑùƵÂÊ */
|
|
|
UAPI_AUDIO_SAMPLE_RATE_44K = 44100,
|
|
|
|
|
|
/* 48 kHz sampling rate */
|
|
|
/* CNcomment: 48K²ÉÑùƵÂÊ */
|
|
|
UAPI_AUDIO_SAMPLE_RATE_48K = 48000,
|
|
|
|
|
|
/* 88.2 kHz sampling rate */
|
|
|
/* CNcomment: 88.2K²ÉÑùƵÂÊ */
|
|
|
UAPI_AUDIO_SAMPLE_RATE_88K = 88200,
|
|
|
|
|
|
/* 96 kHz sampling rate */
|
|
|
/* CNcomment: 96K²ÉÑùƵÂÊ */
|
|
|
UAPI_AUDIO_SAMPLE_RATE_96K = 96000,
|
|
|
|
|
|
/* 176 kHz sampling rate */
|
|
|
/* CNcomment: 176K²ÉÑùƵÂÊ */
|
|
|
UAPI_AUDIO_SAMPLE_RATE_176K = 176400,
|
|
|
|
|
|
/* 192 kHz sampling rate */
|
|
|
/* CNcomment: 192K²ÉÑùƵÂÊ */
|
|
|
UAPI_AUDIO_SAMPLE_RATE_192K = 192000,
|
|
|
|
|
|
/* 288 kHz sampling rate */
|
|
|
/* CNcomment: 288K²ÉÑùƵÂÊ */
|
|
|
UAPI_AUDIO_SAMPLE_RATE_288K = 288000,
|
|
|
|
|
|
UAPI_AUDIO_SAMPLE_RATE_MAX,
|
|
|
} uapi_audio_sample_rate;
|
|
|
|
|
|
/* Defines the bit depth during audio sampling. */
|
|
|
/* CNcomment: ¶¨ÒåÒôƵ²ÉÑùλ¿íö¾Ù */
|
|
|
typedef enum {
|
|
|
/* Unknown */
|
|
|
/* CNcomment: δ֪²ÉÑùλ¿í */
|
|
|
UAPI_AUDIO_BIT_DEPTH_UNKNOWN = 0,
|
|
|
|
|
|
/* 8-bit depth */
|
|
|
/* CNcomment: 8λ²ÉÑùλ¿í */
|
|
|
UAPI_AUDIO_BIT_DEPTH_8 = 8,
|
|
|
|
|
|
/* 16-bit depth */
|
|
|
/* CNcomment: 16λ²ÉÑùλ¿í */
|
|
|
UAPI_AUDIO_BIT_DEPTH_16 = 16,
|
|
|
|
|
|
/* 18-bit depth */
|
|
|
/* CNcomment: 18λ²ÉÑùλ¿í */
|
|
|
UAPI_AUDIO_BIT_DEPTH_18 = 18,
|
|
|
|
|
|
/* 20-bit depth */
|
|
|
/* CNcomment: 20λ²ÉÑùλ¿í */
|
|
|
UAPI_AUDIO_BIT_DEPTH_20 = 20,
|
|
|
|
|
|
/* 24-bit depth */
|
|
|
/* CNcomment: 24λ²ÉÑùλ¿í */
|
|
|
UAPI_AUDIO_BIT_DEPTH_24 = 24,
|
|
|
|
|
|
/* 32-bit depth */
|
|
|
/* CNcomment: 32λ²ÉÑùλ¿í */
|
|
|
UAPI_AUDIO_BIT_DEPTH_32 = 32,
|
|
|
|
|
|
UAPI_AUDIO_BIT_DEPTH_MAX,
|
|
|
} uapi_audio_bit_depth;
|
|
|
|
|
|
/* Defines the mode of audio channels. */
|
|
|
/* CNcomment: ¶¨ÒåÒôƵÉùµÀģʽö¾Ù */
|
|
|
typedef enum {
|
|
|
/* Stereo */
|
|
|
/* CNcomment: Á¢ÌåÉù */
|
|
|
UAPI_TRACK_MODE_STEREO = 0,
|
|
|
|
|
|
/* Data is output after being mixed in the audio-left channel and audio-right channel. */
|
|
|
/* CNcomment: ×óÓÒÉùµÀ»ìºÏºóÊä³ö */
|
|
|
UAPI_TRACK_MODE_DOUBLE_MONO,
|
|
|
|
|
|
/* The audio-left channel and audio-right channel output the data of the audio-left channel. */
|
|
|
/* CNcomment: ×óÓÒÉùµÀÊä³ö×óÉùµÀÊý¾Ý */
|
|
|
UAPI_TRACK_MODE_DOUBLE_LEFT,
|
|
|
|
|
|
/* The audio-left channel and audio-right channel output the data of the audio-right channel. */
|
|
|
/* CNcomment: ×óÓÒÉùµÀÊä³öÓÒÉùµÀÊý¾Ý */
|
|
|
UAPI_TRACK_MODE_DOUBLE_RIGHT,
|
|
|
|
|
|
/* Data is output after being exchanged in the audio-left channel and audio-right channel. */
|
|
|
/* CNcomment: ×óÓÒÉùµÀÊý¾Ý½»»»Êä³ö */
|
|
|
UAPI_TRACK_MODE_EXCHANGE,
|
|
|
|
|
|
/* Only the data in the audio-right channel is output. */
|
|
|
/* CNcomment: Ö»Êä³öÓÒÉùµÀÊý¾Ý */
|
|
|
UAPI_TRACK_MODE_ONLY_RIGHT,
|
|
|
|
|
|
/* Only the data in the audio-left channel is output. */
|
|
|
/* CNcomment: Ö»Êä³ö×óÉùµÀÊý¾Ý */
|
|
|
UAPI_TRACK_MODE_ONLY_LEFT,
|
|
|
|
|
|
/* Mute */
|
|
|
/* CNcomment: ¾²Òô */
|
|
|
UAPI_TRACK_MODE_MUTED,
|
|
|
|
|
|
UAPI_TRACK_MODE_MAX
|
|
|
} uapi_track_mode;
|
|
|
|
|
|
/* Defines the attributes of the audio decoder. */
|
|
|
/* CNcomment: ¶¨ÒåÒôƵ½âÂëÆ÷ÊôÐԽṹ */
|
|
|
typedef struct {
|
|
|
/* Audio decoder type */
|
|
|
/* CNcomment: ÒôƵ½âÂëÀàÐÍ */
|
|
|
uapi_acodec_id id;
|
|
|
|
|
|
/* Audio decoder parameter */
|
|
|
/* CNcomment: ÒôƵ½âÂë²ÎÊý */
|
|
|
uapi_acodec_dec_param param;
|
|
|
} uapi_audio_decode_attr;
|
|
|
|
|
|
/* Defines the attributes of audio encoder. */
|
|
|
/* CNcomment: ¶¨ÒåÒôƵ±àÂëÆ÷ÊôÐԽṹ */
|
|
|
typedef struct {
|
|
|
/* Audio encoder type */
|
|
|
/* CNcomment: ÒôƵ±àÂëÀàÐÍ */
|
|
|
td_u32 aenc_type;
|
|
|
|
|
|
/* Audio encoder parameter */
|
|
|
/* CNcomment: ÒôƵ±àÂë²ÎÊý */
|
|
|
uapi_acodec_enc_param param;
|
|
|
} uapi_aenc_attr;
|
|
|
|
|
|
/* Defines the information about audio streams. */
|
|
|
/* CNcomment: ¶¨ÒåÒôƵÂëÁ÷ÐÅÏ¢½á¹¹ */
|
|
|
typedef struct {
|
|
|
/* Audio Codec type */
|
|
|
/* CNcomment: ÒôƵCodecÀàÐÍ uapi_acodec_id */
|
|
|
uapi_acodec_id codec_type;
|
|
|
|
|
|
/* Audio sampling rate */
|
|
|
/* CNcomment: ÒôƵ²ÉÑùÂÊ */
|
|
|
td_u32 sample_rate;
|
|
|
|
|
|
/* Bit depth during audio sampling */
|
|
|
/* CNcomment: ÒôƵ²ÉÑùλ¿í */
|
|
|
uapi_audio_bit_depth bit_depth;
|
|
|
|
|
|
/* Audio output channel */
|
|
|
/* CNcomment: ÒôƵÊä³öÉùµÀÊý */
|
|
|
td_u32 channels;
|
|
|
|
|
|
/* Audio bitrate */
|
|
|
/* CNcomment: ÒôƵ±ÈÌØÂÊ */
|
|
|
td_u32 bit_rate;
|
|
|
|
|
|
/* Audio stream format */
|
|
|
/* CNcomment: ÒôƵÂëÁ÷¸ñʽ */
|
|
|
uapi_acodec_format format;
|
|
|
|
|
|
/* Audio channel mode */
|
|
|
/* CNcomment: ÒôƵÉùµÀģʽ */
|
|
|
uapi_acodec_channel_mode channel_mode;
|
|
|
|
|
|
/* Lfe present flag */
|
|
|
/* CNcomment: ÊÇ·ñ´æÔÚÖصÍÒô */
|
|
|
td_bool lfe_present;
|
|
|
|
|
|
/* Atmos stream flag */
|
|
|
/* CNcomment: ÒôƵÂëÁ÷ÊÇ·ñÊÇAtmos */
|
|
|
td_bool atmos;
|
|
|
} uapi_audio_stream_info;
|
|
|
|
|
|
/* Defines the I2S(Inter-IC Sound) mode. */
|
|
|
/* CNcomment: ¶¨ÒåÒôƵI2S½Ó¿Úģʽö¾Ù */
|
|
|
typedef enum {
|
|
|
/* I2S standard mode */
|
|
|
/* CNcomment: I2S±ê׼ģʽ */
|
|
|
UAPI_AUDIO_I2S_STD_MODE = 0,
|
|
|
|
|
|
/* pcm mode */
|
|
|
/* CNcomment: PCMģʽ */
|
|
|
UAPI_AUDIO_I2S_PCM_MODE,
|
|
|
/* TDM mode */
|
|
|
/* CNcomment: TDMģʽ */
|
|
|
UAPI_AUDIO_I2S_TDM_MODE,
|
|
|
|
|
|
UAPI_AUDIO_I2S_MODE_MAX
|
|
|
} uapi_audio_i2s_mode;
|
|
|
|
|
|
/* Defines the I2S(Inter-IC Sound) master clock. */
|
|
|
/* CNcomment: ¶¨ÒåÒôƵI2S½Ó¿Ú¹¤×÷ʱÖÓö¾Ù */
|
|
|
typedef enum {
|
|
|
UAPI_AUDIO_I2S_MCLK_128_FS = 0, /* mclk 128*fs */
|
|
|
UAPI_AUDIO_I2S_MCLK_256_FS, /* mclk 256*fs */
|
|
|
UAPI_AUDIO_I2S_MCLK_384_FS, /* mclk 384*fs */
|
|
|
UAPI_AUDIO_I2S_MCLK_512_FS, /* mclk 512*fs */
|
|
|
UAPI_AUDIO_I2S_MCLK_768_FS, /* mclk 768*fs */
|
|
|
UAPI_AUDIO_I2S_MCLK_1024_FS, /* mclk 1024*fs */
|
|
|
UAPI_AUDIO_I2S_MCLK_MAX
|
|
|
} uapi_audio_i2s_mclk_sel;
|
|
|
|
|
|
/* Defines the I2S(Inter-IC Sound) bclk clock. */
|
|
|
typedef enum {
|
|
|
UAPI_AUDIO_I2S_BCLK_1_DIV = 1, /* bclk,mclk/1 */
|
|
|
UAPI_AUDIO_I2S_BCLK_2_DIV = 2, /* bclk,mclk/2 */
|
|
|
UAPI_AUDIO_I2S_BCLK_3_DIV = 3, /* bclk,mclk/3 */
|
|
|
UAPI_AUDIO_I2S_BCLK_4_DIV = 4, /* bclk,mclk/4 */
|
|
|
UAPI_AUDIO_I2S_BCLK_6_DIV = 6, /* bclk,mclk/6 */
|
|
|
UAPI_AUDIO_I2S_BCLK_8_DIV = 8, /* bclk,mclk/8 */
|
|
|
UAPI_AUDIO_I2S_BCLK_12_DIV = 12, /* bclk,mclk/12 */
|
|
|
UAPI_AUDIO_I2S_BCLK_24_DIV = 24, /* bclk,mclk/24 */
|
|
|
UAPI_AUDIO_I2S_BCLK_32_DIV = 32, /* bclk,mclk/32 */
|
|
|
UAPI_AUDIO_I2S_BCLK_48_DIV = 48, /* bclk,mclk/48 */
|
|
|
UAPI_AUDIO_I2S_BCLK_64_DIV = 64, /* bclk,mclk/64 */
|
|
|
UAPI_AUDIO_I2S_BCLK_MAX
|
|
|
} uapi_audio_i2s_bclk_sel;
|
|
|
|
|
|
/* audio channels. */
|
|
|
/* CNcomment: ÒôƵÉùµÀö¾Ù */
|
|
|
typedef enum {
|
|
|
UAPI_AUDIO_CHANNEL_INVALID = -1,
|
|
|
UAPI_AUDIO_CHANNEL_1 = 1,
|
|
|
UAPI_AUDIO_CHANNEL_2 = 2,
|
|
|
UAPI_AUDIO_CHANNEL_4 = 4,
|
|
|
UAPI_AUDIO_CHANNEL_8 = 8,
|
|
|
UAPI_AUDIO_CHANNEL_16 = 16,
|
|
|
|
|
|
UAPI_AUDIO_CHANNEL_MAX,
|
|
|
} uapi_audio_channel;
|
|
|
|
|
|
/* Defines the I2S(Inter-IC Sound) data valid after frame sync clock at PCM mode . */
|
|
|
/* CNcomment: ¶¨ÒåÒôƵI2S½Ó¿Ú£¬Êý¾ÝÓÐЧÑÓ³ÙÖÜÆÚ£¬½öPCMģʽÓÐЧ */
|
|
|
typedef enum {
|
|
|
UAPI_AUDIO_I2S_PCM_0_DELAY = 0, /* 0 bclk cycles delay */
|
|
|
UAPI_AUDIO_I2S_PCM_1_DELAY = 1, /* 1 bclk cycles delay */
|
|
|
UAPI_AUDIO_I2S_PCM_8_DELAY = 8, /* 8 bclk cycles delay */
|
|
|
UAPI_AUDIO_I2S_PCM_16_DELAY = 16, /* 16 bclk cycles delay */
|
|
|
UAPI_AUDIO_I2S_PCM_17_DELAY = 17, /* 17 bclk cycles delay */
|
|
|
UAPI_AUDIO_I2S_PCM_24_DELAY = 24, /* 24 bclk cycles delay */
|
|
|
UAPI_AUDIO_I2S_PCM_32_DELAY = 32, /* 32 bclk cycles delay */
|
|
|
UAPI_AUDIO_I2S_PCM_DELAY_MAX
|
|
|
} uapi_audio_i2s_pcm_delay;
|
|
|
|
|
|
/* Defines the I2S(Inter-IC Sound) attribute . */
|
|
|
/* CNcomment: ¶¨ÒåÒôƵI2S½Ó¿ÚÅäÖÃÊôÐÔ */
|
|
|
typedef struct {
|
|
|
td_bool master; /* TD_TRUE:master; TD_FALSE: slave */
|
|
|
uapi_audio_i2s_mode i2s_mode;
|
|
|
uapi_audio_i2s_mclk_sel mclk_sel;
|
|
|
uapi_audio_i2s_bclk_sel bclk_sel;
|
|
|
uapi_audio_channel channels;
|
|
|
uapi_audio_bit_depth bit_depth;
|
|
|
|
|
|
/*
|
|
|
* only works for PCM mode.
|
|
|
* TD_TRUE:sample data at positive edge of bclk,
|
|
|
* TD_FALSE: sample data at negative edge of bclk
|
|
|
*/
|
|
|
td_bool pcm_sample_rise_edge;
|
|
|
|
|
|
uapi_audio_i2s_pcm_delay pcm_delay_cycle; /* only work for PCM mode. */
|
|
|
} uapi_audio_i2s_attr;
|
|
|
|
|
|
/* Speaker configuration */
|
|
|
/* CNcomment:ÑïÉùÆ÷ÅäÖà */
|
|
|
typedef struct {
|
|
|
/* Audio effect type. */
|
|
|
/* CNcomment:ÒôЧÀàÐÍ */
|
|
|
td_u32 aef_type;
|
|
|
|
|
|
/* Speaker config. */
|
|
|
/* CNcomment:ÒôЧÑïÉùÆ÷ÅäÖà */
|
|
|
td_u32 speaker_config;
|
|
|
|
|
|
/* Copy L/R data to Ltm/Rtm when stream is NOT ATMOS. */
|
|
|
/* CNcomment: ·ÇATMOSÂëÁ÷¿½±´L/RÊý¾Ýµ½Ltm/RtmÉùµÀ */
|
|
|
td_bool copy_lr_to_top;
|
|
|
} uapi_audio_speaker_config;
|
|
|
|
|
|
/* Defines the HeadPhone gain level from codec. */
|
|
|
/* CNcomment: ¶¨ÒåоƬ¶ú»úÊä³öÔöÒæ */
|
|
|
typedef enum {
|
|
|
UAPI_AUDIO_CODEC_HP_GAIN_LEVEL_0 = 0, /* -15.07dB */
|
|
|
UAPI_AUDIO_CODEC_HP_GAIN_LEVEL_1, /* -12.04dB */
|
|
|
UAPI_AUDIO_CODEC_HP_GAIN_LEVEL_2, /* -10.74dB */
|
|
|
UAPI_AUDIO_CODEC_HP_GAIN_LEVEL_3, /* -8.42dB, Default value for HP */
|
|
|
UAPI_AUDIO_CODEC_HP_GAIN_LEVEL_4, /* -5.38dB */
|
|
|
UAPI_AUDIO_CODEC_HP_GAIN_LEVEL_5, /* -3.52dB */
|
|
|
UAPI_AUDIO_CODEC_HP_GAIN_LEVEL_6, /* -1.74dB, Default value for AVOUT */
|
|
|
|
|
|
UAPI_AUDIO_CODEC_HP_GAIN_LEVEL_MAX
|
|
|
} uapi_audio_codec_hp_gain_level;
|
|
|
|
|
|
/* Defines the HeadPhone gain level from codec. */
|
|
|
/* CNcomment: ¶¨ÒåоƬ¶ú»úÊä³öÔöÒæ */
|
|
|
typedef struct {
|
|
|
/* HeadPhone gain level. */
|
|
|
/* CNcomment:¶ú»úÊä³öÔöÒæ */
|
|
|
uapi_audio_codec_hp_gain_level hp_gain;
|
|
|
} uapi_audio_headphone_attr;
|
|
|
|
|
|
/* Defines the information about audio frames. */
|
|
|
/* CNcomment: ¶¨ÒåÒôƵ֡ÐÅÏ¢½á¹¹ */
|
|
|
typedef struct {
|
|
|
/* @bit_depth: (PCM) data depth, and format of storing the output data
|
|
|
* if the data depth is 16 bits, 16-bit word memory is used.
|
|
|
* if the data depth is greater than 16 bits, 32-bit word memory is used,
|
|
|
* and data is stored as left-aligned data. that is, the valid data is at upper bits.
|
|
|
*/
|
|
|
/* CNcomment: @bit_depth: (PCM) Êý¾Ýλ¿íÉèÖÃ. Êä³ö´æ·Å¸ñʽ
|
|
|
* µÈÓÚ16bit: Õ¼ÓÃ16bit wordÄÚ´æ
|
|
|
* ´óÓÚ16bit: Õ¼ÓÃ32bit wordÄÚ´æ, Êý¾Ý×ó¶ÔÆ뷽ʽ´æ·Å(ÓÐЧÊý¾ÝÔÚ¸ßλ)
|
|
|
*/
|
|
|
td_s32 bit_depth;
|
|
|
|
|
|
/* whether the data is interleaved */
|
|
|
/* CNcomment: Êý¾ÝÊÇ·ñ½»Ö¯ */
|
|
|
td_bool interleaved;
|
|
|
|
|
|
/* sampling rate */
|
|
|
/* CNcomment: ²ÉÑùÂÊ */
|
|
|
td_u32 sample_rate;
|
|
|
|
|
|
/* number of channels */
|
|
|
/* CNcomment: ÉùµÀÊý */
|
|
|
td_u32 channels;
|
|
|
|
|
|
/* presentation time stamp (PTS, unit: us) */
|
|
|
/* CNcomment: ʱ¼ä´Á(µ¥Î»£ºÎ¢Ãë) */
|
|
|
td_s64 pts;
|
|
|
|
|
|
/* pointer to the buffer for storing the pulse code modulation (PCM) data */
|
|
|
/* CNcomment: PCMÊý¾Ý»º³åÖ¸Õë */
|
|
|
td_s32 *pcm_buffer;
|
|
|
|
|
|
/* pointer to the buffer for storing the stream data */
|
|
|
/* CNcomment: ÂëÁ÷Êý¾Ý»º³åÖ¸Õë */
|
|
|
td_s32 *bits_buffer;
|
|
|
|
|
|
/* number of sampling points of the PCM data */
|
|
|
/* CNcomment: PCMÊý¾Ý²ÉÑùµãÊýÁ¿ */
|
|
|
td_u32 pcm_samples;
|
|
|
|
|
|
/* IEC61937 data size */
|
|
|
/* CNcomment: IEC61937Êý¾Ý³¤¶È */
|
|
|
td_u32 bits_bytes;
|
|
|
|
|
|
/* Frame ID */
|
|
|
/* CNcomment: Ö¡ÐòºÅ */
|
|
|
td_u32 frame_index;
|
|
|
|
|
|
/* IEC61937 Data Type */
|
|
|
/* CNcomment: IEC61937Êý¾ÝÀàÐͱêʶ£¬µÍ8bitΪIECÊý¾ÝÀàÐÍ */
|
|
|
td_u32 iec_data_type;
|
|
|
|
|
|
/* pointer to the buffer for storing the metadata and obj */
|
|
|
/* CNcomment: ÔªÊý¾ÝºÍ¶ÔÏ󻺳åÖ¸Õë */
|
|
|
td_s32 *md_and_obj_buffer;
|
|
|
|
|
|
/* metadata and object size */
|
|
|
/* CNcomment: ÔªÊý¾ÝºÍ¶ÔÏó³¤¶È */
|
|
|
td_u32 md_and_obj_bytes;
|
|
|
} uapi_audio_frame;
|
|
|
|
|
|
/* EIA-CEA-861-G Table 31 */
|
|
|
typedef enum {
|
|
|
/* Audio coding type, refer to stream header, default type */
|
|
|
/* CNcomment:ÒôƵ±àÂëÀàÐÍ£¬²Î¿¼Êý¾ÝÁ÷£¬È±Ê¡¸ñʽ */
|
|
|
UAPI_AUDIO_FORMAT_STREAM,
|
|
|
|
|
|
/* Audio coding PCM type */
|
|
|
/* CNcomment:ÒôƵ±àÂëPCM¸ñʽ */
|
|
|
UAPI_AUDIO_FORMAT_PCM,
|
|
|
|
|
|
/* Audio coding dolby digital(ac3) type */
|
|
|
/* CNcomment:ÒôƵ±àÂëdolby digital(ac3)¸ñʽ */
|
|
|
UAPI_AUDIO_FORMAT_AC3,
|
|
|
|
|
|
/* Audio coding MPEG1 type */
|
|
|
/* CNcomment:ÒôƵ±àÂëMPEG1¸ñʽ */
|
|
|
UAPI_AUDIO_FORMAT_MPEG1,
|
|
|
|
|
|
/* Audio coding MP3 type */
|
|
|
/* CNcomment:ÒôƵ±àÂëMP3¸ñʽ */
|
|
|
UAPI_AUDIO_FORMAT_MP3,
|
|
|
|
|
|
/* Audio coding MPEG2 type */
|
|
|
/* CNcomment:ÒôƵ±àÂëMPEG2¸ñʽ */
|
|
|
UAPI_AUDIO_FORMAT_MPEG2,
|
|
|
|
|
|
/* Audio coding AAC type */
|
|
|
/* CNcomment:ÒôƵ±àÂëAAC¸ñʽ */
|
|
|
UAPI_AUDIO_FORMAT_AAC_LC,
|
|
|
|
|
|
/* Audio coding DTS type */
|
|
|
/* CNcomment:ÒôƵ±àÂëDTS¸ñʽ */
|
|
|
UAPI_AUDIO_FORMAT_DTS,
|
|
|
|
|
|
/* Audio coding ATRAC type */
|
|
|
/* CNcomment:ÒôƵ±àÂëATRAC¸ñʽ */
|
|
|
UAPI_AUDIO_FORMAT_ATRAC,
|
|
|
|
|
|
/* Audio coding One Bit Audio type */
|
|
|
/* CNcomment:ÒôƵ±àÂëOne Bit Audio¸ñʽ */
|
|
|
UAPI_AUDIO_FORMAT_DSD,
|
|
|
|
|
|
/* Audio coding dolby digital plus type */
|
|
|
/* CNcomment:ÒôƵ±àÂëdolby digital plus(e-ac3)¸ñʽ */
|
|
|
UAPI_AUDIO_FORMAT_EAC3,
|
|
|
|
|
|
/* Audio coding DTS HD type */
|
|
|
/* CNcomment:ÒôƵ±àÂëDTS HD¸ñʽ */
|
|
|
UAPI_AUDIO_FORMAT_DTS_HD,
|
|
|
|
|
|
/* Audio coding MAT(DVD Forum MLP) type */
|
|
|
/* CNcomment:ÒôƵ±àÂëMAT(DVD Forum MLP)¸ñʽ */
|
|
|
UAPI_AUDIO_FORMAT_MAT,
|
|
|
|
|
|
/* Audio coding DST type */
|
|
|
/* CNcomment:ÒôƵ±àÂëDST¸ñʽ */
|
|
|
UAPI_AUDIO_FORMAT_DST,
|
|
|
|
|
|
/* Audio coding WMA PRO type */
|
|
|
/* CNcomment:ÒôƵ±àÂëWMA PRO¸ñʽ */
|
|
|
UAPI_AUDIO_FORMAT_WMA_PRO,
|
|
|
|
|
|
/* Audio coding refer to CXT */
|
|
|
UAPI_AUDIO_FORMAT_CXT,
|
|
|
} uapi_audio_format;
|
|
|
|
|
|
/* EIA-CEA-861-G Table 33 */
|
|
|
typedef enum {
|
|
|
/* Refer to Audio Coding Type (CT) field in Data Byte 1 */
|
|
|
UAPI_AUDIO_FORMAT_EXT_CT = 0x0,
|
|
|
|
|
|
/*
|
|
|
* The next three CXT values are defined in CEA-861-E only.
|
|
|
* They do not exist in older versions, and in CEA-861-F and CEA-861-F
|
|
|
* they are defined as 'Not in use'.
|
|
|
*/
|
|
|
UAPI_AUDIO_FORMAT_EXT_HE_AAC,
|
|
|
UAPI_AUDIO_FORMAT_EXT_HE_AAC_V2,
|
|
|
UAPI_AUDIO_FORMAT_EXT_MPEG_SURROUND,
|
|
|
|
|
|
/* The following CXT values are only defined in CEA-861-F. */
|
|
|
UAPI_AUDIO_FORMAT_EXT_MPEG4_HE_AAC = 0x4,
|
|
|
UAPI_AUDIO_FORMAT_EXT_MPEG4_HE_AAC_V2,
|
|
|
UAPI_AUDIO_FORMAT_EXT_MPEG4_AAC_LC,
|
|
|
UAPI_AUDIO_FORMAT_EXT_DRA,
|
|
|
|
|
|
/* MPEG-4 HE AAC + MPEG Surround */
|
|
|
UAPI_AUDIO_FORMAT_EXT_MPEG4_HE_AAC_SURROUND,
|
|
|
|
|
|
/* MPEG-4 AAC LC + MPEG Surround */
|
|
|
UAPI_AUDIO_FORMAT_EXT_MPEG4_AAC_LC_SURROUND = 0xa,
|
|
|
|
|
|
/* The following CXT values are only defined in CEA-861-G. */
|
|
|
/* Audio Extension Type Code 11 (MPEG-H 3D Audio) */
|
|
|
UAPI_AUDIO_FORMAT_EXT_MPEGH_3D,
|
|
|
/* Audio Extension Type Code 12 (AC-4) */
|
|
|
UAPI_AUDIO_FORMAT_EXT_AC4,
|
|
|
/* Audio Extension Type Code 13 (L-PCM 3D Audio) */
|
|
|
UAPI_AUDIO_FORMAT_EXT_LPCM_3D,
|
|
|
} uapi_audio_format_ext;
|
|
|
|
|
|
/* Audio data type */
|
|
|
/* CNcomment: ÒôƵÊý¾ÝÀàÐÍ */
|
|
|
typedef enum {
|
|
|
UAPI_AUDIO_DATA_TYPE_LPCM, /* LPCM 2/8 channels, Audio Sample Packet layout0 or layout1 */
|
|
|
UAPI_AUDIO_DATA_TYPE_LBR, /* IEC-61937 DD/DDP/DTS, Audio Sample Packet layout0 */
|
|
|
UAPI_AUDIO_DATA_TYPE_HBR, /* IEC-61937 DTSHD/TrueHD, High-Bitrate (HBR) Audio Stream Packet */
|
|
|
UAPI_AUDIO_DATA_TYPE_MAX,
|
|
|
} uapi_audio_data_type;
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
#if __cplusplus
|
|
|
}
|
|
|
#endif
|
|
|
#endif /* __cplusplus */
|
|
|
|
|
|
#endif /* __UAPI_AUDIO_H */
|