rmfeatures.h
来自「SigmDesign SMP8634 media decode chip dev」· C头文件 代码 · 共 422 行
H
422 行
/***************************************** Copyright 2004-2005 Sigma Designs, Inc. All Rights Reserved Proprietary and Confidential *****************************************//** @file rmfeatures.h @brief Some CHIPID dependent stuff are properly described by XML. However this is not enough when this impacts code @author Emmanuel Michon @date 2005-02-16*/#ifndef __RMFEATURES_H__#define __RMFEATURES_H__/********************************************************************************************************* decoding capabilities*******************************************************************/#ifndef EM86XX_CHIP/* Well, duh, warnings are considered errors in most of the build *//* #warning Ignoring contents of rmfeatures.h (EM86XX_CHIP not defined) */#else /* EM86XX_CHIP */#if (EM86XX_CHIP>=EM86XX_CHIPID_TANGO)#define RMFEATURE_HAS_WMV9 1#endif#if (EM86XX_CHIP>=EM86XX_CHIPID_TANGO15)#define RMFEATURE_HAS_H264 1#endif/* hack: maybe audio wmapro here? *//********************************************************************************************************* sizes of the DSP PMEM and DMEM*******************************************************************/#if (EM86XX_CHIP>=EM86XX_CHIPID_TANGO3)#define CPU_LOCALRAM_SIZE 0x2000#define MPEG_PM_SIZE 0x3000#define MPEG_DM_SIZE 0x1000#define DEMUX_PM_SIZE 0x6000#define DEMUX_DM_SIZE 0x4000#define AUDIO_PM_SIZE 0x8000#define AUDIO_DM_SIZE 0xf000#define FG_SIZE 0xa000#else#define CPU_LOCALRAM_SIZE 0x2000#if (EM86XX_CHIP==EM86XX_CHIPID_TANGO2) && (EM86XX_REVISION>=4)#define MPEG_PM_SIZE 0x3000#elif (EM86XX_CHIP==EM86XX_CHIPID_TANGO15) && (EM86XX_REVISION>='B')#define MPEG_PM_SIZE 0x2800#else#define MPEG_PM_SIZE 0x2000#endif#define MPEG_DM_SIZE 0x1000#define DEMUX_PM_SIZE 0x4000#if (EM86XX_CHIP>=EM86XX_CHIPID_TANGO15)#define DEMUX_DM_SIZE 0x4000#else#define DEMUX_DM_SIZE 0x2000#endif#if (EM86XX_CHIP>=EM86XX_CHIPID_TANGO2)#define AUDIO_PM_SIZE 0x3000#else#define AUDIO_PM_SIZE 0x2800#endif#define AUDIO_DM_SIZE 0xc000#define MAX_DDR2_BANK_SIZE (512*1024*1024)#endif#define HB_PERIOD_MS 1000#if (EM86XX_CHIP==EM86XX_CHIPID_MAMBO)#define RMFEATURE_HAS_AUDIO_ENGINE_1 1#define RMFEATURE_HAS_DRAM_CONTROLLER_1 1#elif (EM86XX_CHIP==EM86XX_CHIPID_TANGO2) && (EM86XX_REVISION>=4)#define RMFEATURE_HAS_AUDIO_ENGINE_1 1#define RMFEATURE_HAS_VIDEO_ENGINE_1 1#define RMFEATURE_HAS_DRAM_CONTROLLER_1 1#endif#ifdef EM86XX_ENGINE#if (EM86XX_ENGINE==EM86XX_ENGINEID_MPEG0) || (EM86XX_ENGINE==EM86XX_ENGINEID_MPEG1)#define RMFEATURE_IS16BITDSP 1#endif#if (EM86XX_ENGINE==EM86XX_ENGINEID_DEMUX)#if (EM86XX_CHIP==EM86XX_CHIPID_MAMBO) || (EM86XX_CHIP==EM86XX_CHIPID_MAMBOLIGHT)#define RMFEATURE_DEMUXSBOXV 0#elif (EM86XX_CHIP==EM86XX_CHIPID_TANGOLIGHT) || (EM86XX_CHIP==EM86XX_CHIPID_TANGO15) || ((EM86XX_CHIP==EM86XX_CHIPID_TANGO2) && (EM86XX_REVISION<4))/* bitfield changes */#define RMFEATURE_DEMUXSBOXV 1#else/* bitfield & address change */#define RMFEATURE_DEMUXSBOXV 2#endif#endif#endif/******************************************************************************************************** sizes of scaler's linebuffers*******************************************************************/#define SCALER_MAX_INPUT_HEIGHT 2048/* Tangolight, Tango2Shuttle */#if ((EM86XX_CHIP==EM86XX_CHIPID_TANGOLIGHT) || ((EM86XX_CHIP==EM86XX_CHIPID_TANGO2) && (EM86XX_REVISION<4)))#define MULTISCALER_LINEBUFFER_SIZE 6144 /* total memory: Y + UV */#define MULTISCALER_MAX_LINE_WIDTH 512 /* in 32BPP mode */#else#define MULTISCALER_LINEBUFFER_SIZE 12288 /* total memory: Y + UV */#define MULTISCALER_MAX_LINE_WIDTH 1024 /* in 32BPP mode */#define MULTISCALER_ES9_MAX_LINE_WIDTH 2048 /* in 32BPP mode */#endif#if (EM86XX_CHIP>=EM86XX_CHIPID_TANGO2)#define MULTISCALER_MAX_VBUS_UNIT 0x3f#else#define MULTISCALER_MAX_VBUS_UNIT 0x1f#endif/* for tango2 ES8 and greater. Runtime switch */#define ES8_SCALER_VBUS_DRAM_PRIORITY 8#define ES8_GFX_ENGINE_VBUS_DRAM_PRIORITY 9#define ES8_MBUS_DRAM_PRIORITY 6/* for all other chips */#define SCALER_VBUS_DRAM_PRIORITY 3#define GFX_ENGINE_VBUS_DRAM_PRIORITY 1#define MBUS_DRAM_PRIORITY 2/* Tango2Shuttle, Tango2 and up */#if (EM86XX_CHIP>=EM86XX_CHIPID_TANGO2)#define SPUSCALER_LINEBUFFER_SIZE 12288#define SPUSCALER_MAX_LINE_WIDTH 2048 /* in 32BPP mode */#define SPUSCALER_MAX_VBUS_UNIT 0x3f#else#define SPUSCALER_LINEBUFFER_SIZE 4096#define SPUSCALER_MAX_LINE_WIDTH 1024 /* in 32BPP mode */#define SPUSCALER_MAX_VBUS_UNIT 0x1f#endif#define OSDSCALER_LINEBUFFER_SIZE 24576#define OSDSCALER_MAX_LINE_WIDTH 2048 /* in 32BPP mode */#define OSDSCALER_MAX_VBUS_UNIT 0x7f#define MAINVIDEOSCALER_LINEBUFFER_SIZE 24576 /* total memory: Y + UV *//* video scaler does not support 32BPP but fake it */#define MAINVIDEOSCALER_MAX_LINE_WIDTH 1024#define MAINVIDEOSCALER_MAX_VBUS_UNIT_LUMA 0x3f#if (EM86XX_CHIP>=EM86XX_CHIPID_TANGO2)#define MAINVIDEOSCALER_MAX_VBUS_UNIT_CHROMA 0x3f#else#define MAINVIDEOSCALER_MAX_VBUS_UNIT_CHROMA 0x1f#endif/********************************************************************************************************* usage of PLLs*******************************************************************//* Selection of System clock PLL */#if (EM86XX_CHIP>=EM86XX_CHIPID_TANGO2)#define PLL_SYSTEM PLLGen_pll_3#else#define PLL_SYSTEM PLLGen_pll_0#endif/* Selection of CD input clock source */#if (EM86XX_CHIP<EM86XX_CHIPID_TANGO2)#define PLL_CD_PLL PLLGen_pll_0 /* hard wired to system clock */#define PLL_CD_PLLOUT PLLOut_0#define PLL_CD_FREQ 0 /* don't touch CD input */#else#if ((EM86XX_CHIP==EM86XX_CHIPID_TANGO2) && (EM86XX_REVISION<4))#define PLL_CD_PLL PLLGen_pll_3#define PLL_CD_PLLOUT PLLOut_0#define PLL_CD_FREQ 0 /* don't touch CD input */#else#define PLL_CD_PLL PLLGen_pll_1#define PLL_CD_PLLOUT PLLOut_0#define PLL_CD_FREQ 405000000#endif#endif/* Selection of Audio Engine clock source */#if (EM86XX_CHIP<EM86XX_CHIPID_TANGO)#define PLL_AUDIO PLLGen_pll_3 /* use normal PLL on Mambo */#else#define PLL_AUDIO PLLGen_cd_0 /* use clean divider on Tango and up */#endif/* Selection of Video clock sources */#if (EM86XX_CHIP<EM86XX_CHIPID_TANGO2)#define PLL_VIDEO_PRI PLLGen_pll_1 /* use PLL 1 for primary route */#define PLL_VIDEO_SEC PLLGen_pll_2 /* use PLL 2 for secondary route */#define PLL_VIDEO_OUT PLLOut_1#else#define PLL_VIDEO_PRI PLLGen_cd_8 /* use CD 8 for primary/digital route */#define PLL_VIDEO_SEC PLLGen_cd_9 /* use CD 9 for secondary route */#define PLL_VIDEO_TER PLLGen_cd_10 /* use CD 10 for third route */#define PLL_VIDEO_OUT PLLOut_0#endif#if (EM86XX_CHIP==EM86XX_CHIPID_TANGO15)#define PLL_AUDIO_ENGINE_0 PLLGen_cd_0#define PLL_AUDIO_ENGINE_1 PLLGen_cd_1#define PLL_VIDEO_DIGITAL PLLGen_pll_1#define PLL_VIDEO_ANALOG PLLGen_pll_2#endif#if (EM86XX_CHIP==EM86XX_CHIPID_TANGO2)#define PLL_AUDIO_ENGINE_0 PLLGen_cd_0#define PLL_AUDIO_ENGINE_1 PLLGen_cd_1#define PLL_VIDEO_DIGITAL PLLGen_cd_8#define PLL_VIDEO_ANALOG PLLGen_cd_9#define PLL_VIDEO_COMPONENT PLLGen_cd_10#endif/********************************************************************************************************* within display block*******************************************************************//* Full, Light or Extra Light Display Block? */#if ( \ (EM86XX_CHIP==EM86XX_CHIPID_TANGOLIGHT) || \ (EM86XX_CHIP==EM86XX_CHIPID_TANGO15) || \ ((EM86XX_CHIP==EM86XX_CHIPID_TANGO2) && (EM86XX_REVISION<4)) \)#define RMFEATURE_HAS_EXTRALIGHT_DISPLAY 1#else#if (EM86XX_CHIP==EM86XX_CHIPID_TANGO2)#define RMFEATURE_HAS_LIGHT_DISPLAY 1#endif#endif/* Specific display features */#define RMFEATURE_HAS_VIDEO_IN 1#define RMFEATURE_HAS_DIGITAL_OUT 1#define RMFEATURE_HAS_MAIN_ANALOG_OUT 1#define RMFEATURE_HAS_GFX_SCALER 1#define RMFEATURE_HAS_MAIN_MIXER 1#define RMFEATURE_HAS_BLACKSTRIP_BITS_COUNT 9/* Mambo, MamboLight, "Tango" */#if (EM86XX_CHIP<EM86XX_CHIPID_TANGOLIGHT)#define RMFEATURE_HAS_GRAPHIC_IN 1#define RMFEATURE_HAS_COMPONENT_OUT 1#define RMFEATURE_HAS_COMPOSITE_OUT 1#define RMFEATURE_HAS_VCR_SCALER 1#define RMFEATURE_HAS_CRT_SCALER 1#define RMFEATURE_HAS_VCR_MIXER 1#endif/* Tango15, Tango2Shuttle, Tango2 and up */#if (EM86XX_CHIP>=EM86XX_CHIPID_TANGO15)#define RMFEATURE_HAS_GRAPHIC_IN 1#endif/* Tango2 */#if ((EM86XX_CHIP==EM86XX_CHIPID_TANGO2) && (EM86XX_REVISION>=4))#define RMFEATURE_HAS_GRAPHIC_IN 1#define RMFEATURE_HAS_VCR_SCALER 1#define RMFEATURE_HAS_VCR_CHANNEL 1#define RMFEATURE_HAS_VIDEOPLANE 1#define RMFEATURE_HAS_COMPONENT_OUT 1#define RMFEATURE_HAS_BCS2 1#undef RMFEATURE_HAS_BLACKSTRIP_BITS_COUNT#define RMFEATURE_HAS_BLACKSTRIP_BITS_COUNT 11#define RMFEATURE_HAS_HDMI 1#define RMFEATURE_HAS_GRAPHACC_CSCONV 1 /* colorspace and sampling mode conversion */#define RMFEATURE_HAS_GRAPHACC_FULLBLEND 1#define RMFEATURE_HAS_GRAPHACC_GRADIENTS 1#define RMFEATURE_HAS_VIDEO_PLANE 1#define RMFEATURE_HAS_COMPONENT_COMPOSITE_MODE 1 /* composite mode bits in component out config register (for 625i modes) */#define RMFEATURE_HAS_HDSD_CONVERTER 1#endif/* Tangolight, Tango15, Tango2Shuttle */#if ( \ ((EM86XX_CHIP>=EM86XX_CHIPID_TANGOLIGHT) && (EM86XX_CHIP<EM86XX_CHIPID_TANGO2)) || \ ((EM86XX_CHIP==EM86XX_CHIPID_TANGO2) && (EM86XX_REVISION<4)) \)#define RMFEATURE_HAS_DUAL_MAINANALOGOUT 1 /* Main Analog Out has 3 extra DACs for CVBS/S-Video out */#endif/* "Tango", Tangolight, Tango15, Tango2Shuttle, Tango2 and up */#if (EM86XX_CHIP>=EM86XX_CHIPID_TANGO)#define RMFEATURE_HAS_CAPTURE_COUNTER 1 /* chip provides line and pixel counters for input */#define RMFEATURE_HAS_VBI_CAPTURE 1 /* chip has raw VBI capture capability */#define RMFEATURE_HAS_GRAPHIC_IN 1#define RMFEATURE_HAS_HWI2C 1 /* chip has hardware i2c interface (master and slave) */#endif/* Tango15, Tango2Shuttle, Tango2 and up */#if (EM86XX_CHIP>=EM86XX_CHIPID_TANGO15)#define RMFEATURE_HAS_ANC_CAPTURE 1 /* chip can capture ANC-formatted (sliced) VBI data */#define RMFEATURE_HAS_SPU_SCALER 1 /* chip has working SPU scaler */#endif/* Tango2Shuttle, Tango2 and up */#if (EM86XX_CHIP>=EM86XX_CHIPID_TANGO2)#define RMFEATURE_HAS_GENERIC_SPU_SCALER /* chip has a 8bit graphic scaler for SPU */#define RMFEATURE_HAS_DOUBLE_RATE#endif/* Tangolight, Tango2Shuttle */#if ((EM86XX_CHIP==EM86XX_CHIPID_TANGOLIGHT) || ((EM86XX_CHIP==EM86XX_CHIPID_TANGO2) && (EM86XX_REVISION<4)))#define RMFEATURE_HAS_REDUCED_MULTISCALERBUFFER 1 /* size of multi-scaler input buffer is reduced */#endif/* Tango2 ES8/ES9/RevC and up */#if ( \ (EM86XX_CHIP>EM86XX_CHIPID_TANGO2) || \ ((EM86XX_CHIP==EM86XX_CHIPID_TANGO2) && (EM86XX_REVISION>=8)) \)#define RMFEATURE_HAS_805_TYPE_B 1 /* Component outputs feature support for EIA/CEA805 Type B VBI data */#else#define RMFEATURE_HAS_FAULTY_I2C_BURST_WRITE 1 /* Hardware I2C burst write is sending MSBit of previous data byte when starvation occurs */#endif#define RMFEATURE_XOFFSET_DIG_COMPENSATE 3 /* sync-to-video delay in the digital output block */#define RMFEATURE_XOFFSET_HDMI_COMPENSATE 2 /* sync-to-video delay for internal SiI9030 HDMI chip */#define RMFEATURE_XOFFSET_VESA_COMPENSATE 7 /* sync-to-video delay for analog VESA modes */#define RMFEATURE_XOFFSET_HDTV_COMPENSATE 13 /* sync-to-video delay for analog HDTV modes */#define RMFEATURE_XOFFSET_SDTV525_COMPENSATE 32 /* sync-to-video delay for analog 525 line modes (4X oversampled) */#define RMFEATURE_XOFFSET_SDTV625_COMPENSATE 80 /* sync-to-video delay for analog 625 line modes (4X oversampled) */#if (EM86XX_CHIP>=EM86XX_CHIPID_TANGO2)#define WITH_NEW_VCXO#define RMFEATURE_WITH_BWSAMPLING#endif/* Tango2 ES8/ES9/RevC */#if ((EM86XX_CHIP==EM86XX_CHIPID_TANGO2) && (EM86XX_REVISION>=8))#define RMFEATURE_HAS_FAST_DEMUX 1 /* Demux DSP is connected to DSP clock instead of system clock */#define RMFEATURE_HAS_FAST_AUDIODSP 1 /* Audio DSP is connected to DSP clock instead of system clock */#endif/* hack tbd by Christian W. *//* sizes of some buffers (IN BYTES) *//* etc. *//* use format RMFEATURE_HAS_XXX */#endif /* EM86XX_CHIP *//* video tokens */#define LOG2_IPATOKEN_VIDEO_MPEG12 15#define LOG2_IPATOKEN_VIDEO_MPEG4 14#define LOG2_IPATOKEN_VIDEO_H264 13#define LOG2_IPATOKEN_VIDEO_VC1 12#define LOG2_IPATOKEN_VIDEO_WMV9 11#define LOG2_IPATOKEN_VIDEO_JPEG 10#define LOG2_IPATOKEN_VIDEO_MSMPEG4 9/* audio tokens */#define LOG2_IPATOKEN_AUDIO_MPEGL12 31#define LOG2_IPATOKEN_AUDIO_MPEGL3 30#define LOG2_IPATOKEN_AUDIO_MPEG4HE 29#define LOG2_IPATOKEN_AUDIO_MPEG4BSAC 28#define LOG2_IPATOKEN_AUDIO_MPEG4AAC 27#define LOG2_IPATOKEN_AUDIO_DD 26#define LOG2_IPATOKEN_AUDIO_DDPLUS 25#define LOG2_IPATOKEN_AUDIO_TRUEHD 24#define LOG2_IPATOKEN_AUDIO_DTS 23#define LOG2_IPATOKEN_AUDIO_DTSHD 22#define LOG2_IPATOKEN_AUDIO_DTSHDLL 21#define LOG2_IPATOKEN_AUDIO_WMA9 20#define LOG2_IPATOKEN_AUDIO_WMA9PRO 19#define LOG2_IPATOKEN_AUDIO_ATRAC3 18#define LOG2_IPATOKEN_AUDIO_DTSRE 17#define LOG2_IPATOKEN_AUDIO_DDRE 16/* demux tokens */#define LOG2_IPATOKEN_DEMUX_C2 31#define LOG2_IPATOKEN_DEMUX_DVBCSA 30#define LOG2_IPATOKEN_DEMUX_MULTI2 29#define LOG2_IPATOKEN_DEMUX_CSS 28#define LOG2_IPATOKEN_DEMUX_RC4 27#define LOG2_IPATOKEN_DEMUX_AES 26#define LOG2_IPATOKEN_DEMUX_DES 25/* RMFEATURE_OUTPORT_COUNT */#if (EM86XX_CHIP==EM86XX_CHIPID_TANGO15)#define RMFEATURE_OUTPORT_COUNT 2#endif#if (EM86XX_CHIP>=EM86XX_CHIPID_TANGO2)#define RMFEATURE_OUTPORT_COUNT 3#endif/* RMFEATURE_HAS_OUTPORT_RESET_DELAY */#if (EM86XX_CHIP>=EM86XX_CHIPID_TANGO2)#define RMFEATURE_HAS_OUTPORT_RESET_DELAY 1#define RMFEATURE_HAS_MULTISCALER_LUMA_KEYING 1#endif#endif /* __RMFEATURES_H__ */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?