nt9856x/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFastSliceEncode.h

51 lines
2.1 KiB
C

#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 99
#define CFG_PHOTOFAST_SLICE_ENC_INIT_QUALITY_THUMBNAIL 70
#define CFG_PHOTOFAST_SLICE_ENC_INIT_QUALITY_SCREENNAIL 70
#define CFG_PHOTOFAST_SLICE_ENC_QUALITY_STEP 10
#define CFG_PHOTOFAST_SLICE_ENC_RC_SCREENNAIL 1 /* rate control */
#define CFG_PHOTOFAST_SLICE_ENC_RC_SCREENNAIL_UBOUND (SCREENNAIL_TARGETBYTERATE + (SCREENNAIL_TARGETBYTERATE * 20 / 100))
#define CFG_PHOTOFAST_SLICE_ENC_RC_SCREENNAIL_LBOUND (SCREENNAIL_TARGETBYTERATE - (SCREENNAIL_TARGETBYTERATE * 20 / 100))
#define CFG_PHOTOFAST_SLICE_ENC_RC_SCREENNAIL_QUALITY_STEP 2
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);
INT32 PhotoFast_Sliceencode2_Stop(void);
#endif
#endif