92 lines
2.9 KiB
C
Executable File
92 lines
2.9 KiB
C
Executable File
#include <stdio.h>
|
|
#include "ImageApp/ImageApp_UsbMovie.h"
|
|
#include "hdal.h"
|
|
#include "PrjInc.h"
|
|
|
|
//#define ENABLE 1
|
|
//#define DISABLE 0
|
|
|
|
#define VDO_SIZE_W 1920
|
|
#define VDO_SIZE_H 1080
|
|
|
|
#define VDO_MAIN_SIZE_W 1920
|
|
#define VDO_MAIN_SIZE_H 1080
|
|
|
|
#define SEN_OUT_FMT HD_VIDEO_PXLFMT_RAW12
|
|
#define CAP_OUT_FMT HD_VIDEO_PXLFMT_RAW12
|
|
#define DBGINFO_BUFSIZE() (0x200)
|
|
#define CA_WIN_NUM_W 32
|
|
#define CA_WIN_NUM_H 32
|
|
#define LA_WIN_NUM_W 32
|
|
#define LA_WIN_NUM_H 32
|
|
#define VA_WIN_NUM_W 16
|
|
#define VA_WIN_NUM_H 16
|
|
#define YOUT_WIN_NUM_W 128
|
|
#define YOUT_WIN_NUM_H 128
|
|
#define ETH_8BIT_SEL 0 //0: 2bit out, 1:8 bit out
|
|
#define ETH_OUT_SEL 1 //0: full, 1: subsample 1/2
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
//header
|
|
#define DBGINFO_BUFSIZE() (0x200)
|
|
|
|
//RAW
|
|
#define VDO_RAW_BUFSIZE(w, h, pxlfmt) (ALIGN_CEIL_4((w) * HD_VIDEO_PXLFMT_BPP(pxlfmt) / 8) * (h))
|
|
//NRX: RAW compress: Only support 12bit mode
|
|
#define RAW_COMPRESS_RATIO 59
|
|
#define VDO_NRX_BUFSIZE(w, h) (ALIGN_CEIL_4(ALIGN_CEIL_64(w) * 12 / 8 * RAW_COMPRESS_RATIO / 100 * (h)))
|
|
//CA for AWB
|
|
#define VDO_CA_BUF_SIZE(win_num_w, win_num_h) ALIGN_CEIL_4((win_num_w * win_num_h << 3) << 1)
|
|
//LA for AE
|
|
#define VDO_LA_BUF_SIZE(win_num_w, win_num_h) ALIGN_CEIL_4((win_num_w * win_num_h << 1) << 1)
|
|
|
|
//YUV
|
|
#define VDO_YUV_BUFSIZE(w, h, pxlfmt) (ALIGN_CEIL_4((w) * HD_VIDEO_PXLFMT_BPP(pxlfmt) / 8) * (h))
|
|
//NVX: YUV compress
|
|
#define YUV_COMPRESS_RATIO 75
|
|
#define VDO_NVX_BUFSIZE(w, h, pxlfmt) (VDO_YUV_BUFSIZE(w, h, pxlfmt) * YUV_COMPRESS_RATIO / 100)
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
static HD_COMMON_MEM_INIT_CONFIG mem_cfg = {0};
|
|
|
|
void UsbMovie_CommPoolInit(void)
|
|
{
|
|
UINT32 id;
|
|
UINT32 vcap_buf_size = 0;
|
|
|
|
// config common pool (cap)
|
|
id = 0;
|
|
mem_cfg.pool_info[id].type = HD_COMMON_MEM_COMMON_POOL;
|
|
|
|
vcap_buf_size = VDO_RAW_BUFSIZE(VDO_SIZE_W, VDO_SIZE_H, CAP_OUT_FMT);
|
|
|
|
#if (_BOARD_DRAM_SIZE_ == 0x04000000)
|
|
vcap_buf_size = 0;
|
|
#endif
|
|
|
|
mem_cfg.pool_info[id].blk_size = DBGINFO_BUFSIZE() +
|
|
//VDO_RAW_BUFSIZE(VDO_SIZE_W, VDO_SIZE_H, CAP_OUT_FMT) +
|
|
vcap_buf_size +
|
|
VDO_CA_BUF_SIZE(CA_WIN_NUM_W, CA_WIN_NUM_H) +
|
|
VDO_LA_BUF_SIZE(LA_WIN_NUM_W, LA_WIN_NUM_H);
|
|
mem_cfg.pool_info[id].blk_cnt = 2;
|
|
mem_cfg.pool_info[id].ddr_id = DDR_ID0;
|
|
|
|
// config common pool (main)
|
|
id ++;
|
|
mem_cfg.pool_info[id].type = HD_COMMON_MEM_COMMON_POOL;
|
|
mem_cfg.pool_info[id].blk_size = DBGINFO_BUFSIZE() + VDO_YUV_BUFSIZE(VDO_MAIN_SIZE_W, VDO_MAIN_SIZE_H, HD_VIDEO_PXLFMT_YUV420);
|
|
#if (_BOARD_DRAM_SIZE_ == 0x04000000)
|
|
mem_cfg.pool_info[id].blk_cnt = 5; //3 for 3dnr-off, 4 for 3dnr-on
|
|
#else
|
|
mem_cfg.pool_info[id].blk_cnt = 6; //3 for 3dnr-off, 4 for 3dnr-on
|
|
#endif
|
|
mem_cfg.pool_info[id].ddr_id = DDR_ID0;
|
|
|
|
ImageApp_UsbMovie_Config(USBMOVIE_CFG_MEM_POOL_INFO, (UINT32)&mem_cfg);
|
|
}
|
|
|