/* * Copyright (c) Hisilicon Technologies Co., Ltd. 2012-2019. All rights reserved. * Description: API of subt parse module * Author: Hisilicon * Create: 2012-03-12 */ #ifndef SUBTITLE_DATA_PARSE_H #define SUBTITLE_DATA_PARSE_H #include "td_type.h" #ifdef __cplusplus extern "C" { #endif /* Ref[Subtitling system.pdf] section 7.2.1 Table 3, for page_state */ typedef enum { SUBTITLE_PAGE_NORMAL_CASE = 0, /* page update, use previous page instance to display */ SUBTITLE_PAGE_ACQUISITION_POINT, /* page refresh, use next page instance to display */ SUBTITLE_PAGE_MODE_CHANGE, /* new page */ SUBTITLE_RESERVED /* reserved for future use */ } SubtPageState; /* Ref[Subtitling system.pdf], section 7.2.2 table 6, for object type */ typedef enum { SUBT_OBJ_TYPE_BITMAP = 0x00, /* basic object, bitmap */ SUBT_OBJ_TYPE_CHARACTER, /* basic object, character */ SUBT_OBJ_TYPE_STRING, /* composite object, string of charaters */ SUBT_OBJ_TYPE_UNKOWN /* reserved */ } SubtObjType; typedef struct { td_u16 xPos; td_u16 yPos; td_u16 width; td_u16 heigth; td_void *regionClut; td_u8 bitDepth; td_u16 paletteItem; td_s64 pts; td_u32 timeout; /* in millisecond */ td_u32 regionDataSize; td_u8 *showData; td_u8 dataType; td_u8 frontClr; td_u8 backClr; SubtPageState pageState; td_u16 displayWidth; td_u16 displayHeight; } SubtDisplayItem; typedef td_s32 (*SUBT_DATAPARSE_CALLBACK_FN)(td_u32 userData, td_void *displayDate); /* * @brief: Initialize this module * @param[in] None. * @param[out] None. * * @retval ::TD_SUCCESS, upon successfully. * @retval ::TD_FAILURE, failed. */ td_s32 SUBTDataParseInit(td_void); /* * @brief: Destroy this module * @param[in] None. * @param[out] None. * * @retval ::TD_SUCCESS, upon successfully. * @retval ::TD_FAILURE, failed. */ td_s32 SUBTDataParseDeInit(td_void); /* * @brief:create data parse module. * * @param[out] dataParse This module handle. * * @retval ::TD_SUCCESS, upon successfully. * @retval ::TD_FAILURE, failed. */ td_s32 SUBTDataParseCreate(td_void **dataParse); /* * @brief:Destroy data parse module. * * @param[in] dataParse This module handle. * @param[out] None. * * @retval ::TD_SUCCESS, upon successful * @retval ::TD_FAILURE, failed */ td_s32 SUBTDataParseDestroy(td_void *dataParse); /* * @brief:Reset parse module data * * @param[in] dataParse This module handle. * @param[in] isReset After resetting, whether parsing data immediately or not. * @param[out] None. * * @retval ::None. */ td_s32 SUBTDataParseReset(td_void *dataParse, td_bool isReset); /* * @brief: To parse PES data packet. * * @param[in] dataParse This module handle. * @param[in] dataSrc The data to be resolved * @param[in] len The data length. * @param[in] pageID The page id * @param[out] None. * * @retval ::TD_SUCCESS, upon successful * @retval ::TD_FAILURE, failed */ td_s32 SUBTDataParsePESPacket(td_void *dataParse, td_u8 *dataSrc, td_u32 len, td_u16 pageID, td_u16 ancillaryID, td_u32 dataMaxLen); /* * @brief: update callback info. * * @param[in] dataParse This module handle. * * @param[out] regionItem the subtitling data. * * @retval ::TD_SUCCESS, upon successful * @retval ::TD_FAILURE, failed */ td_s32 SUBTDataParseUpdate(td_void *dataParse, SUBT_DATAPARSE_CALLBACK_FN pfnCallback, td_u32 userData); #ifdef __cplusplus } #endif #endif