Skip to content

Commit 6c2a799

Browse files
committed
Queue frames with timestamps; record on write
Change enqueued items to (frame, timestamp) tuples and unpack them in the consumer loop. Move appending to _frame_timestamps from enqueue to after a successful write so timestamps are only recorded for frames that were actually written. Keeps frames_enqueued/counting logic intact and adjusts queue handling accordingly.
1 parent 29d2012 commit 6c2a799

1 file changed

Lines changed: 4 additions & 3 deletions

File tree

dlclivegui/services/video_recorder.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
"""Video recording support using the vidgear library."""
22

3+
# dlclivegui/services/video_recorder.py
34
from __future__ import annotations
45

56
import json
@@ -162,7 +163,7 @@ def write(self, frame: np.ndarray, timestamp: float | None = None) -> bool:
162163

163164
try:
164165
assert self._queue is not None
165-
self._queue.put(frame, block=False)
166+
self._queue.put((frame, timestamp), block=False)
166167
except queue.Full:
167168
with self._stats_lock:
168169
self._dropped_frames += 1
@@ -175,7 +176,6 @@ def write(self, frame: np.ndarray, timestamp: float | None = None) -> bool:
175176
return False
176177
with self._stats_lock:
177178
self._frames_enqueued += 1
178-
self._frame_timestamps.append(timestamp)
179179
return True
180180

181181
def stop(self) -> None:
@@ -248,7 +248,7 @@ def _writer_loop(self) -> None:
248248
if item is _SENTINEL:
249249
self._queue.task_done()
250250
break
251-
frame = item
251+
frame, timestamp = item
252252
start = time.perf_counter()
253253
try:
254254
assert self._writer is not None
@@ -267,6 +267,7 @@ def _writer_loop(self) -> None:
267267
self._total_latency += elapsed
268268
self._last_latency = elapsed
269269
self._written_times.append(now)
270+
self._frame_timestamps.append(timestamp)
270271
if now - self._last_log_time >= 1.0:
271272
self._compute_write_fps_locked()
272273
self._queue.qsize()

0 commit comments

Comments
 (0)