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