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

📄 par_types.h

📁 SAMSUNG 5009的源代码
💻 H
字号:
/******************************************************************************
 * File name  :  PAR_types.h
 * Start date :  2004.12.23
 * By         :  Chongkun Lee
 * Contact    :  bach1004@samsung.com
 * Description:  
 ******************************************************************************
 */

#ifndef _PAR_TYPES_H_
#define _PAR_TYPES_H_

#ifdef	__cplusplus
extern	"C" {
#endif

/******************************************************************************
 *   typedefines
 ******************************************************************************/
/* callback function define */
typedef BOOL (*PAR_FILLEDCALLBACKFUNC)( BM_NODE *node, BOOL init_needed );
typedef VOID (*PAR_FREECALLBACKFUNC)( BM_NODE *node, int param );
typedef VOID (*PSD_ISRFUNC)(VOID);
typedef VOID (*AES_ISRFUNC)(VOID);

/* message type defines */
typedef enum{
	PARSER_SET_MODE,
	PARSER_START,
#if _API_CAP_GLB_SLOW_REVERSE
	PARSER_START_REVERSE,
#endif	
	PARSER_STOP,
	PARSER_STOP_AUDIO, /* before PARSER_CHANGE_STREAM, we need to call PARSER_STOP_AUDIO*/	
	PARSER_CHANGE_STREAM
} PARSER_IfMessage_et;

typedef enum {
	PARSER_STATUS_NOT_INITIALIZED,
	PARSER_STATUS_INITIALIZED,
	PARSER_STATUS_READY,
	PARSER_STATUS_STARTED
} PARSER_Status_et;

typedef struct {
	SH_ParserMode_et		mode;
	SH_ParserInputType_et 	input;
} PARSER_Set_st;

typedef struct {
	SH_ParserOutStream_et 	stream;
	SINT					stream_no;
} PARSER_ChangeStream_st;

typedef struct {
	VOID		*ptr;
	UINT		len;
} PARSER_CheckMode_st;

typedef enum {
	PARSER_INFO_NOT_NEEDED,
	PARSER_INFO_NEEDED,
	PARSER_INFO_ID3_CHECK
} PARSER_StartMode_et;

typedef struct {
	PARSER_IfMessage_et message;
	union {
		PARSER_StartMode_et		para_start;
		PARSER_Set_st			para_set;
		PARSER_ChangeStream_st	para_change;
		PARSER_CheckMode_st		para_chkmode;
	} p;
} PARSER_Message_st;

/* status defines */
typedef struct {
	PARSER_Status_et		status;
	SH_ParserMode_et		mode;
	PARSER_StartMode_et		info;
	SH_ParserInputType_et 	input;
	PARSER_ChangeStream_st	video;
	PARSER_ChangeStream_st	audio;
	PARSER_ChangeStream_st	subpic;
	/* <<< @: 5008CHN-XXX.cklee 050618 : add last vbv flag */
	BOOL					vbv_last;
	/* >>> @: 5008CHN-XXX.cklee 050618 */
	BOOL					is_first_play;
} PARSER_Info_st;

typedef enum {
	PARSER_NULL = 0,
	PARSER_INIT_NEEDED = 1
} PARSER_InCallbackParam_et;


typedef enum {
	PARSER_VIDEO,
	PARSER_AUDIO1,
#if PAR_MPEG_EXT_FILTERING
	PARSER_AUDIO2,
#endif
	PARSER_SUBPIC,
	PARSER_PCI,
	PARSER_DSI,
	PARSER_OUT,
	PARSER_INPUT_WITH_INIT,		/* To fix tbuf loss (temp, 20050808,ishan) */
	PARSER_INPUT,
	PARSER_VIDEO_FREECALLBACK,
	PARSER_AUDIO1_FREECALLBACK,
#if PAR_MPEG_EXT_FILTERING
	PARSER_AUDIO2_FREECALLBACK,
#endif
	PARSER_SUBPIC_FREECALLBACK,
	PARSER_PCI_FREECALLBACK,
	PARSER_DSI_FREECALLBACK,
	PARSER_OUT_FREECALLBACK,
	PARSER_INPUT_FILLEDCALLBACK,
	PARSER_INPUTINIT_FILLEDCALLBACK,
	PARSER_RELEASE_NAVPACK
#if AVI_BUFFERMANAGE_TASK
	,
	AVI_TASK_MSG_INPUT_BUF_READY		// AVI_BUFFERMANAGE_TASK zb 060216
#endif	
	
} PARSER_BufMessage_et;

typedef struct {
	PARSER_BufMessage_et mode;
} PARSER_BufMessage_st;

typedef struct {
	LBA		start_lba;
	UINT	start_offset;
	LBA		end_lba;
	UINT	end_offset;
} PARSER_Sector_Input_Offset_st;

typedef struct {
	BM_FREEPOOL				*free_pool;
	BM_FILLEDLIST			*filled_list;
	BM_NODE					*output_node;
	PAR_FREECALLBACKFUNC	pfunc;
	UINT					last_alloc;	/* last alloc processing needed in free callback */
	union {
		UINT				start_offset; /* start offset for wma playback */
		BOOL				dummy_needed; /* dummy buffer needed for B2R padding */
		BOOL				audio_written; /* audio data is written to output buffer. */
		UCHAR				*pwrite; /* for S/W parser write pointer */
		UINT				subpic_pts; /* subpicture pts value */
	} p;
} PAR_BufferManager_t;

/***************************
 *	For AVI....
 ***************************/
typedef enum {
	AVI_START,
	AVI_CONTINUE,
	AVI_STOP ,
	AVI_STOP_AUDIO,	
#if !AVI_BUFFERMANAGE_TASK
	AVI_TASK_MSG_INPUT_BUF_READY,	// AVI_BUFFERMANAGE_TASK zb 060329
#endif	
	AVI_TASK_MSG_CHANGE_AUDIO_STREAM,
	AVI_TASK_MSG_CHANGE_SUBPIC_STREAM
}AVI_IfMessage_et;

typedef struct{	
	AVI_IfMessage_et		message;
	SysSema_t				*pSem;
	int						StreamIndex;	/* for change audio/subpic */
}AVI_Message_st;

typedef enum {
	EXT_AUD_COPY_STOP,
	EXT_AUD_COPY_START,
	EXT_AUD_COPY_CONTINUE,
	EXT_AUD_STOP,
	EXT_AUD_CHANGE_STREAM,
	EXT_AUD_STREAM_CHANGE_COPY_CONTINUE,
	EXT_AUD_STREAM_CHANGE_HANDLER,
	EXT_AUD_LAST_ALLOC
}Avi_Ext_Aud_Message_et;

typedef struct {
	Avi_Ext_Aud_Message_et		message;	
	SysSema_t					*pSem;
}Avi_Ext_Aud_Message_st;



/***************************
 *	For ASF....
 ***************************/
// For ASF -- Tejas
typedef enum {
	ASF_START,
	ASF_CONTINUE,
	ASF_STOP
}ASF_IfMessage_et;


typedef struct{
	ASF_IfMessage_et		message;
}ASF_Message_st;


#if PAR_SUPPORT_ASV
typedef enum {
	PAR_ASV_STATE_NOT_INITIALIZED,
	PAR_ASV_STATE_IDLE,
	PAR_ASV_STATE_PARSING,
} PAR_AsvState_et;

typedef struct {
	SH_ParserInputType_et	input;
	UINT					in_start;
	UINT					in_offset;
	UINT					in_end;
	UCHAR					*pEsBuf;
	UINT					es_offset;
	UINT					es_valid;
	BOOL					subpic_init;
} PAR_AsvInfoIn_st;

typedef struct {
	PAR_AsvState_et			state;
	PAR_AsvInfoIn_st 		in;
	PARSER_ChangeStream_st 	subpic;
} PAR_AsvInfo_st;

typedef struct {
	PAR_BufferManager_t	video;
	PAR_BufferManager_t	text;
} PAR_AsvOutputManager_st;

typedef struct {
	UINT	in_start;
	UINT	length;
} PAR_AsvCmdStartPara_st;

typedef enum {
	PAR_ASV_CMD_START,
	PAR_ASV_CMD_STOP,
	PAR_ASV_CMD_CHANGE_SUBPIC,
	PAR_ASV_CMD_PARSE_SECTOR,
	PAR_ASV_CMD_PUT_OUTPUT,
	PAR_ASV_CMD_NEXT_SECTOR
} PAR_AsvCommand_et;

typedef struct {
	PAR_AsvCommand_et		cmd;
	union {
		PARSER_ChangeStream_st 	subpic;
		PAR_AsvCmdStartPara_st	start;
		SH_ParserOutStream_et	stream;
	} p;
} PAR_AsvCommand_st;
#endif

#ifdef __cplusplus
}
#endif

#endif /* _PAR_TYPES_H_ */

⌨️ 快捷键说明

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