fix: disable periodic stats for WAV inputs and guard sample_rate access
This commit is contained in:
@@ -674,7 +674,12 @@ class Streamer():
|
|||||||
self.is_streaming = True
|
self.is_streaming = True
|
||||||
|
|
||||||
# frame drop algo parameters
|
# frame drop algo parameters
|
||||||
sample_rate = big['audio_input']._pcm_format.sample_rate
|
# In demo/precoded modes there may be no audio_input or no _pcm_format yet
|
||||||
|
ai = big.get('audio_input')
|
||||||
|
if ai is not None and hasattr(ai, '_pcm_format') and getattr(ai, '_pcm_format') is not None:
|
||||||
|
sample_rate = ai._pcm_format.sample_rate
|
||||||
|
else:
|
||||||
|
sample_rate = global_config.auracast_sampling_rate_hz
|
||||||
samples_discarded_total = 0 # Total samples discarded
|
samples_discarded_total = 0 # Total samples discarded
|
||||||
discard_events = 0 # Number of times we discarded samples
|
discard_events = 0 # Number of times we discarded samples
|
||||||
frames_since_last_discard = 999 # Guard: frames since last discard (start high to allow first drop)
|
frames_since_last_discard = 999 # Guard: frames since last discard (start high to allow first drop)
|
||||||
@@ -813,9 +818,11 @@ class Streamer():
|
|||||||
# Increment guard counter (tracks frames since last discard)
|
# Increment guard counter (tracks frames since last discard)
|
||||||
frames_since_last_discard += 1
|
frames_since_last_discard += 1
|
||||||
|
|
||||||
# Periodic stats logging
|
# Periodic stats logging (only for device/sounddevice streams, not WAV files)
|
||||||
|
# WAV file concurrent access causes deadlock in ThreadedAudioInput
|
||||||
now = time.perf_counter()
|
now = time.perf_counter()
|
||||||
if now - last_stats_log >= stats_interval:
|
is_device_stream = hasattr(big['audio_input'], '_stream') and big['audio_input']._stream is not None
|
||||||
|
if is_device_stream and now - last_stats_log >= stats_interval:
|
||||||
# Get current buffer status from PortAudio
|
# Get current buffer status from PortAudio
|
||||||
current_sd_buffer = 0
|
current_sd_buffer = 0
|
||||||
if hasattr(big['audio_input'], '_stream') and big['audio_input']._stream:
|
if hasattr(big['audio_input'], '_stream') and big['audio_input']._stream:
|
||||||
|
|||||||
Reference in New Issue
Block a user