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);
 | |
| }
 | |
| 
 | 
