Files
DMF-Studio/decklink_test.sh
2026-05-28 23:43:26 +03:00

67 lines
2.5 KiB
Bash
Executable File

#!/bin/bash
set -e
ENGINE_PORT=${ENGINE_PORT:-9000}
BASE_URL="http://127.0.0.1:${ENGINE_PORT}"
DEVICE_INDEX=${DEVICE_INDEX:-0}
MODE=${MODE:-1080i50}
log() { echo "=== $1 ==="; }
log "Adding decklink-in node (device=${DEVICE_INDEX}, mode=${MODE})"
curl -s -X POST "${BASE_URL}/api/graph/nodes" \
-H "Content-Type: application/json" \
-d "{\"type\":\"decklink-in\",\"id\":\"sdi_in\",\"config\":{\"device_index\":${DEVICE_INDEX},\"mode\":\"${MODE}\"}}" | python3 -m json.tool 2>/dev/null || echo ""
log "Adding passthrough node"
curl -s -X POST "${BASE_URL}/api/graph/nodes" \
-H "Content-Type: application/json" \
-d '{"type":"passthrough","id":"pass1"}' | python3 -m json.tool 2>/dev/null || echo ""
log "Adding decklink-out node (device=${DEVICE_INDEX}, mode=${MODE})"
curl -s -X POST "${BASE_URL}/api/graph/nodes" \
-H "Content-Type: application/json" \
-d "{\"type\":\"decklink-out\",\"id\":\"sdi_out\",\"config\":{\"device_index\":${DEVICE_INDEX},\"mode\":\"${MODE}\"}}" | python3 -m json.tool 2>/dev/null || echo ""
log "Connecting sdi_in → pass1"
curl -s -X POST "${BASE_URL}/api/graph/edges" \
-H "Content-Type: application/json" \
-d '{"from_node":"sdi_in","from_port":"video_out","to_node":"pass1","to_port":"video_in"}' | python3 -m json.tool 2>/dev/null || echo ""
log "Connecting pass1 → sdi_out"
curl -s -X POST "${BASE_URL}/api/graph/edges" \
-H "Content-Type: application/json" \
-d '{"from_node":"pass1","from_port":"video_out","to_node":"sdi_out","to_port":"video_in"}' | python3 -m json.tool 2>/dev/null || echo ""
log "Starting graph"
curl -s -X POST "${BASE_URL}/api/graph/start" | python3 -m json.tool 2>/dev/null || echo ""
sleep 3
log "Status: sdi_in"
curl -s -X POST "${BASE_URL}/api/graph/nodes/sdi_in/command" \
-H "Content-Type: application/json" \
-d '{"cmd":"status"}' | python3 -m json.tool 2>/dev/null || echo ""
log "Status: pass1"
curl -s -X POST "${BASE_URL}/api/graph/nodes/pass1/command" \
-H "Content-Type: application/json" \
-d '{"cmd":"status"}' | python3 -m json.tool 2>/dev/null || echo ""
log "Status: sdi_out"
curl -s -X POST "${BASE_URL}/api/graph/nodes/sdi_out/command" \
-H "Content-Type: application/json" \
-d '{"cmd":"status"}' | python3 -m json.tool 2>/dev/null || echo ""
log "Graph state"
curl -s "${BASE_URL}/api/graph" | python3 -m json.tool 2>/dev/null || echo ""
echo ""
echo "=== SDI pipeline running. Press Enter to stop. ==="
read
log "Stopping graph"
curl -s -X POST "${BASE_URL}/api/graph/stop" | python3 -m json.tool 2>/dev/null || echo ""
log "Done"