108 lines
4.5 KiB
C
Executable File
108 lines
4.5 KiB
C
Executable File
#ifndef _FILEIN_H
|
|
#define _FILEIN_H
|
|
|
|
#include "kwrap/debug.h"
|
|
#include "kwrap/error_no.h"
|
|
|
|
// for TS format
|
|
typedef enum {
|
|
//FILEIN_TS_BLK_SIZE = 0x200000, ///< one block size
|
|
FILEIN_TS_BLK_SIZE = 10000 * 188, ///< one block size
|
|
FILEIN_TS_PL_BLKNUM = 3, ///< preload block number
|
|
} FILEIN_TS_BUFINFO;
|
|
|
|
typedef enum {
|
|
FILEIN_PARAM_FILEHDL, ///< file handle
|
|
FILEIN_PARAM_FILESIZE, ///< total file size
|
|
FILEIN_PARAM_FILEDUR, ///< total file duration (sec)
|
|
FILEIN_PARAM_FILEFMT, ///< file format
|
|
FILEIN_PARAM_BLK_TIME, ///< play time per one block (e.g. 1 sec per block)
|
|
FILEIN_PARAM_TT_BLKNUM, ///< total block number
|
|
FILEIN_PARAM_PL_BLKNUM, ///< preload block number
|
|
FILEIN_PARAM_RSV_BLKNUM, ///< reserve block number (as buffer area)
|
|
FILEIN_PARAM_NEED_MEMSIZE, ///< get internal need mem size
|
|
FILEIN_PARAM_BLK_INFO, ///< file block starting addr
|
|
FILEIN_PARAM_MEM_RANGE, ///< allocated mem addr & size
|
|
FILEIN_PARAM_CUR_VDOBS, ///< current used video bs addr & size
|
|
FILEIN_PARAM_EVENT_CB, ///< callback event
|
|
FILEIN_PARAM_CONTAINER, ///< media container
|
|
FILEIN_PARAM_VDO_FR, ///< video frame rate (fps)
|
|
FILEIN_PARAM_AUD_FR, ///< audio frame rate (fps)
|
|
FILEIN_PARAM_VDO_TTFRM, ///< video total frame
|
|
FILEIN_PARAM_AUD_TTFRM, ///< audio total frame
|
|
FILEIN_PARAM_USER_BLK_DIRECTLY, ///< user define filein block size directly
|
|
FILEIN_PARAM_BLK_SIZE, ///< size per one block (e.g. 1 sec per block)
|
|
} FILEIN_PARAM;
|
|
|
|
typedef enum {
|
|
FILEIN_ACTION_PRELOAD, ///< reload file block for initialization
|
|
FILEIN_ACTION_MAX,
|
|
} FILEIN_ACTION;
|
|
|
|
typedef enum {
|
|
FILEIN_STATE_PRELOAD, ///< preload state
|
|
FILEIN_STATE_NORMAL, ///< normal state
|
|
} FILEIN_STATE;
|
|
|
|
typedef struct {
|
|
UINT32 Addr; ///< Memory buffer starting address
|
|
UINT32 Size; ///< Memory buffer size
|
|
} FILEIN_MEM_RANGE, *PFILEIN_MEM_RANGE;
|
|
|
|
typedef struct {
|
|
UINT32 blk_time; ///< block time for one block (ms)
|
|
UINT32 tt_blknum; ///< total block number
|
|
UINT32 pl_blknum; ///< preload block number
|
|
UINT32 rsv_blknum; ///< reserve block number (as buffer area)
|
|
BOOL user_define_blk; ///< user define filein block size directly
|
|
UINT32 blk_size; ///< size for one block
|
|
} FILEIN_USERBUF_INFO, *PFILEIN_USERBUF_INFO;
|
|
|
|
typedef enum {
|
|
FILEIN_IN_TYPE_CHK_FILEBLK = 0, ///< checking is it the target bs in valid block range
|
|
FILEIN_IN_TYPE_READ_ONEFRM, ///< read one frame only (for ff/fr, step play)
|
|
FILEIN_IN_TYPE_RELOAD_BUF, ///< re-init buffer info and read one file block
|
|
FILEIN_IN_TYPE_READ_ONEBLK, ///< read one block directly (for TS format)
|
|
FILEIN_IN_TYPE_READ_TSBLK, ///< read FileReadInfo block 1 and block 2 directly (for TS format)
|
|
FILEIN_IN_TYPE_CONFIG_BUFINFO,
|
|
FILEIN_IN_TYPE_GET_BUFINFO,
|
|
ENUM_DUMMY4WORD(FILEIN_IN_TYPE)
|
|
} FILEIN_IN_TYPE;
|
|
|
|
typedef enum {
|
|
ISF_FILEIN_EVENT_MEM_RANGE = 0, ///< FileIn memory range
|
|
ISF_FILEIN_EVENT_READ_ONE_BLK,
|
|
ENUM_DUMMY4WORD(ISF_FILEIN_CB_EVENT)
|
|
} ISF_FILEIN_CB_EVENT;
|
|
|
|
typedef struct {
|
|
UINT64 read_accum_offset; ///< accumulation of file reading data
|
|
UINT64 last_used_offset; ///< accumulation of last used data
|
|
UINT64 bs_offset; ///< target bs offset
|
|
UINT32 bs_size; ///< target bs size
|
|
UINT32 buf_start_addr; ///< read file buffer start addr
|
|
UINT32 buf_end_addr; ///< read file buffer end addr
|
|
UINT64 blk_size; ///< file block size
|
|
UINT32 tt_blknum; ///< total file block number
|
|
UINT32 uiThisAddr;
|
|
UINT32 uiDemuxAddr;
|
|
UINT64 uiNextFilePos;
|
|
UINT32 event; ///< read input event type (refer to FILEIN_IN_TYPE)
|
|
} FILEIN_CB_INFO, *PFILEIN_CB_INFO;
|
|
|
|
typedef struct {
|
|
UINT32 addr;
|
|
UINT32 size;
|
|
UINT32 read_state;
|
|
} FILEIN_READBUF_INFO, *PFILEIN_READBUF_INFO;
|
|
|
|
extern ER FileIn_Open(UINT32 Id);
|
|
extern ER FileIn_Close(UINT32 Id);
|
|
extern ER FileIn_SetParam(UINT32 Id, UINT32 Param, UINT32 Value);
|
|
extern ER FileIn_GetParam(UINT32 Id, UINT32 Param, UINT32 *pValue);
|
|
extern ER FileIn_Action(UINT32 Id, UINT32 Action);
|
|
extern ER FileIn_In(UINT32 Id, UINT32 *pBuf);
|
|
|
|
#endif //_FILEIN_H
|
|
|