fix: clear PTZ flag on all MBeg keyboard video inputs

Keyboard interfaces under Clients/GeViIO/GeViIO_01 should never have the
PTZ flag set on their video inputs. Previously PTZ cameras (e.g. 101027)
were exported with PTZ=True on every keyboard, unlike fixed cameras.

Adds geviset.disable_keyboard_ptz() and runs it at the end of the video
input pipeline in both /api/set/export and /api/batch/build. Only the
keyboard interfaces are touched; virtual decoders/servers under
GeViIO_Virtual keep their PTZ flags so PTZ control still works.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Docker Config Backup
2026-05-28 23:33:14 +02:00
parent e90d662d8a
commit 18084ec9d7
2 changed files with 30 additions and 0 deletions

View File

@@ -110,6 +110,7 @@ async def export_set(payload: dict):
geviset.ensure_global_video_inputs(tree, camera_ids, ptz_by_id)
geviset.ensure_vx3_video_inputs(tree, camera_ids, ptz_by_id)
geviset.prune_video_inputs(tree, camera_ids)
geviset.disable_keyboard_ptz(tree)
print(
f"EXPORT camera_ids={len(camera_ids)} contains_101027={101027 in camera_ids}",
flush=True,
@@ -301,6 +302,7 @@ async def build_from_excel(
geviset.ensure_global_video_inputs(tree, camera_ids, ptz_by_id)
geviset.ensure_vx3_video_inputs(tree, camera_ids, ptz_by_id)
geviset.prune_video_inputs(tree, camera_ids)
geviset.disable_keyboard_ptz(tree)
if servers and servers.filename:
if not servers.filename.lower().endswith(".xlsx"):