📄 tmbslhdmitx_app.c
字号:
TV_288p_50Hz, /* HDMITX_VFMT_28_720x288p_50Hz */
TV_576p_50Hz, /* HDMITX_VFMT_29_1440x576p_50Hz */
TV_576p_50Hz, /* HDMITX_VFMT_30_1440x576p_50Hz */
TV_1080p_50Hz, /* HDMITX_VFMT_31_1920x1080p_50Hz */
};
/**
* Macro to pack vinMode(0-5), pixRate(0-1), syncIn(0-1) and bVerified(0-1)
* into a byte
*/
#define PKBYTE(mode,rate,sync,verf) (((rate)<<7)|((sync)<<6)|((verf)<<5)|((mode)&0x1F))
/**
* Macros to unpack vinMode(0-5), pixRate(0-1), syncIn(0-1) and bVerified(0-1)
* from a byte
*/
#define UNPKRATE(byte) (((byte)>>7)&1)
#define UNPKSYNC(byte) (((byte)>>6)&1)
#define UNPKVERF(byte) (((byte)>>5)&1)
#define UNPKMODE(byte) ((byte)&0x1F)
/**
* Lookup table to match main video settings and look up sets of
* Refpix and Refline values
*/
static CONST_DAT struct
{
/* Values to match */
UInt8 modeRateSyncVerf; /* Packed vinMode, pixRate, syncIn, bVerified */
UInt8 shortVinFmt;
UInt8 shortVoutFmt;
/* Values to look up */
UInt16 refPix; /* Output values */
UInt16 refLine;
UInt16 scRefPix; /* Scaler values */
UInt16 scRefLine;
} kRefpixRefline [] =
{
/*************************************************************/
/** Rows formatted in "Refpix_Refline.xls" and pasted here **/
/** DO NOT DELETE ANY ROWS, to keep all scaler combinations **/
/*************************************************************/
/* mode_____Rate___Sync_Verf shortVinFmt shortVoutFmt refPix refLine scRefPix scRefLine Test ID */
{PKBYTE(iCCIR656,SINGLE,EMB, 1), TV_480i_60Hz, TV_480p_60Hz, 0x08b, 0x024, 0x078, 0x017}, /* VID_F_04 */
{PKBYTE(iCCIR656,SINGLE,EMB, 1), TV_480i_60Hz, TV_720p_60Hz, 0x08b, 0x012, 0x078, 0x017}, /* VID_F_04 */
{PKBYTE(iCCIR656,SINGLE,EMB, 1), TV_480i_60Hz, TV_1080i_60Hz, 0x08b, 0x00e, 0x078, 0x017}, /* VID_F_04 */
{PKBYTE(iCCIR656,SINGLE,EMB, 1), TV_480p_60Hz, TV_720p_60Hz, 0x08b, 0x017, 0x078, 0x02c}, /* VID_F_01 */
{PKBYTE(iCCIR656,SINGLE,EMB, 1), TV_480p_60Hz, TV_1080i_60Hz, 0x08b, 0x013, 0x078, 0x02c}, /* VID_F_01 */
{PKBYTE(iCCIR656,SINGLE,EMB, 1), TV_576i_50Hz, TV_576p_50Hz, 0x091, 0x026, 0x085, 0x018}, /* VID_F_09 */
{PKBYTE(iCCIR656,SINGLE,EMB, 1), TV_576i_50Hz, TV_720p_50Hz, 0x091, 0x013, 0x085, 0x018}, /* VID_F_09 */
{PKBYTE(iCCIR656,SINGLE,EMB, 1), TV_576i_50Hz, TV_1080i_50Hz, 0x091, 0x00f, 0x085, 0x018}, /* VID_F_09 */
{PKBYTE(iCCIR656,SINGLE,EMB, 1), TV_576p_50Hz, TV_720p_50Hz, 0x091, 0x019, 0x085, 0x02e}, /* VID_F_06 */
{PKBYTE(iCCIR656,SINGLE,EMB, 1), TV_576p_50Hz, TV_1080i_50Hz, 0x091, 0x014, 0x085, 0x02e}, /* VID_F_06 */
{PKBYTE(iCCIR656,SINGLE,EXT, 1), TV_480i_60Hz, TV_480p_60Hz, 0x014, 0x20d, 0x359, 0x004}, /* VID_F_04 */
{PKBYTE(iCCIR656,SINGLE,EXT, 1), TV_480i_60Hz, TV_720p_60Hz, 0x014, 0x2cb, 0x359, 0x004}, /* VID_F_04 */
{PKBYTE(iCCIR656,SINGLE,EXT, 1), TV_480i_60Hz, TV_1080i_60Hz, 0x014, 0x44c, 0x359, 0x004}, /* VID_F_04 */
{PKBYTE(iCCIR656,SINGLE,EXT, 1), TV_480p_60Hz, TV_720p_60Hz, 0x011, 0x2d3, 0x358, 0x007}, /* VID_F_01 */
{PKBYTE(iCCIR656,SINGLE,EXT, 1), TV_480p_60Hz, TV_1080i_60Hz, 0x011, 0x452, 0x358, 0x007}, /* VID_F_01 */
{PKBYTE(iCCIR656,SINGLE,EXT, 1), TV_576i_50Hz, TV_576p_50Hz, 0x00d, 0x26b, 0x35f, 0x001}, /* VID_F_09 */
{PKBYTE(iCCIR656,SINGLE,EXT, 1), TV_576i_50Hz, TV_720p_50Hz, 0x00d, 0x2cb, 0x35f, 0x001}, /* VID_F_09 */
{PKBYTE(iCCIR656,SINGLE,EXT, 1), TV_576i_50Hz, TV_1080i_50Hz, 0x00d, 0x44b, 0x35f, 0x001}, /* VID_F_09 */
{PKBYTE(iCCIR656,SINGLE,EXT, 1), TV_576p_50Hz, TV_720p_50Hz, 0x00d, 0x2d1, 0x35f, 0x001}, /* VID_F_06 */
{PKBYTE(iCCIR656,SINGLE,EXT, 1), TV_576p_50Hz, TV_1080i_50Hz, 0x00d, 0x451, 0x35f, 0x001}, /* VID_F_06 */
{PKBYTE(iCCIR656,DOUBLE,EMB, 1), TV_480i_60Hz, TV_480p_60Hz, 0x08b, 0x024, 0x078, 0x017}, /* VID_F_04 */
{PKBYTE(iCCIR656,DOUBLE,EMB, 1), TV_480i_60Hz, TV_720p_60Hz, 0x08b, 0x012, 0x078, 0x017}, /* VID_F_04 */
{PKBYTE(iCCIR656,DOUBLE,EMB, 1), TV_480i_60Hz, TV_1080i_60Hz, 0x08b, 0x00e, 0x078, 0x017}, /* VID_F_04 */
{PKBYTE(iCCIR656,DOUBLE,EMB, 1), TV_480p_60Hz, TV_720p_60Hz, 0x08b, 0x017, 0x078, 0x02c}, /* VID_F_01 */
{PKBYTE(iCCIR656,DOUBLE,EMB, 1), TV_480p_60Hz, TV_1080i_60Hz, 0x08b, 0x013, 0x078, 0x02c}, /* VID_F_01 */
{PKBYTE(iCCIR656,DOUBLE,EMB, 1), TV_576i_50Hz, TV_576p_50Hz, 0x091, 0x026, 0x085, 0x018}, /* VID_F_09 */
{PKBYTE(iCCIR656,DOUBLE,EMB, 1), TV_576i_50Hz, TV_720p_50Hz, 0x091, 0x013, 0x085, 0x018}, /* VID_F_09 */
{PKBYTE(iCCIR656,DOUBLE,EMB, 1), TV_576i_50Hz, TV_1080i_50Hz, 0x091, 0x00f, 0x085, 0x018}, /* VID_F_09 */
{PKBYTE(iCCIR656,DOUBLE,EMB, 1), TV_576p_50Hz, TV_720p_50Hz, 0x091, 0x019, 0x085, 0x02e}, /* VID_F_06 */
{PKBYTE(iCCIR656,DOUBLE,EMB, 1), TV_576p_50Hz, TV_1080i_50Hz, 0x091, 0x014, 0x085, 0x02e}, /* VID_F_06 */
{PKBYTE(iCCIR656,DOUBLE,EXT, 1), TV_480i_60Hz, TV_480p_60Hz, 0x014, 0x20d, 0x359, 0x004}, /* VID_F_04 */
{PKBYTE(iCCIR656,DOUBLE,EXT, 1), TV_480i_60Hz, TV_720p_60Hz, 0x014, 0x2cb, 0x359, 0x004}, /* VID_F_04 */
{PKBYTE(iCCIR656,DOUBLE,EXT, 1), TV_480i_60Hz, TV_1080i_60Hz, 0x014, 0x44c, 0x359, 0x004}, /* VID_F_04 */
{PKBYTE(iCCIR656,DOUBLE,EXT, 1), TV_480p_60Hz, TV_720p_60Hz, 0x011, 0x2d3, 0x358, 0x007}, /* VID_F_01 */
{PKBYTE(iCCIR656,DOUBLE,EXT, 1), TV_480p_60Hz, TV_1080i_60Hz, 0x011, 0x452, 0x358, 0x007}, /* VID_F_01 */
{PKBYTE(iCCIR656,DOUBLE,EXT, 1), TV_576i_50Hz, TV_576p_50Hz, 0x00d, 0x26b, 0x35f, 0x001}, /* VID_F_09 */
{PKBYTE(iCCIR656,DOUBLE,EXT, 1), TV_576i_50Hz, TV_720p_50Hz, 0x00d, 0x2cb, 0x35f, 0x001}, /* VID_F_09 */
{PKBYTE(iCCIR656,DOUBLE,EXT, 1), TV_576i_50Hz, TV_1080i_50Hz, 0x00d, 0x44b, 0x35f, 0x001}, /* VID_F_09 */
{PKBYTE(iCCIR656,DOUBLE,EXT, 1), TV_576p_50Hz, TV_720p_50Hz, 0x00d, 0x2d1, 0x35f, 0x001}, /* VID_F_06 */
{PKBYTE(iCCIR656,DOUBLE,EXT, 1), TV_576p_50Hz, TV_1080i_50Hz, 0x00d, 0x451, 0x35f, 0x001}, /* VID_F_06 */
{PKBYTE(iYUV422, SINGLE,EMB, 1), TV_480i_60Hz, TV_480p_60Hz, 0x08d, 0x028, 0x078, 0x017}, /* VID_F_04 */
{PKBYTE(iYUV422, SINGLE,EMB, 1), TV_480i_60Hz, TV_720p_60Hz, 0x08d, 0x014, 0x078, 0x017}, /* VID_F_04 */
{PKBYTE(iYUV422, SINGLE,EMB, 1), TV_480i_60Hz, TV_1080i_60Hz, 0x08d, 0x010, 0x078, 0x017}, /* VID_F_04 */
{PKBYTE(iYUV422, SINGLE,EMB, 1), TV_480p_60Hz, TV_720p_60Hz, 0x08d, 0x017, 0x078, 0x02c}, /* VID_F_01 */
{PKBYTE(iYUV422, SINGLE,EMB, 1), TV_480p_60Hz, TV_1080i_60Hz, 0x08d, 0x014, 0x078, 0x02c}, /* VID_F_01 */
{PKBYTE(iYUV422, SINGLE,EMB, 1), TV_576i_50Hz, TV_576p_50Hz, 0x093, 0x02a, 0x085, 0x018}, /* VID_F_09 */
{PKBYTE(iYUV422, SINGLE,EMB, 1), TV_576i_50Hz, TV_720p_50Hz, 0x093, 0x013, 0x085, 0x018}, /* VID_F_09 */
{PKBYTE(iYUV422, SINGLE,EMB, 1), TV_576i_50Hz, TV_1080i_50Hz, 0x093, 0x00e, 0x085, 0x018}, /* VID_F_09 */
{PKBYTE(iYUV422, SINGLE,EMB, 1), TV_576p_50Hz, TV_720p_50Hz, 0x093, 0x019, 0x085, 0x02e}, /* VID_F_06 */
{PKBYTE(iYUV422, SINGLE,EMB, 1), TV_576p_50Hz, TV_1080i_50Hz, 0x093, 0x014, 0x085, 0x02e}, /* VID_F_06 */
{PKBYTE(iYUV422, SINGLE,EXT, 1), TV_480i_60Hz, TV_480p_60Hz, 0x016, 0x20d, 0x359, 0x004}, /* VID_F_04 */
{PKBYTE(iYUV422, SINGLE,EXT, 1), TV_480i_60Hz, TV_720p_60Hz, 0x016, 0x2cb, 0x359, 0x004}, /* VID_F_04 */
{PKBYTE(iYUV422, SINGLE,EXT, 1), TV_480i_60Hz, TV_1080i_60Hz, 0x016, 0x44c, 0x359, 0x004}, /* VID_F_04 */
{PKBYTE(iYUV422, SINGLE,EXT, 1), TV_480p_60Hz, TV_720p_60Hz, 0x013, 0x2d3, 0x358, 0x007}, /* VID_F_01 */
{PKBYTE(iYUV422, SINGLE,EXT, 1), TV_480p_60Hz, TV_1080i_60Hz, 0x013, 0x452, 0x358, 0x007}, /* VID_F_01 */
{PKBYTE(iYUV422, SINGLE,EXT, 1), TV_576i_50Hz, TV_576p_50Hz, 0x00f, 0x26b, 0x35f, 0x001}, /* VID_F_09 */
{PKBYTE(iYUV422, SINGLE,EXT, 1), TV_576i_50Hz, TV_720p_50Hz, 0x00f, 0x2cb, 0x35f, 0x001}, /* VID_F_09 */
{PKBYTE(iYUV422, SINGLE,EXT, 1), TV_576i_50Hz, TV_1080i_50Hz, 0x00f, 0x44b, 0x35f, 0x001}, /* VID_F_09 */
{PKBYTE(iYUV422, SINGLE,EXT, 1), TV_576p_50Hz, TV_720p_50Hz, 0x00f, 0x2d1, 0x35f, 0x001}, /* VID_F_06 */
{PKBYTE(iYUV422, SINGLE,EXT, 1), TV_576p_50Hz, TV_1080i_50Hz, 0x00f, 0x451, 0x35f, 0x001}, /* VID_F_06 */
{PKBYTE(iYUV422, DOUBLE,EMB, 0), TV_480i_60Hz, TV_480p_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_04 */
{PKBYTE(iYUV422, DOUBLE,EMB, 0), TV_480i_60Hz, TV_720p_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_04 */
{PKBYTE(iYUV422, DOUBLE,EMB, 0), TV_480i_60Hz, TV_1080i_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_04 */
{PKBYTE(iYUV422, DOUBLE,EMB, 0), TV_480p_60Hz, TV_720p_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_01 */
{PKBYTE(iYUV422, DOUBLE,EMB, 0), TV_480p_60Hz, TV_1080i_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_01 */
{PKBYTE(iYUV422, DOUBLE,EMB, 0), TV_576i_50Hz, TV_576p_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_09 */
{PKBYTE(iYUV422, DOUBLE,EMB, 0), TV_576i_50Hz, TV_720p_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_09 */
{PKBYTE(iYUV422, DOUBLE,EMB, 0), TV_576i_50Hz, TV_1080i_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_09 */
{PKBYTE(iYUV422, DOUBLE,EMB, 0), TV_576p_50Hz, TV_720p_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_06 */
{PKBYTE(iYUV422, DOUBLE,EMB, 0), TV_576p_50Hz, TV_1080i_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_06 */
{PKBYTE(iYUV422, DOUBLE,EXT, 0), TV_480i_60Hz, TV_480p_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_04 */
{PKBYTE(iYUV422, DOUBLE,EXT, 0), TV_480i_60Hz, TV_720p_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_04 */
{PKBYTE(iYUV422, DOUBLE,EXT, 0), TV_480i_60Hz, TV_1080i_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_04 */
{PKBYTE(iYUV422, DOUBLE,EXT, 0), TV_480p_60Hz, TV_720p_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_01 */
{PKBYTE(iYUV422, DOUBLE,EXT, 0), TV_480p_60Hz, TV_1080i_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_01 */
{PKBYTE(iYUV422, DOUBLE,EXT, 0), TV_576i_50Hz, TV_576p_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_09 */
{PKBYTE(iYUV422, DOUBLE,EXT, 0), TV_576i_50Hz, TV_720p_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_09 */
{PKBYTE(iYUV422, DOUBLE,EXT, 0), TV_576i_50Hz, TV_1080i_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_09 */
{PKBYTE(iYUV422, DOUBLE,EXT, 0), TV_576p_50Hz, TV_720p_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_06 */
{PKBYTE(iYUV422, DOUBLE,EXT, 0), TV_576p_50Hz, TV_1080i_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_06 */
{PKBYTE(iYUV444, SINGLE,EMB, 0), TV_480i_60Hz, TV_480p_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_04 */
{PKBYTE(iYUV444, SINGLE,EMB, 0), TV_480i_60Hz, TV_720p_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_04 */
{PKBYTE(iYUV444, SINGLE,EMB, 0), TV_480i_60Hz, TV_1080i_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_04 */
{PKBYTE(iYUV444, SINGLE,EMB, 0), TV_480p_60Hz, TV_720p_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_01 */
{PKBYTE(iYUV444, SINGLE,EMB, 0), TV_480p_60Hz, TV_1080i_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_01 */
{PKBYTE(iYUV444, SINGLE,EMB, 0), TV_576i_50Hz, TV_576p_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_09 */
{PKBYTE(iYUV444, SINGLE,EMB, 0), TV_576i_50Hz, TV_720p_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_09 */
{PKBYTE(iYUV444, SINGLE,EMB, 0), TV_576i_50Hz, TV_1080i_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_09 */
{PKBYTE(iYUV444, SINGLE,EMB, 0), TV_576p_50Hz, TV_720p_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_06 */
{PKBYTE(iYUV444, SINGLE,EMB, 0), TV_576p_50Hz, TV_1080i_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_06 */
{PKBYTE(iYUV444, SINGLE,EXT, 0), TV_480i_60Hz, TV_480p_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_04 */
{PKBYTE(iYUV444, SINGLE,EXT, 0), TV_480i_60Hz, TV_720p_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_04 */
{PKBYTE(iYUV444, SINGLE,EXT, 0), TV_480i_60Hz, TV_1080i_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_04 */
{PKBYTE(iYUV444, SINGLE,EXT, 0), TV_480p_60Hz, TV_720p_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_01 */
{PKBYTE(iYUV444, SINGLE,EXT, 0), TV_480p_60Hz, TV_1080i_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_01 */
{PKBYTE(iYUV444, SINGLE,EXT, 0), TV_576i_50Hz, TV_576p_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_09 */
{PKBYTE(iYUV444, SINGLE,EXT, 0), TV_576i_50Hz, TV_720p_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_09 */
{PKBYTE(iYUV444, SINGLE,EXT, 0), TV_576i_50Hz, TV_1080i_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_09 */
{PKBYTE(iYUV444, SINGLE,EXT, 0), TV_576p_50Hz, TV_720p_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_06 */
{PKBYTE(iYUV444, SINGLE,EXT, 0), TV_576p_50Hz, TV_1080i_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_06 */
{PKBYTE(iYUV444, DOUBLE,EMB, 0), TV_480i_60Hz, TV_480p_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_04 */
{PKBYTE(iYUV444, DOUBLE,EMB, 0), TV_480i_60Hz, TV_720p_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_04 */
{PKBYTE(iYUV444, DOUBLE,EMB, 0), TV_480i_60Hz, TV_1080i_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_04 */
{PKBYTE(iYUV444, DOUBLE,EMB, 0), TV_480p_60Hz, TV_720p_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_01 */
{PKBYTE(iYUV444, DOUBLE,EMB, 0), TV_480p_60Hz, TV_1080i_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_01 */
{PKBYTE(iYUV444, DOUBLE,EMB, 0), TV_576i_50Hz, TV_576p_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_09 */
{PKBYTE(iYUV444, DOUBLE,EMB, 0), TV_576i_50Hz, TV_720p_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_09 */
{PKBYTE(iYUV444, DOUBLE,EMB, 0), TV_576i_50Hz, TV_1080i_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_09 */
{PKBYTE(iYUV444, DOUBLE,EMB, 0), TV_576p_50Hz, TV_720p_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_06 */
{PKBYTE(iYUV444, DOUBLE,EMB, 0), TV_576p_50Hz, TV_1080i_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_06 */
{PKBYTE(iYUV444, DOUBLE,EXT, 0), TV_480i_60Hz, TV_480p_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_04 */
{PKBYTE(iYUV444, DOUBLE,EXT, 0), TV_480i_60Hz, TV_720p_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_04 */
{PKBYTE(iYUV444, DOUBLE,EXT, 0), TV_480i_60Hz, TV_1080i_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_04 */
{PKBYTE(iYUV444, DOUBLE,EXT, 0), TV_480p_60Hz, TV_720p_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_01 */
{PKBYTE(iYUV444, DOUBLE,EXT, 0), TV_480p_60Hz, TV_1080i_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_01 */
{PKBYTE(iYUV444, DOUBLE,EXT, 0), TV_576i_50Hz, TV_576p_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_09 */
{PKBYTE(iYUV444, DOUBLE,EXT, 0), TV_576i_50Hz, TV_720p_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_09 */
{PKBYTE(iYUV444, DOUBLE,EXT, 0), TV_576i_50Hz, TV_1080i_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_09 */
{PKBYTE(iYUV444, DOUBLE,EXT, 0), TV_576p_50Hz, TV_720p_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_06 */
{PKBYTE(iYUV444, DOUBLE,EXT, 0), TV_576p_50Hz, TV_1080i_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_06 */
{PKBYTE(iRGB444, SINGLE,EMB, 0), TV_480i_60Hz, TV_480p_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_04 */
{PKBYTE(iRGB444, SINGLE,EMB, 0), TV_480i_60Hz, TV_720p_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_04 */
{PKBYTE(iRGB444, SINGLE,EMB, 0), TV_480i_60Hz, TV_1080i_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_04 */
{PKBYTE(iRGB444, SINGLE,EMB, 0), TV_480p_60Hz, TV_720p_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_01 */
{PKBYTE(iRGB444, SINGLE,EMB, 0), TV_480p_60Hz, TV_1080i_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_01 */
{PKBYTE(iRGB444, SINGLE,EMB, 0), TV_576i_50Hz, TV_576p_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_09 */
{PKBYTE(iRGB444, SINGLE,EMB, 0), TV_576i_50Hz, TV_720p_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_09 */
{PKBYTE(iRGB444, SINGLE,EMB, 0), TV_576i_50Hz, TV_1080i_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_09 */
{PKBYTE(iRGB444, SINGLE,EMB, 0), TV_576p_50Hz, TV_720p_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_06 */
{PKBYTE(iRGB444, SINGLE,EMB, 0), TV_576p_50Hz, TV_1080i_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_06 */
{PKBYTE(iRGB444, SINGLE,EXT, 0), TV_480i_60Hz, TV_480p_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_04 */
{PKBYTE(iRGB444, SINGLE,EXT, 0), TV_480i_60Hz, TV_720p_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_04 */
{PKBYTE(iRGB444, SINGLE,EXT, 0), TV_480i_60Hz, TV_1080i_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_04 */
{PKBYTE(iRGB444, SINGLE,EXT, 0), TV_480p_60Hz, TV_720p_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_01 */
{PKBYTE(iRGB444, SINGLE,EXT, 0), TV_480p_60Hz, TV_1080i_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_01 */
{PKBYTE(iRGB444, SINGLE,EXT, 0), TV_480p_60Hz, TV_VGA_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_01 */
{PKBYTE(iRGB444, SINGLE,EXT, 0), TV_576i_50Hz, TV_576p_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_09 */
{PKBYTE(iRGB444, SINGLE,EXT, 0), TV_576i_50Hz, TV_720p_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_09 */
{PKBYTE(iRGB444, SINGLE,EXT, 0), TV_576i_50Hz, TV_1080i_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_09 */
{PKBYTE(iRGB444, SINGLE,EXT, 0), TV_576p_50Hz, TV_720p_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_06 */
{PKBYTE(iRGB444, SINGLE,EXT, 0), TV_576p_50Hz, TV_1080i_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_06 */
{PKBYTE(iRGB444, DOUBLE,EMB, 0), TV_480i_60Hz, TV_480p_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_04 */
{PKBYTE(iRGB444, DOUBLE,EMB, 0), TV_480i_60Hz, TV_720p_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_04 */
{PKBYTE(iRGB444, DOUBLE,EMB, 0), TV_480i_60Hz, TV_1080i_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_04 */
{PKBYTE(iRGB444, DOUBLE,EMB, 0), TV_480p_60Hz, TV_720p_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_01 */
{PKBYTE(iRGB444, DOUBLE,EMB, 0), TV_480p_60Hz, TV_1080i_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_01 */
{PKBYTE(iRGB444, DOUBLE,EMB, 0), TV_576i_50Hz, TV_576p_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_09 */
{PKBYTE(iRGB444, DOUBLE,EMB, 0), TV_576i_50Hz, TV_720p_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_09 */
{PKBYTE(iRGB444, DOUBLE,EMB, 0), TV_576i_50Hz, TV_1080i_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_09 */
{PKBYTE(iRGB444, DOUBLE,EMB, 0), TV_576p_50Hz, TV_720p_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_06 */
{PKBYTE(iRGB444, DOUBLE,EMB, 0), TV_576p_50Hz, TV_1080i_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_06 */
{PKBYTE(iRGB444, DOUBLE,EXT, 0), TV_480i_60Hz, TV_480p_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_04 */
{PKBYTE(iRGB444, DOUBLE,EXT, 0), TV_480i_60Hz, TV_720p_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_04 */
{PKBYTE(iRGB444, DOUBLE,EXT, 0), TV_480i_60Hz, TV_1080i_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_04 */
{PKBYTE(iRGB444, DOUBLE,EXT, 0), TV_480p_60Hz, TV_720p_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_01 */
{PKBYTE(iRGB444, DOUBLE,EXT, 0), TV_480p_60Hz, TV_1080i_60Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_01 */
{PKBYTE(iRGB444, DOUBLE,EXT, 0), TV_576i_50Hz, TV_576p_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_09 */
{PKBYTE(iRGB444, DOUBLE,EXT, 0), TV_576i_50Hz, TV_720p_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_09 */
{PKBYTE(iRGB444, DOUBLE,EXT, 0), TV_576i_50Hz, TV_1080i_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_09 */
{PKBYTE(iRGB444, DOUBLE,EXT, 0), TV_576p_50Hz, TV_720p_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_06 */
{PKBYTE(iRGB444, DOUBLE,EXT, 0), TV_576p_50Hz, TV_1080i_50Hz, 0x000, 0x000, 0x000, 0x000}, /* VID_F_06 */
{PKBYTE(iINVALID,DOUBLE,EMB, 0), TV_INVALID, TV_INVALID, 0x000, 0x000, 0x000, 0x000} /* EndTable */
};
/*============================================================================*/
/* STATIC VARIABLE DECLARATIONS */
/* To conserve RAM, these variables do NOT support multiple device instances */
/** \todo Users can turn them into arrays with dimension HDMITX_UNITS_MAX */
/*============================================================================*/
/* EDID short video descriptor list and total available */
static UInt8 EdidVFmts[HDMI_TX_SVD_MAX_CNT];
static UInt EdidVFmtsAvail;
#ifndef NO_HDCP
/* KSV list and number of devices read from B sink during SHA-1 interrupt */
static UInt8 HdcpKsvList[HDMITX_KSV_BYTES_PER_DEVICE *
HDMITX_KSV_LIST_MAX_DEVICES];
static UInt8 HdcpKsvDevices;
static tmbslHdmiTxHdcpTxMode_t txMode;
/* BKSV read from B sink */
static UInt8 HdcpBksv[HDMITX_KSV_BYTES_PER_DEVICE];
#endif /* NO_HDCP */
static UInt8 AudioChannelAllocation = 0;
/*============================================================================*/
/* STATIC FUNCTION DECLARATIONS */
/*============================================================================*/
static tmbslHdmiTxVfreq_t
fmtToFreq
(
tmbslHdmiTxVidFmt_t fmt
);
static Bool
getReflineRefpix
(
tmbslHdmiTxVidFmt_t vinFmt,
tmbslHdmiTxVinMode_t vinMode,
tmbslHdmiTxVidFmt_t voutFmt,
UInt8 syncIn,
tmbslHdmiTxPixRate_t pixRate,
UInt16 *pRefPix,
UInt16 *pRefLine,
UInt16 *pScRefPix,
UInt16 *pScRefLine,
Bool *pbVerified
);
static tmErrorCode_t
setVideoInfoframe
(
tmUnitSelect_t txUnit,
tmbslHdmiTxVidFmt_t voutFmt,
tmbslHdmiTxVoutMode_t voutMode
);
static void
lAppMemset
(
void *pTable1,
const UInt8 value,
UInt Size
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -