mirror of
https://github.com/marqs85/ossc
synced 2025-04-09 22:56:34 +03:00
add Full VSYNC bypas option
This commit is contained in:
parent
2725351039
commit
fe3c6fdfa7
@ -415,6 +415,9 @@ status_t get_status(tvp_sync_input_t syncinput)
|
|||||||
if (memcmp(&tc.col, &cm.cc.col, sizeof(color_setup_t)))
|
if (memcmp(&tc.col, &cm.cc.col, sizeof(color_setup_t)))
|
||||||
tvp_set_gain_offset(&tc.col);
|
tvp_set_gain_offset(&tc.col);
|
||||||
|
|
||||||
|
if (tc.full_vs_bypass != cm.cc.full_vs_bypass)
|
||||||
|
tvp_set_full_vs_bypass(tc.full_vs_bypass);
|
||||||
|
|
||||||
#ifdef ENABLE_AUDIO
|
#ifdef ENABLE_AUDIO
|
||||||
if ((tc.audio_dw_sampl != cm.cc.audio_dw_sampl) ||
|
if ((tc.audio_dw_sampl != cm.cc.audio_dw_sampl) ||
|
||||||
#ifdef MANUAL_CTS
|
#ifdef MANUAL_CTS
|
||||||
@ -964,7 +967,7 @@ int main()
|
|||||||
printf("### DIY VIDEO DIGITIZER / SCANCONVERTER INIT OK ###\n\n");
|
printf("### DIY VIDEO DIGITIZER / SCANCONVERTER INIT OK ###\n\n");
|
||||||
sniprintf(row1, LCD_ROW_LEN+1, "OSSC fw. %u.%.2u" FW_SUFFIX1 FW_SUFFIX2, FW_VER_MAJOR, FW_VER_MINOR);
|
sniprintf(row1, LCD_ROW_LEN+1, "OSSC fw. %u.%.2u" FW_SUFFIX1 FW_SUFFIX2, FW_VER_MAJOR, FW_VER_MINOR);
|
||||||
#ifndef DEBUG
|
#ifndef DEBUG
|
||||||
strncpy(row2, "2014-2024 marqs", LCD_ROW_LEN+1);
|
strncpy(row2, "2014-2025 marqs", LCD_ROW_LEN+1);
|
||||||
#else
|
#else
|
||||||
strncpy(row2, "** DEBUG BUILD *", LCD_ROW_LEN+1);
|
strncpy(row2, "** DEBUG BUILD *", LCD_ROW_LEN+1);
|
||||||
#endif
|
#endif
|
||||||
|
@ -137,6 +137,7 @@ typedef struct {
|
|||||||
alt_u8 alc_h_filter;
|
alt_u8 alc_h_filter;
|
||||||
alt_u8 alc_v_filter;
|
alt_u8 alc_v_filter;
|
||||||
color_setup_t col;
|
color_setup_t col;
|
||||||
|
alt_u8 full_vs_bypass;
|
||||||
|
|
||||||
/* Audio settings */
|
/* Audio settings */
|
||||||
alt_u8 audio_dw_sampl;
|
alt_u8 audio_dw_sampl;
|
||||||
|
@ -223,6 +223,7 @@ MENU(menu_compatibility, P99_PROTECT({ \
|
|||||||
{ LNG("Full TX setup","フルTXセットアップ"), OPT_AVCONFIG_SELECTION, { .sel = { &tc.full_tx_setup, OPT_WRAP, SETTING_ITEM(off_on_desc) } } },
|
{ LNG("Full TX setup","フルTXセットアップ"), OPT_AVCONFIG_SELECTION, { .sel = { &tc.full_tx_setup, OPT_WRAP, SETTING_ITEM(off_on_desc) } } },
|
||||||
{ LNG("Allow TVP HPLL2x","TVP HPLL2xキョヨウ"), OPT_AVCONFIG_SELECTION, { .sel = { &tc.tvp_hpll2x, OPT_WRAP, SETTING_ITEM(off_on_desc) } } },
|
{ LNG("Allow TVP HPLL2x","TVP HPLL2xキョヨウ"), OPT_AVCONFIG_SELECTION, { .sel = { &tc.tvp_hpll2x, OPT_WRAP, SETTING_ITEM(off_on_desc) } } },
|
||||||
{ "AV3 use alt. RGB", OPT_AVCONFIG_SELECTION, { .sel = { &tc.av3_alt_rgb, OPT_WRAP, SETTING_ITEM(av3_alt_rgb_desc) } } },
|
{ "AV3 use alt. RGB", OPT_AVCONFIG_SELECTION, { .sel = { &tc.av3_alt_rgb, OPT_WRAP, SETTING_ITEM(av3_alt_rgb_desc) } } },
|
||||||
|
{ "Full VSYNC bypas", OPT_AVCONFIG_SELECTION, { .sel = { &tc.full_vs_bypass, OPT_WRAP, SETTING_ITEM(off_on_desc) } } },
|
||||||
{ "Default HDMI VIC", OPT_AVCONFIG_NUMVALUE, { .num = { &tc.default_vic, OPT_NOWRAP, 0, HDMI_1080p50, value_disp } } },
|
{ "Default HDMI VIC", OPT_AVCONFIG_NUMVALUE, { .num = { &tc.default_vic, OPT_NOWRAP, 0, HDMI_1080p50, value_disp } } },
|
||||||
}))
|
}))
|
||||||
|
|
||||||
|
@ -38,7 +38,8 @@ const ypbpr_to_rgb_csc_t csc_coeffs[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static const alt_u8 Kvco[] = {75, 85, 150, 200};
|
static const alt_u8 Kvco[] = {75, 85, 150, 200};
|
||||||
static const char *Kvco_str[] = { "Ultra low", "Low", "Medium", "High" };
|
static const char* const Kvco_str[] = { "Ultra low", "Low", "Medium", "High" };
|
||||||
|
static alt_u8 full_vs_bypass;
|
||||||
|
|
||||||
static void tvp_set_clamp_type(video_format fmt)
|
static void tvp_set_clamp_type(video_format fmt)
|
||||||
{
|
{
|
||||||
@ -201,6 +202,7 @@ void tvp_init()
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Set default configuration (skip those which match register reset values)
|
// Set default configuration (skip those which match register reset values)
|
||||||
|
full_vs_bypass = 0;
|
||||||
|
|
||||||
// Configure external refclk, HPLL generated pclk
|
// Configure external refclk, HPLL generated pclk
|
||||||
tvp_sel_clk(REFCLK_EXT27, 0);
|
tvp_sel_clk(REFCLK_EXT27, 0);
|
||||||
@ -267,6 +269,10 @@ void tvp_set_gain_offset(color_setup_t *col) {
|
|||||||
tvp_writereg(TVP_B_FOFFSET_MSB, col->b_f_off);
|
tvp_writereg(TVP_B_FOFFSET_MSB, col->b_f_off);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void tvp_set_full_vs_bypass(alt_u8 enable) {
|
||||||
|
full_vs_bypass = enable;
|
||||||
|
}
|
||||||
|
|
||||||
// Configure H-PLL (sampling rate, VCO gain and charge pump current)
|
// Configure H-PLL (sampling rate, VCO gain and charge pump current)
|
||||||
void tvp_setup_hpll(alt_u16 h_samplerate, alt_u16 pixs_per_line, alt_u16 refclks_per_line, alt_u8 plldivby2)
|
void tvp_setup_hpll(alt_u16 h_samplerate, alt_u16 pixs_per_line, alt_u16 refclks_per_line, alt_u8 plldivby2)
|
||||||
{
|
{
|
||||||
@ -447,11 +453,10 @@ void tvp_source_sel(tvp_input_t input, tvp_sync_input_t syncinput, video_format
|
|||||||
else
|
else
|
||||||
tvp_writereg(TVP_MISCCTRL3, 0x00);
|
tvp_writereg(TVP_MISCCTRL3, 0x00);
|
||||||
|
|
||||||
#ifdef SYNCBYPASS
|
if ((syncinput > TVP_SOG3) && (syncinput < TVP_CS_A))
|
||||||
tvp_writereg(TVP_SYNCBYPASS, 0x03);
|
tvp_writereg(TVP_SYNCBYPASS, full_vs_bypass ? 0x02 : 0x00);
|
||||||
#else
|
else
|
||||||
tvp_writereg(TVP_SYNCBYPASS, 0x00);
|
tvp_writereg(TVP_SYNCBYPASS, 0x00);
|
||||||
#endif
|
|
||||||
|
|
||||||
//TODO:
|
//TODO:
|
||||||
//TVP_ADCSETUP
|
//TVP_ADCSETUP
|
||||||
|
@ -98,6 +98,8 @@ void tvp_init();
|
|||||||
|
|
||||||
void tvp_set_gain_offset(color_setup_t *col);
|
void tvp_set_gain_offset(color_setup_t *col);
|
||||||
|
|
||||||
|
void tvp_set_full_vs_bypass(alt_u8 enable);
|
||||||
|
|
||||||
void tvp_setup_hpll(alt_u16 h_samplerate, alt_u16 pixs_per_line, alt_u16 refclks_per_line, alt_u8 plldivby2);
|
void tvp_setup_hpll(alt_u16 h_samplerate, alt_u16 pixs_per_line, alt_u16 refclks_per_line, alt_u8 plldivby2);
|
||||||
|
|
||||||
void tvp_sel_csc(const ypbpr_to_rgb_csc_t *csc);
|
void tvp_sel_csc(const ypbpr_to_rgb_csc_t *csc);
|
||||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user