📄 sh_scrt_api.h
字号:
#ifndef _SH_SCRT_API_H_
#define _SH_SCRT_API_H_
/* <<< @: 5010-xxx.HS SEO 060221: SPU Scaling */
#define SPU_SCALE 0
#define SUBPICTURE_IN_MENU 0
/* <<< @: 5010-xxx.HS SEO 060221: */
/* <<< @: 5010-xxx.HS SEO 060306: blocking .sub of subpicture */
//#define CHECK_SUB_FILE_SUBPICTURE 0
/* <<< @: 5010-xxx.HS SEO 060228 */
/*********************** External subtitle *************************************/
#define MAX_NUM_CHARS 200
#define SUBTITLE_TEST 0
#define SUBTITLE_WRONG_DATA 0
#define MAX_NUM_PRES_STRUCT 30 /*(50)*/
#define MAX_NUM_TRICK_STRUCT 75 //limeng 060516: 150k=75*2048 //100 // cydrain 20060509
// cydrain 20060515
#define PSB_TIME_STR_LEN 7
#define SRT_TIME_STR_LEN 12
#define TXT_TIME_STR_LEN 8
#define SSA_TIME_STR_LEN 10
/////////////////
#define READ_ONCE 15
#define SMI_CMD_START 1
#define SMI_CMD_STOP 2
#define SMI_CMD_CONTINUE 3
#define NUM_OF_TICKS_FOR_500MS 1000
#define SMI_TIMER_TICKS 200
#define FREE_RUNNING_TIMER_INC_OFFSET ((SMI_TIMER_TICKS*500)/NUM_OF_TICKS_FOR_500MS)
#define DIVXSUBTITLE_Q_NUM 11
#define EX_DIVXSUBTITLE_Q_NUM 15
#if 0 //hsseo 20060619
/* <<< @: 5009-xxx.HS SEO 060420: vobsub */
#define SUB_READ_CMD_START 11
#define SUB_READ_CMD_STOP 12
#define SUB_READ_CMD_CONTINUE 13
#define EX_SUBFILEREAD_Q_NUM 20
#define READ_VOB_SPU_UINT_NUM 3
#define READ_VOB_SPU_UINT_SIZE 1024*6//1024*4 //3000
#define VOB_READ_SIZE 1024*30 //30000
#define MAX_NUM_VOB_PRES_STRUCT 4000
#define SUB_READ_UNIT_SIZE 3000
/*hsseo 20060617 VOBSUB*/
#endif
#if 0
#define VOB_DP_BUF_SIZE 35280
#define VOB_DP_BUF1_START MM_SUBTITLE_BUF_START
#define VOB_DP_BUF2_START VOB_DP_BUF1_START+VOB_DP_BUF_SIZE
#define VOB_BUF_SIZE 1024*40
#define VOB_BUF1_START VOB_DP_BUF2_START+VOB_DP_BUF_SIZE
#define VOB_BUF2_START VOB_BUF1_START+VOB_BUF_SIZE
#endif
#define VOB_BUF_SIZE 1024*60//1024*70 // cydrain 20060816
#define VOB_BUF1_START MM_SUBTITLE_BUF_START
#define VOB_BUF2_START VOB_BUF1_START+VOB_BUF_SIZE
#define VOB_SPU_UNIT_SIZE 1024*10
#if _APP_CAP_USE_VOBSUB_NEW_METHOD // cydrain 20060825
#define VOBSUB_BLOCK_NUM 4 // cydrain 20060828
#define VOBSUB_BLOCK_UNIT 15
#define VOBSUB_BLOCK_SIZE (VOBSUB_BLOCK_UNIT*2048)
#endif
/*hsseo 20060617 VOBSUB*/
/* <<< @: 5009-xxx.HS SEO 060420: vobsub */
/***************************************************************************/
/*********************** Divx subtitle *************************************/
typedef struct {
UINT red;
UINT green;
UINT blue;
}SUBPIC_COLOR_st;
typedef enum {
DivxSubTitle_START,
DivxSubTitle_CONTINUE,
DivxSubTitle_STOP,
/* <<< @: 5010-xxx.HoJune_Byun 05/11/22 : Subtitle Change */
DivxSubTitle_CHANGE
/* <<< @: 5010-xxx.HoJune_Byun 05/11/22 : Subtitle Change */
}DivxSubTitle_IfMessage_et;
typedef struct{
DivxSubTitle_IfMessage_et message;
UINT width;
UINT height;
UINT vob_id;
/* <<< @: 5010-xxx.HoJune_Byun 05/11/22 : Subtitle Change */
SysSema_t *pSem;
/* <<< @: 5010-xxx.HoJune_Byun 05/11/22 : Subtitle Change */
}DivxSubTitle_Message_st;
/***************************************************************************/
/*********************** External subtitle *************************************/
typedef enum {
ExSubtitle_STATUS_NOT_INITIALIZED,
ExSubtitle_STATUS_INITIALIZED,
ExSubtitle_STATUS_STARTED,
ExSubtitle_STATUS_READY
}ExSubtitle_STATUS_et;
typedef enum {
Subtitle_STATUS_NOT_INITIALIZED,
Subtitle_STATUS_INITIALIZED,
Subtitle_STATUS_STARTED,
Subtitle_STATUS_READY
}Subtitle_STATUS_et;
// cydrain 20060603
typedef enum {
ExSubtitle_Type_Null = 0x00,
ExSubtitle_Type_PSB = 0x10,
ExSubtitle_Type_SRT = 0x20,
ExSubtitle_Type_SSA = 0x30,
ExSubtitle_Type_ASS = 0x40,
ExSubtitle_Type_SIM = 0x50,
ExSubtitle_Type_SIML = 0x60,
ExSubtitle_Type_SUB = 0x70,
ExSubtitle_Type_SUB_MicroDVD = 0x71,
ExSubtitle_Type_SUB_Viewer1 = 0x72,
ExSubtitle_Type_SUB_Viewer2 = 0x73,
ExSubtitle_Type_TXT = 0x80,
ExSubtitle_Type_TXT_TMPlayer = 0x81,
//ExSubtitle_Type_TXT_NoName = 0x82,
ExSubtitle_Type_TXT_MicroDVD = 0x83,
ExSubtitle_Type_TXT_DVDSubSys = 0x84,
ExSubtitle_Type_TXT_Alpha = 0x85,
ExSubtitle_Type_TXT_SubRip = 0x86,
ExSubtitle_Type_TXT_SubViewer2 = 0x87
} ExSubtitle_Type_et;
#if 1 // cydrain 20060518
typedef struct _SMI_Node
{
//UINT index; // cydrain 20060714, make debug easier.
UINT start_time;
UINT end_time;
CHAR* script;
//struct _SMI_Node* pre_smi; // cydrain 20060530, now don't use it.
struct _SMI_Node* next_smi;
}_SMI_Node;
typedef struct
{
BOOL smi_file_found;
BOOL parse_done; //hsseo 20060512
BYTE4 file_type;
UINT file_size;
CHAR* start_address;
UINT file_position; //limeng 060516
_SMI_Node* head_smi;
_SMI_Node* tail_smi;
_SMI_Node* cur_smi;
UINT smi_totle_num;
#if _APP_CAP_MMP_SUPPORT_VOBSUB_SUBTITLE // cydrain 20060712, VOBSUB
FS_File_t FileID; /*hsseo 20060617 VOBSUB*/
#endif
}_SMI_Ctrl_st;
#else
typedef struct
{
BYTE4 file_type;
CHAR * start_address;
CHAR * cur_address;
UINT file_position; //limeng 060516
UINT file_size;
UINT total_chunks;
UINT parsed_chunks;
UINT pres_write_count;
UINT pres_read_count;
BOOL smil_file_found;
BOOL parse_done; //hsseo 20060512
}_SMI_Ctrl_st;
#endif
typedef struct
{
UINT time; // cydrain 20060511, UINT can support about 1000 hour, it's enough.
CHAR script[MAX_NUM_CHARS];
}_SMI_Pers_st;
typedef struct
{
UINT command;
CHAR* address;
UINT size; // cydrain 20060518
}_SMI_Message_st;
typedef struct
{
UINT trick_time;
CHAR* address;
}_SMI_Trick_st;
typedef struct
{
CHAR fileLang[4];
CHAR* address;
}_SMI_Class_st;
typedef enum
{
SMI=0,
SUB,
SRT,
SSA,
PSB,
TXT
}_Subtitle_Type;
/*hsseo 20060617 VOBSUB*/
#if _APP_CAP_MMP_SUPPORT_VOBSUB_SUBTITLE // cydrain 20060712, VOBSUB
typedef enum
{
NO_DIVX=0,
VOBSUB_BUF_AVAIL,
VOBSUB_BUF_NO_AVAIL
}_Vobsub_Buf_Status;
typedef struct
{
CHAR lang[20];
// UINT langlist_num;
UINT langlist_start;
UINT langlist_end;
}_VOBSUB_Lang_st;
#endif
typedef struct
{
UINT time;
UINT filepos;
#if 1//_APP_CAP_USE_VOBSUB_NEW_METHOD
UINT size; // cydrain 20060825
#endif
}_VOBSUB_Pers_st;
#if _APP_CAP_MMP_SUPPORT_VOBSUB_SUBTITLE // cydrain 20060712, VOBSUB
typedef struct _VOBSUB_node
{
_VOBSUB_Pers_st vobsub_st;
UINT num; //will consider to remove
// BOOL end_of_buf; //20060614 //20060609 //will consider to remove
// UINT vob_buf_num; //20060614 //buf1:1 buf2:2 20060609 //will consider to remove
UINT address; //20060609
struct _VOBSUB_node* pre_vobsub;
struct _VOBSUB_node* next_vobsub;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -