From 3ccbc197ae8092b12a8acd0297de5f8535fc3179 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Wed, 8 Oct 2014 19:08:51 +0200 Subject: renamed show-stream to sydra-receiver --- .gitignore | 2 +- scripts/show-stream.sh | 102 --------------------------------------------- scripts/supervisord.conf | 4 +- scripts/sydra-manager.sh | 16 +++++-- scripts/sydra-receiver.sh | 103 ++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 119 insertions(+), 108 deletions(-) delete mode 100755 scripts/show-stream.sh create mode 100755 scripts/sydra-receiver.sh diff --git a/.gitignore b/.gitignore index 4548a5d..bff9132 100644 --- a/.gitignore +++ b/.gitignore @@ -8,5 +8,5 @@ src/config*.h src/recordings/ scripts/logs/ scripts/recordings/ -scripts/show-stream.current +scripts/sydra-receiver.main scripts/supervisord.pid diff --git a/scripts/show-stream.sh b/scripts/show-stream.sh deleted file mode 100755 index 2f618a2..0000000 --- a/scripts/show-stream.sh +++ /dev/null @@ -1,102 +0,0 @@ -#!/bin/bash -############################ - -ROOT_D="$1" -TAG="$2" -NUM="$3" - -SYDRA_RTP="/home/equinox/spreadspace/sydra/src/sydra-rtp" -SYDRA_LAUNCH="/home/equinox/spreadspace/sydra/src/sydra-launch" - -############################ - -printUsage() { - echo "Usage: $0 (overview|main )" -} - -if [ -z "$ROOT_D" ] || [ -z "$TAG" ]; then - printUsage - exit 1 -fi -if [ ! -d "$ROOT_D" ]; then - echo "ERROR: can't change to non-existent directory: $ROOT_D" - exit 2 -fi - -. ./include.sh - -start_rtp_overview() { - ID="$1" - TITLE="$2" - PORT_BASE="$3" - REF_PORT_BASE=$((PORT_BASE + 1000)) - RECORD_D="$ROOT_D/recordings/$ID" - mkdir -p "$RECORD_D" - - herbstclient rule once title="overview-$ID" tag="overview" - exec $SYDRA_RTP -n "overview-$ID" -D --log stdout:3 --mode receiver -O $PORT_BASE --rtp-host-reflector localhost --rtp-port-base-reflector $REF_PORT_BASE \ - --sink "videoconvert name=videosink ! textoverlay text=\"$TITLE\" shaded-background=true font-desc=\"Sans 18\" ! videoscale add-borders=true ! xvimagesink fakesink name=audiosink" \ - --rec-mux matroskamux --rec-name-format "$RECORD_D/%Y-%m-%d_%H-%M-%S.mkv" --rec-video-encoder jpegenc \ - --rec-audio-encoder "audioconvert ! vorbisenc" -} - -start_test_overview() { - ID="$1" - TITLE="$2" - - herbstclient rule once title="overview-$ID" tag="overview" - exec $SYDRA_LAUNCH -n "overview-$ID" -D --log stdout:3 -p "videotestsrc ! video/x-raw,width=864,height=480,framerate=25/1 ! textoverlay text=\"$TITLE\" shaded-background=true font-desc=\"Sans 18\" ! videoscale add-borders=true ! xvimagesink" -} - -start_rtp_main() { - ID="$1" - TITLE="$2" - PORT_BASE="$3" - - herbstclient rule once title="main-$ID" tag="main" - exec $SYDRA_RTP -n "main-$ID" -D --log stdout:3 --mode receiver -A localhost -O $PORT_BASE \ - --sink "videoconvert name=videosink ! videoscale add-borders=true ! xvimagesink audioconvert name=audiosink ! audioresample ! autoaudiosink" -} - -start_test_main() { - ID="$1" - TITLE="$2" - - herbstclient rule once title="main-$ID" tag="main" - exec $SYDRA_LAUNCH -n "main-$ID" -D --log stdout:3 -p "videotestsrc ! video/x-raw,width=864,height=480,framerate=25/1 ! textoverlay text=\"$TITLE\" shaded-background=true font-desc=\"Sans 18\" ! videoscale add-borders=true ! xvimagesink" -} - -cd $ROOT_D -case "$TAG" in - overview) - if [ -z "$NUM" ]; then - printUsage - exit 1 - fi - - get_id_title_and_port "$NUM" - if [ -z "$ID" ]; then - echo "invalid process number: $NUM" - exit 3 - fi - [ -n "$SYDRA_TEST" ] || start_rtp_overview "$ID" "$TITLE" $PORT_BASE - [ -n "$SYDRA_TEST" ] && start_test_overview "$ID" "$TITLE" $PORT_BASE - ;; - main) - read NUM < "$ROOT_D/show-stream.current" - get_id_title_and_port "$NUM" - if [ -z "$ID" ]; then - echo "$ROOT_D/show-stream.current contains an invalid process number: $NUM" - exit 3 - fi - [ -n "$SYDRA_TEST" ] || start_rtp_main "$ID" "$TITLE" $((PORT_BASE + 1000)) - [ -n "$SYDRA_TEST" ] && start_test_main "$ID" "$TITLE" $((PORT_BASE + 1000)) - ;; - *) - printUsage - exit 1 - ;; -esac - -############################ -exit 3 diff --git a/scripts/supervisord.conf b/scripts/supervisord.conf index a4199e2..1e0df7f 100644 --- a/scripts/supervisord.conf +++ b/scripts/supervisord.conf @@ -32,7 +32,7 @@ startsecs=0 startretries=10 [program:overview] -command=/home/equinox/spreadspace/sydra/scripts/show-stream.sh %(here)s %(program_name)s %(process_num)02d +command=/home/equinox/spreadspace/sydra/scripts/sydra-receiver.sh %(here)s %(program_name)s %(process_num)02d process_name=%(process_num)02d numprocs=6 priority=20 @@ -42,7 +42,7 @@ startsecs=0 startretries=10 [program:main] -command=/home/equinox/spreadspace/sydra/scripts/show-stream.sh %(here)s %(program_name)s +command=/home/equinox/spreadspace/sydra/scripts/sydra-receiver.sh %(here)s %(program_name)s process_name=main numprocs=1 priority=30 diff --git a/scripts/sydra-manager.sh b/scripts/sydra-manager.sh index 093d557..bd6c24b 100755 --- a/scripts/sydra-manager.sh +++ b/scripts/sydra-manager.sh @@ -29,7 +29,8 @@ if [[ ! -p $PIPE ]]; then fi cd "$ROOT_D" -echo "00" > show-stream.current +MAIN_STAT_FILE="sydra-receiver.main" +echo "00" > $MAIN_STAT_FILE while true do @@ -46,13 +47,22 @@ do select) get_num $arg if [ -n "$NUM" ]; then - echo "$NUM" > show-stream.current + echo "$NUM" > $MAIN_STAT_FILE supervisorctl restart "$GROUP_NAME:main" + else + echo "unkown client: $arg" >&2 fi NUM='' ;; + reloadconfig) + kill -SIGHUP `cat supervisord.pid` + ;; + killall) + kill `cat supervisord.pid` + ;; *) - ;; + echo "unkown command: $cmd" >&2 + ;; esac fi done diff --git a/scripts/sydra-receiver.sh b/scripts/sydra-receiver.sh new file mode 100755 index 0000000..7d2a3e6 --- /dev/null +++ b/scripts/sydra-receiver.sh @@ -0,0 +1,103 @@ +#!/bin/bash +############################ + +ROOT_D="$1" +TAG="$2" +NUM="$3" + +SYDRA_RTP="/home/equinox/spreadspace/sydra/src/sydra-rtp" +SYDRA_LAUNCH="/home/equinox/spreadspace/sydra/src/sydra-launch" +MAIN_STAT_FILE="sydra-receiver.main" + +############################ + +printUsage() { + echo "Usage: $0 (overview|main )" +} + +if [ -z "$ROOT_D" ] || [ -z "$TAG" ]; then + printUsage + exit 1 +fi +if [ ! -d "$ROOT_D" ]; then + echo "ERROR: can't change to non-existent directory: $ROOT_D" + exit 2 +fi + +. ./include.sh + +start_rtp_overview() { + ID="$1" + TITLE="$2" + PORT_BASE="$3" + REF_PORT_BASE=$((PORT_BASE + 1000)) + RECORD_D="$ROOT_D/recordings/$ID" + mkdir -p "$RECORD_D" + + herbstclient rule once title="overview-$ID" tag="overview" + exec $SYDRA_RTP -n "overview-$ID" -D --log stdout:3 --mode receiver -O $PORT_BASE --rtp-host-reflector localhost --rtp-port-base-reflector $REF_PORT_BASE \ + --sink "videoconvert name=videosink ! textoverlay text=\"$TITLE\" shaded-background=true font-desc=\"Sans 18\" ! videoscale add-borders=true ! xvimagesink fakesink name=audiosink" \ + --rec-mux matroskamux --rec-name-format "$RECORD_D/%Y-%m-%d_%H-%M-%S.mkv" --rec-video-encoder jpegenc \ + --rec-audio-encoder "audioconvert ! vorbisenc" +} + +start_test_overview() { + ID="$1" + TITLE="$2" + + herbstclient rule once title="overview-$ID" tag="overview" + exec $SYDRA_LAUNCH -n "overview-$ID" -D --log stdout:3 -p "videotestsrc ! video/x-raw,width=864,height=480,framerate=25/1 ! textoverlay text=\"$TITLE\" shaded-background=true font-desc=\"Sans 18\" ! videoscale add-borders=true ! xvimagesink" +} + +start_rtp_main() { + ID="$1" + TITLE="$2" + PORT_BASE="$3" + + herbstclient rule once title="main-$ID" tag="main" + exec $SYDRA_RTP -n "main-$ID" -D --log stdout:3 --mode receiver -A localhost -O $PORT_BASE \ + --sink "videoconvert name=videosink ! videoscale add-borders=true ! xvimagesink audioconvert name=audiosink ! audioresample ! autoaudiosink" +} + +start_test_main() { + ID="$1" + TITLE="$2" + + herbstclient rule once title="main-$ID" tag="main" + exec $SYDRA_LAUNCH -n "main-$ID" -D --log stdout:3 -p "videotestsrc ! video/x-raw,width=864,height=480,framerate=25/1 ! textoverlay text=\"$TITLE\" shaded-background=true font-desc=\"Sans 18\" ! videoscale add-borders=true ! xvimagesink" +} + +cd $ROOT_D +case "$TAG" in + overview) + if [ -z "$NUM" ]; then + printUsage + exit 1 + fi + + get_id_title_and_port "$NUM" + if [ -z "$ID" ]; then + echo "invalid process number: $NUM" + exit 3 + fi + [ -n "$SYDRA_TEST" ] || start_rtp_overview "$ID" "$TITLE" $PORT_BASE + [ -n "$SYDRA_TEST" ] && start_test_overview "$ID" "$TITLE" $PORT_BASE + ;; + main) + read NUM < "$MAIN_STAT_FILE" + get_id_title_and_port "$NUM" + if [ -z "$ID" ]; then + echo "$ROOT_D/show-stream.current contains an invalid process number: $NUM" + exit 3 + fi + [ -n "$SYDRA_TEST" ] || start_rtp_main "$ID" "$TITLE" $((PORT_BASE + 1000)) + [ -n "$SYDRA_TEST" ] && start_test_main "$ID" "$TITLE" $((PORT_BASE + 1000)) + ;; + *) + printUsage + exit 1 + ;; +esac + +############################ +exit 3 -- cgit v1.2.3