You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

137 lines
3.4 KiB

/*
* 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