📄 mfcconfig.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 + -