⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mfcconfig.h

📁 Samsung公司S3C6400芯片的BSP源码包
💻 H
字号:
#ifndef __SAMSUNG_SYSLSI_APDEV_MFC_CONFIG_H__
#define __SAMSUNG_SYSLSI_APDEV_MFC_CONFIG_H__

#include <image_cfg.h>

// Physical Base Address for the MFC Host I/F Registers
#define S3C6400_BASEADDR_MFC_SFR				(0x7e002000)

// Physical Base Address for the MFC Shared Buffer
//   Shared Buffer = {CODE_BUF, WORK_BUF, PARA_BUF}
#define S3C6400_BASEADDR_MFC_BITPROC_BUF	(IMAGE_MFC_BUFFER_PA_START)	//0x56000000	// 0x57800000

// Physical Base Address for the MFC Data Buffer
//   Data Buffer = {STRM_BUF, FRME_BUF}
#define S3C6400_BASEADDR_MFC_DATA_BUF		(IMAGE_MFC_BUFFER_PA_START+0x116000)	// 0x56116000	// 0x57916000

// Physical Base Address for the MFC Host I/F Registers
#define S3C6400_BASEADDR_POST_SFR			(0x77000000)


//////////////////////////////////
/////                        /////
/////    MFC BITPROC_BUF     /////
/////                        /////
//////////////////////////////////
//the following three buffers have fixed size
//firware buffer is to download boot code and firmware code
#define MFC_CODE_BUF_SIZE	81920	// It is fixed depending on the MFC'S FIRMWARE CODE (refer to 'Prism_S_V133.h' file)

//working buffer is uded for video codec operations by MFC
#define MFC_WORK_BUF_SIZE	1048576 // 1024KB = 1024 * 1024


//Parameter buffer is allocated to store yuv frame address of output frame buffer.
#define MFC_PARA_BUF_SIZE	8192  //Stores the base address of Y , Cb , Cr for each decoded frame

#define MFC_BITPROC_BUF_SIZE		\
							(	MFC_CODE_BUF_SIZE + \
								MFC_PARA_BUF_SIZE    + \
								MFC_WORK_BUF_SIZE)


///////////////////////////////////
/////                         /////
/////      MFC DATA_BUF       /////
/////                         /////
///////////////////////////////////
#define MFC_NUM_INSTANCES_MAX	2	// MFC Driver supports 4 instances MAX.

#define MFC_LINE_RING_SHARE		0	// Determine if the LINE_BUF is shared with RING_BUF

#if (MFC_LINE_RING_SHARE == 1)

/*
 * stream buffer size must be a multiple of 512bytes 
 * becasue minimun data transfer unit between stream buffer and internal bitstream handling block 
 * in MFC core is 512bytes
 */
#define MFC_LINE_BUF_SIZE_PER_INSTANCE		(204800)


#define MFC_LINE_BUF_SIZE		(MFC_NUM_INSTANCES_MAX * MFC_LINE_BUF_SIZE_PER_INSTANCE)
#define MFC_RING_BUF_SIZE		(MFC_LINE_BUF_SIZE)		// RING_BUF_SIZE is same because it is shared with LINE_BUF
#define MFC_FRAM_BUF_SIZE		(720*480*3*4)


#define MFC_RING_BUF_PARTUNIT_SIZE			(MFC_LINE_BUF_SIZE / 3)	// RING_BUF consists of 3 PARTs.

#define MFC_STRM_BUF_SIZE		(MFC_LINE_BUF_SIZE)
#define MFC_DATA_BUF_SIZE		(MFC_STRM_BUF_SIZE + MFC_FRAM_BUF_SIZE)

#elif (MFC_LINE_RING_SHARE == 0)


/*
 * stream buffer size must be a multiple of 512bytes 
 * becasue minimun data transfer unit between stream buffer and internal bitstream handling block 
 * in MFC core is 512bytes
 */
#define MFC_LINE_BUF_SIZE_PER_INSTANCE		(204800)


#define MFC_LINE_BUF_SIZE		(MFC_NUM_INSTANCES_MAX * MFC_LINE_BUF_SIZE_PER_INSTANCE)
#define MFC_RING_BUF_SIZE		((204800)  *  3)		// 768,000 Bytes
#define MFC_FRAM_BUF_SIZE		(3732480)


#define MFC_RING_BUF_PARTUNIT_SIZE			(MFC_RING_BUF_SIZE / 3)	// RING_BUF consists of 3 PARTs.

#define MFC_STRM_BUF_SIZE		(MFC_LINE_BUF_SIZE + MFC_RING_BUF_SIZE)
#define MFC_DATA_BUF_SIZE		(MFC_STRM_BUF_SIZE + MFC_FRAM_BUF_SIZE)

#endif


#if (MFC_RING_BUF_PARTUNIT_SIZE & 0x1FF)
#error "MFC_RING_BUF_PARTUNIT_SIZE value must be 512-byte aligned."
#endif

#endif /* __SAMSUNG_SYSLSI_APDEV_MFC_CONFIG_H__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -