mirror of
https://github.com/marqs85/ossc
synced 2026-09-15 15:24:45 +03:00
fix 384col and 480p preset processing when PR2x is disabled
This commit is contained in:
parent
56509de3b6
commit
e800f095de
@ -174,7 +174,7 @@ int get_pure_lm_mode(avconfig_t *cc, mode_data_t *vm_in, mode_data_t *vm_out, vm
|
|||||||
valid_lm[3] = MODE_L4_GEN_4_3;
|
valid_lm[3] = MODE_L4_GEN_4_3;
|
||||||
break;
|
break;
|
||||||
case GROUP_480P:
|
case GROUP_480P:
|
||||||
if (mode_preset->vic == HDMI_480p60) {
|
if (mode_preset->vic == HDMI_480p60) {
|
||||||
switch (cc->s480p_mode) {
|
switch (cc->s480p_mode) {
|
||||||
case 0: // Auto
|
case 0: // Auto
|
||||||
if (vm_in->timings.h_synclen > 82)
|
if (vm_in->timings.h_synclen > 82)
|
||||||
@ -244,7 +244,6 @@ int get_pure_lm_mode(avconfig_t *cc, mode_data_t *vm_in, mode_data_t *vm_out, vm
|
|||||||
vm_out->vic = HDMI_Unknown;
|
vm_out->vic = HDMI_Unknown;
|
||||||
|
|
||||||
memset(vm_conf, 0, sizeof(vm_proc_config_t));
|
memset(vm_conf, 0, sizeof(vm_proc_config_t));
|
||||||
vm_conf->si_pclk_mult = 1;
|
|
||||||
|
|
||||||
mindiff_lm &= mode_preset->flags; //ensure L2 mode uniqueness
|
mindiff_lm &= mode_preset->flags; //ensure L2 mode uniqueness
|
||||||
|
|
||||||
@ -310,9 +309,7 @@ int get_pure_lm_mode(avconfig_t *cc, mode_data_t *vm_in, mode_data_t *vm_out, vm
|
|||||||
vm_conf->x_rpt = 1;
|
vm_conf->x_rpt = 1;
|
||||||
}
|
}
|
||||||
} else if (cc->hdmi_pr2x_disable && ((mode_preset->group == GROUP_480P) || (mode_preset->group == GROUP_576P))) {
|
} else if (cc->hdmi_pr2x_disable && ((mode_preset->group == GROUP_480P) || (mode_preset->group == GROUP_576P))) {
|
||||||
vmode_hv_mult(vm_in, 2, 1);
|
vm_conf->x_rpt = 1;
|
||||||
vmode_hv_mult(vm_out, 2, VM_OUT_YMULT);
|
|
||||||
skip_hv_mult = 1;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case MODE_L3_GEN_4_3:
|
case MODE_L3_GEN_4_3:
|
||||||
@ -329,6 +326,7 @@ int get_pure_lm_mode(avconfig_t *cc, mode_data_t *vm_in, mode_data_t *vm_out, vm
|
|||||||
vm_out->timings.h_total_adj = 0;
|
vm_out->timings.h_total_adj = 0;
|
||||||
vmode_hv_mult(vm_out, 4, VM_OUT_YMULT);
|
vmode_hv_mult(vm_out, 4, VM_OUT_YMULT);
|
||||||
skip_hv_mult = 1;
|
skip_hv_mult = 1;
|
||||||
|
vm_conf->si_pclk_mult = 4;
|
||||||
break;
|
break;
|
||||||
case MODE_L4_GEN_4_3:
|
case MODE_L4_GEN_4_3:
|
||||||
// Upsample / pixel-repeat horizontal resolution of 480i mode
|
// Upsample / pixel-repeat horizontal resolution of 480i mode
|
||||||
@ -392,6 +390,8 @@ int get_pure_lm_mode(avconfig_t *cc, mode_data_t *vm_in, mode_data_t *vm_out, vm
|
|||||||
vm_conf->x_rpt = vm_conf->h_skip = 2;
|
vm_conf->x_rpt = vm_conf->h_skip = 2;
|
||||||
break;
|
break;
|
||||||
case MODE_L6_384_COL:
|
case MODE_L6_384_COL:
|
||||||
|
vm_conf->x_rpt = vm_conf->h_skip = cc->hdmi_pr2x_disable ? 4 : 2;
|
||||||
|
break;
|
||||||
case MODE_L6_320_COL:
|
case MODE_L6_320_COL:
|
||||||
vm_conf->x_rpt = vm_conf->h_skip = cc->hdmi_pr2x_disable ? 5 : 2;
|
vm_conf->x_rpt = vm_conf->h_skip = cc->hdmi_pr2x_disable ? 5 : 2;
|
||||||
break;
|
break;
|
||||||
@ -424,10 +424,8 @@ int get_pure_lm_mode(avconfig_t *cc, mode_data_t *vm_in, mode_data_t *vm_out, vm
|
|||||||
if (!skip_hv_mult)
|
if (!skip_hv_mult)
|
||||||
vmode_hv_mult(vm_out, VM_OUT_XMULT, VM_OUT_YMULT);
|
vmode_hv_mult(vm_out, VM_OUT_XMULT, VM_OUT_YMULT);
|
||||||
|
|
||||||
// Set clock multiplication factor
|
// Set clock multiplication factor if not done earlier
|
||||||
if (mindiff_lm == MODE_L3_GEN_4_3)
|
if (!vm_conf->si_pclk_mult)
|
||||||
vm_conf->si_pclk_mult = 4;
|
|
||||||
else
|
|
||||||
vm_conf->si_pclk_mult = VM_OUT_PCLKMULT;
|
vm_conf->si_pclk_mult = VM_OUT_PCLKMULT;
|
||||||
|
|
||||||
// Reduce x_rpt for 1:1 PAR 256col mode
|
// Reduce x_rpt for 1:1 PAR 256col mode
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user