#!/bin/bash set -e ENGINE_PORT=${ENGINE_PORT:-9000} MXL_DOMAIN=${MXL_DOMAIN:-/tmp/dmf-mxl} FLOW_ID=${FLOW_ID:-a0000001-0000-0000-0000-000000000001} BASE_URL="http://127.0.0.1:${ENGINE_PORT}" log() { echo "=== $1 ==="; } 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 "Starting graph" curl -s -X POST "${BASE_URL}/api/graph/start" | python3 -m json.tool 2>/dev/null || echo "" sleep 1 log "Connecting input to flow ${FLOW_ID}" curl -s -X POST "${BASE_URL}/api/graph/nodes/pass1/connect-input" \ -H "Content-Type: application/json" \ -d "{\"port_id\":\"video_in\",\"flow_id\":\"${FLOW_ID}\"}" | python3 -m json.tool 2>/dev/null || echo "" log "Connecting output (creates new MXL flow)" OUTPUT=$(curl -s -X POST "${BASE_URL}/api/graph/nodes/pass1/connect-output" \ -H "Content-Type: application/json" \ -d '{"port_id":"video_out"}') echo "$OUTPUT" | python3 -m json.tool 2>/dev/null || echo "$OUTPUT" OUTPUT_FLOW_ID=$(echo "$OUTPUT" | python3 -c "import sys,json; print(json.load(sys.stdin)['flow_id'])" 2>/dev/null) if [ -n "$OUTPUT_FLOW_ID" ]; then log "Output flow ID: ${OUTPUT_FLOW_ID}" log "To verify with mxl-gst-sink:" echo " mxl-gst-sink -d ${MXL_DOMAIN} -v ${OUTPUT_FLOW_ID}" fi sleep 3 log "Checking MXL domain" mxl-info --domain "${MXL_DOMAIN}" 2>/dev/null || true log "Sending status command" 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 "Graph state" curl -s "${BASE_URL}/api/graph" | python3 -m json.tool 2>/dev/null || echo ""