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 + -
显示快捷键?