📄 sh_mem_api.h
字号:
/******************************************************************************
* 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 + -