ATEM: RESI AUDIO SILENT when input 16 has no audio for 30 s; log what the switcher has wrong
2026-10-25 the Resi AJA passed no Dante audio and the panel stayed green (DANTE only sees the card on the network). atem_watch.js now asks the switcher for its Fairlight meters and reports a metered input stuck at the floor (-100 dB); the ATEM key turns red in auto-fix's hours or while a deck records. Differences (audio, camera, silence) are logged when they change, so a fault says what it was. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -348,6 +348,20 @@ class TestChecks(unittest.TestCase):
|
||||
self.assertIn(f, CONFIG["auto_fix"]["fixes"])
|
||||
self.assertIn("midiEnabled -bool false", CONFIG["fixes"]["atem_midi"]["run"])
|
||||
|
||||
def test_resi_audio_silent(self):
|
||||
"""An input stuck at the meter floor (2026-10-25: the Resi AJA passed no Dante audio and nothing said so):
|
||||
red in auto-fix's hours or while a deck records, left alone at 4 AM when the console may be off."""
|
||||
self.assertEqual(sp.atem_levels(CONFIG["atem"]["silence"]), {"levels": {"16": "Resi - RX1"}, "silence_seconds": 30})
|
||||
engine = sp.Engine(CONFIG)
|
||||
sunday_7am = datetime(2026, 10, 25, 7, 0).timestamp() # the tests' auto-fix hours start 06:30
|
||||
quiet = ["input 16 Resi - RX1: no audio for 30 s or more"]
|
||||
self.snap.atem = {"connected": True, "audio": [], "camera": [], "silence": quiet, "time": sunday_7am}
|
||||
self.assertEqual(run_steps(engine, self.snap, sunday_7am, 4)[0]["atem"]["x"], "ATEM\nRESI AUDIO SILENT")
|
||||
thursday_4am = datetime(2026, 10, 22, 4, 0).timestamp()
|
||||
engine = sp.Engine(CONFIG)
|
||||
self.snap.atem = dict(self.snap.atem, time=thursday_4am)
|
||||
self.assertEqual(run_steps(engine, self.snap, thursday_4am, 4)[0]["atem"]["x"], "ATEM\nOK")
|
||||
|
||||
def test_atem_fix_goes_through_the_watcher(self):
|
||||
class W:
|
||||
def __init__(self): self.parts = []
|
||||
|
||||
Reference in New Issue
Block a user