📄 sh_mem_api.h
字号:
#endif
#if _API_CAP_GLB_SLOW_REVERSE
#define REV_BUF_ADR gBuffer_address[MM_BACKWARD_BUF]
#endif
#define APPL_MEMORY_END gBuffer_address[MM_MEM_END]
#if _API_CAP_GLB_MPVD_FRAME_MODE
#define MPVD_MI_DP_A_ADR gBuffer_address[MM_MI_DP_A]
#define MPVD_MI_DP_B_ADR gBuffer_address[MM_MI_DP_B]
#define MPVD_MI_REF_MV_BUF_ADR gBuffer_address[MM_REF_MV_BUF]
#if _AUD_NEW_BUF_STRC_FOR_DIVX //jy newbuf
#define AUD_BUF_ADR gBuffer_address[MM_AUD_BUF]
#endif
#if _APP_CAP_OSD_LANG_CHINESE_SUBTITLE
#define GFX_RSC_FONT_KOR01_ADR gBuffer_address[MM_EX_SUBTITLE_KOR_1]
#define GFX_RSC_FONT_KOR02_ADR gBuffer_address[MM_EX_SUBTITLE_KOR_2]
#define GFX_RSC_FONT_KOR03_ADR gBuffer_address[MM_EX_SUBTITLE_KOR_3]
#define GFX_RSC_FONT_KOR04_ADR gBuffer_address[MM_EX_SUBTITLE_KOR_4]
#endif
#define SUBTITLE_BUF_ADR gBuffer_address[MM_SUBTITLE_BUF]
/* <<< @: 5010-xxx.HS SEO 060112 : concurrently play a inner subtitle and a external subtitle *///insub__
#define IN_SUBTITLE_BUF_ADR gBuffer_address[MM_IN_SUBTITLE_BUF]
#if _APP_CAP_FUNC_DIVX_DRM
#define DRM_BUF_ADR gBuffer_address[MM_DRM_BUF]
#endif
#if 1
#define SECTOR_BUF_ADR gBuffer_address[MM_SECTOR_BUF]
#endif
#endif/*_API_CAP_GLB_MPVD_FRAME_MODE */
#if _APP_CAP_NAV_DVD_AUDIO
#define ASV_BUF_ADR gBuffer_address[MM_ASV_BUF]
#endif
#if _COP_MOVE_FILE_BUFFER
#define MMP_FILE_BUF gBuffer_address[MM_MMP_FILE_BUF]
#endif
#if _API_CAP_USE_VIRTUAL_MEM
#define VIRMEM_POOL_BUF_ADR gBuffer_address[MM_VIRMEM_POOL_BUF]
#endif
#if _API_CAP_USE_HW_MEM_POOL
#define MEM_POOL_BUF_ADR gBuffer_address[MM_MEM_POOL_BUF]
#endif
#if _API_CAP_USE_UNIQ_USBMCARD_MEMMAP
#define USBMCARD_BUF_ADR gBuffer_address[MM_USBMCARD_BUF]
#endif
#if _COP_MOVE_FILE_BUFFER
#define FILE_BUF_ADR gBuffer_address[MM_MMP_FILE_BUF]
#endif
/*******************************************************
* Re-Define memory map.
*******************************************************/
/*** Buffer Unit Defines ***/
/* MPEG Video User data buffer */
#define USER_DATA_END_ADR (USER_DATA_ADR + USER_DATA_SZ)
/* VBV buffer */
#define MM_VBV_BUF_START VBV_BUF_ADR
#define MM_VBV_BUF_SIZE VBV_BUF_SZ
#if _API_CAP_USE_EXTVBV_BUF
#define MM_EXTVBV_BUF_START VIRMEM_POOL_BUF_ADR
#define MM_EXTVBV_BUF_SIZE (VIRMEM_POOL_BUF_SZ+DP_A_BUF_SZ+DP_B_BUF_SZ+REF_MV_BUF_SZ)
#endif
#if _SH_SUPPORT_BAT_VIDEO
/*
Type of vbv buffer unit
*/
#define MM_VBV_BUF_UNIT_1K (0x400)
#define MM_VBV_BUF_UNIT_2K (0x800)
#define MM_VBV_BUF_UNIT_4K (0x1000)
#define MM_VBV_BUF_UNIT_8K (0x2000)
#define MM_BATCTL_UNIT_1KB (0<<4)
#define MM_BATCTL_UNIT_2KB (1<<4)
#define MM_BATCTL_UNIT_4KB (2<<4)
#define MM_BATCTL_UNIT_8KB (3<<4)
#define MM_VBV_BUF_UNIT_SIZE MM_VBV_BUF_UNIT_4K
#define MM_BATCTL_UNIT MM_BATCTL_UNIT_4KB
#define MM_VBV_UNIT (MM_VBV_BUF_SIZE / MM_VBV_BUF_UNIT_SIZE)
#define MM_VBV_BUF_END (VBV_BUF_ADR + VBV_BUF_SZ)
#if _USE_FIX_B2R_REW_POINT_BUG
/* Even though the vbv unit seems to be reserved, it just uses 32 bytes to handle B2R rewind bug.
Therefore only 32 bytes is actually reversed in memmap. (20060327,ishan) */
#define MM_VBV_FOR_B2R_REW_BUG (MM_VBV_BUF_START - MM_VBV_BUF_UNIT_SIZE)
#endif
#else /* _SH_SUPPORT_BAT_VIDEO */
/* <<< @: 5010-xxx.JaeYoul_Kim 051228 : automatically get MM_VBV_UNIT number from MM_VBV_BUF_SIZE due to 0xC00 size per unit */
#if _API_CAP_GLB_MPVD_FRAME_MODE
#define MM_VBV_BUF_UNIT_SIZE 0xC00 //it seems fixed size
#define MM_VBV_UNIT (MM_VBV_BUF_SIZE / MM_VBV_BUF_UNIT_SIZE)
#define MM_VBV_BUF_END (VBV_BUF_ADR + VBV_BUF_SZ)
#if _API_CAP_USE_EXTVBV_BUF
#define MM_EXTVBV_UNIT ((UINT)(MM_EXTVBV_BUF_SIZE/MM_VBV_BUF_UNIT_SIZE))
#endif
#else /* ! _API_CAP_GLB_MPVD_FRAME_MODE */
#if _REDUCE_HW_MEMORY_V1
#define MM_VBV_UNIT 40
#else
#define MM_VBV_UNIT 40 // 45 // Fix temporarily (20050628, ishan)
#endif
#define MM_VBV_BUF_UNIT_SIZE (VBV_BUF_SZ / MM_VBV_UNIT)
#define MM_VBV_BUF_END (VBV_BUF_ADR + VBV_BUF_SZ)
#endif
/* >>> @: 5010-xxx.JaeYoul_Kim 051227 */
#endif /* _SH_SUPPORT_BAT_VIDEO */
/* Track buffer */
#define MM_FEU_BUF_START FEU_BUF_ADR
#define MM_SUBQ_SIZE 96
#define MM_TRACK_BUF_START TRACK_BUF_ADR
#define MM_TRACK_BUF_SIZE TRACK_BUF_SZ
#define MM_TRACK_BUF_UNIT TRACK_BUF_UNIT
#define MM_TRACK_BUF_UNIT_SIZE (MM_TRACK_BUF_SIZE/MM_TRACK_BUF_UNIT)
/* Track buffer size for SVCD and VCD */
#define MM_TRACK_BUF_VCD_UNIT TRACK_BUF_UNIT
#define MM_TRACK_BUF_VCD_UNIT_SIZE (TRACK_BUF_SZ / MM_TRACK_BUF_VCD_UNIT)
/* Track buffer size for CDDA */
#define MM_TRACK_BUF_CDDA_START TRACK_BUF_ADR
#define MM_TRACK_BUF_CDDA_SIZE TRACK_BUF_SZ
#define MM_TRACK_BUF_CDDA_UNIT TRACK_BUF_UNIT
#define MM_TRACK_BUF_CDDA_UNIT_SIZE (TRACK_BUF_SZ/MM_TRACK_BUF_CDDA_UNIT)
#if _API_CAP_GLB_MPVD_FRAME_MODE
#define MM_MPVD_MI_DP_A_START MPVD_MI_DP_A_ADR
#define MM_MPVD_MI_DP_A_SIZE MPVD_MI_DP_A_SZ
#define MM_MPVD_MI_DP_B_START MPVD_MI_DP_B_ADR
#define MM_MPVD_MI_DP_B_SIZE MPVD_MI_DP_B_SZ
#define MM_MPVD_MI_REF_MV_BUF_START MPVD_MI_REF_MV_BUF_ADR
#define MM_MPVD_MI_REF_MV_BUF_SIZE MPVD_MI_REF_MV_BUF_SZ
#if _AUD_NEW_BUF_STRC_FOR_DIVX //jy newbuf
#define MM_AUD_BUF_START AUD_BUF_ADR
#define MM_AUD_BUF_SIZE AUD_BUF_SZ
#define MM_AUD_BUF_UNIT_SIZE 0x400
#define MM_AUD_BUF_UNIT_NUMBER (MM_AUD_BUF_SIZE / MM_AUD_BUF_UNIT_SIZE)
#endif
#define MM_DRM_BUF_START DRM_BUF_ADR
/*<<< @: 2005.11.14 : hs Seo : */
#define MM_SUBTITLE_BUF_START SUBTITLE_BUF_ADR
/*<<< @: 2005.11.14 : hs Seo : */
/* <<< @: 5010-xxx.HS SEO 060112 : concurrently play a inner subtitle and a external subtitle *///insub__
#define MM_IN_SUBTITLE_BUF_START IN_SUBTITLE_BUF_ADR
/* <<< @: 5010-xxx.HS SEO 060112 *///insub__
#if 1
#define MM_SECTOR_BUF_START SECTOR_BUF_ADR
#endif
#endif /* _API_CAP_GLB_MPVD_FRAME_MODE */
#if _API_CAP_GLB_EXTRA_DUMP_BUF
#define MM_DUMP_BUF_START DUMP_BUF_ADR
#define MM_DUMP_BUF_SIZE DUMP_BUF_SZ
#define MM_DUMP_BUF_UNIT 2
#define MM_DUMP_BUF_UNIT_SIZE (MM_DUMP_BUF_SIZE/MM_DUMP_BUF_UNIT)
#endif
#if _API_CAP_GLB_SLOW_REVERSE
#define MM_REVERSE_BUF_START REV_BUF_ADR
#define MM_REVERSE_SIZE REV_BUF_SZ
#define MM_REVERSE_BUF_UNIT 2
#define MM_REVERSE_BUF_UNIT_SIZE (MM_REVERSE_SIZE/MM_REVERSE_BUF_UNIT)
#endif
#if (_USE_5008 || _USE_5005 || _USE_5015)
#if _USE_VIDEO_RECOMP
#define Y_SIZE_NTSC 0x2A400
#define C_SIZE_NTSC 0x15400
#define Y_SIZE_PAL_COMP 0x2c800
#define C_SIZE_PAL_COMP 0x13000
#define Y0_TO_PTR FRAME_BUF_ADR
#define Y0_BO_PTR (Y0_TO_PTR + Y_SIZE_NTSC + C_SIZE_NTSC)
#define Y1_TO_PTR (Y0_BO_PTR + Y_SIZE_NTSC + C_SIZE_NTSC)
#define Y1_BO_PTR (Y1_TO_PTR + Y_SIZE_NTSC + C_SIZE_NTSC)
#else
#define Y_SIZE 0x32C00
#define C_SIZE 0x19800
#define Y0_TO_PTR FRAME_BUF_ADR
#define Y0_TE_PTR (Y0_TO_PTR + Y_SIZE)
#define Y0_BO_PTR (Y0_TE_PTR + C_SIZE)
#define Y0_BE_PTR (Y0_BO_PTR + Y_SIZE)
#define Y1_TO_PTR (Y0_BE_PTR + C_SIZE)
#define Y1_TE_PTR (Y1_TO_PTR + Y_SIZE)
#define Y1_BO_PTR (Y1_TE_PTR + C_SIZE)
#define Y1_BE_PTR (Y1_BO_PTR + Y_SIZE)
#define Y2_TO_PTR (Y1_BE_PTR + C_SIZE)
#define Y2_TE_PTR (Y2_TO_PTR + Y_SIZE)
#define Y2_BO_PTR (Y2_TE_PTR + C_SIZE)
#define Y2_BE_PTR (Y2_BO_PTR + Y_SIZE)
#define Y3_TO_PTR (Y2_BE_PTR + C_SIZE)
#define Y3_TE_PTR (Y3_TO_PTR + Y_SIZE)
#define Y3_BO_PTR (Y3_TE_PTR + C_SIZE)
#define Y3_BE_PTR (Y3_BO_PTR + Y_SIZE)
#define Y4_TO_PTR (Y3_BE_PTR + C_SIZE)
#define Y4_TE_PTR (Y4_TO_PTR + Y_SIZE)
#define Y4_BO_PTR (Y4_TE_PTR + C_SIZE)
#define Y4_BE_PTR (Y4_BO_PTR + Y_SIZE)
#endif
#else /* _USE_5008 */
//bank interleaving test -by PHR
#define FR_QUART_SIZE (((FRAME_ONE_SZ-3072) >> 1)/3 ) /* chrominance size interleaving */
#define FR_QUART_SIZE1 (FR_QUART_SIZE*2) /* luminace size interleaving */
#define Y_SIZE FR_QUART_SIZE1
#define C_SIZE FR_QUART_SIZE + 1024*2
#define Y0_TO_PTR FRAME_BUF_ADR
#define Y0_TE_PTR (Y0_TO_PTR + FR_QUART_SIZE1)
#define Y0_BO_PTR (Y0_TE_PTR + FR_QUART_SIZE + 1024*2 )
#define Y0_BE_PTR (Y0_BO_PTR + FR_QUART_SIZE1) /* +FRAME_ONE_SIZE/2 + 1K */
#define Y1_TO_PTR (Y0_BE_PTR + FR_QUART_SIZE + 1024*1 )
#define Y1_TE_PTR (Y1_TO_PTR + FR_QUART_SIZE1)
#define Y1_BO_PTR (Y1_TE_PTR + FR_QUART_SIZE + 1024*2 )
#define Y1_BE_PTR (Y1_BO_PTR + FR_QUART_SIZE1)
#define Y2_TO_PTR (Y1_BE_PTR + FR_QUART_SIZE + 1024*1 )
#define Y2_TE_PTR (Y2_TO_PTR + FR_QUART_SIZE1)
#define Y2_BO_PTR (Y2_TE_PTR + FR_QUART_SIZE + 1024*2 )
#define Y2_BE_PTR (Y2_BO_PTR + FR_QUART_SIZE1)
#define Y3_TO_PTR (Y2_BE_PTR + FR_QUART_SIZE + 1024*1 )
#define Y3_TE_PTR (Y3_TO_PTR + FR_QUART_SIZE1)
#define Y3_BO_PTR (Y3_TE_PTR + FR_QUART_SIZE + 1024*2 )
#define Y3_BE_PTR (Y3_BO_PTR + FR_QUART_SIZE1)
#define Y4_TO_PTR (Y3_BE_PTR + FR_QUART_SIZE + 1024*1 )
#define Y4_TE_PTR (Y4_TO_PTR + FR_QUART_SIZE1)
#define Y4_BO_PTR (Y4_TE_PTR + FR_QUART_SIZE + 1024*2 )
#define Y4_BE_PTR (Y4_BO_PTR + FR_QUART_SIZE1)
#endif /* _USE_5008 */
/* Audio buffer */
#if _API_CAP_USE_ARM_JPG_DECODE
#define MM_ARM_IN_START ARM_IN_ADR
#define MM_ARM_IN_SIZE 0x1E000
#define MM_ARM_IN_BUF_CHUNK 2
#define MM_ARM_IN_UNIT_SIZE 0xF000 //0x1E000//(MM_ARM_IN_SIZE/MM_ARM_IN_BUF_CHUNK)
#define MM_ARM_OUT_START ARM_OUT_ADR
#define MM_ARM_OUT_BUF_CHUNK 2
#define MM_ARM_OUT_SIZE MM_ARM_OUT_BUF_CHUNK*0x4380//0x8700 //0x4380
#define MM_ARM_OUT_UNIT_SIZE 0x4380 //(MM_ARM_OUT_SIZE/MM_ARM_OUT_BUF_CHUNK)
#endif
/* Subpicture buffer */
#define MM_SPD_BUF_START SPU1_BUF_ADR
#define MM_SPD_BUF_SIZE SPU1_BUF_SZ
#if _API_CAP_GLB_MPVD_FRAME_MODE //dixv subtitile to spu shs
#define MM_SPD_BUF_UNIT 4
#else
#define MM_SPD_BUF_UNIT 24
#endif
#if _API_CAP_GLB_BAT_MODE
#define MM_SPD_BUF_UNIT_SIZE MM_VBV_BUF_UNIT_SIZE
#else
#define MM_SPD_BUF_UNIT_SIZE (MM_SPD_BUF_SIZE/MM_SPD_BUF_UNIT)
#endif
#define MM_SPD_BUF_1 SPU2_BUF_ADR
#define MM_SPD_BUF_2 (MM_SPD_BUF_1 + 0xD000)
/* Navigation pack buffer */
#define MM_NAV_BUF_NUM 4
#define MM_PCI_START NV_IN_BUF_ADR
#define MM_PCI_UNIT_SIZE 979
#define MM_DSI_START (MM_PCI_START+(MM_NAV_BUF_NUM*1024))
#define MM_DSI_UNIT_SIZE 1017
#define MM_NAV_BUF_UNIT_SIZE 1024
#define GET_FRAME_BUF_1_ADDR() Y1_TE_PTR
/*
At transient state, the first audio sample for IODMA for example.
we need to set Zero_buffer for IODMA to avoid Noise.
To avoid dependancy with current ADM system, i reserved seperate ZMEMBUF for such usage. -- hspark 040930
zero memory address must checked by design engineer.
*/
#define ZERO_MEMORY 0x3f000000 //S5L5001 zero memory space... by cklee.
#define ZERO_MEMORY_SIZE 0x00080000
#define ZERO_MEMORY_END (ZERO_MEMORY + ZERO_MEMORY_SIZE)
#if _APP_CAP_NAV_DVD_AUDIO
#define MM_ASV_UNIT_SIZE 0x8000
#define MM_ASV_UNIT (ASV_BUF_SZ/MM_ASV_UNIT_SIZE)
#endif
#ifdef __cplusplus
}
#endif
#endif /* _S5H_MEM_MAP_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -