From 0ec02507b39309a0812b69a3669c7c9e6e23b82f Mon Sep 17 00:00:00 2001 From: ComputerTech Date: Sat, 4 Apr 2026 14:35:35 +0100 Subject: [PATCH] fix: check both _ffmpeg_proc and _srt_ffmpeg_proc in stream.mp3 route --- server.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/server.py b/server.py index 4f533e5..8dc178f 100644 --- a/server.py +++ b/server.py @@ -627,12 +627,20 @@ def setup_shared_routes(app, index_file='index.html'): # For MP3 input (e.g. Qt client) chunks are distributed directly — no ffmpeg needed. is_mp3_direct = broadcast_state.get('is_mp3_input', False) if not is_mp3_direct: + def _active_transcoder(): + """Return True if either the WebSocket or SRT ffmpeg transcoder is alive.""" + if _ffmpeg_proc is not None and _ffmpeg_proc.poll() is None: + return True + if _srt_ffmpeg_proc is not None and _srt_ffmpeg_proc.poll() is None: + return True + return False + waited = 0.0 - while (_ffmpeg_proc is None or _ffmpeg_proc.poll() is not None) and waited < 5.0: + while not _active_transcoder() and waited < 5.0: eventlet.sleep(0.5) waited += 0.5 - if _ffmpeg_proc is None or _ffmpeg_proc.poll() is not None: + if not _active_transcoder(): return Response(b'', status=503, content_type='audio/mpeg', headers={ 'Retry-After': '3', 'Access-Control-Allow-Origin': '*',