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