From: Marcel van der Veldt Date: Mon, 3 Nov 2025 23:26:25 +0000 (+0100) Subject: Fixed format conversion in crossfade discard calculation X-Git-Url: https://git.kitaultman.com/?a=commitdiff_plain;h=fa962aa9d170da1fafbff5d45867a7b962c01096;p=music-assistant-server.git Fixed format conversion in crossfade discard calculation --- diff --git a/music_assistant/controllers/streams.py b/music_assistant/controllers/streams.py index 9684608c..0eb89d40 100644 --- a/music_assistant/controllers/streams.py +++ b/music_assistant/controllers/streams.py @@ -1435,11 +1435,18 @@ class StreamsController(CoreController): fade_out_data: bytes | None = None if crossfade_data: - discard_seconds = ( - int(crossfade_data.fade_in_size / crossfade_data.pcm_format.pcm_sample_size) - 1 + # Calculate discard amount in seconds (format-independent) + fade_in_duration_seconds = ( + crossfade_data.fade_in_size / crossfade_data.pcm_format.pcm_sample_size ) + discard_seconds = int(fade_in_duration_seconds) - 1 + # Calculate discard amounts in CURRENT track's format discard_bytes = int(discard_seconds * pcm_format.pcm_sample_size) - discard_leftover = int(crossfade_data.fade_in_size - discard_bytes) + # Convert fade_in_size to current track's format for correct leftover calculation + fade_in_size_in_current_format = int( + fade_in_duration_seconds * pcm_format.pcm_sample_size + ) + discard_leftover = fade_in_size_in_current_format - discard_bytes else: discard_seconds = streamdetails.seek_position discard_leftover = 0