?? rm84cmn.h
字號:
/** @li 1 for BROADCASTED_VIDEO - the video is streamed and contains I blocks. @li 0 for DVD_VIDEO - the video contains complete I frames. @remark The default value is DVD_VIDEO. */ evBroadcastedVideo, /** @li 1 - displays progressive or interlaced like in the video stream @li 0 - displays only progressive if the stream switches very fast from interlaced to progressive @remark The default value is 0. */ evForcedProgressiveSourceOff, /** @li 1 - displays progressive for any video stream @li 0 - displays progressive only for movies @remark The default value is 0. */ evForcedProgressiveAlways, /** @li 1 - it drops frames when it converts Ntsc clip to PAL TV. @li 0 - it drops fields when it converts Ntsc clip to PAL TV. @remark The default value is 0. */ evNtscPalFrameDrop, /** @li 1 - displays only BOB on progressive device output @li 0 - displays BOB or WEAVE on progressive device output, depending on stream @remark The default value is 0. */ evForcedBobDisplayOnOutputDevice, /** 4 bits info from video stream bit 1,0 = APS= analogue protection system= pseudo sync pulse, inverted split color burst bit 3,2 = CGMS= copy generation management system= copyright, copy generation */ evMacrovisionFlags, // RMuint32, set only (similar with MpegAttrVideoMacrovisionFlags) /** Information valid only in video decoding state. Index in table defined in Mpeg1/2 standard */ evHwFrameRateIndex, // RMuint32, get only /** Information valid only in video decoding state. Index in table defined in Mpeg1/2 standard */ evHwAspectRatioIndex, // RMuint32, get only /** Is effective during the video PAUSE and STOP status after DICOM_Update flag is set to 1. evStreamDefaultAtPause evTopFieldAtPause, evBottomFieldAtPause, evBothFieldsAtPause */ evFieldFrameAtPause, // set, get, evFieldFrameAtPause_type evVideoHwPlay, // evVideoHwPlay_type, set evVideoHwPause, // set, no parameters needed evVideoHwStop, // set, no parameters needed evVideoHwBlackFrame, // set, no parameters needed - same as ebiCommand_VideoHwBlackFrame /** evSkippedFramesCounter gives the number of frames skipped since previous video play. */ evSkippedFramesCounter,// RMuint32, get only /** evCGMSWSS property gives completely control to the user to program the CGMS data on line 20/283 in NTSC (IEC61880) or WSS data on line 22,285 in PAL(ITU-R BT.1119-2). CGMS stands for Copy generation Management System data, for NTSC. WSS stands for WideScreeenSignalig data, for PAL. According to IEC 61880 there are 3 words of info (total 20 bits): WORD0 = 2 bits (aspect ratio = 00,01,10,11 = 4x3,16x9,letterbox,reserved) WORD1 = 4 bits (0000, 1111 = WORD2 contains valid info, no info) WORD2 = 14 bits (bit 7,8= copyright, bits 9,10 = APS; bit 11=analog source) For a simple implementation the mapping from standard to evCGMSWSS settings are: +-WORD0-+-WORD1-+-------WORD2------------+-----CRCC------+ IEC_Bit: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CGMSWSS: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ... 29 30 31, where bit29= SoftwareCRC generation and bit31/30= CGMS enabled on odd/even field. If bits 31,30,29 are 0 the hardware will generate the CRC and the info will be enabled and transmitted on both fields. HwLib code already programs some bits from CGMSWSS registers: - IEC_Bits 7,8,9,10 - reprogrammed according to evMacrovisionFlags. By default all the other bits are 0, the hardware will generate the CRC and the data will be enabled and transmitted on both fields. If bit 29 is 0 (hardware CRCC) the bits IEC_16..20 (CRCC) will be ignored. evCGMSWSS SetProperty can modify any bit, using ResetMask and SetMask. The logical operation is: CGMSWSS = (CGMSWSS & ~ResetMask) | SetMask. It is application responsability to protect or reprogram the bits IEC_Bits 7,8,9,10. GetProperty will return the value of CGMSWSS in SetMask. */ evCGMSWSS, // ResetSetMask_type, set, get /** evCCEnable permits to enable disable CloseCaption. A value of 0 disables, 1 enables CloseCaption. By default the CloseCaption is enabled */ evCCEnable, // RMuint32, set, get /** evPixelClockPolarity. 0 is active low, 1 active hi. By default is active low. */ evPixelClockPolarity, // RMuint32, set, get /** evDigitalVideoDataNBits It programs how many bits per video clock (VClk) are valid at the digital output of the EM8xxx. A value of 24 enables the 24 bit digital output, used for DVI output. By default the 24 bits are converted to RGB. Only for EM847x-revC and EM848x the 24 bits can be converted in YUV444 using evDigitalColorimetry property. A value of 8/16 enables YUV422 digital video data on 8 or 16 bits. evNBitsDigitalVideoData is used only for SET_TV, SET_HDTV modes, not in evOutputDevice_DigOvOnly mode. There are some hardware restrictions on EM847X-revA,B - see next table, in order to keep the analog output OK. Note: SD= standard definition = less or equal than 576P = supported only in 8bit by the analog output. HD= high definition = greater than 576P = supported only in 16bit by the analog output. +-------------------------------+----------------------------+ | SET_TV | SET_HDTV | +--------------+-------------------------------+----------------------------+ | Disp |evNBits| 847X-revAB |848X,847X-revC | 847X-revAB |848X,847X-revC | + |Digital+---------------+---------------+------------+---------------+ | mode | Video | Anlg. | Dig. | Anlg. | Dig. | Anlg.| Dig.| Anlg. | Dig. | +------+-------+---------------+-------+-------+------------+-------+-------+ | | 8 | OK 8 | 8 | | 8 | | 8 | | 8 | | +-------+---------------+ +-------+ |-----+ +-------+ | SD | 16 |Disabled| 16 | OK 8 | 16 | OK 8 | 8 | OK 8 | 16 | | +-------+---------------+ +-------+ |-----+ +-------+ | | 24 |Disabled| 24 | | 24 | |24rgb| | 24 | | | | | rgb | |rgb/yuv| |2xclk| |rgb/yuv| +------+-------+--------+------+-------+-------+------+-----+-------+-------+ | | 8 | - | - | - | - | | 16 | | 16 | | +-------+---------------+-------+-------+ |-----+ +-------+ | HD | 16 | - | - | - | - | OK 16| 16 | OK 16 | 16 | | +-------+---------------+-------+-------+ |-----+ +-------+ | | 24 | - | - | - | - | | 24 | | 24 | | | | | | | | | rgb | |rgb/yuv| +------+-------+--------+------+-------+-------+------+-----+-------+-------+ In evOutputDevice_DigOvOnly mode the evNBitsDigitalVideoData property is ignored. The "BitsPerClock" member in evDigOvOnlyParams_type structure will be used. In evOutputDevice_DigOvOnly mode it is the responsability of user to enable or disable the analog output. Eg. In this mode we can force the SD 480P in 16bits, and the digital output will be OK but the analog output should be disabled. By default evNBitsDigitalVideoData (8 or 16) corresponds to eVmi_16bits (0 or 1). */ evDigitalVideoDataNBits, // RMuint32, set, get /** evAnalogColorimetry is supported only for EM848x and only when evTvOutputFormat is set to evTvOutputFormat_COMPONENT_RGB or evTvOutputFormat_COMPONENT_RGB_SCART. By changing the coefficients the output can change the color space from RGB to YUV. There are 12 coefficients to be programmed for the colorimetry block. The matricial equation is: Q = A * P + B, where A is 3x3 matrix and B is a 3 element column. pData should contain the 9+3 coefficients in fixed point 16.16 format. Every coefficient is represented by RMint32 = LONG = 32bits with sign, in fixed point 16.16. Here are the two default matrix for YUV and RGB: LONG ColorYUV[9+3] = // A identity, B null { 0x00010000, 0, 0, // A00, A01, A02 0, 0x00010000, 0, // A10, A11, A12 0, 0, 0x00010000, // A20, A21, A22 0, 0, 0, // B0, B1, B2 }; LONG ColorRGB[9+3] = { 0x00010000, 0xFFFFAA00, 0xFFFF4D10, // 1.0 -0.3359375 -0.698974609375 0x00010000, 0x0001BBE0, 0, // 1.0 1.73388671875 0.0 0x00010000, 0, 0x00016000, // 1.0 0.0 1.375 0x00848000, 0xFF221000, 0xFF500000, // 132.5 -221.9375 -176.0 }; For A matrix there are 9 coefficients fixed point 16.16. For EM848x integer's range is (-4,..3) and fractional accuracy is only 12 bits. For B matrix there are 3 coefficients fixed point 16.16. For EM848x integer's range is (-512,...511) and fractional accuracy is only 4 bits. */ evAnalogColorimetry, // set, get /** evDigitalColorimetry is supported only for EM848x. There are 12 coefficients to be programmed for the colorimetry block. The matricial equation is: Q = A * P + B, where A is 3x3 matrix and B is a 3 element column. pData should contain the 9+3 coefficients in fixed point 16.16 format. Every coefficient is represented by RMint32 = LONG = 32bits with sign, in fixed point 16.16. Here are the two default matrix for YUV and RGB: LONG ColorYUV[9+3] = // A identity, B null { 0x00010000, 0, 0, // A00, A01, A02 0, 0x00010000, 0, // A10, A11, A12 0, 0, 0x00010000, // A20, A21, A22 0, 0, 0, // B0, B1, B2 }; LONG ColorRGB[9+3] = { 0x00010000, 0xFFFFAA00, 0xFFFF4D10, // 1.0 -0.3359375 -0.698974609375 0x00010000, 0x0001BBE0, 0, // 1.0 1.73388671875 0.0 0x00010000, 0, 0x00016000, // 1.0 0.0 1.375 0x00848000, 0xFF221000, 0xFF500000, // 132.5 -221.9375 -176.0 }; For A matrix there are 9 coefficients fixed point 16.16. For EM848x integer's range is (-4,..3) and fractional accuracy is only 12 bits. For B matrix there are 3 coefficients fixed point 16.16. For EM848x integer's range is (-512,...511) and fractional accuracy is only 4 bits. When evDigitalVideoDataNBits is set to 8 or 16 matrix A and B are automatically changed by hardware to identity and NULL. When evDigitalVideoDataNBits is set to 24 matrix A and B are automatically changed by hardware to the RGB coefficients used in EM847X-revA,B. */ evDigitalColorimetry, // set, get /** evMpegPacked programs the decoder to use packed or unpacked display buffers. By default the decoder has packed buffers (1). For a better video quality use the property for unpacked buffers (0). Supported only by EM847x, EM848x in any playback mode except vobu reverse, when the decoder will disregard the flag and it will switch to packed buffers. Visual artifacts will appear at reverse<->normal transition. */ evMpegPacked, // RMuint32, set, get /** evVideoHwPlayType sets the next type that will be used for VideoHwPlay command Usefull for some applications to first store the type then send the command */ evVideoHwPlayType, // evVideoHwPlay_type, set, get evMax}VIDEO_SET_ID;// AUDIO_SETtypedef enum { /** setting for the "ppm value" for 27MHz input for audio clock. Supported only for Ne2kTv board. Accepted values: -150ppm, -75ppm, 0ppm, +75ppm, +150ppm */ eAudioFineVcxo = 0, // int /** setting for the audio NovaLite Pll used for some hardware designs. In the VCXO_SET set: Coefficients[0] = (N & 0xFF) | ((M & 0xFF)<<8) | ((K & 0xFF)<<16); See NovaLite spec for values of N,M,K. */ eAudioVcxo, // VCXO_SET, set only /** setting for AC3 parameters: Ac3ComprDlgNorm HwLib default eAc3LineOut Ac3SpeakerConfig HwLib default eAc3SpeakerSurround Ac3HiLoDynamicRange HwLib default 0xFFFF Ac3RepeatCounter HwLib default 0x0000 */ eaAc3Conf, // AC3_CONF structure /** setting for audio channels selection for the speakers: eAudioMode_Stereo eAudioMode_MonoLeft eAudioMode_MonoRight eAudioMode_MonoMix @remark The default value is eAudioMode_Stereo. */ eAudioMode, // eAudioMode_type /** select the hardware configuration ( what audio signals are used for input/output). Next settings will be supported only on specified hardware designs. eAudioInOutDefault - Harmony only: MD5?I2S_SCkinJDA1CK_Jda1CkinGCK_ScinOUT_DamckOUT:JDA1_SCkinJDA1CK_Jda1CkinGCK_ScinOUT_DamckOUT DAMCK clock is disabled using Pios. eAudioInOutVcxoJda1Ckin - Harmony only: MD5?I2S_SCkinJDA1CK_Jda1CkinDAMCK_ScinOUT_DamckIN:JDA1_SCkinJDA1CK_Jda1CkinDAMCK_ScinOUT_DamckIN DAMCK clock is VCXO(27MHz), using Pios. eAudioInOutExternJda1Ckin - Harmony only: MD5?I2S_SCkinDAMCK_Jda1CkinGCK_ScinOUT_DamckIN:JDA1_SCkinDAMCK_Jda1CkinGCK_ScinOUT_DamckIN DAMCK is capture clock(256Fs from SAA7115), using Pios. eAudioInOutSCkinCapture - Harmony only: MD5?I2S_SCkinJDA1CK_Jda1CkinDAMCK_ScinOUT_DamckIN:JDA1_SCkinJDA1CK_Jda1CkinDAMCK_ScinOUT_DamckIN DAMCK is 1.5x(40MHz), using Pios. eAudioInOut_BitClockACLK - em848x & em847x-revC DAMCK is input (256x48k), used for internal SCkin == bit clock. ACLK is output (256x48k), generated internaly, not in sync with DAMCK. SCOUT is output (64x48k for 24 bits per sample, 32x48k for 16 bits). SFOUT is output(48k) eAudioInOut_BitClockDAMCK - em848x & em847x-revC DAMCK is input (256x48k), used for internal SCkin == bit clock. ACLK is output (256x48k), generated internaly, not in sync with DAMCK. SCOUT is output (64x48k for 24 bits per sample, 32x48k for 16 bits). SFOUT is output(48k). eAudioInOut_BitClockInternDivMClk - em848x & em847x-revC DAMCK is output (256x48k), used for internal SCkin == bit clock, generated internaly from "audio clock divider". ACLK is output (256x48k), generated internaly from "audio clock divider", same as DAMCK. SCOUT is output (64x48k for 24 bits per sample, 32x48k for 16 bits). SFOUT is output(48k). eAudioInOut_BitClockInternDivDAMCK - em848x & em847x-revC DAMCK is input, passed through an "audio clock divider" used to generate the internal SCkin == bit clock (256x48k), Fout = Fin * M / [2*(M+N)]. ACLK is output (256x48k), generated internaly from "audio clock divider". SCOUT is output (64x48k for 24 bits per sample, 32x48k for 16 bits). SFOUT is output(48k). @remark The default value is eAudioInOutDefault. */ eaInOutConfig, // AudioInOutConfig_type /** audio volume right from 0 to 100 @remark The default value is 50. */ eaVolumeRight, // RMuint32: [0..100], right volume /** audio volume left from 0 to 100
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -