From 6db0405d800b7d0fc8af9c47120c1561d42cb20b Mon Sep 17 00:00:00 2001 From: pstruebi Date: Thu, 23 Oct 2025 18:43:44 +0200 Subject: [PATCH] feat: enable adaptive frame dropping only for device-based audio inputs --- src/auracast/server/multicast_server.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/auracast/server/multicast_server.py b/src/auracast/server/multicast_server.py index 8c1c52e..04d2865 100644 --- a/src/auracast/server/multicast_server.py +++ b/src/auracast/server/multicast_server.py @@ -174,7 +174,14 @@ class StreamerWorker: # overwrite some configurations conf.transport = TRANSPORT1 - conf.enable_drift_compensation=True + # Enable adaptive frame dropping only for device-based inputs (not file/demo) + try: + conf.enable_adaptive_frame_dropping = any( + isinstance(big.audio_source, str) and big.audio_source.startswith('device:') + for big in conf.bigs + ) + except Exception: + conf.enable_adaptive_frame_dropping = False # Derive device name and input mode first_source = conf.bigs[0].audio_source if conf.bigs else '' input_device_name = None @@ -242,6 +249,14 @@ class StreamerWorker: self._multicaster2 = None conf.transport = TRANSPORT2 + # Enable adaptive frame dropping only for device-based inputs (not file/demo) + try: + conf.enable_adaptive_frame_dropping = any( + isinstance(big.audio_source, str) and big.audio_source.startswith('device:') + for big in conf.bigs + ) + except Exception: + conf.enable_adaptive_frame_dropping = False for big in conf.bigs: if big.audio_source.startswith('device:'): device_name = big.audio_source.split(':', 1)[1]