📄 rm84cmn.h
字号:
/** emeXferUcodeParameters_type */ emeXferUcodeParameters, // emeXferUcodeParameters_type emeMax}MPEG_ENCODER_SET_ID;// DVI_TRANSMITTER_SETtypedef enum { edtAccessRegister = 0, // genericReg_type (ADDR_DATA) edtOutputEnable, // RMuint32 1/0 for On/Off edtMax}DVI_TRANSMITTER_SET_ID;// DECODER_SET uses DWORDtypedef enum { edecAudioInOutConfig = 0, // EM847xAudioInOutConfigEnum defined in qhwlib.h edecAudioDacBitsPerSample, // RMuint32: 16 or 24 bits edecVideoStd, // RMuint32: 0 for Mpeg1/2, 1 for Mpeg4 edecOsdFlicker, // RMuint32: 0 ... 15 ( 0 = flicker disabled) /*The register to control the PCI burst length is at address 0x1FEC: bit[2:0] min max 000 4 4 001 4 8 010 8 8 011 4 16 100 8 16 101 16 16*/ edecPciBurst, // edecForceFixedVOPRate, // edecForceFixedVOPRate_type edecAccessRegister, // genericReg_type (ADDR_DATA) edecCSSChlg, // get only. edecCSSKey1, // set only. edecCSSChlg2, // set only. edecCSSKey2, // get only. edecCSSDiscKey, // set only. edecCSSTitleKey, // set only. edecStatus, // edecStatus_type, get edecDataFifo, // edecDataFifo_type, get edecPacketsFifo, // edecPacketsFifo_type, get edecErrorCode, // RMuint32, get edecMax}DECODER_SET_ID;// TVENCODER_SET uses DWORDtypedef enum { etvNtscPedestal = 0, // etvNtscPedestal_type etvLumaFilter, // etvLumaFilter_type etvChromaFilter, // etvChromaFilter_type etvColorBars, // etvColorBars_type etvMax}TVENCODER_SET_ID;// TVTUNER_SETtypedef enum { eTvTunerChannel = 0, // uses struct eTvTunerChannel_type eTvTunerMax}TVTUNER_SET_ID;typedef enum { /** Set OSD to On, Off or Flush its buffer. */ eOsdCommand, // edecOsdCommand_type /** Set the OSD Hilight window. The window coordinates are relative to the OSD bitmap. In the highlight window, if the OSD is stored in 2, 4, or 7 BPP mode, the colors are looked up inthe upper half of the CLUT (Color LookUp Table). ie: in 2bpp mode, the color 0 for highlight will be looked up in index 4 of the CLUT. */ eOsdHiLiWindow, // Wnd_type /** Set the position of the OSD bitmap relative to the current coordinate system. */ eOsdDestinationWindow, // Wnd_type eOsdMax} OSD_SET_ID;typedef enum { eI2cInit = 0, // I2cInit_type, set only eI2cAccess, // I2cReadWrite_type + variable size buffer // set will write I2C, get will read eI2cMax}I2C_SET_ID;// VIDEOIN_SETtypedef enum { /** eviCommand */ eviCommand = 0, // eviCommand_type /** eviParams property is applied to the hardware: - immediately when eviCommand_InitCapture property is send - at first VSync after SetProperty if decoder is in StartCapture state already The x,y,w,h, members define the captured window relative to VSync/HSync for 601 or embedded syncs for 656. In 601 mode: the beginning of a line is set by the hsync pulse; the beginning of a field/frame is set by the vsync pulse. Therefore, cropping is necessary to remove the horizontal and vertical blankings. In 656 mode: The active video is directly extracted from the data flow using the protocol embedded flags. There is no blanking to remove. x specifies how many pixels will be skipped at the beginning of each line. y specifies how many lines will be skipped at the beginning of each frame. If the content is progressive y lines will be skipped at every VSync. If the content is interlaced only y/2 lines will be skipped at every VSync(per field). w specifies the pixel width of the picture to be captured - it should be multiple of 8 for packed option and multiple of 2 for unpacked option h specifies the height of the picture (frame) to be captured. It should be even. OutputLineLength specifies the horizontal size of the image sent to DRAM - it should be smaller or equal than width w, otherwise the SetProperty will return failure. By default should be equal with w and no scaling will be used. If it is smaller then width, horizontal downscale is done by VideoIn block Ccir; // CCIR_656 or CCIR_601 ChromaDownScale; // YUV420 or YUV422 format YuvPacked; // 1 for luma & chroma captured packed InterlacedSource;// 1 if the video source is interlaced, 0 for progressive InvertField; // CCIR_NON_INVERT_FIELD or CCIR_INVERT_FIELD BitsPerClock; // 8 or 16 bits Vip20; // 1 for VIP2.0; 0 for VIP1.x HSyncPolarity; // 0 for active low; 1 for active high VSyncPolarity; // 0 for active low; 1 for active high VSyncActiveEdge; // 0 for trailing edge; 1 for leading edge Here is an example for 601 (eviHSyncPolarity active low, eviVSyncPolarity active low, eviVSyncActiveEdge leading edge). O is the origin for capture. HSync ---------+ +-----------------------------+ +-- v | v | +-+ +-+ VSync +<-+ O-------------------------------+ | | ^ | +--+ | | | | | | y | x = 108 | | v | y = 20 | | +---------------------+ ^ | w = 720 | |<-x->| | | | h = 480 | | | | | | OutputLineLength = 720 | | | | | | | | | | h | | | | | | | | | | | | | | | +---------------------+ v | | | <----------w----------> | <--+ +-------------------------------+ */ eviParams, // eviParams_type, set, get. eviMax}VIDEOIN_SET_ID;// To get extended error information about a failed test,// use property BOARDINFO_SET, ebiLastErrorInfoString. typedef enum { /** ehwTestMpegDecoderInitialize does the minimum required to initialize testing */ ehwTestMpegDecoderInitialize = 0, /** ehwTestMpegDecoderRegisters test registers read/write */ ehwTestMpegDecoderRegisters, /** ehwTestMpegDecoderProgramMemory test internal program memory */ ehwTestMpegDecoderProgramMemory, /** ehwTestMpegDecoderDataMemory test internal data memory */ ehwTestMpegDecoderDataMemory, /** ehwTestDramSlave test entire Dram using slave channel */ ehwTestDramSlave, /** ehwTestDramMaster test entire Dram using master channel */ ehwTestDramMaster, ehwTestMax}HARDWARE_TEST_SET_ID;// AUDIOIN_SETtypedef enum { /** eAudioInCommand can be one of eAudioInCommand_StartCapture and eAudioInCommand_StopCapture. */ eAudioInCommand = 0, // eAudioInCommand_type /** eAudioInParams property should be called before eAudioInCommand to set the parameters of the input. For digital connection the input parameters should be equal with the parameters of the digital output connected. For analog connection the input parameters should be equal with the ADC (analog-digital converter) parameters. */ eAudioInParams, // eAudioInParams_type, set, get. eAudioInMax}AUDIOIN_SET_ID;/*****************************************************************************//*********************** Do not define SET_IDs above this limit **************//*****************************************************************************/#ifndef KSPROPERTY_TYPE_GET#define KSPROPERTY_TYPE_GET 0x00000001#define KSPROPERTY_TYPE_SET 0x00000002#endif#define HWLIB_INTERFACE struct#define HWLIB_BEGIN_INTERFACE#define HWLIB_END_INTERFACEtypedef ULONG QIID;/************** start common defines in mpegcmn.h & rm84cmn.h ****************/#ifndef _MPEGCMN_H// MpegAttrAudioMode; Audio modes defined also in impeg32, hardware.h#define AUDIO_MODE_STEREO 0#define AUDIO_MODE_RIGHT_ONLY 1#define AUDIO_MODE_LEFT_ONLY 2#define AUDIO_MODE_MONOMIX 3// MpegAttrVideoMode flags#define MPEG_ATTRIBUTE_VIDEO_COMPONENT 0#define MPEG_ATTRIBUTE_VIDEO_PAL 1#define MPEG_ATTRIBUTE_VIDEO_NTSC 2#define MPEG_ATTRIBUTE_VIDEO_SECAM 3#define MPEG_ATTRIBUTE_VIDEO_MAC 4#define MPEG_ATTRIBUTE_VIDEO_AUTO 5// MpegAttrOverlayFlags#define OVERLAY_FLAGS_MASK 0x004F#define VIDEO_ZOOM_ENABLE 0x0001#define VIDEO_TV_DEST_ENABLE 0x0002#define VIDEO_HDTV_DEST_ENABLE 0x0004#define OSD_VIDEO_INDEPENDENT_DEST 0x0008#define SPECIAL_IGS_STANDARD 0x0040// MpegAttrForcedProgressive flags#define BROADCASTED_VIDEO 0x0200#define DVD_VIDEO 0x0000#define FORCED_PROGRESSIVE_OFF 0x0100 // display progressive or interlaced like in the video stream#define FORCED_PROGRESSIVE_ON 0x0000 // display only progressive if the stream switches very fast from interlaced to progressive#define PROGRESSIVE_ALWAYS 0x0080#define PROGRESSIVE_MOVIES 0x0000#define FRAME_DROP 0x0040#define FIELD_DROP 0x0000#define VGA_INTERLACED 0x0002#define VGA_PROGRESSIVE 0x0000// MpegAttrHardwareInfo1 flags#define DARK_COLOR_LETTERBOX 0x0001 // hwDecoder is Quasar1 - letterbox bug#define VGA_CABLE_NOT_CONNECTED 0x0002 // VGA cable is not connected for analog overlay boards#define TV_DACS_ENABLE 0x0000 // default behaviour - disabled after HwReset, enabled when playing#define TV_DACS_DISABLE 0x0100 // force TvDacs disabled #define SET_ONETOONE 0x0000#define SET_SCALE 0x0004#define SET_TV_AS_SOURCE 0x0010#define SET_TV_AS_USER 0x0000#define SCART_MASK 0x0003#define SCART_DISABLE 0x0000#define SCART_COMPOSITE 0x0001#define SCART_RGB 0x0003#define VIDEOOUT_MASK 0x0421#define SET_VGA 0x0000#define SET_TV 0x0001#define SET_HDTV 0x0020#define SET_DIG_OV 0x0021#define SET_HDTV_SUBD 0x0400#define STANDARDTV_MASK 0x010A#define SET_NTSC 0x0000#define SET_PAL 0x0002#define SET_PAL60 0x0008#define SET_PALM 0x000A#define SET_480P 0x0100 // used only for Vga scan conversion#define COMPONENT_MASK 0x02C0#define COMPOSITE 0x0000#define COMPONENT_YUV 0x0080#define COMPONENT_RGB 0x00C0#define OUTPUT_OFF 0x0040#define COMPONENT_RGB_SCART 0x0200#define AUDIO_FORMAT_MPEG1 1#define AUDIO_FORMAT_MPEG2 2#define AUDIO_FORMAT_AC3 3#define AUDIO_FORMAT_PCM 4#define AUDIO_FORMAT_DTS 5#define AUDIO_FORMAT_DVD_AUDIO 6#define AUDIO_FORMAT_REVERSE_PCM 7#define AUDIO_FORMAT_AAC 8#define VIDEO_ASPECT_RATIO_4_3 2#define VIDEO_ASPECT_RATIO_16_9 3#define MPEG_ATTRIBUTE_VIDEO_PAL 1#define MPEG_ATTRIBUTE_VIDEO_NTSC 2#define VIDEO_OUTPUT_MODE_NORMAL_OR_WIDE 0#define VIDEO_OUTPUT_MODE_PAN_SCAN 1#define VIDEO_OUTPUT_MODE_LETTERBOX 2#define VIDEO_OUTPUT_MODE_HORZCENTER 3#define VIDEO_OUTPUT_MODE_VERTCENTER 4// flags used to enable/disable the hardware audio outputs#define AUDIO_DAC_ENABLE 0x0001
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -