#ifndef _PHOTOFASTSLICEENCODE_H_ #define _PHOTOFASTSLICEENCODE_H_ /******************************************************************************** * User Config *********************************************************************************/ #define CFG_PHOTOFAST_SLICE_ENC_PRIMARY_BUF_WIDTH 1920 #define CFG_PHOTOFAST_SLICE_ENC_PRIMARY_BUF_HEIGHT 1080 #define CFG_PHOTOFAST_SLICE_ENC_PRIMARY_BUF_SIZE VDO_YUV_BUFSIZE(CFG_PHOTOFAST_SLICE_ENC_PRIMARY_BUF_WIDTH, CFG_PHOTOFAST_SLICE_ENC_PRIMARY_BUF_HEIGHT, HD_VIDEO_PXLFMT_YUV420) #define CFG_PHOTOFAST_SLICE_ENC_BS_BUF_RATIO 8 /* (yuv size / ratio) + header = bs buf size */ #define CFG_PHOTOFAST_SLICE_ENC_INIT_QUALITY_PRIMARY 85 #define CFG_PHOTOFAST_SLICE_ENC_INIT_QUALITY_THUMBNAIL 70 #define CFG_PHOTOFAST_SLICE_ENC_INIT_QUALITY_SCREENNAIL 70 #define CFG_PHOTOFAST_SLICE_ENC_QUALITY_DOWN_STEP 3 typedef struct { UINT32 width; UINT32 height; UINT32 slice_num; UINT32 slice_height; /* slice height except last one */ UINT32 last_slice_height; /* last slice height */ } PhotoFast_SliceSize_Info; INT32 PhotoFast_SliceEncode_Open(const HD_PATH_ID vproc_path_id); INT32 PhotoFast_SliceEncode_Close(void); INT32 PhotoFast_SliceEncode(const HD_PATH_ID vproc_path_id, const HD_VIDEO_FRAME *p_video_frame); INT32 PhotoFast_SliceEncode_Get_Curr_Dst_Slice_Info(PhotoFast_SliceSize_Info *info); INT32 PhotoFast_SliceEncode_Get_Max_Dst_Slice_Buffer_Size(HD_VIDEO_PXLFMT pxl_fmt); #if POWERON_FAST_SLICE_ENC_VER2 == ENABLE INT32 PhotoFast_SliceEncode2_Open( const HD_PATH_ID vproc_path_id, const UINT32 max_cnt ); VOID PhotoFast_SliceEncode2_Close(VOID); INT32 PhotoFast_Sliceencode2_Enq_Frame(const HD_VIDEO_FRAME* video_frame); #endif #endif