Player - Arrow keys seek by 5s, Shift for a 30s jump on long recordings, J/L for +-30s, Space toggles playback, and up/down adjust volume. Dragging a scrubber across a multi-hour replay is unusable — one pixel is tens of seconds — so keys are the practical way to move around a long recording. - The shortcuts ignore key events from inputs, so typing a chapter time in the replay editor no longer scrubs the video. - Add a playback speed selector. It is a replay tool: speeding a live stream up would only push it further ahead of the encoder's buffer. Replay editor - Stop playback restarting on every edit. The player's source effect depended on the `lines` and `qualities` arrays, and callers such as the replay editor pass fresh literals on every render, so adding a chapter or typing a title was treated as a source change and reloaded the stream from the beginning. The effect now depends on the resolved source URL instead of the arrays it came from. Measured: adding three chapters leaves the media requests unchanged and the playhead advancing. Settings persistence - Settings edited in the UI were applied to the in-memory settings object and never written down, so the brand, transcode ladder and load-balancing strategy silently reverted to the config.py defaults on every restart. They are now saved to backend/settings.json (atomic temp-file replace) and re-applied at startup, with only known keys accepted so a hand-edited file cannot inject arbitrary attributes. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
39 lines
704 B
Plaintext
39 lines
704 B
Plaintext
# dependencies and build output
|
|
node_modules/
|
|
dist/
|
|
__pycache__/
|
|
*.pyc
|
|
*.tsbuildinfo
|
|
|
|
# local state and secrets
|
|
*.db
|
|
venv/
|
|
.venv/
|
|
*.log
|
|
# OSS credentials (accessKeySecret lives here) — never commit
|
|
RainOSS
|
|
RainOSS.bak
|
|
|
|
# generated at runtime
|
|
runtime/
|
|
media/
|
|
.playwright-mcp/
|
|
*.crt
|
|
*.key
|
|
# written by the admin node manager, not part of the source
|
|
backend/nodes.json
|
|
# administrator-edited settings (brand, transcode ladder) saved at runtime
|
|
backend/settings.json
|
|
|
|
# MediaMTX binaries and archives are fetched, not committed
|
|
mediamtx/mediamtx
|
|
mediamtx/mediamtx.exe
|
|
mediamtx/mediamtx.tar.gz
|
|
|
|
# lockfiles are intentionally not tracked
|
|
package-lock.json
|
|
|
|
# edge-agent
|
|
edge-agent/dist/
|
|
edge-agent/mediamtx/
|