proper tests
This commit is contained in:
@@ -51,6 +51,7 @@ class SessionProcessor:
|
||||
|
||||
self._get_recording_path = None
|
||||
self._get_current_global_offset = None
|
||||
self._telemetry = None
|
||||
|
||||
def attach(self, get_recording_path, get_current_global_offset):
|
||||
"""Wire up callbacks to query the recorder's current state."""
|
||||
@@ -75,6 +76,11 @@ class SessionProcessor:
|
||||
self._append_frame_index(entry)
|
||||
log.info("Scene frame: %s at %.1fs", frame_id, global_ts)
|
||||
|
||||
if self._telemetry:
|
||||
self._telemetry.metric("scene_frame", {
|
||||
"id": frame_id, "global_ts": global_ts,
|
||||
})
|
||||
|
||||
if self._on_new_frames:
|
||||
self._on_new_frames([entry])
|
||||
|
||||
@@ -465,6 +471,15 @@ class SessionProcessor:
|
||||
if safe_duration is None or safe_duration <= 0:
|
||||
continue
|
||||
|
||||
# Raw AAC files (from Rust server) have no reliable duration metadata.
|
||||
# ffprobe wildly overestimates (e.g. 1569s for a 50s session).
|
||||
# Cap to wall-clock elapsed time as a sanity bound.
|
||||
wall_elapsed = self._wall_clock_offset()
|
||||
if wall_elapsed > 0 and safe_duration > wall_elapsed * 1.5:
|
||||
log.debug("Audio: capping probed duration %.1fs to wall-clock %.1fs",
|
||||
safe_duration, wall_elapsed)
|
||||
safe_duration = wall_elapsed
|
||||
|
||||
# Fail-safe: processed_time can accumulate past the file if the
|
||||
# source was recreated (e.g. server restarted same session).
|
||||
if processed_time > safe_duration:
|
||||
@@ -495,6 +510,11 @@ class SessionProcessor:
|
||||
global_start = processed_time + offset
|
||||
log.info("Audio chunk: %s (%.1fs → %.1fs, global %.1fs)",
|
||||
wav_path.name, processed_time, process_to, global_start)
|
||||
if self._telemetry:
|
||||
self._telemetry.metric("audio_chunk", {
|
||||
"chunk": chunk_num, "start": processed_time,
|
||||
"end": process_to, "global_start": global_start,
|
||||
})
|
||||
if self._on_new_audio:
|
||||
try:
|
||||
self._on_new_audio(
|
||||
|
||||
Reference in New Issue
Block a user