mirror of
https://github.com/marqs85/ossc
synced 2026-10-30 19:57:20 +03:00
Sync processing rewritten and some issues fixed
* add 480i/576i line3x/4x * clean up RTL and SDC * update AVI infoframe properly * add HDMI IT content option
This commit is contained in:
1 parent
01b5fe20ee
commit
4f36278cb7
25 files changed
+2814
-1993
No files matched your search
@@ -78,19 +78,18 @@ bool HDMITX_HPD(void){
|
||||
}
|
||||
|
||||
|
||||
void HDMITX_SetAVIInfoFrame(alt_u8 VIC, alt_u8 OutputColorMode, bool b16x9, bool ITU709)
|
||||
void HDMITX_SetAVIInfoFrame(alt_u8 VIC, bool b16x9, bool ITU709, bool ITC, alt_u8 pixelrep)
|
||||
{
|
||||
AVI_InfoFrame AviInfo;
|
||||
alt_u8 pixelrep = 0;
|
||||
|
||||
OS_PRINTF("HDMITX_SetAVIInfoFrame, VIC=%d, ColorMode=%d, Aspect-Ratio=%s, ITU709=%s\n",
|
||||
VIC, OutputColorMode, b16x9?"16:9":"4:3", ITU709?"Yes":"No");
|
||||
AVI_InfoFrame AviInfo;
|
||||
|
||||
OS_PRINTF("HDMITX_SetAVIInfoFrame, VIC=%d, Aspect-Ratio=%s, ITU709=%s, ITC=%s, pixelrep=%u\n",
|
||||
VIC, b16x9?"16:9":"4:3", ITU709?"Yes":"No", ITC?"Yes":"No", pixelrep);
|
||||
|
||||
AviInfo.pktbyte.AVI_HB[0] = AVI_INFOFRAME_TYPE|0x80 ;
|
||||
AviInfo.pktbyte.AVI_HB[1] = AVI_INFOFRAME_VER ;
|
||||
AviInfo.pktbyte.AVI_HB[2] = AVI_INFOFRAME_LEN ;
|
||||
|
||||
switch(OutputColorMode)
|
||||
/*switch(OutputColorMode)
|
||||
{
|
||||
case F_MODE_YUV444:
|
||||
// AviInfo.info.ColorMode = 2 ;
|
||||
@@ -105,14 +104,15 @@ void HDMITX_SetAVIInfoFrame(alt_u8 VIC, alt_u8 OutputColorMode, bool b16x9, bool
|
||||
// AviInfo.info.ColorMode = 0 ;
|
||||
AviInfo.pktbyte.AVI_DB[0] = (0<<5)|(1<<4) ;
|
||||
break ;
|
||||
}
|
||||
}*/
|
||||
AviInfo.pktbyte.AVI_DB[0] = (0<<5)|(1<<4) ;
|
||||
AviInfo.pktbyte.AVI_DB[0] |= 2; // indicate "no overscan"
|
||||
AviInfo.pktbyte.AVI_DB[1] = 8 ;
|
||||
AviInfo.pktbyte.AVI_DB[1] |= (!b16x9)?(1<<4):(2<<4) ; // 4:3 or 16:9
|
||||
//AviInfo.pktbyte.AVI_DB[1] |= (!b16x9)?(1<<4):(2<<4) ; // 4:3 or 16:9
|
||||
AviInfo.pktbyte.AVI_DB[1] |= (!ITU709)?(1<<6):(2<<6) ; // ITU709 or ITU601
|
||||
AviInfo.pktbyte.AVI_DB[2] = (1<<3) ; // indicate "full-range RGB"
|
||||
AviInfo.pktbyte.AVI_DB[2] = ((1<<3) | (ITC<<7)) ; // indicate "full-range RGB", setup ITC bit
|
||||
AviInfo.pktbyte.AVI_DB[3] = VIC ;
|
||||
AviInfo.pktbyte.AVI_DB[4] = pixelrep & 3 ;
|
||||
AviInfo.pktbyte.AVI_DB[4] = pixelrep & 3 ;
|
||||
AviInfo.pktbyte.AVI_DB[5] = 0 ;
|
||||
AviInfo.pktbyte.AVI_DB[6] = 0 ;
|
||||
AviInfo.pktbyte.AVI_DB[7] = 0 ;
|
||||
|
||||
@@ -12,7 +12,7 @@ bool HDMITX_ChipVerify(void);
|
||||
bool HDMITX_HPD(void);
|
||||
void HDMITX_ChangeVideoTiming(int VIC);
|
||||
void HDMITX_ChangeVideoTimingAndColor(int VIC, COLOR_TYPE Color);
|
||||
void HDMITX_SetAVIInfoFrame(alt_u8 VIC, alt_u8 OutputColorMode, bool b16x9, bool ITU709);
|
||||
void HDMITX_SetAVIInfoFrame(alt_u8 VIC, bool b16x9, bool ITU709, bool ITC, alt_u8 pixelrep);
|
||||
|
||||
void HDMITX_DisableVideoOutput(void);
|
||||
void HDMITX_EnableVideoOutput(void);
|
||||
|
||||
@@ -3274,25 +3274,16 @@ DISABLE_MPG_INFOFRM_PKT()
|
||||
HDMITX_WriteI2C_Byte(REG_TX_MPG_INFOFRM_CTRL,0);
|
||||
}
|
||||
|
||||
void HDMITX_SetPixelRepetition(int pixelrep, int set_infoframe) {
|
||||
void HDMITX_SetPixelRepetition(BYTE pixelrep, BYTE set_infoframe) {
|
||||
BYTE pllpr;
|
||||
|
||||
//Switch_HDMITX_Bank(0);
|
||||
pllpr = HDMITX_ReadI2C_Byte(REG_TX_CLK_CTRL1) & 0x2F;
|
||||
pixelrep &= 0x3;
|
||||
|
||||
if (set_infoframe) {
|
||||
HDMITX_WriteI2C_Byte(REG_TX_CLK_CTRL1, pllpr);
|
||||
Switch_HDMITX_Bank(1);
|
||||
HDMITX_WriteI2C_Byte(REG_TX_AVIINFO_DB5, pixelrep);
|
||||
} else {
|
||||
pllpr |= (1<<4)|(pixelrep<<6);
|
||||
HDMITX_WriteI2C_Byte(REG_TX_CLK_CTRL1, pllpr);
|
||||
Switch_HDMITX_Bank(1);
|
||||
HDMITX_WriteI2C_Byte(REG_TX_AVIINFO_DB5, 0);
|
||||
}
|
||||
|
||||
Switch_HDMITX_Bank(0);
|
||||
pllpr = HDMITX_ReadI2C_Byte(REG_TX_CLK_CTRL1) & 0x2F;
|
||||
|
||||
if (!set_infoframe)
|
||||
pllpr |= (1<<4)|((pixelrep&0x3)<<6);
|
||||
|
||||
HDMITX_WriteI2C_Byte(REG_TX_CLK_CTRL1, pllpr);
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -834,7 +834,7 @@ BOOL EnableAudioInfoFrame(BYTE bEnable,BYTE *pAudioInfoFrame);
|
||||
void SetAVMute(BYTE bEnable) ;
|
||||
void SetOutputColorDepthPhase(BYTE ColorDepth,BYTE bPhase) ;
|
||||
void Get6613Reg(BYTE *pReg) ;
|
||||
void HDMITX_SetPixelRepetition(int pixelrep, int set_infoframe);
|
||||
void HDMITX_SetPixelRepetition(BYTE pixelrep, BYTE set_infoframe);
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
// Required Interfance
|
||||
|
||||
Reference in new issue
Block a user