mirror of
https://github.com/marqs85/ossc
synced 2026-11-05 14:40:08 +03:00
add Line2x pillarbox option
This commit is contained in:
1 parent
32af38e252
commit
8c0a0c181d
9 files changed
+52
-22
No files matched your search
@@ -156,7 +156,7 @@ MENU(menu_cust_sl, P99_PROTECT({ \
|
||||
}))
|
||||
|
||||
|
||||
MENU(menu_vinputproc, P99_PROTECT({ \
|
||||
MENU(menu_vinput_opt, P99_PROTECT({ \
|
||||
{ LNG("Video LPF","ビデオ LPF"), OPT_AVCONFIG_SELECTION, { .sel = { &tc.video_lpf, OPT_WRAP, SETTING_ITEM(video_lpf_desc) } } },
|
||||
{ LNG("Reverse LPF","ギャクLPF"), OPT_AVCONFIG_NUMVALUE, { .num = { &tc.reverse_lpf, OPT_NOWRAP, 0, REVERSE_LPF_MAX, value_disp } } },
|
||||
{ LNG("YPbPr in ColSpa","イロクウカンニYPbPr"), OPT_AVCONFIG_SELECTION, { .sel = { &tc.ypbpr_cs, OPT_WRAP, SETTING_ITEM(ypbpr_cs_desc) } } },
|
||||
@@ -175,13 +175,6 @@ MENU(menu_vinputproc, P99_PROTECT({ \
|
||||
{ "<Custom Lc-set>", OPT_CUSTOMMENU, { .cstm = { &cstm_lc_palette_set_load } } },
|
||||
}))
|
||||
|
||||
MENU(menu_sampling, P99_PROTECT({ \
|
||||
{ LNG("480p in sampler","サンプラーデ480p"), OPT_AVCONFIG_SELECTION, { .sel = { &tc.s480p_mode, OPT_WRAP, SETTING_ITEM(s480p_mode_desc) } } },
|
||||
{ LNG("400p in sampler","サンプラーデ400p"), OPT_AVCONFIG_SELECTION, { .sel = { &tc.s400p_mode, OPT_WRAP, SETTING_ITEM(s400p_mode_desc) } } },
|
||||
{ LNG("Allow upsample2x","アップサンプル2xキョヨウ"), OPT_AVCONFIG_SELECTION, { .sel = { &tc.upsample2x, OPT_WRAP, SETTING_ITEM(off_on_desc) } } },
|
||||
{ LNG("<Adv. timing >","<カクシュタイミング>"), OPT_SUBMENU, { .sub = { &menu_advtiming, &vm_arg_info, vm_select } } },
|
||||
}))
|
||||
|
||||
MENU(menu_sync, P99_PROTECT({ \
|
||||
{ LNG("Analog sync LPF","アナログドウキ LPF"), OPT_AVCONFIG_SELECTION, { .sel = { &tc.sync_lpf, OPT_WRAP, SETTING_ITEM(sync_lpf_desc) } } },
|
||||
{ "Analog STC LPF", OPT_AVCONFIG_SELECTION, { .sel = { &tc.stc_lpf, OPT_WRAP, SETTING_ITEM(stc_lpf_desc) } } },
|
||||
@@ -194,7 +187,7 @@ MENU(menu_sync, P99_PROTECT({ \
|
||||
{ "FPGA PLL BW", OPT_AVCONFIG_SELECTION, { .sel = { &tc.fpga_pll_bw, OPT_WRAP, SETTING_ITEM(fpga_pll_bw_desc) } } },
|
||||
}))
|
||||
|
||||
MENU(menu_output, P99_PROTECT({ \
|
||||
MENU(menu_lm, P99_PROTECT({ \
|
||||
{ LNG("240p/288p proc","240p/288pショリ"), OPT_AVCONFIG_SELECTION, { .sel = { &tc.pm_240p, OPT_WRAP, SETTING_ITEM(pm_240p_desc) } } },
|
||||
{ LNG("384p/400p proc","384p/400pショリ"), OPT_AVCONFIG_SELECTION, { .sel = { &tc.pm_384p, OPT_WRAP, SETTING_ITEM(pm_384p_desc) } } },
|
||||
{ LNG("480i/576i proc","480i/576iショリ"), OPT_AVCONFIG_SELECTION, { .sel = { &tc.pm_480i, OPT_WRAP, SETTING_ITEM(pm_480i_desc) } } },
|
||||
@@ -208,10 +201,18 @@ MENU(menu_output, P99_PROTECT({ \
|
||||
{ LNG("Line6x mode","Line6xモード"), OPT_AVCONFIG_SELECTION, { .sel = { &tc.l6_mode, OPT_WRAP, SETTING_ITEM(l2l4l5l6_mode_desc) } } },
|
||||
{ LNG("Line5x format","Line5xケイシキ"), OPT_AVCONFIG_SELECTION, { .sel = { &tc.l5_fmt, OPT_WRAP, SETTING_ITEM(l5_fmt_desc) } } },
|
||||
{ LNG("256x240 aspect","256x240アスペクト"), OPT_AVCONFIG_SELECTION, { .sel = { &tc.ar_256col, OPT_WRAP, SETTING_ITEM(ar_256col_desc) } } },
|
||||
{ LNG("480p in sampler","サンプラーデ480p"), OPT_AVCONFIG_SELECTION, { .sel = { &tc.s480p_mode, OPT_WRAP, SETTING_ITEM(s480p_mode_desc) } } },
|
||||
{ LNG("400p in sampler","サンプラーデ400p"), OPT_AVCONFIG_SELECTION, { .sel = { &tc.s400p_mode, OPT_WRAP, SETTING_ITEM(s400p_mode_desc) } } },
|
||||
{ LNG("Allow upsample2x","アップサンプル2xキョヨウ"), OPT_AVCONFIG_SELECTION, { .sel = { &tc.upsample2x, OPT_WRAP, SETTING_ITEM(off_on_desc) } } },
|
||||
{ LNG("<Adv. timing >","<カクシュタイミング>"), OPT_SUBMENU, { .sub = { &menu_advtiming, &vm_arg_info, vm_select } } },
|
||||
}))
|
||||
|
||||
MENU(menu_output, P99_PROTECT({ \
|
||||
{ LNG("TX mode","TXモード"), OPT_AVCONFIG_SELECTION, { .sel = { &tc.tx_mode, OPT_WRAP, SETTING_ITEM(tx_mode_desc) } } },
|
||||
{ "HDMI ITC", OPT_AVCONFIG_SELECTION, { .sel = { &tc.hdmi_itc, OPT_WRAP, SETTING_ITEM(off_on_desc) } } },
|
||||
{ "HDMI HDR flag", OPT_AVCONFIG_SELECTION, { .sel = { &tc.hdmi_hdr, OPT_WRAP, SETTING_ITEM(off_on_desc) } } },
|
||||
{ "HDMI VRR flag", OPT_AVCONFIG_SELECTION, { .sel = { &tc.hdmi_vrr, OPT_WRAP, SETTING_ITEM(off_on_desc) } } },
|
||||
{ "480p/576p pbox", OPT_AVCONFIG_SELECTION, { .sel = { &tc.o480p_pbox, OPT_WRAP, SETTING_ITEM(off_on_desc) } } },
|
||||
}))
|
||||
|
||||
MENU(menu_scanlines, P99_PROTECT({ \
|
||||
@@ -277,9 +278,9 @@ MENU(menu_settings, P99_PROTECT({ \
|
||||
|
||||
|
||||
MENU(menu_main, P99_PROTECT({ \
|
||||
{ LNG("Video in proc >","タイオウエイゾウ >"), OPT_SUBMENU, { .sub = { &menu_vinputproc, NULL, NULL } } },
|
||||
{ LNG("Sampling opt. >","サンプリングオプション>"), OPT_SUBMENU, { .sub = { &menu_sampling, NULL, NULL } } },
|
||||
{ LNG("Video in opt. >","タイオウエイゾウ >"), OPT_SUBMENU, { .sub = { &menu_vinput_opt, NULL, NULL } } },
|
||||
{ LNG("Sync opt. >","ドウキオプション >"), OPT_SUBMENU, { .sub = { &menu_sync, NULL, NULL } } },
|
||||
{ "Line mult opt. >", OPT_SUBMENU, { .sub = { &menu_lm, NULL, NULL } } },
|
||||
{ LNG("Output opt. >","シュツリョクオプション >"), OPT_SUBMENU, { .sub = { &menu_output, NULL, NULL } } },
|
||||
{ LNG("Scanline opt. >","スキャンラインオプション >"), OPT_SUBMENU, { .sub = { &menu_scanlines, NULL, NULL } } },
|
||||
{ LNG("Post-proc. >","アトショリ >"), OPT_SUBMENU, { .sub = { &menu_postproc, NULL, NULL } } },
|
||||
|
||||
@@ -139,6 +139,7 @@ const ude_item_map ude_profile_items[] = {
|
||||
UDE_ITEM(64, 120, tc.link_av),
|
||||
// 65 reserved
|
||||
UDE_ITEM(66, 120, tc.panasonic_hack),
|
||||
UDE_ITEM(67, 120, tc.o480p_pbox),
|
||||
};
|
||||
|
||||
int write_userdata(uint8_t entry) {
|
||||
|
||||
@@ -133,7 +133,7 @@ uint32_t calculate_pclk(uint32_t src_clk_hz, mode_data_t *vm_out, vm_proc_config
|
||||
|
||||
int get_pure_lm_mode(avconfig_t *cc, mode_data_t *vm_in, mode_data_t *vm_out, vm_proc_config_t *vm_conf)
|
||||
{
|
||||
int i, diff_lines, diff_v_hz_x100, mindiff_id=0, mindiff_lines=1000, mindiff_v_hz_x100=10000;
|
||||
int i, diff_lines, diff_v_hz_x100, mindiff_id=0, mindiff_lines=1000, mindiff_v_hz_x100=10000, x_rpt_decr=0;
|
||||
mode_data_t *mode_preset;
|
||||
mode_flags valid_lm[] = { (MODE_PT | (cc->pt_mode ? (MODE_L5_GEN_4_3<<(cc->pt_mode-1)) : 0)),
|
||||
(MODE_L2 | (MODE_L2<<cc->l2_mode)),
|
||||
@@ -267,7 +267,10 @@ int get_pure_lm_mode(avconfig_t *cc, mode_data_t *vm_in, mode_data_t *vm_out, vm
|
||||
case MODE_PT:
|
||||
vm_out->vic = vm_in->vic;
|
||||
|
||||
if ((cc->pt_mode == 1) && ((mode_preset->group >= GROUP_384P) && (mode_preset->group <= GROUP_576P))) {
|
||||
if ((cc->pt_mode == 0) && (cc->o480p_pbox) && ((mode_preset->group >= GROUP_480P) && (mode_preset->group <= GROUP_576P))) {
|
||||
vm_conf->x_rpt = vm_conf->h_skip = 3;
|
||||
x_rpt_decr += 1;
|
||||
} else if ((cc->pt_mode == 1) && ((mode_preset->group >= GROUP_384P) && (mode_preset->group <= GROUP_576P))) {
|
||||
vmode_hv_mult(vm_in, 2, 1);
|
||||
vmode_hv_mult(vm_out, 2, 1);
|
||||
} else if ((cc->pt_mode >= 2) && (mode_preset->group >= GROUP_240P) && (mode_preset->group <= GROUP_288P)) {
|
||||
@@ -291,6 +294,10 @@ int get_pure_lm_mode(avconfig_t *cc, mode_data_t *vm_in, mode_data_t *vm_out, vm
|
||||
vmode_hv_mult(vm_out, VM_OUT_XMULT, VM_OUT_YMULT);
|
||||
}
|
||||
} else {
|
||||
if (cc->o480p_pbox) {
|
||||
vm_conf->x_rpt = vm_conf->h_skip = 3;
|
||||
x_rpt_decr += 1;
|
||||
}
|
||||
vmode_hv_mult(vm_out, VM_OUT_XMULT, VM_OUT_YMULT);
|
||||
}
|
||||
break;
|
||||
@@ -338,6 +345,14 @@ int get_pure_lm_mode(avconfig_t *cc, mode_data_t *vm_in, mode_data_t *vm_out, vm
|
||||
case MODE_L2_512_COL:
|
||||
case MODE_L2_384_COL:
|
||||
case MODE_L2_320_COL:
|
||||
if (cc->o480p_pbox) {
|
||||
vm_conf->x_rpt = vm_conf->h_skip = 3;
|
||||
x_rpt_decr += 1;
|
||||
} else {
|
||||
vm_conf->x_rpt = vm_conf->h_skip = 1;
|
||||
}
|
||||
vmode_hv_mult(vm_out, VM_OUT_XMULT, VM_OUT_YMULT);
|
||||
break;
|
||||
case MODE_L3_512_COL:
|
||||
case MODE_L4_512_COL:
|
||||
case MODE_L6_512_COL:
|
||||
@@ -345,6 +360,14 @@ int get_pure_lm_mode(avconfig_t *cc, mode_data_t *vm_in, mode_data_t *vm_out, vm
|
||||
vmode_hv_mult(vm_out, VM_OUT_XMULT, VM_OUT_YMULT);
|
||||
break;
|
||||
case MODE_L2_256_COL:
|
||||
if (cc->o480p_pbox) {
|
||||
vm_conf->x_rpt = vm_conf->h_skip = 7;
|
||||
x_rpt_decr += 2;
|
||||
} else {
|
||||
vm_conf->x_rpt = vm_conf->h_skip = 2;
|
||||
}
|
||||
vmode_hv_mult(vm_out, VM_OUT_XMULT, VM_OUT_YMULT);
|
||||
break;
|
||||
case MODE_L3_384_COL:
|
||||
case MODE_L4_384_COL:
|
||||
case MODE_L5_512_COL:
|
||||
@@ -391,7 +414,9 @@ int get_pure_lm_mode(avconfig_t *cc, mode_data_t *vm_in, mode_data_t *vm_out, vm
|
||||
vm_conf->x_rpt = cc->ar_256col ? 2 : 3;
|
||||
|
||||
if (mindiff_lm & (MODE_L3_320_COL|MODE_L2_240x360|MODE_L3_240x360))
|
||||
vm_conf->x_rpt--;
|
||||
x_rpt_decr += 1;
|
||||
|
||||
vm_conf->x_rpt -= x_rpt_decr;
|
||||
|
||||
if (mindiff_lm == MODE_L2_240x360) {
|
||||
vm_out->timings.h_active += 80;
|
||||
|
||||
Reference in new issue
Block a user