⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ad_definitions.h

📁 SAMSUNG 5009的源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
	/* Unused flag. wjin 051009 */
	//UINT		callback_lba2;				/* second callbakc */	
	UINT		prev_cdg_marker_LBA;		/* previoud callbacked LBA for CD-G*/

	/* 
		PTS information
	*/
	
	UCHAR		bState_PTS; /* 1: next sample has valid PTS */
	UINT		next_sample_pts;
	BOOL		bDiscont;
	
	UINT		cur_IODMA_sample_pts;	
	UINT		pts_gap_for_sample; /* 1: next sample has valid PTS */
	
	UINT		prev_pts;

	IAD_SET_PLAY_MODE_t		playmode; /* trick play status*/
	IAD_PLAY_MODE_t			cur_playmode;		

	//INT			nPLL_ShiftCount; //unused. wjin 051205

	UINT		shift_pcmout; /* normal &SPDIFPCM_FRONT : 0, SPDIFPCM_SURROUND : 1, SPDIFPCM_CENTER_WOOFER : 2 */	
	
#if _AUD_NEW_BUF_STRC_FOR_DIVX		//jy newbuf
	UCHAR*	divx_rdptr;
	UCHAR*	divx_wrptr;
	UCHAR*	divx_s0_top;
	UCHAR*	divx_s0_bottom;	
	UINT	divx_free_space;
	UINT	divx_filled_space;
#endif
	
} Audio_Decoder_t;

typedef UINT (*SH_DECCALLBACK)(UINT, UCHAR *, UCHAR *);


#define	AC3_STREAM_BUF_SIZE	0x2000//0xF00 //wjin 051123
#define	MPA_STREAM_BUF_SIZE	0x1800
#define	DTS_STREAM_BUF_SIZE	0x2000


#define CODEC_INSTALLED		1
#define CODEC_NOT_INSTALLED		0

#define CODEC_ON				1
#define CODEC_OFF				0

#define CODEC_NEED_SYNC		1
#define CODEC_NOT_NEED_SYNC	0

#if 0 //wjin 051129
#define NUM_OF_MAX_POSTCODEC	10
#else
/* 3(swvolume, fade in/out, last) post codec are needed. others depends on the configuration. */
#define NUM_OF_MAX_POSTCODEC	( ( AUD_SUPPORT_3D_VBX | AUD_SUPPORT_3D_PORTABLE ) + AUD_SUPPORT_REVERBERATION + (AUD_SUPPORT_PSCON_KEY | AUD_SUPPORT_PSCON_SPEED) + AUD_SUPPORT_KARAOKE + AUD_SUPPORT_TIME_DELAY + AUD_SUPPORT_BASS_MANAGEMENT + AUD_SUPPORT_GRAPHIC_EQUALIZER + AUD_SUPPORT_PL2 +AUD_SUPPORT_DUAL + 3)
#endif

#define TURN_OFF				0
#define TURN_ON_WHEN_READY	1
#define TURN_ON					2
#define TURN_OFF_WHEN_READY	3
#define TURN_ON_CHANGE		4	/* if we want to change option during TURN_ON, use TURN_ON_CHANGE*/


#if 0
#define	POSTCODEC_HANDLER_INDEX_SPTL	1
#define	POSTCODEC_HANDLER_INDEX_REV		4
#define	POSTCODEC_HANDLER_INDEX_KARA	5
#define	POSTCODEC_HANDLER_INDEX_TD		6
#define	POSTCODEC_HANDLER_INDEX_BM		7
#define	POSTCODEC_HANDLER_INDEX_EQ		10
#define	POSTCODEC_HANDLER_INDEX_SWVOL	14
#define	POSTCODEC_HANDLER_INDEX_FADE	15
#define	POSTCODEC_HANDLER_INDEX_PSCON	3
#else
#define	POSTCODEC_HANDLER_INDEX_SPTL	1
#define	POSTCODEC_HANDLER_INDEX_EQ		2
#define	POSTCODEC_HANDLER_INDEX_REV		3
#define	POSTCODEC_HANDLER_INDEX_PSCON	4

#define	POSTCODEC_HANDLER_INDEX_PL2		5  //wjin 060424
#define	POSTCODEC_HANDLER_INDEX_N22SP	6 //wjin 060801
#define	POSTCODEC_HANDLER_INDEX_BM		7
#define	POSTCODEC_HANDLER_INDEX_TD		8

//#define	POSTCODEC_HANDLER_INDEX_FADE	10
#define	POSTCODEC_HANDLER_INDEX_SWVOL	11
#define	POSTCODEC_HANDLER_INDEX_DUAL	12	/* For Dual Mode Codec */
#define	POSTCODEC_HANDLER_INDEX_KARA	14
#define	POSTCODEC_HANDLER_INDEX_FADE	15
#endif

