feat: point the fleet at wss LiveKit room uwh-telhai
Publish and subscribe over wss://livekit.uni-wh.de:7800 and refuse cleartext ws://. Conference room is uwh-telhai. Includes the uncommitted encoded H.264 publish path, Rally hairpin, and KMS wall overlay.
This commit is contained in:
@@ -18,6 +18,13 @@ import subprocess
|
||||
from dataclasses import dataclass, field
|
||||
from pathlib import Path
|
||||
|
||||
from usb_ids import (
|
||||
is_fleet_video,
|
||||
is_rally_pid,
|
||||
looks_like_rally_name,
|
||||
usb_vid_pid_of_video_node,
|
||||
)
|
||||
|
||||
log = logging.getLogger("cameras.discovery")
|
||||
|
||||
_SLOTS_FILE = Path(__file__).parent / "slots.json"
|
||||
@@ -32,6 +39,9 @@ class Camera:
|
||||
usb_port: str = ""
|
||||
serial: str = ""
|
||||
extra_video_devices: list[str] = field(default_factory=list)
|
||||
# None = use fleet VIDEO_WIDTH / VIDEO_HEIGHT (C920 360p). Rally is 720p.
|
||||
width: int | None = None
|
||||
height: int | None = None
|
||||
|
||||
|
||||
def select_cameras(cameras: list[Camera], spec: list[str]) -> list[Camera]:
|
||||
@@ -192,8 +202,18 @@ def discover_cameras() -> list[Camera]:
|
||||
for name, nodes in groups.items():
|
||||
if not nodes:
|
||||
continue
|
||||
if looks_like_rally_name(name):
|
||||
log.info("skipping Rally/speaker device %r (not a cam-NN slot)", name)
|
||||
continue
|
||||
nodes.sort(key=lambda n: int(Path(n).name.replace("video", "")))
|
||||
primary = nodes[0]
|
||||
ids = usb_vid_pid_of_video_node(primary)
|
||||
if ids is not None and not is_fleet_video(ids[0], ids[1]):
|
||||
log.info("skipping non-C920 USB %04x:%04x at %s", ids[0], ids[1], primary)
|
||||
continue
|
||||
if ids is not None and is_rally_pid(ids[1]):
|
||||
log.info("skipping Rally USB %04x:%04x at %s", ids[0], ids[1], primary)
|
||||
continue
|
||||
serial = _serial_of_video_node(primary)
|
||||
port = _usb_port_of_video_node(primary)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user