Fix screencap with interlaced sources

pull/162/head
IanSB 2020-11-03 11:44:23 +00:00
rodzic fb786aec1a
commit 6402d83ab1
2 zmienionych plików z 10 dodań i 2 usunięć

Wyświetl plik

@ -67,6 +67,7 @@ typedef enum {
MAX_ACTION, // Marker state, never actually used
A1_CAPTURE_SUB, // Action 1: Screen capture
A1_CAPTURE_SUB2, // Action 1: Screen capture
CLOCK_CAL0, // Intermediate state in clock calibration
CLOCK_CAL1, // Intermediate state in clock calibration
@ -4164,7 +4165,7 @@ int osd_active() {
}
int menu_active() {
return osd_state != IDLE;
return ! (osd_state == IDLE || osd_state == DURATION || osd_state == A1_CAPTURE || osd_state == A1_CAPTURE_SUB);
}
void osd_show_cpld_recovery_menu(int update) {
@ -4342,6 +4343,13 @@ int osd_key(int key) {
// Capture screen shot
osd_clear();
capture_screenshot(capinfo, profile_names[get_feature(F_PROFILE)]);
// Fire OSD_EXPIRED in 50 frames time
ret = 4;
// come back to IDLE
osd_state = A1_CAPTURE_SUB2;
break;
case A1_CAPTURE_SUB2:
// Fire OSD_EXPIRED in 50 frames time
ret = 50;
// come back to IDLE

Wyświetl plik

@ -2773,7 +2773,7 @@ void rgb_to_hdmi_main() {
current_display_buffer = 0;
// Determine initial sync polarity (and correct whether inversion required or not)
capinfo->detected_sync_type = cpld->analyse(capinfo->sync_type, 1);
log_info("Detected polarity state at startup = %s (%s)", sync_names[capinfo->detected_sync_type & SYNC_BIT_MASK], mixed_names[(capinfo->detected_sync_type & SYNC_BIT_MIXED_SYNC) ? 1 : 0]);
log_info("Detected polarity state at startup = %x, %s (%s)", capinfo->detected_sync_type, sync_names[capinfo->detected_sync_type & SYNC_BIT_MASK], mixed_names[(capinfo->detected_sync_type & SYNC_BIT_MIXED_SYNC) ? 1 : 0]);
// Determine initial mode
mode7 = rgb_to_fb(capinfo, extra_flags() | BIT_PROBE) & BIT_MODE7 & (autoswitch == AUTOSWITCH_MODE7);
if (cpld_fail_state != CPLD_NORMAL) {