Skip to content

TCP Streamer v1.8.8

Choose a tag to compare

@github-actions github-actions released this 22 Jan 19:30

v1.8.8

Summary of Changes

Strict Clock Loop (Fix for Starvation):

  • Implemented a deterministic "tick-based" pacing loop (10ms default).
  • The loop now prioritizes the clock over data availability. If input audio is late, the network thread waits for the next tick but does NOT compensate by bursting.
  • Silence Generation (Fix for "No Logs" Crash):
  • Fetch or Silence: Instead of sleeping when the buffer is empty, the app now generates a chunk of silence (zeros) and sends it.
  • Always Send: Removed the if is_silent { continue } optimization. The application now writes data to the TCP socket continuously, satisfying Snapcast's requirement for a steady bitstream.
  • Crucial Result: This prevents Recv-Q from dropping to 0, which was the root cause of the silent audio death.

Cleanups:

  • Removed High Precision Pacing: The spin-loop strategy (which wasted CPU) was replaced by the efficient thread::sleep based strict clock.
  • Removed Silence Suppression: As mentioned above, stopping transmission during silence was removed to ensure stability.