Fix: several bug fixes

This commit is contained in:
ziesorx 2025-09-12 22:44:27 +07:00
parent 96ecc321ec
commit 9967bff6dc
4 changed files with 112 additions and 31 deletions

View file

@ -41,6 +41,15 @@ class StreamInfo:
last_frame_time: Optional[float] = None
frame_count: int = 0
# Additional WebSocket fields
subscriptionIdentifier: Optional[str] = None
modelId: Optional[int] = None
modelName: Optional[str] = None
cropX1: Optional[int] = None
cropY1: Optional[int] = None
cropX2: Optional[int] = None
cropY2: Optional[int] = None
def to_dict(self) -> Dict[str, Any]:
"""Convert to dictionary format."""
return {
@ -607,19 +616,24 @@ class StreamManager:
snapshot_url = payload.get('snapshotUrl')
snapshot_interval = payload.get('snapshotInterval', 5000)
# Create a subscriber_id (for WebSocket compatibility, use the subscription_id)
subscriber_id = f"websocket_{int(time.time() * 1000)}"
# Create subscription based on available URL type
if rtsp_url:
success = self.create_subscription(
subscription_id=subscription_id,
camera_id=camera_id,
subscriber_id=subscriber_id,
rtsp_url=rtsp_url
)
elif snapshot_url:
success = self.create_subscription(
subscription_id=subscription_id,
camera_id=camera_id,
subscriber_id=subscriber_id,
snapshot_url=snapshot_url,
snapshot_interval_ms=snapshot_interval
snapshot_interval=snapshot_interval
)
else:
logger.error(f"No valid stream URL provided for camera {camera_id}")