Per-tile stream quality (high/low), fps cap, latency flags
Cameras carry multiple stream URLs (streams: high/medium/low); each tile picks one via Quality (auto/high/low). Small tiles can pull the low substream to cut Pi decode load. discover --enable-rtsp takes a comma list (high,low), enables each channel, records all enabled ones. TUI: q cycles a tile quality (shown in the tile); discover enables high+low. Player: --framedrop + low-delay demuxer flags; player.max_fps. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -122,13 +122,18 @@ func (d *Daemon) applyLayout(ctx context.Context, name string) error {
|
||||
continue
|
||||
}
|
||||
cam := cfg.CameraByName(tile.Camera)
|
||||
if cam == nil || cam.Disabled || cam.RTSP == "" {
|
||||
if cam == nil || cam.Disabled {
|
||||
d.log.Warn("skipping tile: camera unavailable", "slot", slot, "camera", tile.Camera)
|
||||
continue
|
||||
}
|
||||
url := cam.StreamURL(tile.Quality)
|
||||
if url == "" {
|
||||
d.log.Warn("skipping tile: no stream url", "slot", slot, "camera", tile.Camera, "quality", tile.Quality)
|
||||
continue
|
||||
}
|
||||
cs, rs := tile.Span()
|
||||
rect := compositor.TileRect(w, h, cols, rows, tile.Col, tile.Row, cs, rs)
|
||||
p := player.New(slot, cam.Name, cam.RTSP, cfg.Player, d.runDir, d.log)
|
||||
p := player.New(slot, cam.Name, url, cfg.Player, d.runDir, d.log)
|
||||
players = append(players, p)
|
||||
|
||||
d.wg.Add(1)
|
||||
|
||||
Reference in New Issue
Block a user