#!/usr/bin/env bash set -euo pipefail ROOT_DIR="$(cd "$(dirname "$0")" && pwd)" [ -f "$ROOT_DIR/config/system-stack.env" ] && set -a && . "$ROOT_DIR/config/system-stack.env" && set +a [ -f "$ROOT_DIR/config/hardware.env" ] && set -a && . "$ROOT_DIR/config/hardware.env" && set +a : "${SRS_SRT_URL:=srt://127.0.0.1:10080?streamid=#!::r=live/livestream,m=request&latency=10}" try_mpv_drm() { command -v mpv >/dev/null 2>&1 || return 1 [[ -e /dev/dri/card0 ]] || return 1 exec mpv \ --no-config \ --profile=low-latency \ --fullscreen \ --osc=no \ --osd-level=0 \ --no-audio \ --untimed \ --cache=no \ --vo=gpu \ --gpu-context=drm \ --hwdec=auto-safe \ "$SRS_SRT_URL" } try_ffplay_gui() { command -v ffplay >/dev/null 2>&1 || return 1 export DISPLAY="${DISPLAY:-:0}" if [[ -n "${FFPLAY_SDL_DRIVER:-}" ]]; then export SDL_VIDEODRIVER="${FFPLAY_SDL_DRIVER}" fi exec ffplay -fs -nostats -hide_banner \ -fflags nobuffer -flags low_delay -framedrop \ -probesize 32 -analyzeduration 0 -sync ext -infbuf \ -vf "setpts=PTS-STARTPTS" \ "$SRS_SRT_URL" } case "${LIVE_HDMI_PLAYER:-auto}" in mpv-drm) try_mpv_drm ;; ffplay-x11) try_ffplay_gui ;; esac try_mpv_drm || try_ffplay_gui echo "No compatible HDMI playback stack found. Install mpv for DRM/KMS or ffplay + X11." >&2 exit 1