#define	POSTCODEC_BIT_FIELD_SPTL		(1<<POSTCODEC_HANDLER_INDEX_SPTL)
#define	POSTCODEC_BIT_FIELD_REV		(1<<POSTCODEC_HANDLER_INDEX_REV)
#define	POSTCODEC_BIT_FIELD_KARA		(1<<POSTCODEC_HANDLER_INDEX_KARA)
#define	POSTCODEC_BIT_FIELD_TD		(1<<POSTCODEC_HANDLER_INDEX_TD)
#define	POSTCODEC_BIT_FIELD_BM		(1<<POSTCODEC_HANDLER_INDEX_BM)
#define	POSTCODEC_BIT_FIELD_EQ		(1<<POSTCODEC_HANDLER_INDEX_EQ)
#define	POSTCODEC_BIT_FIELD_PL2		(1<<POSTCODEC_HANDLER_INDEX_PL2)
#define	POSTCODEC_BIT_FIELD_SWVOL	(1<<POSTCODEC_HANDLER_INDEX_SWVOL)
#define	POSTCODEC_BIT_FIELD_DUAL		(1<<POSTCODEC_HANDLER_INDEX_DUAL)
#define	POSTCODEC_BIT_FIELD_FADE		(1<<POSTCODEC_HANDLER_INDEX_FADE)
#define	POSTCODEC_BIT_FIELD_PSCON	(1<<POSTCODEC_HANDLER_INDEX_PSCON)
#define	POSTCODEC_BIT_FIELD_N22SP	(1<<POSTCODEC_HANDLER_INDEX_N22SP)

/* */

#define SM_OFFSET_MAINCODEC		0x00
#define SM_OFFSET_SYSINFO			0x30
#define SM_OFFSET_AUDBUF			0x50

#define SM_OFFSET_POSTOPTION_BASE		0x90
#define SM_OFFSET_EQ_PARAM		SM_OFFSET_POSTOPTION_BASE
#define SM_OFFSET_SPC_PARAM		0x94
#define SM_OFFSET_VOL_PARAM		0x98
#define SM_OFFSET_TD_PARAM		0x9c
#define SM_OFFSET_BM_PARAM		0xa0
#define SM_OFFSET_REVERB_PARAM	0xa4
#define SM_OFFSET_PSCON_PARAM	0xa8
#define SM_OFFSET_PL2_PARAM		0xb0
#define SM_OFFSET_DUAL_PARAM		0xc0

/*
	Type definition at Codec.h (ADM system part) -- 16bit machine
		typedef struct{
			unsigned char	CodecStartFlag
			unsigned char	AudioMode;
			unsigned char	*pParameter;
			unsigned int	NumberOfSample;
			unsigned char	PCMResolution;
			unsigned char	DecodeErrFlag;
			unsigned long	SamplingRate;
			unsigned long	BitRate;
			unsigned long	InputBufferOffset;
			unsigned long	InputBufferSize;
			unsigned long	OutputBufferOffset;
			unsigned long	ExtInputBufferOffset;
			unsigned int	FrameSize;
			unsigned long	StreamBufOffset;
			unsigned char	NumberOfOutputBuffer;		//wjin 060801
		}MainCodecShared_t;
*/
#define	MAINCODEC_BYTEOFFSET_DECODE_ERR_FLAG		0x9
#define	MAINCODEC_BYTEOFFSET_INPUTBUF_OFFSET		0x12
/* <<< @: 5010-xxx.JaeYoul_Kim 051215 : use 32bit buffer offset value to support over 64KB S0, S1 buf size*/ //jy noaudext
#if	AUD_SUPPORT_AD_32BIT_BUFOFFSET
#define	MAINCODEC_BYTEOFFSET_OUTPUT_BUFFER_OFFSET	0x1A
#define	MAINCODEC_BYTEOFFSET_STREAM_BUF_OFFSET		0x24
#endif
#define	MAINCODEC_BYTEOFFSET_SPDIF_DOWNMIX_OUTBUFFER_OFFSET		0x28

