📄 rmhwlibprop.inc
字号:
RM_DEFINE_FULL_PROPERTY(HWLIB, VIDEO_SET, evDigitalVideoDataNBits) /** 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. */RM_DEFINE_FULL_PROPERTY(HWLIB, VIDEO_SET, evAnalogColorimetry) /** 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. */RM_DEFINE_FULL_PROPERTY(HWLIB, VIDEO_SET, evDigitalColorimetry) /** 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. */RM_DEFINE_FULL_PROPERTY(HWLIB, VIDEO_SET, evMpegPacked) /** 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 */RM_DEFINE_FULL_PROPERTY(HWLIB, VIDEO_SET, evVideoHwPlayType) /** Information valid only in video decoding state. 1 for Mpeg1, 2 for Mpeg2. */RM_DEFINE_FULL_PROPERTY(HWLIB, VIDEO_SET, evHwMpegStandard) /** 1 to enable the clipping of video digital data -> luma 16-235, chroma 16-240 0 to disable the clipping of video digital data -> luma & chroma 1-254 */RM_DEFINE_FULL_PROPERTY(HWLIB, VIDEO_SET, evVideoClipEnable) /** 1 to force 540 for Panscan 0 to get the horizontal size from display extension */RM_DEFINE_FULL_PROPERTY(HWLIB, VIDEO_SET, evForcePanScanDefaultSize) /** custom coefficients for luma/chroma filters, used for evDisplayFilter: CustomHorizontal4tap CustomVertical2tap, CustomVertical4tap */RM_DEFINE_FULL_PROPERTY(HWLIB, VIDEO_SET, evCustomDisplayFilterCoef) /** evDtvClosedCaptionFifo can be used to retrieve the DTV closed caption data from stream - from extension_and_user_data() field. The user should provide the buffer start and size in bytes (at least 8 bytes) at SetProperty. The CCdata from stream will be written every VSync in the buffer (if the buffer Start is not NULL) and WrPtr incremented, until the buffer is full. The user should read the data and increment the RdPtr to avoid missing data. The data should be send immediatelly to device, in to avoid asynchronism. The CC data in fifo starts with one word "header", containing information about the frame: 15 14 13 12 11..9 8 7 6 5 4 3 2 1 0 cc_type cc_type 0..0 Rpt1stFld 0 TopFld1st 0 0 PicStr CC Char Cnt pair1 pair2 0 - 2 Fld 0 - B,T 0 T Fld 0 - No Char 1 - 3 Fld 1 - T,B 1 B Fld 1 - 2 CC Chars 2 Frame 2 - 4 CC Chars After header will follow 0, 1 or 2 words (CC data), according to bits 1,0. cc_type = 00 should be sent on line21 field 1 cc_type = 01 should be sent on line21 field 2 */RM_DEFINE_FULL_PROPERTY(HWLIB, VIDEO_SET, evDtvClosedCaptionFifo)RM_DEFINE_FULL_PROPERTY(HWLIB, VIDEO_SET, evValidFrameIndicator)RM_DEFINE_FULL_PROPERTY(HWLIB, VIDEO_SET, evTopBottomPhase)RM_DEFINE_FULL_PROPERTY(HWLIB, VIDEO_SET, evChromaDecimate444to422)RM_DEFINE_FULL_PROPERTY(HWLIB, VIDEO_SET, evMax)/*****************************************************/ /** setting for the "ppm value" for 27MHz input for audio clock. Supported only for Ne2kTv board. Accepted values: -150ppm, -75ppm, 0ppm, +75ppm, +150ppm */RM_DEFINE_FULL_PROPERTY(HWLIB, AUDIO_SET, eAudioFineVcxo) /** 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. */RM_DEFINE_FULL_PROPERTY(HWLIB, AUDIO_SET, eAudioVcxo) /** setting for AC3 parameters: Ac3ComprDlgNorm HwLib default eAc3LineOut Ac3SpeakerConfig HwLib default eAc3SpeakerSurround Ac3HiLoDynamicRange HwLib default 0xFFFF Ac3RepeatCounter HwLib default 0x0000 */RM_DEFINE_FULL_PROPERTY(HWLIB, AUDIO_SET, eaAc3Conf) /** setting for audio channels selection for the speakers: eAudioMode_Stereo eAudioMode_MonoLeft eAudioMode_MonoRight eAudioMode_MonoMix @remark The default value is eAudioMode_Stereo. */RM_DEFINE_FULL_PROPERTY(HWLIB, AUDIO_SET, eAudioMode) /** 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. */RM_DEFINE_FULL_PROPERTY(HWLIB, AUDIO_SET, eaInOutConfig) /** audio volume right from 0 to 100 @remark The default value is 50. */RM_DEFINE_FULL_PROPERTY(HWLIB, AUDIO_SET, eaVolumeRight) /** audio volume left from 0 to 100 @remark The default value is 50. */RM_DEFINE_FULL_PROPERTY(HWLIB, AUDIO_SET, eaVolumeLeft) /** format of the audio stream ( mpeg, ac3, pcm,... ) Setting should be applied in Stop state of the decoder. @remark The default value is eAudioFormat_AC3. */RM_DEFINE_FULL_PROPERTY(HWLIB, AUDIO_SET, eAudioFormat) /** Sample rate of the audio stream ( 32kHz, 48kHz, ... ) @remark The default value is 48KHz. */RM_DEFINE_FULL_PROPERTY(HWLIB, AUDIO_SET, eAudioSampleRate) /** Number of PCM channels of the audio stream, used only for PCM format. Setting should be applied in Stop state of the decoder. @remark The default value is 2. */RM_DEFINE_FULL_PROPERTY(HWLIB, AUDIO_SET, eAudioNumberOfChannels) /** Number bits per sample of PCM audio stream, used only for PCM format. Setting should be applied in Stop state of the decoder. @remark The default value is 16. */RM_DEFINE_FULL_PROPERTY(HWLIB, AUDIO_SET, eAudioNumberOfBitsPerSample) /** eAudioI2SOutput enable or disable the I2S output @li eAudioI2SOutput_Disabled @li eAudioI2SOutput_Active @li eAudioI2SOutput_ActiveData0 @remark The default value is eAudioI2SOutput_Active. */RM_DEFINE_FULL_PROPERTY(HWLIB, AUDIO_SET, eAudioI2SOutput) /** eAudioSpdifOutput enable or disable the SPDIF output @li eAudioSpdifOutput_Disabled @li eAudioSpdifOutput_Active @li eAudioSpdifOutput_ActiveData0 @remark The default value is eAudioSpdifOutput_Active. */RM_DEFINE_FULL_PROPERTY(HWLIB, AUDIO_SET, eAudioSpdifOutput) /** eAudioDigitalOutput selects if the audio data are decoded in Pcm or just passtrough @li eAudioDigitalOutput_Pcm @li eAudioDigitalOutput_Compressed @remark The default value is eAudioDigitalOutput_Pcm. */RM_DEFINE_FULL_PROPERTY(HWLIB, AUDIO_SET, eAudioDigitalOutput) /** ChannelStatus in SPDIF has 192 bits. EM84xx has the possibility to program the first 32 bits using two 16 bits registers. MSB = bit 31 from ChannelStatus corresponds to bit 31 in SPDIF spec. LSB = bit 0 from ChannelStatus corresponds to bit 0 in SPDIF spec. Ex: Bit2 == copyright == (use SetMask = ResetMask = 0x00000004). HwLib code changes some bits from ChannelStatus registers: - bit 1 - programmed 0/1 according to PCM/digital content of the audio output, reprogrammed at every change of AudioFormat or AudioDigitalOutput. - bits 15,..,8 - initialized to 00011001 = 0x19, not reprogrammed. - bits 27,..,24 - programmed according to the audio sample rate, reprogrammed at every change of AudioSampleRate. The default ChannelStatus value is 0x02001902 (48k, DVD, digital content). SetProperty can modify any bit from the 32 available, using ResetMask and SetMask. The logical operation is: ChannelStatus = (ChannelStatus & ~ResetMask) | SetMask. It is application responsability to keep the sample rate and digital content correct ( protective mask 0x0F000002 ). GetProperty will return the value of ChannelStatus in SetMask. */RM_DEFINE_FULL_PROPERTY(HWLIB, AUDIO_SET, eAudioChannelStatus) /** Information available only in audio decoding AC3 or Mpeg state. Get 32000, 44100, 48000 from the hardware audio decoder. */RM_DEFINE_FULL_PROPERTY(HWLIB, AUDIO_SET, eAudioHwDecSampleRate) /** The information is valid only if the audio decoded is Ac3 or Mpeg, otherwise the property will return invalid mode. eAudioHwDec_unknown = -1, eAudioHwDec_acmod_1_1 = 1+1 = 2ch = Ch1,Ch2, em84xx can do LeftOnly/RightOnly eAudioHwDec_acmod_1_0 = 1/0 = 1ch = C eAudioHwDec_acmod_2_0 = 2/0 = 2ch = L,R eAudioHwDec_acmod_3_0 = 3/0 = 3ch = L,C,R eAudioHwDec_acmod_2_1 = 2/1 = 3ch = L,R,S eAudioHwDec_acmod_3_1 = 3/1 = 4ch = L,C,R,S eAudioHwDec_acmod_2_2 = 2/2 = 4ch = L,R,SL,SR eAudioHwDec_acmod_3_2 = 3/2 = 5ch = L,C,R,SL,SR eAudioHwDec_mpeg_stereo eAudioHwDec_mpeg_joint_stereo eAudioHwDec_mpeg_dual_channel eAudioHwDec_mpeg_single_channel
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -