fix: camera api endpoint
This commit is contained in:
parent
83aaf95f59
commit
519e073f7f
5 changed files with 69 additions and 68 deletions
|
@ -46,13 +46,7 @@ class FrameBuffer:
|
|||
|
||||
frame_data = self._frames[camera_id]
|
||||
|
||||
# Check if frame is too old
|
||||
age = time.time() - frame_data['timestamp']
|
||||
if age > self.max_age_seconds:
|
||||
logger.debug(f"Frame for camera {camera_id} is {age:.1f}s old, discarding")
|
||||
del self._frames[camera_id]
|
||||
return None
|
||||
|
||||
# Return frame regardless of age - frames persist until replaced
|
||||
return frame_data['frame'].copy()
|
||||
|
||||
def get_frame_info(self, camera_id: str) -> Optional[Dict[str, Any]]:
|
||||
|
@ -64,10 +58,7 @@ class FrameBuffer:
|
|||
frame_data = self._frames[camera_id]
|
||||
age = time.time() - frame_data['timestamp']
|
||||
|
||||
if age > self.max_age_seconds:
|
||||
del self._frames[camera_id]
|
||||
return None
|
||||
|
||||
# Return frame info regardless of age - frames persist until replaced
|
||||
return {
|
||||
'timestamp': frame_data['timestamp'],
|
||||
'age': age,
|
||||
|
@ -95,24 +86,10 @@ class FrameBuffer:
|
|||
logger.debug(f"Cleared all frames ({count} cameras)")
|
||||
|
||||
def get_camera_list(self) -> list:
|
||||
"""Get list of cameras with valid frames."""
|
||||
"""Get list of cameras with frames - all frames persist until replaced."""
|
||||
with self._lock:
|
||||
current_time = time.time()
|
||||
valid_cameras = []
|
||||
expired_cameras = []
|
||||
|
||||
for camera_id, frame_data in self._frames.items():
|
||||
age = current_time - frame_data['timestamp']
|
||||
if age <= self.max_age_seconds:
|
||||
valid_cameras.append(camera_id)
|
||||
else:
|
||||
expired_cameras.append(camera_id)
|
||||
|
||||
# Clean up expired frames
|
||||
for camera_id in expired_cameras:
|
||||
del self._frames[camera_id]
|
||||
|
||||
return valid_cameras
|
||||
# Return all cameras that have frames - no age-based filtering
|
||||
return list(self._frames.keys())
|
||||
|
||||
def get_stats(self) -> Dict[str, Any]:
|
||||
"""Get buffer statistics."""
|
||||
|
@ -120,8 +97,8 @@ class FrameBuffer:
|
|||
current_time = time.time()
|
||||
stats = {
|
||||
'total_cameras': len(self._frames),
|
||||
'valid_cameras': 0,
|
||||
'expired_cameras': 0,
|
||||
'recent_cameras': 0,
|
||||
'stale_cameras': 0,
|
||||
'total_memory_mb': 0,
|
||||
'cameras': {}
|
||||
}
|
||||
|
@ -130,16 +107,17 @@ class FrameBuffer:
|
|||
age = current_time - frame_data['timestamp']
|
||||
size_mb = frame_data.get('size_mb', 0)
|
||||
|
||||
# All frames are valid/available, but categorize by freshness for monitoring
|
||||
if age <= self.max_age_seconds:
|
||||
stats['valid_cameras'] += 1
|
||||
stats['recent_cameras'] += 1
|
||||
else:
|
||||
stats['expired_cameras'] += 1
|
||||
stats['stale_cameras'] += 1
|
||||
|
||||
stats['total_memory_mb'] += size_mb
|
||||
|
||||
stats['cameras'][camera_id] = {
|
||||
'age': age,
|
||||
'valid': age <= self.max_age_seconds,
|
||||
'recent': age <= self.max_age_seconds, # Recent but all frames available
|
||||
'shape': frame_data['shape'],
|
||||
'dtype': frame_data['dtype'],
|
||||
'size_mb': size_mb
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue