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

📄 sh_mem_api.h

📁 SAMSUNG 5009的源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
#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 + -