very nice

This commit is contained in:
2026-04-03 07:18:42 -03:00
parent 84dc1405dc
commit 51c0bdd2da
8 changed files with 178 additions and 17 deletions

View File

@@ -23,7 +23,8 @@ class StreamLifecycle:
def __init__(self, *, timeline, waveform_engine, transcriber,
on_new_frames, on_waveform_update, on_transcript_ready,
on_scene_marker, on_recorder_restarted):
on_scene_marker, on_recorder_restarted,
on_manifest_updated=None):
self._timeline = timeline
self._waveform_engine = waveform_engine
self._transcriber = transcriber
@@ -34,6 +35,7 @@ class StreamLifecycle:
self._on_transcript_ready = on_transcript_ready
self._on_scene_marker = on_scene_marker
self._on_recorder_restarted = on_recorder_restarted
self._on_manifest_updated = on_manifest_updated
# State
self._streaming = False
@@ -196,4 +198,11 @@ class StreamLifecycle:
log.warning("Recorder died — restarting into new segment")
self._stream_mgr.restart_recorder()
self._on_recorder_restarted(self._stream_mgr.recording_path)
# Rebuild manifest with the newly completed segment
try:
rebuild_manifest(self._stream_mgr.session_dir)
except Exception as e:
log.error("Manifest rebuild failed: %s", e)
if self._on_manifest_updated:
GLib.idle_add(self._on_manifest_updated)
return True