?? rm84cmn.h
字號:
- fixed VOP time increment resolution if the playback has forced rate, else - VOP time increment resolution, HwLib default 30. */ etimVOPTimeIncrRes, // DWORD, set, get /** etimVideoCTSTimeScale - only for Mpeg4. It should be set by mp4 parser. HwLib default 1000. */ etimVideoCTSTimeScale, // DWORD, set, get /** etimAudioCTSTimeScale - only for Mpeg4. It should be set by mp4 parser. HwLib default 1000. */ etimAudioCTSTimeScale, // DWORD, set, get /** Returns the timestamp of the last displayed video frame. */ etimVideoFrameDisplayedTime, // etimSystemTimeClock_type, get etimMax}TIME_SET_ID;// SUBPICTURE_SETtypedef enum { /** RMuint32. This represents what will be set in the control register of the SubPicture block of the chip. This register is named SP_CTRL. For reference, here is its content: 15:9 --> Reserved. 8 --> Button Enable (Enables Highlight). 7 --> Field Enable (1: top, 0: Bottom) - microcode use 6 --> Field Alternate (1: Alternate, 0:Same) - microcode use 5 --> Vertical Downsampling Enable - microcode use 4 --> Horizontal Downsampling Enable - microcode use 3 --> Vertical Upsampling Enable - microcode use 2 --> Horizontal Upsampling Enable - microcode use 1 --> SubPicture Enable. 0 --> Reset - microcode use The user can change through HwLib only bits 8 and 1 to enable/disable the subpicture and the hilites = buttons. */ eSubpictureCmd, /** An array of 16*4 bytes layed out as: RYUV RYUV RYUV ... RYUV Where each letter represents one byte. R means reserved. Y is the Y color component. U is the U color component. V is the V color component. */ eSubpictureUpdatePalette, /** a eSubpictureUpdateButton_type */ eSubpictureUpdateButton, eSubpictureMax}SUBPICTURE_SET_ID;// VIDEO_DECODER_SET uses RMuint32 = unsigned long = DWORDtypedef enum { evdAccessRegister = 0, // genericReg_type (ADDR_DATA) evdTvStandard, evdAudioClock, evdInputSource, evdMax}VIDEO_DECODER_SET_ID;// MPEG_ENCODER_SETtypedef enum { /** genericReg_type */ emeAccessRegister = 0, // genericReg_type (ADDR_DATA) /** emeXferUcodeParameters_type */ emeXferUcodeParameters, // emeXferUcodeParameters_type emeMax}MPEG_ENCODER_SET_ID;// DVI_TRANSMITTER_SETtypedef enum { edtAccessRegister = 0, // genericReg_type (ADDR_DATA) 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. 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 = 0, // see eviCommand_type // values set by next properties (or their defaults) are applied to hardware: // - immediately when InitCapture property is set // - at first VSync after SetProperty - in StartCapture state only eviCcir, // CCIR_656 or CCIR_601 eviChromaDownScale, // 1 for YUV420, 0 for original YUV422 format eviYuvPacked, // 1 for luma & chroma captured packed eviInterlacedSource, // 1 if the video source is interlaced, 0 for progressive eviInvertField, // CCIR_NON_INVERT_FIELD or CCIR_INVERT_FIELD eviBitsPerClock, // 8 or 16 bits eviCaptureParams, // defines the captured window relative to VSync/HSync // for 601 or embedded syncs for 656 // 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 field / frame. // 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. // 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 to be captured - it should be even // OutputLineLength specifies the horizontal size of the image sent to DRAM - it should // be small or equal than width w. By default should be equal with w. If it is less // then width, the horizontal downscale will be done by VideoIn block eviVip20, // 1 for VIP2.0; 0 for VIP1.x eviHSyncPolarity, // 0 for active low; 1 for active high eviVSyncPolarity, // 0 for active low; 1 for active high eviVSyncActiveEdge, // 0 for trailing edge; 1 for leading edge eviMax}VIDEOIN_SET_ID;// To get extended error information about a failed test,// use property BOARDINFO_SET, ebiLastErrorInfoString. typedef enum { ehwTestMpegDecoderInitialize = 0,// minimum required for init testing ehwTestMpegDecoderRegisters, // test some registers ehwTestMpegDecoderProgramMemory, // test internal program memory ehwTestMpegDecoderDataMemory, // test internal data memory ehwTestDramSlave, // test entire Dram using slave channel ehwTestDramMaster, // test entire Dram using master channel ehwTestMax}HARDWARE_TEST_SET_ID;/************************************************************************************//************************************************************************************//*********************** Possible values ********************************************//*********************** Do not define SET_IDs above this limit *********************//************************************************************************************/#ifndef SCART_MASK/****************************** HACK *******************************************/ // (hack) we have to link mpegcmn.h to here.#define SCART_MASK 0x0003#define SCART_DISABLE 0x0000#define SCART_COMPOSITE 0x0001#define SCART_RGB 0x0003#define VIDEOOUT_MASK 0x0021#define SET_VGA 0x0000#define SET_TV 0x0001#define SET_HDTV 0x0020#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#define AUDIO_DAC_DISABLE 0x0000#define AUDIO_SPDIF_ENABLE 0x0002#define AUDIO_SPDIF_DISABLE 0x0000#define AUDIO_OUTPUT_STEREO 0#define AUDIO_OUTPUT_AC3DTS 1#endif // SCART_MASK// APS= analogue protection system= bit1,0= pseudo sync pulse, inverted split color burst#define MACROVISION_APS_MASK 0x03#define MACROVISION_APS_OFF 0x00#define MACROVISION_APS_1 0x01#define MACROVISION_APS_2 0x02#define MACROVISION_APS_3 0x03// CGMS= copy generation management system= bit3,2= copyright, copy generation#define MACROVISION_CGMS_MASK 0x0C#define CGMS_NO_RESTRICTION 0x00#define CGMS_RESERVED 0x04#define CGMS_ONE_GENERATION 0x08#define CGMS_NO_COPY 0x0C#define CCIR_656 0x0001#define CCIR_601 0x0000// InvertField#define CCIR_NON_INVERT_FIELD 0x0000#define CCIR_INVERT_FIELD 0x0001// SyncEnable#define VS_HS_VRDYisHS_DISABLED 0x0000#define VS_HS_VRDYisHS_ENABLED 0x0001#define VS_ENABLED_HS_DISABLED_VRDYisVRDY_ENABLED 0x0002#define BTN_ENABLE 0x0100#define SP_ENABLE 0x0002/****************************** HACK *******************************************/// For Xcard the user should select one of:// - evScartOutput_COMPOSITE or // - evScartOutput_RGB.// The Xcard scart output is enabled only if both next conditions are met:// - evTvOutputFormat is set to evTvOutputFormat_COMPONENT_RGB_SCART// - evOutputDevice is set to evOutputDevice_TV// For NE2000TV card the user should select one of:// - evScartOutput_DISABLE (scart output is disabled) or// - any of evScartOutput_COMPOSITE or evScartOutput_RGB (scart output is enabled). typedef enum { evScartOutput_COMPOSITE = SCART_COMPOSITE, evScartOutput_RGB = SCART_RGB, evScartOutput_DISABLE = SCART_DISABLE} evScartOutput_type;typedef enum { evScartAspectRatio_Auto = 0, evScartAspectRatio_4x3, evScartAspectRatio_16x9,} evScartAspectRatio_type;typedef enum { evOutputDevice_VGA = SET_VGA, evOutputDevice_TV = SET_TV, evOutputDevice_HDTV = SET_HDTV, evOutputDevice_DigOvOnly = 0x0021} evOutputDevice_type;typedef enum { evTvStandard_NTSC = SET_NTSC, evTvStandard_PAL = SET_PAL, evTvStandard_PAL60 = SET_PAL60, evTvStandard_PALM = SET_PALM, evTvStandard_SECAM = 39823, // only supported by SAA7114.} evTvStandard_type;typedef enum { evTvOutputFormat_COMPOSITE = COMPOSITE, evTvOutputFormat_COMPONENT_YUV = COMPONENT_YUV, evTvOutputFormat_COMPONENT_RGB = COMPONENT_RGB, evTvOutputFormat_COMPONENT_RGB_SCART = COMPONENT_RGB_SCART, evTvOutputFormat_OUTPUT_OFF = OUTPUT_OFF} evTvOutputFormat_type;typedef enum{ evInAspectRatio_4x3 = VIDEO_ASPECT_RATIO_4_3, evInAspectRatio_16x9 = VIDEO_ASPECT_RATIO_16_9} evInAspectRatio_type;typedef enum{ evOutDisplayOption_Normal = VIDEO_OUTPUT_MODE_NORMAL_OR_WIDE, evOutDisplayOption_16x9to4x3_PanScan = VIDEO_OUTPUT_MODE_PAN_SCAN, evOutDisplayOption_16x9to4x3_LetterBox = VIDEO_OUTPUT_MODE_LETTERBOX, evOutDisplayOption_4x3to16x9_HorzCenter = VIDEO_OUTPUT_MODE_HORZCENTER, evOutDisplayOption_4x3to16x9_VertCenter = VIDEO_OUTPUT_MODE_VERTCENTER} evOutDisplayOption_type;typedef enum{ evInStandard_NTSC = MPEG_ATTRIBUTE_VIDEO_NTSC, evInStandard_PAL = MPEG_ATTRIBUTE_VIDEO_PAL} evInStandard_type;typedef DWORD evSpeed_type; // see cqsrbrd.c for peculiar values to set here. // 1 to 255 = slow speed (from slowest to normal) // 0 and 256 = normal speed // > 257 = fast speed (from normal to fastest)typedef enum{ // depending on wDisplayType from evCaptureParams_type the data // returned in user buffer is: // - 420 format = Y buffer (WxH size), followed by UV buffer(WxH/2) // - 422 format = Y buffer (WxH size), followed by UV buffer(WxH) YUV_FRAME = 0, // frame, weaved for interlaced content YUV_TOP_FIELD, // top field for interlaced content. // odd lines for progressive content YUV_BOTTOM_FIELD, // bottom field for interlaced content. // even lines for progressive content // BMP formats return buffer with RGB data in bitmap format BGR_24BITS_BMP, // frame, weaved for interlaced content PALETTE_INDEX_BMP // frame, weaved for interlaced content} evCaptureFormat_type;typedef struct{ WORD wWidth; // picture width in pixels WORD wHeight; // height of frame or field in lines WORD wPictureType; // 0 for frame, 1 for field WORD wDisplayType; // 1 for YUV420, 0 for original YUV422 format DWORD dwBufferSize; // size of the buffer to receive the YUV info corresponding to CaptureFormat already set} evCaptureParams_type;typedef enum{ YUV_420_UNPACKED = 0, YUV_422_UNPACKED,} evYUVDataFormat_type;typedef struct{ WORD wWidth; // Picture width in pixels WORD wHeight; // Picture height in lines evYUVDataFormat_type YUVFormat; // evYUVDataFormat_type} evYUVWriteParams_type;typedef struct{ DWORD dwVOBUBufferSize; // approximate size for VOBU ULONGLONG dwlVOBUStartTime; // StartPts 90k pts unit
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -