feat: add diagnostic logging for audio input and frame processing

- Log audio input details (type, source, sample rate, channels) when opening
- Log first PCM frame metadata (size, samples, bytes per frame) for debugging
- Log first LC3 encoded frame size to verify encoding pipeline
This commit is contained in:
2025-11-04 13:32:42 +01:00
parent 6f1d9876c7
commit a9cb8683f9

View File

@@ -597,6 +597,9 @@ class Streamer():
for attempt in range(1, max_attempts + 1):
try:
pcm_format = await audio_input.open()
logging.info(
f"Opened audio input: {type(audio_input).__name__} src={audio_source} sr={pcm_format.sample_rate} ch={pcm_format.channels}"
)
break # success
except _sd.PortAudioError as err:
# -9985 == paDeviceUnavailable
@@ -720,6 +723,12 @@ class Streamer():
# Read the frame we need for encoding
pcm_frame = await anext(frames_gen, None)
if big.get('logged_first_frame') is not True:
logging.info(
f"First PCM frame bytes={0 if pcm_frame is None else len(pcm_frame)} | lc3_frame_samples={big['lc3_frame_samples']} | bytes_per_frame={big['lc3_bytes_per_frame']}"
)
big['logged_first_frame'] = True
if pcm_frame is None: # Not all streams may stop at the same time
stream_finished[i] = True
continue
@@ -808,6 +817,13 @@ class Streamer():
pcm_frame, num_bytes=big['lc3_bytes_per_frame'], bit_depth=big['pcm_bit_depth']
)
if big.get('logged_first_lc3') is not True:
try:
logging.info(f"First LC3 frame size={len(lc3_frame)} bytes")
except Exception:
pass
big['logged_first_lc3'] = True
await big['iso_queue'].write(lc3_frame)
frame_count += 1
# Increment guard counter (tracks frames since last discard)