nt9856x/code/lib/include/hd_filein_lib.h
2023-03-28 15:07:53 +08:00

74 lines
2.9 KiB
C
Executable File

/*
Copyright Novatek Microelectronics Corp. 2005~2018. All rights reserved.
@file hd_filein_lib.h
@ingroup mFileIn
@note Nothing.
@date 2019/07/17
*/
#ifndef HD_FILEIN_LIB_H
#define HD_FILEIN_LIB_H
#include "kwrap/debug.h"
#include "kwrap/error_no.h"
#include "kflow_common/isf_flow_def.h"
#include "hd_common.h"
#define ISF_FILEIN_IN_NUM 2
#define ISF_FILEIN_OUT_NUM 2
typedef enum {
HD_FILEIN_PARAM_FILEHDL, ///< file handle
HD_FILEIN_PARAM_FILESIZE, ///< total file size
HD_FILEIN_PARAM_FILEDUR, ///< total file duration (sec)
HD_FILEIN_PARAM_FILEFMT, ///< file format
HD_FILEIN_PARAM_BLK_TIME, ///< play time per one block (e.g. 1 sec per block)
HD_FILEIN_PARAM_TT_BLKNUM, ///< total block number
HD_FILEIN_PARAM_PL_BLKNUM, ///< preload block number
HD_FILEIN_PARAM_RSV_BLKNUM, ///< reserve block number (as buffer area)
HD_FILEIN_PARAM_NEED_MEMSIZE, ///< get internal need mem size
HD_FILEIN_PARAM_BLK_INFO, ///< file block starting addr
HD_FILEIN_PARAM_MEM_RANGE, ///< allocated mem addr & size
HD_FILEIN_PARAM_CUR_VDOBS, ///< current used video bs addr & size
HD_FILEIN_PARAM_EVENT_CB, ///< callback event
HD_FILEIN_PARAM_CONTAINER, ///< media container
HD_FILEIN_PARAM_VDO_FR, ///< video frame rate (fps)
HD_FILEIN_PARAM_AUD_FR, ///< audio frame rate (fps)
HD_FILEIN_PARAM_VDO_TTFRM, ///< video total frame
HD_FILEIN_PARAM_AUD_TTFRM, ///< audio total frame
HD_FILEIN_PARAM_USER_BLK_DIRECTLY, ///< user define filein block size directly
HD_FILEIN_PARAM_BLK_SIZE, ///< size per block
} HD_FILEIN_PARAM;
// NMediaPlay FileIn Buffer Info
typedef struct {
UINT32 start_addr; ///< start address
UINT32 blk_size; ///< buffer size per unit time
UINT32 tt_blknum;
} HD_FILEIN_BLKINFO, *PHD_FILEIN_BLKINFO;
typedef struct {
UINT32 addr;
UINT32 size;
UINT32 read_state;
} HD_FILEIN_READBUF_INFO, *PHD_FILEIN_READBUF_INFO;
/********************************************************************
EXTERN VARIABLES & FUNCTION PROTOTYPES DECLARATIONS
********************************************************************/
HD_RESULT hd_filein_open(HD_PATH_ID path_id);
HD_RESULT hd_filein_start(HD_PATH_ID path_id);
HD_RESULT hd_filein_stop(HD_PATH_ID path_id);
HD_RESULT hd_filein_close(HD_PATH_ID path_id);
HD_RESULT hd_filein_get(HD_PATH_ID path_id, UINT32 param, UINT32 *value);
HD_RESULT hd_filein_set(HD_PATH_ID path_id, UINT32 param, UINT32 value);
HD_RESULT hd_filein_push_in_buf(HD_PATH_ID path_id, UINT32 *pBuf, INT32 wait_ms);
HD_RESULT hd_filein_pull_out_buf(HD_PATH_ID path_id, UINT32 *pBuf, INT32 wait_ms);
HD_RESULT hd_filein_uninit(VOID);
#endif //HD_FILEIN_LIB_H