/* >>> @: 5010-xxx.JaeYoul_Kim 051215 */		
/*
	Type definition at ADM.h (ADM system part) -- 16bit machine
		typedef struct{
			SystemMajorMode_t MajorMode;		// audio, voice, comm status
			SystemMinorMode_t MinorMode;		// processing status
			
			ULONG	InBufferSize;
			UCHAR	PCMResolution;
			UCHAR	Mute_Flag;
			UCHAR	Fade_State;
			UCHAR	Fade_Off;
			
			UCHAR	SPTL_Flag;
			UCHAR	EQ_Flag;
			UCHAR	BM_Flag;
			UCHAR	TD_Flag;
			UCHAR	PL_Flag;

			UCHAR	KARA_Flag;
			UCHAR	Parse_Flag;
			UCHAR	Reserved_Flag;			
			ULONG	MicInOffset;

			UCHAR	REVERB_Flag;
			
		}SystemInfo_t;
*/
#define	SYSINFO_BYTEOFFSET_FADE_STATE		0xA
#define	SYSINFO_BYTEOFFSET_SPTL_FLAG		0xC
#define	SYSINFO_BYTEOFFSET_EQ_FLAG			0xD
#define	SYSINFO_BYTEOFFSET_BM_FLAG			0xE
#define	SYSINFO_BYTEOFFSET_TD_FLAG			0xF
#define	SYSINFO_BYTEOFFSET_KARA_FLAG		0x11
#define	SYSINFO_BYTEOFFSET_MICINOFFSET		0x14
#define	SYSINFO_BYTEOFFSET_REV_FLAG			0x18
#define	SYSINFO_BYTEOFFSET_PSCON_FLAG		0x19
#if	__USE_NEW_FADE
#define	SYSINFO_BYTEOFFSET_FADE_MODE		0x1b
#endif
#define	SYSINFO_BYTEOFFSET_PL2_FLAG			0x1c

/*

	Type definition at ADM.h (ADM system part) -- 16bit machine
				
		typedef	struct{
			unsigned long S0_Base;
			unsigned long S1_Base;
			unsigned long PcmBuf0;
			unsigned long PcmBuf1;
			unsigned long PcmBufSize;
			unsigned long SpdifStreamBuf0;
			unsigned long SpdifStreamBuf1;
			unsigned long SpdifPcmBuf0;
			unsigned long SpdifPcmBuf1;

			unsigned long X_BaseMaincodec;
			unsigned long X_BasePostcodec;

			unsigned long Y_BaseMaincodec;
			unsigned long Y_BasePostcodec;

			
		}aud_buf_t;
*/		
#define	AUDBUF_BYTEOFFSET_XBASE_MAINCODEC		0x24
#define	AUDBUF_BYTEOFFSET_XBASE_POSTCODEC		0x28
#define	AUDBUF_BYTEOFFSET_YBASE_MAINCODEC		0x2c
#define	AUDBUF_BYTEOFFSET_YBASE_POSTCODEC		0x30

#define	SM_OFFSET_KARA_PARAM					0xd0
#define	KARA_PARAM_BYTEOFFSET_MIC_VOLUME		0x05

//#if (AUD_SUPPORT_EXT_ADC_FOR_KARAOKE)
#if (AUD_SUPPORT_EXT_ADC_FOR_KARAOKE || AUD_SUPPORT_IN_14BIT_ADC_FOR_KARA) //jy kara
#define	KARA_PARAM_BYTEOFFSET_DUMMY_BYTE		0x0c /* hspark 051014*/
#else
#define	KARA_PARAM_BYTEOFFSET_DUMMY_BYTE		0x0a /* hspark 050913*/
#endif

#define	SM_OFFSET_MIC_RDPOINTER					0xe0

#define	SM_OFFSET_POSTOPTION_TOP				0x100
#define	SM_OFFSET_INVALID							SM_OFFSET_POSTOPTION_TOP-4  //reserve last 4bytes for dummy post param. wjin 060324


#define SM_OFFSET_POSTOPTION_SIZE					(SM_OFFSET_POSTOPTION_TOP -SM_OFFSET_POSTOPTION_BASE )

#define	SM_TOTAL_SIZE					0x400

typedef struct{
	UCHAR	codec_ID;			/* globally defined CODEC ID */
	UCHAR	bInstalledAtSystem;	/* does current ADM_system include this codec ?*/
	UCHAR	bEnable;			/* is this codec ON now ? */
	UCHAR	bNeedSync;			/* do we need to sync with ADM_system now? (Share Memory Architecture)*/
	UINT	cur_codecstate;		/* codec control */	
	
	UCHAR	*pCodec_param;		/* Codec dependant Parameter */
	/* Change it from UINT to USHORT, reduce the data size. wjin 051129*/
	USHORT	nSize_Param;		/* size of Codec Parameter */
	USHORT	handler_bitfield;		/* handler bit field*/ 
	USHORT	SM_offset;		/* handler bit field*/ 
} Audio_Codec_t;

typedef enum{
	FADE_NORMAL			= 0,
	
	FADE_IN_START		= 0x1,
	FADE_IN_PROGRESS	= 0x2,
	FADE_IN_COMPLETE	= 0x3,
	
	FADE_OUT_START		= 0x11,
	FADE_OUT_PROGRESS	= 0x12,
	FADE_OUT_COMPLETE	= 0x13,
	FADE_OUT_MUTE		= 0x14
}Fade_State_t;


