📄 moviesbtl_parser.h
字号:
/**************************************************************************
(C)Copyright Cheertek Inc. 2008,
K000, all right reserved.
Product : STB Firmware
****************************************************************************/
#ifndef __DVB_MOVIESBTL_PARSER_H
#define __DVB_MOVIESBTL_PARSER_H
#include "moviesbtl_convert.h"
#include "dvb_moviesbtl.h"
#define SBTL_OUTPUT_DATA_BUF_LEN (1024 * 2)
#define SBTL_INPUT_DATA_BUF_LEN (1024 * 1)
#define MOVIE_SPTXT_HEADER_SIZE (0x0A)
#define MULTIPLE_FILE_NUMBER 2
#define MULTIPLE_SBTL_NUMBER 10
// follow are char EXT file supporting selection.
#define MOVIE_SPTXT_TYPE_SRT (0x00000001)
#define MOVIE_SPTXT_TYPE_SSA (0x00000002)
#define MOVIE_SPTXT_TYPE_ASS (0x00000004)
#define MOVIE_SPTXT_TYPE_SUB (0x00000008)
#define MOVIE_SPTXT_TYPE_SMI (0x00000010)
#define MOVIE_SPTXT_TYPE_PSB (0x00000020)
typedef enum
{
EN_MOVIESBTL_PARSE_STATE_PARSE_FAIL,
EN_MOVIESBTL_PARSE_STATE_START_FAIL,
EN_MOVIESBTL_PARSE_STATE_STC_FAIL,
EN_MOVIESBTL_PARSE_STATE_IN_TIME,
EN_MOVIESBTL_PARSE_STATE_TIME_OUT,
EN_MOVIESBTL_PARSE_STATE_ABORT,
EN_MOVIESBTL_PARSE_STATE_END,
EN_MOVIESBTL_PARSE_STATE_SAME,
EN_MOVIESBTL_PARSE_STATE_READY
} EN_MOVIESBTL_PARSE_STATE;
// Subtitle file structure
typedef struct
{
u32 u32SbtlDataLen;
u32 u32SbtlFileHandle;
} MovieSbtl_Handle;
// It be used for contains the start, end PTS and subtitle string length
typedef struct tagST_MOVIE_SPTXT_HEADER
{
u32 u32Start;
u32 u32End;
u8 u8ID;
u8 u8Len;
} ST_MOVIE_SPTXT_HEADER, *PST_MOVIE_SPTXT_HEADER;
// Subtitle Buffer Info
typedef struct tagST_MOVIE_SPTXT_BUF
{
u32 u32Addr;
u32 u32Len;
}ST_MOVIE_SPTXT_BUF, *PST_MOVIE_SPTXT_BUF;
// Subtitle Parameters Structure by File
typedef struct
{
MovieSbtl_Handle *pstMovieSbtlHandle;
PST_MOVIE_SPTXT_HEADER pSP_HeaderPt;
ST_MOVIE_SPTXT_BUF Char_SP_InputInfo;
ST_MOVIE_SPTXT_BUF Char_SP_OutputInfo;
EN_MOVIESBTL_ENCODE_MODE enCurEncodeMode;
u32 au32SbtlStartTime[MULTIPLE_SBTL_NUMBER];
u32 au32SbtlEndTime[MULTIPLE_SBTL_NUMBER];
u32 u32ParResult_CharSP;
u32 u32LastReadySbtl;
u32 u32SubFilter;
u32 u32BufferIdx;
u16 au16SbtlString[CHAR_NUMBER];
u8 u8DisplayIdx;
u8 u8TimeOutIdx;
u8 u8SbtlCount;
bool8 b8NewStringSend;
bool8 b8FileOpen;
bool8 b8GetSubtitleStart;
} ST_MOVIESBTL_PARAMETER;
ST_MOVIESBTL_PARAMETER stMovSbtl_Para[MULTIPLE_FILE_NUMBER];
void MOVIE_SPTXT_SetFilter(u32 u32filter, u8 u8FileIndex);
void MOVIE_SPTXT_Initial(void);
void MovieSbtl_Start (u8 u8FileIndex);
/*! \fn void MovieSbtl_Start (u8 u8FileIndex)
\brief Read subtitle file data start.
\param u8FileIndex (Input) set subtitle file index
\return NULL
*/
bool8 MovieSbtl_SetBuffer (bool8 b8Use, u8 u8FileIndex);
/*! \fn void MovieSbtl_SetBuffer (bool8 b8Use, u8 u8FileIndex)
\brief Set subtitle buffer.
\param b8Use (Input) set buffer use(allocate) or not(free)
\param u8FileIndex (Input) subtitle file index
\return TRUE: set OK, FALSE: set Fail!
*/
EN_MOVIESBTL_PARSE_STATE MovieSbtl_CheckPTS(u8 u8FileIndex);
/*! \fn EN_MOVIESBTL_PARSE_STATE MovieSbtl_CheckPTS(u8 u8FileIndex)
\brief Check movie play PTS for subtitle play.
\param u8FileIndex (Input) subtitle file index
\return EN_MOVIESBTL_PARSE_STATE for subtitle display state
*/
void MovieSbtl_GetLangMode(u32 *pu32MaxMode, u32 *pu32CurMode);
/*! \fn void MovieSbtl_GetLangMode(u32 *pu32MaxMode, u32 *pu32CurMode)
\brief get max language number and current language number for SMI format.
\param pu32MaxMode (Output) the point to max language number
\param pu32CurMode (Output) the point to current language number
\return NONE
*/
void MovieSbtl_SetLangMode(u32 u32Mode);
/*! \fn MovieSbtl_SetLangMode(u32 u32Mode)
\brief set language number for SMI format.
\param u32Mode (Input) the language number
\return NONE
*/
void MovieSbtl_SetNextLang (bool8 b8Next);
/*! \fn MovieSbtl_SetNextLang (bool8 b8Next)
\brief set the next or previous language number for SMI format.
\param b8Next (Input) TURE: set the next language number; FALSE: set the previous language number.
\return NONE
*/
void lang_mode_reset(void);
/*! \fn lang_mode_reset(void)
\brief reset the current and max language number for SMI format.
\param NONE
\return NONE
*/
#endif // end if __DVB_MOVIESBTL_PARSER_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -