📄 par_types.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 + -