/* add Some codecs for 5010 DIVX SOL. */
/* 050902 - Jae Youl Kim */ //jy newcodec
#if AUD_SUPPORT_DIVX_FEATURE
#define NUM_OF_MAX_MAINCODEC		(8 + AUD_SUPPORT_CALIBRATION_NOISE + AUD_SUPPORT_MPA_DECODER)
#else
#define NUM_OF_MAX_MAINCODEC		(6 + AUD_SUPPORT_CALIBRATION_NOISE + AUD_SUPPORT_MPA_DECODER) 
#endif

typedef struct{
	UCHAR	codec_ID;			/* globally defined CODEC ID */
	UCHAR	bInstalledAtSystem;	/* does current ADM_system include this codec ?*/
	UCHAR	bNeedSync;			/* do we need to sync with ADM_system now? (Share Memory Architecture)*/
	UCHAR	cur_codecstate;		/* codec control */	
	
	UCHAR	*pCodec_param;		/* Codec dependant Parameter */
	UINT	nSize_Param;		/* size of Codec Parameter */
	S5H_SpdifMode_t	spdif_mode;		/*default SPDIF setting for codec */	
} Audio_MainCodec_t;


typedef enum {
	AD_SYNC_STOP,
	AD_SYNC_WAIT_VIDEO,
	AD_SYNC_DISCARD,
	AD_SYNC_HOLD,
	AD_SYNC_PRESENT
} AD_SyncState_et;


#define  AD_FLAG_RESET_MAINDECODER			0x0002
#define  AD_FLAG_UPDATE_MAINCODECPARAM		0x0004
#define  AD_FLAG_IGNORE_MAINOUTPUT			0x0010
#define  AD_FLAG_DO_MAINDECODING				0x0020
#define  AD_FLAG_DO_KARAOKEONLY				0x0100
/*
	in case of no input stream & decoding is called with this parameter,
	then do only Karaoke with 48KHz & 512 sample count
	-- hspark 050913
*/

#define SZ_SPACE_BETWEEN_PCM_MIC		0x400	/* reserve 0x400(1KB) between PCM_BUFFER & MIC_BUFFER */

#if (AUD_SUPPORT_EXT_ADC_FOR_KARAOKE || AUD_SUPPORT_IN_14BIT_ADC_FOR_KARA)
/*
	increase MIC Buffer Size in case of using external 16-bit ADC
		-- hspark 051006
*/
#define MIC_BUF_LENGTH					0x5000	
#else
#define MIC_BUF_LENGTH					0x3000	
#endif

#if AUD_SUPPORT_SCORING_FUNCTION_API	//By QQ 060126
#define 		SH_MIC_SOUND_LEVEL_OFFSET_VALUE 		0x18
#endif

#define	SAMPLE_ATTR_VALID_SPDIFSTREAM	0x10
#define	SAMPLE_ATTR_VALID_PCM			0x01
#define	SAMPLE_ATTR_VALID_ALL			(SAMPLE_ATTR_VALID_PCM |SAMPLE_ATTR_VALID_SPDIFSTREAM )
#define	SAMPLE_ATTR_INVALID_SAMPLE		0x00
#define	SAMPLE_ATTR_DUMMY_KARA_SAMPLE		0x80
#define	SAMPLE_ATTR_PSCON_APPLIED			0x40
#define	SAMPLE_ATTR_SPDIF_PCM_DOWNMIX		0x20  //wjin 060801


#define  AD_FLAG_NONEED_RESET_ADM				0x0000
#define  AD_FLAG_NEED_WHOLE_RESET_ADM			0x0001
#define  AD_FLAG_NEED_PARTIAL_RESET_ADM			0x0002


#define  UPSAMPLE_MODE_NONE					0x0000
#define  UPSAMPLE_MODE_2X					0x0001
#define  UPSAMPLE_MODE_4X					0x0002

#define	 AD_SIZE_UPSAMPLER_BUFFER			0x6000

#if	AUD_SUPPORT_BAT_FEATURE
#define	AUD_BAT_LOGICAL_SPACESIZE		0x8000

#define	AUD_BAT_UNIT_LEN					0x1000	/* AUD_BAT_4KB_UNIT */
#define	AUD_BAT_UNIT_CNT					( AUD_BAT_LOGICAL_SPACESIZE / AUD_BAT_UNIT_LEN )

#define	AUD_BAT_ENABLE				1

#define	AUD_BAT_MAX_MAP_ENTRY		32

typedef struct {
	/*
		1. address field
	*/
	UINT		addr_physical_start;
	UINT		addr_physical_stop;	

	UINT		addr_logical_start;
	UINT		addr_logical_stop;	

	UINT		index_first_valid;
	UINT		index_last_valid;

	UINT		size_one_chunk;
	UINT		count_total_entry;
	UINT		count_cur_valid_entry;
	
	BM_NODE	*pMAP_ENTRY[AUD_BAT_MAX_MAP_ENTRY];	/* MAX node = 32 */

} AD_BAT_Manager_st;

#endif

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -