📄 tvpaudio.h
字号:
/*********************************************************************
* Property of Texas Instruments Incorporated, Copyright 2004
* All rights reserved
**********************************************************************/
/*********************************************************************
*
* Description:
* public include file for the audio decoder
* It includes only the definitions that are needed for the API
*
**********************************************************************/
/**********************************************************************
*
* $Revision: $
*
* $History: TvpAudio.h $
*
**********************************************************************/
#ifndef TVP_AUDIO_DOT_H_IS_DEFINED
#define TVP_AUDIO_DOT_H_IS_DEFINED
#define TVP_AUD_MAX_ATTEN 0x3f
#define TVP_AUD_MAX_TONE_FREQ 0x3fff
#define TVP_AD_MAX_PCM_OUT_BUF (0x3ff0 * 6) // Available Size per channel
#define TVP_AD_MAX_MIC_BUF 0xffff0
#define TVP_AD_MAX_START_CYCLE 31 // Max number of clock offset cycles for mike
#define TVP_AD_MAX_MIX_WEIGHT 32 // Max mixing weight; 32=All mike, 0=All tone/Ac3/Mpeg
#define TVP_AD_MAX_MIKE_DELAY 49 // Max delay in 10ms increments
/*----------------------------------------------------------------------**
** #defines used in the TvpInfo_s structure returning audio stream info **
**----------------------------------------------------------------------*/
#define TVP_AUD_INFO_SF_48 0
#define TVP_AUD_INFO_SF_44_1 1
#define TVP_AUD_INFO_SF_32 2
#define TVP_AUD_INFO_ACMOD_1_1 0 // 1+1 Ch1, Ch2
#define TVP_AUD_INFO_ACMOD_1_0 1 // 1/0 C
#define TVP_AUD_INFO_ACMOD_2_0 2 // 2/0 L, R
#define TVP_AUD_INFO_ACMOD_3_0 3 // 3/0 L, C, R
#define TVP_AUD_INFO_ACMOD_2_1 4 // 2/1 L, R, S
#define TVP_AUD_INFO_ACMOD_3_1 5 // 3/1 L, C, R, S
#define TVP_AUD_INFO_ACMOD_2_2 6 // 2/2 L, R, SL, SR
#define TVP_AUD_INFO_ACMOD_3_2 7 // 3/2 L, R, C, SL, SR
#define TVP_AUD_INFO_DSURMOD_NOT_DOLBY 1
#define TVP_AUD_INFO_DSURMOD_DOLBY 2
#define TVP_AUD_INFO_LFEON_OFF 0
#define TVP_AUD_INFO_LFEON_ON 1
/*--------------------------------------**
** TvpAudIntEvent Reasons / Status Bits **
**--------------------------------------*/
#define TVP_AUD_INT_NONE 0
#define TVP_AUD_ANCILLARY_DATA_DETECTED 0x1
#define TVP_AUD_PCM_BUFFER_OVERFLOW 0x2 // PG2.0
#define TVP_AUD_SAMP_FREQ_CHANGE 0x4 // PG2.0
#define TVP_AUD_ACMOD_CHANGE 0x8 // PG2.0
#define TVP_AUD_DSUR_MOD_CHANGE 0x10 // PG2.0
#define TVP_AUD_LFE_CHANGE 0x20 // PG2.0
#define TVP_AUD_FRAME_INT 0x10000 // PG2.0
#define TVP_AUD_DSP_ERROR 0x20000 // PG2.0
#define TVP_AUD_INCORRECT_ALGORITHM 0x40000
typedef unsigned long TvpAudIntEvent;
typedef signed short TvpAudVolAtten;
typedef unsigned short TvpAudToneFreq;
typedef struct
{
unsigned char fscod;
unsigned char acmod;
unsigned char dsurmod;
unsigned char lfeon;
}TvpAudInfo_s;
typedef enum {
TVP_AUD_STEREO=0,
TVP_AUD_CHAN_1_MONO=1,
TVP_AUD_CHAN_2_MONO=2,
TVP_AUD_MIXED_MONO=3
} TvpAudDualMode;
typedef enum {
TVP_AUD_NO_ALGORITHM,
TVP_AUD_AC3,
TVP_AUD_MPEG1,
TVP_AUD_TONE_GEN
} TvpAudAlgorithmType;
typedef enum {
TVP_AUD_AC3_UCODE,
TVP_AUD_AC3_COEFFICIENT,
TVP_AUD_MPEG1_UCODE,
TVP_AUD_MPEG1_COEFFICIENT,
TVP_AUD_TONE_UCODE,
TVP_AUD_TONE_COEFFICIENT
} TvpAudDnLoadType;
typedef enum {
TVP_AUD_TONE_SF_48=0,
TVP_AUD_TONE_SF_44_1=1,
TVP_AUD_TONE_SF_32=2
} TvpAudToneSampFreq;
typedef enum {
TVP_AUD_HALT,
TVP_AUD_PLAY
} TvpAudPlayCmd;
typedef enum {
TVP_AUD_UNMUTE,
TVP_AUD_MUTE
} TvpAudMuteCmd;
typedef enum {
TVP_AUD_LO_RO_DNMIX=0,
TVP_AUD_LT_RT_DNMIX=1,
TVP_AUD_PREF_THEN_LO_RO_DNMIX=2,
TVP_AUD_PREF_THEN_LT_RT_DNMIX=3
}TvpAudDnMixOption;
typedef enum {
TVP_AUD_SPDIF_AS_PCM = 0, // Old name maintained
TVP_AUD_SPDIF_AS_PCM_MUTE = 0,
TVP_AUD_SPDIF_AS_PCM_16_BIT = 2,
TVP_AUD_SPDIF_AS_PCM_20_BIT = 4,
TVP_AUD_SPDIF_AS_PCM_24_BIT = 6,
TVP_AUD_SPDIF_NON_PCM_NULL_BURSTS = 1,
TVP_AUD_SPDIF_NON_PCM_ENC_DATA = 3
} TvpAudPcmType;
typedef enum {
TVP_AUD_PCM_16_BIT_SAMPLES=0,
TVP_AUD_PCM_18_BIT_SAMPLES=1,
TVP_AUD_PCM_20_BIT_SAMPLES=2,
TVP_AUD_PCM_24_BIT_SAMPLES=3
} TvpAudSampleWidth;
typedef enum {
TVP_AUD_PCM_LT_JUST = 0,
TVP_AUD_PCM_I2S_PATTERN = 4,
TVP_AUD_PCM_RT_JUST_LEAD_0 = 8,
TVP_AUD_PCM_RT_JUST_MSB_EXTEND = 0xC
} TvpAudPcmFormat;
typedef enum {
TVP_AUD_CLOCK_NO_DIV = 0,
TVP_AUD_CLOCK_DIV_2 = (2<<7),
TVP_AUD_CLOCK_DIV_4 = (3<<7)
} TvpAudClkDiv;
typedef struct {
unsigned char cs_msb; // Channel Status Most Significant Byte
unsigned char cs_1;
unsigned char cs_2;
unsigned char cs_3;
unsigned char cs_lsb; // Channel Status Least Significant Byte
unsigned short burstInfo; // Burst info for burst_preamble word
unsigned short pauseFreq; // spdif frames with pause bursts
unsigned short pauseCount; // # pause bursts within pcm frame time
unsigned char gapLengthInPause; // Gap Length Param written in first pause burst
} TvpAudSpdifConfig;
typedef enum
{
TVP_AUD_PRO_LOG_3_0=3,
TVP_AUD_PRO_LOG_2_2=6,
TVP_AUD_PRO_LOG_3_2=7
} TvpAudProLogChannelConfig;
typedef unsigned char TvpAudProLogDimension;
typedef enum
{
TVP_AUD_PRO_LOG_PROLOGIC = 0,
TVP_AUD_PRO_LOG_VIRTUAL = 1,
TVP_AUD_PRO_LOG_MUSIC = 2,
TVP_AUD_PRO_LOG_MOVIE = 3,
TVP_AUD_PRO_LOG_MATRIX = 4
} TvpAudProLogDecodeMode;
typedef unsigned char TvpAudProLogWidthControl;
typedef enum
{
TVP_AUD_SURROUND_15_DEGREE = 0,
TVP_AUD_SURROUND_20_DEGREE = 1
} TvpAudSurroundSpeakerSeparation;
typedef enum
{
TVP_AUD_SURROUND_AUTO_CHAN = 0,
TVP_AUD_SURROUND_2_0_CHAN = 2,
TVP_AUD_SURROUND_3_0_CHAN = 3,
TVP_AUD_SURROUND_2_1_CHAN = 4,
TVP_AUD_SURROUND_3_1_CHAN = 5,
TVP_AUD_SURROUND_2_2_CHAN = 6,
TVP_AUD_SURROUND_3_2_CHAN = 7
} TvpAudSurroundChannelConfig;
typedef unsigned char TvpAudSurroundChannelAdjust;
typedef enum
{
TVP_AUD_SURROUND_SAMP_FULL = 0,
TVP_AUD_SURROUND_SAMP_HALF = 1,
TVP_AUD_SURROUND_SAMP_QRTR = 2
} TvpAudSurroundSampRate;
typedef enum
{
TVP_AUD_DUAL_MONO_LEFT,
TVP_AUD_DUAL_MONO_RIGHT
} TvpAudLeftRight;
/***********************************************************************************
*********************************** API FUNCTIONS **********************************
***********************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif
TVP_FERROR tvpAudAlgorithmDownload (TvpAudAlgorithmType algorithm,
unsigned long *addressCode,
unsigned long sizeWordsCode,
unsigned long *addressCoef,
unsigned long sizeWordsCoef);
TVP_FERROR tvpAudDrvrInit (unsigned char *audDecodeBuffer,
unsigned char *audPcmOutBuffer,
unsigned long audPcmOutBufSize);
TVP_FERROR tvpAudConfigPcm (TvpAudSampleWidth sampleWidth, TvpAudPcmFormat pcmFormat,
TvpAudPcmType pcmType, Tvp_En_Dis reverseBitOrder,
Tvp_En_Dis invertBClk, Tvp_En_Dis invertChID,
TvpAudClkDiv clockDiv );
TVP_FERROR tvpAudConfigAC3 (TvpAudDualMode dualMode, Tvp_En_Dis karaokeCapable,
TvpAudDnMixOption ltrtOption, Tvp_En_Dis downmixStereo,
Tvp_En_Dis normalizeDialog, Tvp_En_Dis rfMode,
Tvp_En_Dis dynamicRange, Tvp_En_Dis heavyCompression);
TVP_FERROR tvpAudVolume(TvpAudVolAtten rightAtten,
TvpAudVolAtten leftAtten,
TvpAudVolAtten rsAtten,
TvpAudVolAtten lsAtten,
TvpAudVolAtten lfeAtten,
TvpAudVolAtten cAtten);
TVP_FERROR tvpAudConfigSpdif(TvpAudSpdifConfig *spdifInfo);
TVP_FERROR tvpAudCommand (TvpAudPlayCmd playCmd, TvpAudMuteCmd muteCmd);
TVP_FERROR tvpAudMicrophoneInit (unsigned char *micBuffer, unsigned long micBufSize);
TVP_FERROR tvpAudMicrophoneCtrl (Tvp_En_Dis enable,
Tvp_En_Dis lsbFirst,
Tvp_En_Dis only_16_ticks,
Tvp_En_Dis leftIsLow,
Tvp_En_Dis bclkFallEdge,
unsigned char startOnCycle,
TvpAudToneSampFreq sampFreq,
unsigned char delay,
unsigned char mixWeight);
TVP_FERROR tvpAudToneFrequency (TvpAudToneFreq toneFreq, TvpAudToneSampFreq sampFreq);
void tvpAudInfoGet (TvpAudInfo_s *info);
TVP_FERROR tvpAudEnableStatInt(TvpAudIntEvent *pRetStatus, TvpIntNum intNum,
TvpAudIntEvent intConfig);
void tvpAudSampFrequencySet (TvpAudToneSampFreq sFreq);
TVP_FERROR tvpAudDualMonoEnable (TvpAudLeftRight channel);
TVP_FERROR tvpAudDualMonoDisable (void);
#ifdef __cplusplus
}
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -