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

📄 sh_mem_api.h

📁 SAMSUNG 5009的源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
/******************************************************************************
 * File name  : SH_MEM_api.h                                                  *
 * Start date : 2003.1.14                                                     *
 * By         : Taejin Kwon                                                   *
 * Contact    : eric.kwon@samsung.com                                         *
 * Description: Memory map for all application for S5H5002                    *
 *    - Each buffer size must at least Word Aligned                           *
 *    - Frame buffer address must 1K Aligned.                                 *
 *    - PSD SYS buffer address must low 9bit zero.                            *
 ******************************************************************************
 */  

#ifndef _S5H_MEM_MAP_H_
#define _S5H_MEM_MAP_H_


#ifdef	__cplusplus
extern	"C" {
#endif


#if _API_CAP_GLB_MPVD_FRAME_MODE
typedef enum {
	MM_MEM_BASE,
#if _API_CAP_USE_UNIQ_USBMCARD_MEMMAP
	MM_USBMCARD_BUF,
#endif
	MM_FRAME_BUF,
#if _API_CAP_GLB_SLOW_REVERSE	
	MM_BACKWARD_BUF,	
#endif	
#if _API_CAP_USE_VIRTUAL_MEM
	MM_VIRMEM_POOL_BUF,
#endif
	MM_MI_DP_A,
	MM_MI_DP_B,
	MM_REF_MV_BUF,
/*	The VBV buffer is moved to here. 20060629 */
	MM_VBV_BUF,
/*	The VBV buffer is moved to here. 20060629 */
	MM_PSD_SYS,	
	MM_MPEG_USER,	
	MM_CURSOR_DATA,
#if _APP_CAP_NAV_CDG_DECODE
	MM_CDG_BUF,	
#endif
	MM_CALM,	
#if _API_CAP_GLB_B2R_FRAME_MODE
	MM_B2R_BUF,
#endif
	MM_FEU_BUF,
	MM_TRACK_BUF,
	MM_NV_IN,
	MM_GFX_DATA,
#if _API_CAP_USE_ARM_JPG_DECODE
	MM_ARM_IN,
	MM_ARM_OUT,
#endif	
#if _API_CAP_GLB_EXTRA_DUMP_BUF
	MM_DUMP_BUF,
#endif
	MM_SPU1_IN,	/* spu buffering buffer */
#if !_COP_5009_SIMPLE_SOL
	MM_SPU2_IN,	/* spd decoding buffer */
#endif	

#if _AUD_NEW_BUF_STRC_FOR_DIVX		//jy newbuf
	MM_AUD_BUF, 
#endif
#if _APP_CAP_OSD_LANG_CHINESE_SUBTITLE
	MM_EX_SUBTITLE_KOR_1, /*str1*/
	MM_EX_SUBTITLE_KOR_2, /*str2*/
	MM_EX_SUBTITLE_KOR_3, /*str3*/
	MM_EX_SUBTITLE_KOR_4, /*str4 */
#endif	
	MM_SUBTITLE_BUF, 
#if _APP_CAP_FUNC_DIVX_DRM	
	MM_DRM_BUF,
#endif	
	MM_SECTOR_BUF,

#if 0	//_APP_CAP_NAV_USB_DISC || _APP_CAP_NAV_FX_DATA
	MM_FAT_BUF,
#endif	
#if _COP_CAPTURE_LOGO_USED
	MM_IFO_OUT_BUF,
	MM_IFO_QM,
#endif
#if _API_CAP_USE_HW_MEM_POOL
	MM_MEM_POOL_BUF,
#endif
#if _COP_MOVE_FILE_BUFFER
	MM_MMP_FILE_BUF,
#endif
	MM_MEM_END,
	MM_NUM_OF_BUF_TYPE	/* Simply Number of buffer type enum member */
} MM_BufferType_t;


#else

/*** Category ***/

typedef enum {
	MM_MEM_BASE,
#if _API_CAP_USE_UNIQ_USBMCARD_MEMMAP
	MM_USBMCARD_BUF,
#endif
	MM_PSD_SYS,	
	MM_MPEG_USER,	
	MM_CURSOR_DATA,
	MM_FRAME_BUF,
#if _APP_CAP_NAV_CDG_DECODE	 	
	MM_CDG_BUF,	
#endif	
	MM_CALM,	
#if _API_CAP_GLB_B2R_FRAME_MODE
	MM_B2R_BUF,
#endif
	MM_FEU_BUF,
	MM_TRACK_BUF,
	MM_VBV_BUF,
#if _API_CAP_GLB_SLOW_REVERSE	
	MM_BACKWARD_BUF,	
#endif		
	MM_NV_IN,
	MM_GFX_DATA,
#if _API_CAP_USE_ARM_JPG_DECODE
	MM_ARM_IN,
	MM_ARM_OUT,
#endif	
#if _API_CAP_GLB_EXTRA_DUMP_BUF
	MM_DUMP_BUF,
#endif
	MM_SPU1_IN,	/* spu buffering buffer */
#if !_COP_5009_SIMPLE_SOL
	MM_SPU2_IN,	/* spd decoding buffer */
#endif	
#if _API_CAP_GLB_MPVD_FRAME_MODE
#if _API_CAP_USE_VIRTUAL_MEM
	MM_VIRMEM_POOL_BUF,
#endif
	MM_MI_DP_A,
	MM_MI_DP_B,
	MM_REF_MV_BUF,
#if _APP_CAP_OSD_LANG_CHINESE_SUBTITLE
	MM_EX_SUBTITLE_KOR_1, /*str1*/
	MM_EX_SUBTITLE_KOR_2, /*str2*/
	MM_EX_SUBTITLE_KOR_3, /*str3*/
	MM_EX_SUBTITLE_KOR_4, /*str4 */
#endif	

	MM_SUBTITLE_BUF, /*internal, external subtitle buf*/
	MM_IN_SUBTITLE_BUF,
#if _APP_CAP_FUNC_DIVX_DRM	
	MM_DRM_BUF,
#endif	
#if 1	
	MM_SECTOR_BUF,
#endif
#endif/*_API_CAP_GLB_MPVD_FRAME_MODE */

#if _APP_CAP_NAV_DVD_AUDIO
	MM_ASV_BUF,
#endif
#if _API_CAP_USE_HW_MEM_POOL
	MM_MEM_POOL_BUF,
#endif
#if _COP_MOVE_FILE_BUFFER
	MM_MMP_FILE_BUF,
#endif
	MM_MEM_END,
	MM_NUM_OF_BUF_TYPE	/* Simply Number of buffer type enum member */
} MM_BufferType_t;

#endif

/*** Global variable in SH_MEM_api.c ***/
extern S5H_MemMapType_t	gNow_mcfg;

/*** Memory map for all applications ***/
extern CONST UINT	__gFrame_one_sz[];
#if _COP_CAPTURE_LOGO_USED
extern CONST UINT __gIFO_one_sz[];		//added by zs
#endif
extern CONST UINT	__gTrack_buf_unit[];
extern CONST UINT	__gHw_mem_sz[MM_NUM_OF_BUF_TYPE][MM_NULL];
extern UINT			gBuffer_address[MM_NUM_OF_BUF_TYPE];

#if _API_CAP_USE_VIRTUAL_MEM
#define SH_MEM_BUF_SIZE(x)	((x) & 0x00FFFFFF)
#define SH_MEM_BUF_TYPE(x)	((x) & 0xFF000000)
#else
#define SH_MEM_BUF_SIZE(x)	((x) & 0x0FFFFFFF)
#endif
/*** Memory sizes ***/
#if _APP_CAP_NAV_CDG_DECODE	 
#define CDG_BUF_SZ					SH_MEM_BUF_SIZE(__gHw_mem_sz[MM_CDG_BUF][gNow_mcfg])
#endif
#define	FRAME_BUF_SZ				SH_MEM_BUF_SIZE(__gHw_mem_sz[MM_FRAME_BUF][gNow_mcfg])
#if _COP_CAPTURE_LOGO_USED
#define	IFO_OUT_BUF_SZ			SH_MEM_BUF_SIZE(__gHw_mem_sz[MM_IFO_OUT_BUF][gNow_mcfg])			//added by zs
#define	IFO_QM_SZ					SH_MEM_BUF_SIZE(__gHw_mem_sz[MM_IFO_QM][gNow_mcfg])				//added by zs
#endif
#define	PSD_SYS_BUF_SZ			SH_MEM_BUF_SIZE(__gHw_mem_sz[MM_PSD_SYS][gNow_mcfg])
#define FEU_BUF_SZ					SH_MEM_BUF_SIZE(__gHw_mem_sz[MM_FEU_BUF][gNow_mcfg])
#define TRACK_BUF_SZ				SH_MEM_BUF_SIZE(__gHw_mem_sz[MM_TRACK_BUF][gNow_mcfg])
#define	VBV_BUF_SZ					SH_MEM_BUF_SIZE(__gHw_mem_sz[MM_VBV_BUF][gNow_mcfg])
#define	USER_DATA_SZ				SH_MEM_BUF_SIZE(__gHw_mem_sz[MM_MPEG_USER][gNow_mcfg])
#define	SPU1_BUF_SZ				SH_MEM_BUF_SIZE(__gHw_mem_sz[MM_SPU1_IN][gNow_mcfg])
#if !_COP_5009_SIMPLE_SOL
#define	SPU2_BUF_SZ				SH_MEM_BUF_SIZE(__gHw_mem_sz[MM_SPU2_IN][gNow_mcfg])
#endif
#define	NV_IN_BUF_SZ				SH_MEM_BUF_SIZE(__gHw_mem_sz[MM_NV_IN][gNow_mcfg])
#define	GFX_DATA_SZ				SH_MEM_BUF_SIZE(__gHw_mem_sz[MM_GFX_DATA][gNow_mcfg])
#define	CURSOR_DATA_SZ			SH_MEM_BUF_SIZE(__gHw_mem_sz[MM_CURSOR_DATA][gNow_mcfg])
#if _API_CAP_USE_ARM_JPG_DECODE
#define ARM_INPUT_SZ				SH_MEM_BUF_SIZE(__gHw_mem_sz[MM_ARM_IN][gNow_mcfg])
#define ARM_OUTPUT_SZ				SH_MEM_BUF_SIZE(__gHw_mem_sz[MM_ARM_OUT][gNow_mcfg])
#endif
#if _API_CAP_GLB_EXTRA_DUMP_BUF
#define DUMP_BUF_SZ				SH_MEM_BUF_SIZE(__gHw_mem_sz[MM_DUMP_BUF][gNow_mcfg])
#endif
#define	FRAME_ONE_SZ				SH_MEM_BUF_SIZE(__gFrame_one_sz[gNow_mcfg])	
#define TRACK_BUF_UNIT			SH_MEM_BUF_SIZE(__gTrack_buf_unit[gNow_mcfg])

#if _COP_CAPTURE_LOGO_USED
#define	IFO_ONE_SZ				SH_MEM_BUF_SIZE(__gIFO_one_sz[gNow_mcfg])	
#endif
#if _API_CAP_GLB_SLOW_REVERSE
#define	REV_BUF_SZ			SH_MEM_BUF_SIZE(__gHw_mem_sz[MM_BACKWARD_BUF][gNow_mcfg])
#endif


#if _API_CAP_GLB_MPVD_FRAME_MODE
/* Usage memory for MPVD User_Data and MV_Data : MI_DP_A, MI_DP_B, MI_REF_MV*/
#define MPVD_MI_DP_A_SZ			SH_MEM_BUF_SIZE(__gHw_mem_sz[gNow_mcfg])
#define MPVD_MI_DP_B_SZ			SH_MEM_BUF_SIZE(__gHw_mem_sz[gNow_mcfg])
#define MPVD_MI_REF_MV_BUF_SZ	SH_MEM_BUF_SIZE(__gHw_mem_sz[gNow_mcfg])
#if _AUD_NEW_BUF_STRC_FOR_DIVX		//jy newbuf
#define AUD_BUF_SZ						SH_MEM_BUF_SIZE(__gHw_mem_sz[MM_AUD_BUF][gNow_mcfg])
#endif
#if _APP_CAP_FUNC_DIVX_DRM
#define	DRM_BUF_SZ					SH_MEM_BUF_SIZE(__gHw_mem_sz[MM_DRM_BUF][gNow_mcfg])
#endif

#define SUBTITLE_BUF_SZ			SH_MEM_BUF_SIZE(__gHw_mem_sz[MM_SUBTITLE_BUF][gNow_mcfg])
/*<<< @: 2005.11.14 : hs Seo : */
/* <<< @: 5010-xxx.HS SEO 060112 : concurrently play a inner subtitle and a external subtitle *///insub__
#define IN_SUBTITLE_BUF_SZ		SH_MEM_BUF_SIZE(__gHw_mem_sz[MM_IN_SUBTITLE_BUF][gNow_mcfg])

/* <<< @: 5010-xxx.HS SEO 060112 *///insub__

#if 1
#define	SECTOR_BUF_SZ				SH_MEM_BUF_SIZE(__gHw_mem_sz[MM_SECTOR_BUF][gNow_mcfg])
#endif

#endif /* _API_CAP_GLB_MPVD_FRAME_MODE */

#if _APP_CAP_NAV_DVD_AUDIO
#define ASV_BUF_SZ					SH_MEM_BUF_SIZE(__gHw_mem_sz[MM_ASV_BUF][gNow_mcfg])
#endif

#if _API_CAP_USE_VIRTUAL_MEM
#define VIRMEM_POOL_BUF_SZ				SH_MEM_BUF_SIZE(__gHw_mem_sz[MM_VIRMEM_POOL_BUF][gNow_mcfg])
#endif

#if _API_CAP_USE_EXTVBV_BUF
#define DP_A_BUF_SZ					SH_MEM_BUF_SIZE(__gHw_mem_sz[MM_MI_DP_A][gNow_mcfg])
#define DP_B_BUF_SZ					SH_MEM_BUF_SIZE(__gHw_mem_sz[MM_MI_DP_B][gNow_mcfg])
#define REF_MV_BUF_SZ				SH_MEM_BUF_SIZE(__gHw_mem_sz[MM_REF_MV_BUF][gNow_mcfg])
#endif

#if _API_CAP_USE_HW_MEM_POOL
#define MEM_POOL_BUF_SZ				SH_MEM_BUF_SIZE(__gHw_mem_sz[MM_MEM_POOL_BUF][gNow_mcfg])
#endif

#if _API_CAP_USE_UNIQ_USBMCARD_MEMMAP
#define USBMCARD_BUF_SZ			SH_MEM_BUF_SIZE(__gHw_mem_sz[MM_USBMCARD_BUF][gNow_mcfg])
#endif

#if _COP_MOVE_FILE_BUFFER
#define FILE_BUF_SZ					SH_MEM_BUF_SIZE(__gHw_mem_sz[MM_MMP_FILE_BUF][gNow_mcfg])
#endif

/**** alignment address start ****/
/* 1K-byte alignment */
#if _COP_CAPTURE_LOGO_USED
#define	IFO_OUT_BUF_ADR			gBuffer_address[MM_IFO_OUT_BUF]		//added by zs
#define	IFO_QM_ADR				gBuffer_address[MM_IFO_QM]			//added by zs
#endif

#define	FRAME_BUF_ADR				gBuffer_address[MM_FRAME_BUF]
#if _APP_CAP_NAV_CDG_DECODE	 
#define CDG_BUF_ADR				gBuffer_address[MM_CDG_BUF]
#endif

#if _API_CAP_GLB_B2R_FRAME_MODE
#define B2R_BUF_ADR				gBuffer_address[MM_B2R_BUF]
#endif

/* low 9 bit is zero */
#define	PSD_SYS_BUF_ADR				gBuffer_address[MM_PSD_SYS]
/**** alignment end ****/

#define FEU_BUF_ADR					gBuffer_address[MM_FEU_BUF]
#define TRACK_BUF_ADR				gBuffer_address[MM_TRACK_BUF]
#define VBV_BUF_ADR					gBuffer_address[MM_VBV_BUF]
#define USER_DATA_ADR				gBuffer_address[MM_MPEG_USER]
#define SPU1_BUF_ADR				gBuffer_address[MM_SPU1_IN]
#if !_COP_5009_SIMPLE_SOL
#define SPU2_BUF_ADR				gBuffer_address[MM_SPU2_IN]
#endif
#define NV_IN_BUF_ADR				gBuffer_address[MM_NV_IN]
#define GFX_DATA_ADR				gBuffer_address[MM_GFX_DATA]
#define CURSOR_DATA_ADR				gBuffer_address[MM_CURSOR_DATA]

#if _API_CAP_USE_ARM_JPG_DECODE
#define ARM_IN_ADR					gBuffer_address[MM_ARM_IN]
#define ARM_OUT_ADR				gBuffer_address[MM_ARM_OUT]
#endif
#if _API_CAP_GLB_EXTRA_DUMP_BUF
#define DUMP_BUF_ADR				gBuffer_address[MM_DUMP_BUF]

⌨️ 快捷键说明

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