From 10cf26fa7b52dea40ea3052c9730b331bbdc346b Mon Sep 17 00:00:00 2001
From: Isaac Connor <isaac@zoneminder.com>
Date: Fri, 29 Sep 2023 12:09:23 -0400
Subject: [PATCH] Take FPSReportInterval into account when determining if a
 monitor is dead. Fixes #3766

---
 web/skins/classic/views/console.php | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/web/skins/classic/views/console.php b/web/skins/classic/views/console.php
index eb77ec07f..dee477492 100644
--- a/web/skins/classic/views/console.php
+++ b/web/skins/classic/views/console.php
@@ -288,10 +288,13 @@ for ($monitor_i = 0; $monitor_i < count($displayMonitors); $monitor_i += 1) {
 <?php
   $source_class = 'infoText';
   $source_class_reason = '';
+
+  # 1 minute + fps_report_interval should be plenty.  
+  $fps_report_seconds = 60+($monitor['FPSReportInterval'] * $monitor['CaptureFPS']);
   if ( (!$monitor['Status'] || ($monitor['Status'] == 'NotRunning')) && ($monitor['Type'] != 'WebSite')) {
     $source_class = 'errorText';
     $source_class_reason = translate('Not Running');
-  } else if (!$monitor['UpdatedOn'] or (strtotime($monitor['UpdatedOn']) < time()-60)) {
+  } else if (!$monitor['UpdatedOn'] or (strtotime($monitor['UpdatedOn']) < time()-$fps_report_seconds)) {
     $source_class = 'errorText';
     $source_class_reason = translate('Offline');
   } else {