From d37661d72375bcea603afa0bac16703004923afe Mon Sep 17 00:00:00 2001
From: MaZderMind <git@mazdermind.de>
Date: Mon, 16 Nov 2015 23:31:15 +0100
Subject: move voctocore/scripts to example-scripts

---
 example-scripts/audio-play-cam1-mirror.sh          |  5 ++
 example-scripts/audio-play-cam2-mirror.sh          |  5 ++
 example-scripts/audio-visualize-cam1-mirror.sh     |  9 ++++
 example-scripts/av-play-cam1-mirror.sh             | 12 +++++
 example-scripts/av-play-output-ffplay.sh           |  2 +
 example-scripts/av-record-cam1-mirror.sh           | 20 +++++++
 .../av-record-output-ffmpeg-timestamps.sh          |  8 +++
 example-scripts/av-record-output-ffmpeg.sh         |  8 +++
 example-scripts/av-record-output.sh                | 20 +++++++
 example-scripts/av-source-avsync-ffmpeg-noloop.sh  |  8 +++
 example-scripts/av-source-avsync-ffmpeg.sh         |  8 +++
 example-scripts/av-source-avsync.sh                | 23 ++++++++
 example-scripts/av-source-background-loop.py       | 63 ++++++++++++++++++++++
 example-scripts/av-source-background-loop.sh       |  6 +++
 example-scripts/av-source-background.sh            |  6 +++
 example-scripts/av-source-bmd-cam1.sh              |  8 +++
 example-scripts/av-source-bmd-cam2.sh              |  8 +++
 example-scripts/av-source-cam1.sh                  |  9 ++++
 example-scripts/av-source-cam2.sh                  |  9 ++++
 example-scripts/av-source-eevblog-ffmpeg.sh        |  8 +++
 example-scripts/av-source-eevblog.sh               | 22 ++++++++
 example-scripts/av-source-grabber.sh               | 12 +++++
 example-scripts/av-stream-hd.sh                    | 12 +++++
 example-scripts/av-stream-sd.sh                    | 10 ++++
 example-scripts/benchmark.sh                       | 13 +++++
 example-scripts/demo-cube-files.sh                 | 15 ++++++
 example-scripts/demo-cube.sh                       | 15 ++++++
 example-scripts/demo-cycle-modes.sh                | 42 +++++++++++++++
 example-scripts/demo-local.sh                      | 15 ++++++
 example-scripts/perf.sh                            | 12 +++++
 example-scripts/set-audio-cam1.sh                  |  2 +
 example-scripts/set-audio-cam2.sh                  |  2 +
 example-scripts/set-composite-fullscreen.sh        |  2 +
 .../set-composite-picture-in-picture.sh            |  2 +
 .../set-composite-side-by-side-equal.sh            |  2 +
 .../set-composite-side-by-side-preview.sh          |  2 +
 example-scripts/set-stream-blank-nostream.sh       |  2 +
 example-scripts/set-stream-blank-pause.sh          |  2 +
 example-scripts/set-stream-live.sh                 |  2 +
 example-scripts/set-video-cam1.sh                  |  2 +
 example-scripts/set-video-cam2.sh                  |  2 +
 example-scripts/set-video-grabber.sh               |  2 +
 example-scripts/video-play-cam1-mirror.sh          |  5 ++
 example-scripts/video-play-cam2-mirror.sh          |  5 ++
 example-scripts/video-play-mixer-output.sh         |  5 ++
 voctocore/scripts/audio-play-cam1-mirror.sh        |  5 --
 voctocore/scripts/audio-play-cam2-mirror.sh        |  5 --
 voctocore/scripts/audio-visualize-cam1-mirror.sh   |  9 ----
 voctocore/scripts/av-play-cam1-mirror.sh           | 12 -----
 voctocore/scripts/av-play-output-ffplay.sh         |  2 -
 voctocore/scripts/av-record-cam1-mirror.sh         | 20 -------
 .../scripts/av-record-output-ffmpeg-timestamps.sh  |  8 ---
 voctocore/scripts/av-record-output-ffmpeg.sh       |  8 ---
 voctocore/scripts/av-record-output.sh              | 20 -------
 .../scripts/av-source-avsync-ffmpeg-noloop.sh      |  8 ---
 voctocore/scripts/av-source-avsync-ffmpeg.sh       |  8 ---
 voctocore/scripts/av-source-avsync.sh              | 23 --------
 voctocore/scripts/av-source-background-loop.py     | 63 ----------------------
 voctocore/scripts/av-source-background-loop.sh     |  6 ---
 voctocore/scripts/av-source-background.sh          |  6 ---
 voctocore/scripts/av-source-bmd-cam1.sh            |  8 ---
 voctocore/scripts/av-source-bmd-cam2.sh            |  8 ---
 voctocore/scripts/av-source-cam1.sh                |  9 ----
 voctocore/scripts/av-source-cam2.sh                |  9 ----
 voctocore/scripts/av-source-eevblog-ffmpeg.sh      |  8 ---
 voctocore/scripts/av-source-eevblog.sh             | 22 --------
 voctocore/scripts/av-source-grabber.sh             | 12 -----
 voctocore/scripts/av-stream-hd.sh                  | 12 -----
 voctocore/scripts/av-stream-sd.sh                  | 10 ----
 voctocore/scripts/benchmark.sh                     | 13 -----
 voctocore/scripts/demo-cube-files.sh               | 15 ------
 voctocore/scripts/demo-cube.sh                     | 15 ------
 voctocore/scripts/demo-cycle-modes.sh              | 42 ---------------
 voctocore/scripts/demo-local.sh                    | 15 ------
 voctocore/scripts/perf.sh                          | 12 -----
 voctocore/scripts/set-audio-cam1.sh                |  2 -
 voctocore/scripts/set-audio-cam2.sh                |  2 -
 voctocore/scripts/set-composite-fullscreen.sh      |  2 -
 .../scripts/set-composite-picture-in-picture.sh    |  2 -
 .../scripts/set-composite-side-by-side-equal.sh    |  2 -
 .../scripts/set-composite-side-by-side-preview.sh  |  2 -
 voctocore/scripts/set-stream-blank-nostream.sh     |  2 -
 voctocore/scripts/set-stream-blank-pause.sh        |  2 -
 voctocore/scripts/set-stream-live.sh               |  2 -
 voctocore/scripts/set-video-cam1.sh                |  2 -
 voctocore/scripts/set-video-cam2.sh                |  2 -
 voctocore/scripts/set-video-grabber.sh             |  2 -
 voctocore/scripts/video-play-cam1-mirror.sh        |  5 --
 voctocore/scripts/video-play-cam2-mirror.sh        |  5 --
 voctocore/scripts/video-play-mixer-output.sh       |  5 --
 90 files changed, 452 insertions(+), 452 deletions(-)
 create mode 100755 example-scripts/audio-play-cam1-mirror.sh
 create mode 100755 example-scripts/audio-play-cam2-mirror.sh
 create mode 100755 example-scripts/audio-visualize-cam1-mirror.sh
 create mode 100755 example-scripts/av-play-cam1-mirror.sh
 create mode 100755 example-scripts/av-play-output-ffplay.sh
 create mode 100755 example-scripts/av-record-cam1-mirror.sh
 create mode 100755 example-scripts/av-record-output-ffmpeg-timestamps.sh
 create mode 100755 example-scripts/av-record-output-ffmpeg.sh
 create mode 100755 example-scripts/av-record-output.sh
 create mode 100755 example-scripts/av-source-avsync-ffmpeg-noloop.sh
 create mode 100755 example-scripts/av-source-avsync-ffmpeg.sh
 create mode 100755 example-scripts/av-source-avsync.sh
 create mode 100755 example-scripts/av-source-background-loop.py
 create mode 100755 example-scripts/av-source-background-loop.sh
 create mode 100755 example-scripts/av-source-background.sh
 create mode 100755 example-scripts/av-source-bmd-cam1.sh
 create mode 100755 example-scripts/av-source-bmd-cam2.sh
 create mode 100755 example-scripts/av-source-cam1.sh
 create mode 100755 example-scripts/av-source-cam2.sh
 create mode 100755 example-scripts/av-source-eevblog-ffmpeg.sh
 create mode 100755 example-scripts/av-source-eevblog.sh
 create mode 100755 example-scripts/av-source-grabber.sh
 create mode 100755 example-scripts/av-stream-hd.sh
 create mode 100755 example-scripts/av-stream-sd.sh
 create mode 100755 example-scripts/benchmark.sh
 create mode 100755 example-scripts/demo-cube-files.sh
 create mode 100755 example-scripts/demo-cube.sh
 create mode 100755 example-scripts/demo-cycle-modes.sh
 create mode 100755 example-scripts/demo-local.sh
 create mode 100755 example-scripts/perf.sh
 create mode 100755 example-scripts/set-audio-cam1.sh
 create mode 100755 example-scripts/set-audio-cam2.sh
 create mode 100755 example-scripts/set-composite-fullscreen.sh
 create mode 100755 example-scripts/set-composite-picture-in-picture.sh
 create mode 100755 example-scripts/set-composite-side-by-side-equal.sh
 create mode 100755 example-scripts/set-composite-side-by-side-preview.sh
 create mode 100755 example-scripts/set-stream-blank-nostream.sh
 create mode 100755 example-scripts/set-stream-blank-pause.sh
 create mode 100755 example-scripts/set-stream-live.sh
 create mode 100755 example-scripts/set-video-cam1.sh
 create mode 100755 example-scripts/set-video-cam2.sh
 create mode 100755 example-scripts/set-video-grabber.sh
 create mode 100755 example-scripts/video-play-cam1-mirror.sh
 create mode 100755 example-scripts/video-play-cam2-mirror.sh
 create mode 100755 example-scripts/video-play-mixer-output.sh
 delete mode 100755 voctocore/scripts/audio-play-cam1-mirror.sh
 delete mode 100755 voctocore/scripts/audio-play-cam2-mirror.sh
 delete mode 100755 voctocore/scripts/audio-visualize-cam1-mirror.sh
 delete mode 100755 voctocore/scripts/av-play-cam1-mirror.sh
 delete mode 100755 voctocore/scripts/av-play-output-ffplay.sh
 delete mode 100755 voctocore/scripts/av-record-cam1-mirror.sh
 delete mode 100755 voctocore/scripts/av-record-output-ffmpeg-timestamps.sh
 delete mode 100755 voctocore/scripts/av-record-output-ffmpeg.sh
 delete mode 100755 voctocore/scripts/av-record-output.sh
 delete mode 100755 voctocore/scripts/av-source-avsync-ffmpeg-noloop.sh
 delete mode 100755 voctocore/scripts/av-source-avsync-ffmpeg.sh
 delete mode 100755 voctocore/scripts/av-source-avsync.sh
 delete mode 100755 voctocore/scripts/av-source-background-loop.py
 delete mode 100755 voctocore/scripts/av-source-background-loop.sh
 delete mode 100755 voctocore/scripts/av-source-background.sh
 delete mode 100755 voctocore/scripts/av-source-bmd-cam1.sh
 delete mode 100755 voctocore/scripts/av-source-bmd-cam2.sh
 delete mode 100755 voctocore/scripts/av-source-cam1.sh
 delete mode 100755 voctocore/scripts/av-source-cam2.sh
 delete mode 100755 voctocore/scripts/av-source-eevblog-ffmpeg.sh
 delete mode 100755 voctocore/scripts/av-source-eevblog.sh
 delete mode 100755 voctocore/scripts/av-source-grabber.sh
 delete mode 100755 voctocore/scripts/av-stream-hd.sh
 delete mode 100755 voctocore/scripts/av-stream-sd.sh
 delete mode 100755 voctocore/scripts/benchmark.sh
 delete mode 100755 voctocore/scripts/demo-cube-files.sh
 delete mode 100755 voctocore/scripts/demo-cube.sh
 delete mode 100755 voctocore/scripts/demo-cycle-modes.sh
 delete mode 100755 voctocore/scripts/demo-local.sh
 delete mode 100755 voctocore/scripts/perf.sh
 delete mode 100755 voctocore/scripts/set-audio-cam1.sh
 delete mode 100755 voctocore/scripts/set-audio-cam2.sh
 delete mode 100755 voctocore/scripts/set-composite-fullscreen.sh
 delete mode 100755 voctocore/scripts/set-composite-picture-in-picture.sh
 delete mode 100755 voctocore/scripts/set-composite-side-by-side-equal.sh
 delete mode 100755 voctocore/scripts/set-composite-side-by-side-preview.sh
 delete mode 100755 voctocore/scripts/set-stream-blank-nostream.sh
 delete mode 100755 voctocore/scripts/set-stream-blank-pause.sh
 delete mode 100755 voctocore/scripts/set-stream-live.sh
 delete mode 100755 voctocore/scripts/set-video-cam1.sh
 delete mode 100755 voctocore/scripts/set-video-cam2.sh
 delete mode 100755 voctocore/scripts/set-video-grabber.sh
 delete mode 100755 voctocore/scripts/video-play-cam1-mirror.sh
 delete mode 100755 voctocore/scripts/video-play-cam2-mirror.sh
 delete mode 100755 voctocore/scripts/video-play-mixer-output.sh

diff --git a/example-scripts/audio-play-cam1-mirror.sh b/example-scripts/audio-play-cam1-mirror.sh
new file mode 100755
index 0000000..6b60a9b
--- /dev/null
+++ b/example-scripts/audio-play-cam1-mirror.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+gst-launch-1.0 \
+	tcpclientsrc host=localhost port=13000 !\
+	matroskademux !\
+	alsasink
diff --git a/example-scripts/audio-play-cam2-mirror.sh b/example-scripts/audio-play-cam2-mirror.sh
new file mode 100755
index 0000000..e9f2fb1
--- /dev/null
+++ b/example-scripts/audio-play-cam2-mirror.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+gst-launch-1.0 \
+	tcpclientsrc host=localhost port=13001 !\
+	matroskademux !\
+	alsasink
diff --git a/example-scripts/audio-visualize-cam1-mirror.sh b/example-scripts/audio-visualize-cam1-mirror.sh
new file mode 100755
index 0000000..70772c4
--- /dev/null
+++ b/example-scripts/audio-visualize-cam1-mirror.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+gst-launch-1.0 \
+	tcpclientsrc host=localhost port=13000 !\
+	matroskademux !\
+	audioconvert !\
+	wavescope shader=none style=lines !\
+	video/x-raw,width=800,height=300 !\
+	videoconvert !\
+	xvimagesink
diff --git a/example-scripts/av-play-cam1-mirror.sh b/example-scripts/av-play-cam1-mirror.sh
new file mode 100755
index 0000000..0ec1f2b
--- /dev/null
+++ b/example-scripts/av-play-cam1-mirror.sh
@@ -0,0 +1,12 @@
+#!/bin/sh
+gst-launch-1.0 \
+	tcpclientsrc host=localhost port=13000 !\
+	matroskademux name=demux \
+	\
+	demux. !\
+	queue !\
+	xvimagesink ts-offset=300000000 \
+	\
+	demux. !\
+	queue !\
+	alsasink provide-clock=false ts-offset=300000000
diff --git a/example-scripts/av-play-output-ffplay.sh b/example-scripts/av-play-output-ffplay.sh
new file mode 100755
index 0000000..733c279
--- /dev/null
+++ b/example-scripts/av-play-output-ffplay.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+ffplay tcp://localhost:11000
diff --git a/example-scripts/av-record-cam1-mirror.sh b/example-scripts/av-record-cam1-mirror.sh
new file mode 100755
index 0000000..5726535
--- /dev/null
+++ b/example-scripts/av-record-cam1-mirror.sh
@@ -0,0 +1,20 @@
+#!/bin/sh
+gst-launch-1.0 \
+	tcpclientsrc host=localhost port=13000 !\
+	matroskademux name=demux \
+	\
+	demux. !\
+		queue !\
+		avenc_mpeg2video bitrate=5000000 max-key-interval=0 !\
+		queue !\
+		mux. \
+	\
+	demux. !\
+		queue !\
+		audioconvert !\
+		avenc_mp2 bitrate=192000 !\
+		queue !\
+		mux. \
+	\
+	mpegtsmux name=mux !\
+		filesink location=foo.ts
diff --git a/example-scripts/av-record-output-ffmpeg-timestamps.sh b/example-scripts/av-record-output-ffmpeg-timestamps.sh
new file mode 100755
index 0000000..86bd1d1
--- /dev/null
+++ b/example-scripts/av-record-output-ffmpeg-timestamps.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+ffmpeg \
+	-i tcp://localhost:11000 \
+	-ac 2 -channel_layout 2 -aspect 16:9 \
+	-map 0:v -c:v:0 mpeg2video -pix_fmt:v:0 yuv422p -qscale:v:0 2 -qmin:v:0 2 -qmax:v:0 7 -keyint_min 0 -bf:0 0 -g:0 0 -intra:0 -maxrate:0 90M \
+	-map 0:a -c:a:0 mp2 -b:a:0 192k -ac:a:0 2 -ar:a:0 48000 \
+	-flags +global_header -flags +ilme+ildct \
+	-f segment -segment_time 180 -segment_format mpegts segment-%t-%05d.ts.ts
diff --git a/example-scripts/av-record-output-ffmpeg.sh b/example-scripts/av-record-output-ffmpeg.sh
new file mode 100755
index 0000000..0ea3d25
--- /dev/null
+++ b/example-scripts/av-record-output-ffmpeg.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+ffmpeg \
+	-i tcp://localhost:11000 \
+	-ac 2 -channel_layout 2 -aspect 16:9 \
+	-map 0:v -c:v:0 mpeg2video -pix_fmt:v:0 yuv422p -qscale:v:0 2 -qmin:v:0 2 -qmax:v:0 7 -keyint_min 0 -bf:0 0 -g:0 0 -intra:0 -maxrate:0 90M \
+	-map 0:a -c:a:0 mp2 -b:a:0 192k -ac:a:0 2 -ar:a:0 48000 \
+	-flags +global_header -flags +ilme+ildct \
+	-f segment -segment_time 180 -segment_format mpegts segment-%d.ts
diff --git a/example-scripts/av-record-output.sh b/example-scripts/av-record-output.sh
new file mode 100755
index 0000000..ef306ed
--- /dev/null
+++ b/example-scripts/av-record-output.sh
@@ -0,0 +1,20 @@
+#!/bin/sh
+gst-launch-1.0 \
+	tcpclientsrc host=localhost port=11000 !\
+	matroskademux name=demux \
+	\
+	demux. !\
+		queue !\
+		avenc_mpeg2video bitrate=5000000 max-key-interval=0 !\
+		queue !\
+		mux. \
+	\
+	demux. !\
+		queue !\
+		audioconvert !\
+		avenc_mp2 bitrate=192000 !\
+		queue !\
+		mux. \
+	\
+	mpegtsmux name=mux !\
+		filesink location=foo.ts
diff --git a/example-scripts/av-source-avsync-ffmpeg-noloop.sh b/example-scripts/av-source-avsync-ffmpeg-noloop.sh
new file mode 100755
index 0000000..2183f35
--- /dev/null
+++ b/example-scripts/av-source-avsync-ffmpeg-noloop.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+ffmpeg -y \
+	-i $HOME/avsync.ts \
+	-vf scale=1920x1080 \
+	-c:v rawvideo \
+	-c:a pcm_s16le \
+	-f matroska \
+	tcp://localhost:10000
diff --git a/example-scripts/av-source-avsync-ffmpeg.sh b/example-scripts/av-source-avsync-ffmpeg.sh
new file mode 100755
index 0000000..d4e848b
--- /dev/null
+++ b/example-scripts/av-source-avsync-ffmpeg.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+(while true; do cat $HOME/avsync.ts || exit; done) | ffmpeg -y \
+	-i - \
+	-vf scale=1920x1080 \
+	-c:v rawvideo \
+	-c:a pcm_s16le \
+	-f matroska \
+	tcp://localhost:10000
diff --git a/example-scripts/av-source-avsync.sh b/example-scripts/av-source-avsync.sh
new file mode 100755
index 0000000..208e9c0
--- /dev/null
+++ b/example-scripts/av-source-avsync.sh
@@ -0,0 +1,23 @@
+#!/bin/sh
+gst-launch-1.0 \
+	uridecodebin \
+		uri=http://c3voc.mazdermind.de/avsync.mp4 \
+		name=src \
+	\
+	src. !\
+		queue !\
+		videoconvert !\
+		videoscale !\
+		video/x-raw,format=I420,width=1280,height=720,framerate=25/1,pixel-aspect-ratio=1/1 ! \
+		mux. \
+	\
+	src. !\
+		queue !\
+		audioconvert !\
+		audioresample !\
+		audiorate !\
+		audio/x-raw,format=S16LE,channels=2,layout=interleaved,rate=48000 !\
+		mux. \
+	\
+	matroskamux name=mux !\
+	tcpclientsink host=localhost port=10001
diff --git a/example-scripts/av-source-background-loop.py b/example-scripts/av-source-background-loop.py
new file mode 100755
index 0000000..9f4dc6d
--- /dev/null
+++ b/example-scripts/av-source-background-loop.py
@@ -0,0 +1,63 @@
+#!/usr/bin/python3
+import sys, gi, signal
+
+gi.require_version('Gst', '1.0')
+from gi.repository import Gst, GObject
+
+# init GObject & Co. before importing local classes
+GObject.threads_init()
+Gst.init([])
+
+class LoopSource(object):
+	def __init__(self):
+		pipeline = """
+			uridecodebin name=src uri=http://c3voc.mazdermind.de/bg.ts !
+			video/x-raw,format=I420,width=1920,height=1080,framerate=25/1,pixel-aspect-ratio=1/1 !
+			matroskamux !
+			tcpclientsink host=localhost port=16000
+		"""
+
+		self.senderPipeline = Gst.parse_launch(pipeline)
+		self.src = self.senderPipeline.get_by_name('src')
+
+		# Binding End-of-Stream-Signal on Source-Pipeline
+		self.senderPipeline.bus.add_signal_watch()
+		self.senderPipeline.bus.connect("message::eos", self.on_eos)
+		self.senderPipeline.bus.connect("message::error", self.on_error)
+
+		print("playing")
+		self.senderPipeline.set_state(Gst.State.PLAYING)
+
+
+	def on_eos(self, bus, message):
+		print('Received EOS-Signal, Seeking to start')
+		self.src.seek(
+			1.0,                 # rate (float)
+			Gst.Format.TIME,     # format (Gst.Format)
+			Gst.SeekFlags.FLUSH, # flags (Gst.SeekFlags)
+			Gst.SeekType.SET,    # start_type (Gst.SeekType)
+			0,                   # start (int)
+			Gst.SeekType.NONE,   # stop_type (Gst.SeekType)
+			0                    # stop (int)
+		)
+
+	def on_error(self, bus, message):
+		print('Received Error-Signal')
+		(error, debug) = message.parse_error()
+		print('Error-Details: #%u: %s' % (error.code, debug))
+		sys.exit(1)
+
+def main():
+	signal.signal(signal.SIGINT, signal.SIG_DFL)
+
+	src = LoopSource()
+
+	mainloop = GObject.MainLoop()
+	try:
+		mainloop.run()
+	except KeyboardInterrupt:
+		print('Terminated via Ctrl-C')
+
+
+if __name__ == '__main__':
+	main()
diff --git a/example-scripts/av-source-background-loop.sh b/example-scripts/av-source-background-loop.sh
new file mode 100755
index 0000000..8b16487
--- /dev/null
+++ b/example-scripts/av-source-background-loop.sh
@@ -0,0 +1,6 @@
+while true; do cat ~/bg.ts || exit 1; done |\
+	ffmpeg -re -i - \
+	-map 0:v \
+	-c:v rawvideo \
+	-f matroska \
+	tcp://localhost:16000
diff --git a/example-scripts/av-source-background.sh b/example-scripts/av-source-background.sh
new file mode 100755
index 0000000..d978135
--- /dev/null
+++ b/example-scripts/av-source-background.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+gst-launch-1.0 \
+	videotestsrc pattern=ball !\
+	video/x-raw,format=I420,width=1280,height=720,framerate=25/1,pixel-aspect-ratio=1/1 !\
+	matroskamux !\
+	tcpclientsink host=localhost port=16000
diff --git a/example-scripts/av-source-bmd-cam1.sh b/example-scripts/av-source-bmd-cam1.sh
new file mode 100755
index 0000000..600a0b7
--- /dev/null
+++ b/example-scripts/av-source-bmd-cam1.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+ffmpeg -y \
+	-f decklink \
+	-i 'DeckLink Mini Recorder (1)@11' \
+	-c:v rawvideo -c:a pcm_s16le \
+	-pix_fmt yuv420p \
+	-f matroska \
+	tcp://localhost:10000
diff --git a/example-scripts/av-source-bmd-cam2.sh b/example-scripts/av-source-bmd-cam2.sh
new file mode 100755
index 0000000..3682663
--- /dev/null
+++ b/example-scripts/av-source-bmd-cam2.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+ffmpeg -y \
+	-f decklink \
+	-i 'DeckLink Mini Recorder (2)@11' \
+	-c:v rawvideo -c:a pcm_s16le \
+        -pix_fmt yuv420p \
+	-f matroska \
+	tcp://localhost:10001
diff --git a/example-scripts/av-source-cam1.sh b/example-scripts/av-source-cam1.sh
new file mode 100755
index 0000000..22b61f5
--- /dev/null
+++ b/example-scripts/av-source-cam1.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+ffmpeg -y \
+	-i "$HOME/31c3-sendezentrum-1013-de-Methodisch_inkorrekt_Die_falsche_42_hd.mp4" \
+	-ac 2 \
+	-af aresample=48000 \
+	-c:v rawvideo \
+	-c:a pcm_s16le \
+	-f matroska \
+	tcp://localhost:10000
diff --git a/example-scripts/av-source-cam2.sh b/example-scripts/av-source-cam2.sh
new file mode 100755
index 0000000..6f39fd0
--- /dev/null
+++ b/example-scripts/av-source-cam2.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+ffmpeg -y \
+	-i "$HOME/31c3-sendezentrum-1003-de-Freak_Show_FS147_That_Escalatored_Quickly_hd.mp4" \
+	-ac 2 \
+	-af aresample=48000 \
+	-c:v rawvideo \
+	-c:a pcm_s16le \
+	-f matroska \
+	tcp://localhost:10001
diff --git a/example-scripts/av-source-eevblog-ffmpeg.sh b/example-scripts/av-source-eevblog-ffmpeg.sh
new file mode 100755
index 0000000..3c3aab9
--- /dev/null
+++ b/example-scripts/av-source-eevblog-ffmpeg.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+ffmpeg -y \
+	-i $HOME/eevblog.mp4 \
+	-c:v rawvideo \
+	-c:a pcm_s16le \
+	-af aresample=48000 \
+	-f matroska \
+	tcp://localhost:10000
diff --git a/example-scripts/av-source-eevblog.sh b/example-scripts/av-source-eevblog.sh
new file mode 100755
index 0000000..0ed237d
--- /dev/null
+++ b/example-scripts/av-source-eevblog.sh
@@ -0,0 +1,22 @@
+#!/bin/sh
+gst-launch-1.0 \
+	filesrc location=$HOME/eevblog.mp4 !\
+	decodebin name=src \
+	\
+	src. !\
+		queue !\
+		videoconvert !\
+		videoscale !\
+		video/x-raw,format=I420,width=1280,height=720,framerate=25/1,pixel-aspect-ratio=1/1 ! \
+		mux. \
+	\
+	src. !\
+		queue !\
+		audioconvert !\
+		audioresample !\
+		audiorate !\
+		audio/x-raw,format=S16LE,channels=2,layout=interleaved,rate=48000 !\
+		mux. \
+	\
+	matroskamux name=mux !\
+	tcpclientsink host=localhost port=10000
diff --git a/example-scripts/av-source-grabber.sh b/example-scripts/av-source-grabber.sh
new file mode 100755
index 0000000..8329dc4
--- /dev/null
+++ b/example-scripts/av-source-grabber.sh
@@ -0,0 +1,12 @@
+#!/bin/sh
+ffmpeg -y \
+	-i "http://10.73.5.2:1881/stream.mjpg" \
+	-filter_complex "scale=1920:1080,fps=25" \
+	-ar 48000 \
+	-ac 2 \
+	-f s16le \
+	-i "/dev/zero" \
+	-c:a pcm_s16le \
+	-c:v rawvideo \
+	-f matroska \
+	tcp://localhost:10002
diff --git a/example-scripts/av-stream-hd.sh b/example-scripts/av-stream-hd.sh
new file mode 100755
index 0000000..e273a02
--- /dev/null
+++ b/example-scripts/av-stream-hd.sh
@@ -0,0 +1,12 @@
+#!/bin/sh
+ffmpeg -i tcp://localhost:11000 -aspect 16:9 -threads:0 0 \
+-c:v libx264 \
+-filter_complex "
+  yadif=mode=2, hqdn3d [deinter];
+  movie=$HOME/overlay_hd.png [logo];
+  [deinter] [logo] overlay=0:0 [out]
+" -map '[out]' -maxrate:v:0 3000k -bufsize:v:0 8192k -crf:0 21 -pix_fmt:0 yuv420p -profile:v:0 main -g:v:0 25 -preset:v:0 veryfast \
+-ac 1 -c:a libfdk_aac -b:a 96k -ar 44100 \
+-map 0:a -filter:a:0 pan=mono:c0=FL \
+-ac:a:2 2 \
+-y -f flv rtmp://127.0.0.1:1935/stream/voctomix
diff --git a/example-scripts/av-stream-sd.sh b/example-scripts/av-stream-sd.sh
new file mode 100755
index 0000000..608c643
--- /dev/null
+++ b/example-scripts/av-stream-sd.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+ffmpeg -i tcp://localhost:11000 -aspect 16:9 -threads:0 0 \
+-c:v libx264 \
+-filter_complex "
+  yadif=mode=2, hqdn3d, scale=720:576 [out]
+" -map '[out]' -maxrate:v:0 800k -bufsize:v:0 8192k -crf:0 18 -pix_fmt:0 yuv420p -profile:v:0 main -g:v:0 25 -preset:v:0 veryfast \
+-ac 1 -c:a libfdk_aac -b:a 96k -ar 44100 \
+-map 0:a -filter:a:0 pan=mono:c0=FL \
+-ac:a:2 2 \
+-y -f flv rtmp://127.0.0.1:1935/stream/s5_native_sd
diff --git a/example-scripts/benchmark.sh b/example-scripts/benchmark.sh
new file mode 100755
index 0000000..7b3a72b
--- /dev/null
+++ b/example-scripts/benchmark.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+../voctocore.py &
+PID=$!
+echo "PID=$PID"
+sleep 1
+./set-composite-side-by-side-equal.sh >/dev/null 2>/dev/null
+./av-source-eevblog.sh >/dev/null 2>/dev/null &
+./av-source-avsync.sh >/dev/null 2>/dev/null &
+pidstat -p $PID 1 &
+sleep 10
+kill $PID
+wait
diff --git a/example-scripts/demo-cube-files.sh b/example-scripts/demo-cube-files.sh
new file mode 100755
index 0000000..978c91e
--- /dev/null
+++ b/example-scripts/demo-cube-files.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+../voctocore.py -vv &
+PID=$!
+echo "PID=$PID"
+sleep 1
+./av-source-cam1.sh &
+./av-source-cam2.sh &
+./av-source-background-loop.py &
+./av-record-output-ffmpeg-timestamps.sh &
+./av-stream-hd.sh &
+./demo-cycle-modes.sh &
+while true; do sleep 1; done
+kill $PID
+wait
diff --git a/example-scripts/demo-cube.sh b/example-scripts/demo-cube.sh
new file mode 100755
index 0000000..587f533
--- /dev/null
+++ b/example-scripts/demo-cube.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+../voctocore.py -vv &
+PID=$!
+echo "PID=$PID"
+sleep 1
+./av-source-bmd-cam1.sh &
+./av-source-bmd-cam2.sh &
+./av-source-background-loop.py &
+./av-record-output-ffmpeg-timestamps.sh &
+./av-stream-hd.sh &
+./demo-cycle-modes.sh &
+while true; do sleep 1; done
+kill $PID
+wait
diff --git a/example-scripts/demo-cycle-modes.sh b/example-scripts/demo-cycle-modes.sh
new file mode 100755
index 0000000..b626b28
--- /dev/null
+++ b/example-scripts/demo-cycle-modes.sh
@@ -0,0 +1,42 @@
+while true; do
+	sleep 10
+	echo "composite-picture-in-picture"
+	./set-composite-picture-in-picture.sh
+	sleep 10
+	echo "audio/video cam2"
+	./set-video-cam2.sh
+	./set-audio-cam2.sh
+	sleep 10
+	echo "composite-side-by-side-preview"
+	./set-composite-side-by-side-preview.sh
+	sleep 10
+	echo "audio/video cam1"
+	./set-audio-cam1.sh
+	./set-video-cam1.sh
+	sleep 10
+	echo "composite-fullscreen"
+	./set-composite-fullscreen.sh
+	sleep 10
+	echo "audio/video cam2"
+	./set-audio-cam2.sh
+	./set-video-cam2.sh
+	sleep 10
+	echo "audio/video cam1"
+	./set-video-cam1.sh
+	./set-audio-cam1.sh
+	sleep 10
+	echo "composite-side-by-side-equal"
+	./set-composite-side-by-side-equal.sh
+	sleep 10
+	echo "audio/video cam2"
+	./set-video-cam2.sh
+	./set-audio-cam2.sh
+	sleep 10
+	echo "composite-picture-in-picture"
+	./set-composite-picture-in-picture.sh
+	sleep 10
+	echo "audio/video cam1, composite-fullscreen"
+	./set-video-cam1.sh
+	./set-audio-cam1.sh
+	./set-composite-fullscreen.sh
+done
diff --git a/example-scripts/demo-local.sh b/example-scripts/demo-local.sh
new file mode 100755
index 0000000..2fb1f6a
--- /dev/null
+++ b/example-scripts/demo-local.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+../voctocore.py -vv &
+PID=$!
+echo "PID=$PID"
+sleep 1
+./av-source-cam1.sh &
+./av-source-cam2.sh &
+./av-source-background-loop.py &
+./av-record-output-ffmpeg.sh &
+#./av-stream-hd.sh &
+./demo-cycle-modes.sh &
+ffplay tcp://localhost:11000
+kill $PID
+wait
diff --git a/example-scripts/perf.sh b/example-scripts/perf.sh
new file mode 100755
index 0000000..035ec05
--- /dev/null
+++ b/example-scripts/perf.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+../voctocore.py &
+PID=$!
+echo "PID=$PID"
+sleep 1
+./set-composite-side-by-side-equal.sh >/dev/null 2>/dev/null
+./av-source-eevblog.sh >/dev/null 2>/dev/null &
+./av-source-avsync.sh >/dev/null 2>/dev/null &
+sudo perf top -g -p $PID
+kill $PID
+wait
diff --git a/example-scripts/set-audio-cam1.sh b/example-scripts/set-audio-cam1.sh
new file mode 100755
index 0000000..19d3b8e
--- /dev/null
+++ b/example-scripts/set-audio-cam1.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+echo set_audio cam1 | nc -q0 localhost 9999
diff --git a/example-scripts/set-audio-cam2.sh b/example-scripts/set-audio-cam2.sh
new file mode 100755
index 0000000..9177772
--- /dev/null
+++ b/example-scripts/set-audio-cam2.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+echo set_audio cam2 | nc -q0 localhost 9999
diff --git a/example-scripts/set-composite-fullscreen.sh b/example-scripts/set-composite-fullscreen.sh
new file mode 100755
index 0000000..850e591
--- /dev/null
+++ b/example-scripts/set-composite-fullscreen.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+echo set_composite_mode fullscreen | nc -q0 localhost 9999
diff --git a/example-scripts/set-composite-picture-in-picture.sh b/example-scripts/set-composite-picture-in-picture.sh
new file mode 100755
index 0000000..eae3bea
--- /dev/null
+++ b/example-scripts/set-composite-picture-in-picture.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+echo set_composite_mode picture_in_picture | nc -q0 localhost 9999
diff --git a/example-scripts/set-composite-side-by-side-equal.sh b/example-scripts/set-composite-side-by-side-equal.sh
new file mode 100755
index 0000000..37e3357
--- /dev/null
+++ b/example-scripts/set-composite-side-by-side-equal.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+echo set_composite_mode side_by_side_equal | nc -q0 localhost 9999
diff --git a/example-scripts/set-composite-side-by-side-preview.sh b/example-scripts/set-composite-side-by-side-preview.sh
new file mode 100755
index 0000000..dd8a04b
--- /dev/null
+++ b/example-scripts/set-composite-side-by-side-preview.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+echo set_composite_mode side_by_side_preview | nc -q0 localhost 9999
diff --git a/example-scripts/set-stream-blank-nostream.sh b/example-scripts/set-stream-blank-nostream.sh
new file mode 100755
index 0000000..abdab4b
--- /dev/null
+++ b/example-scripts/set-stream-blank-nostream.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+echo set_stream_blank nostream | nc -q0 localhost 9999
diff --git a/example-scripts/set-stream-blank-pause.sh b/example-scripts/set-stream-blank-pause.sh
new file mode 100755
index 0000000..abf3580
--- /dev/null
+++ b/example-scripts/set-stream-blank-pause.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+echo set_stream_blank pause | nc -q0 localhost 9999
diff --git a/example-scripts/set-stream-live.sh b/example-scripts/set-stream-live.sh
new file mode 100755
index 0000000..e2584c8
--- /dev/null
+++ b/example-scripts/set-stream-live.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+echo set_stream_live | nc -q0 localhost 9999
diff --git a/example-scripts/set-video-cam1.sh b/example-scripts/set-video-cam1.sh
new file mode 100755
index 0000000..d02b385
--- /dev/null
+++ b/example-scripts/set-video-cam1.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+echo set_video_a cam1 | nc -q0 localhost 9999
diff --git a/example-scripts/set-video-cam2.sh b/example-scripts/set-video-cam2.sh
new file mode 100755
index 0000000..c953ade
--- /dev/null
+++ b/example-scripts/set-video-cam2.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+echo set_video_a cam2 | nc -q0 localhost 9999
diff --git a/example-scripts/set-video-grabber.sh b/example-scripts/set-video-grabber.sh
new file mode 100755
index 0000000..ee39c3b
--- /dev/null
+++ b/example-scripts/set-video-grabber.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+echo set_video_a grabber | nc -q0 localhost 9999
diff --git a/example-scripts/video-play-cam1-mirror.sh b/example-scripts/video-play-cam1-mirror.sh
new file mode 100755
index 0000000..ec3605b
--- /dev/null
+++ b/example-scripts/video-play-cam1-mirror.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+gst-launch-1.0 \
+	tcpclientsrc host=localhost port=13000 !\
+	matroskademux !\
+	xvimagesink
diff --git a/example-scripts/video-play-cam2-mirror.sh b/example-scripts/video-play-cam2-mirror.sh
new file mode 100755
index 0000000..e42ca6a
--- /dev/null
+++ b/example-scripts/video-play-cam2-mirror.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+gst-launch-1.0 \
+	tcpclientsrc host=localhost port=13001 !\
+	matroskademux !\
+	xvimagesink
diff --git a/example-scripts/video-play-mixer-output.sh b/example-scripts/video-play-mixer-output.sh
new file mode 100755
index 0000000..abb3174
--- /dev/null
+++ b/example-scripts/video-play-mixer-output.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+gst-launch-1.0 \
+	tcpclientsrc host=localhost port=11000 !\
+	matroskademux !\
+	xvimagesink
diff --git a/voctocore/scripts/audio-play-cam1-mirror.sh b/voctocore/scripts/audio-play-cam1-mirror.sh
deleted file mode 100755
index 6b60a9b..0000000
--- a/voctocore/scripts/audio-play-cam1-mirror.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-gst-launch-1.0 \
-	tcpclientsrc host=localhost port=13000 !\
-	matroskademux !\
-	alsasink
diff --git a/voctocore/scripts/audio-play-cam2-mirror.sh b/voctocore/scripts/audio-play-cam2-mirror.sh
deleted file mode 100755
index e9f2fb1..0000000
--- a/voctocore/scripts/audio-play-cam2-mirror.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-gst-launch-1.0 \
-	tcpclientsrc host=localhost port=13001 !\
-	matroskademux !\
-	alsasink
diff --git a/voctocore/scripts/audio-visualize-cam1-mirror.sh b/voctocore/scripts/audio-visualize-cam1-mirror.sh
deleted file mode 100755
index 70772c4..0000000
--- a/voctocore/scripts/audio-visualize-cam1-mirror.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-gst-launch-1.0 \
-	tcpclientsrc host=localhost port=13000 !\
-	matroskademux !\
-	audioconvert !\
-	wavescope shader=none style=lines !\
-	video/x-raw,width=800,height=300 !\
-	videoconvert !\
-	xvimagesink
diff --git a/voctocore/scripts/av-play-cam1-mirror.sh b/voctocore/scripts/av-play-cam1-mirror.sh
deleted file mode 100755
index 0ec1f2b..0000000
--- a/voctocore/scripts/av-play-cam1-mirror.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/sh
-gst-launch-1.0 \
-	tcpclientsrc host=localhost port=13000 !\
-	matroskademux name=demux \
-	\
-	demux. !\
-	queue !\
-	xvimagesink ts-offset=300000000 \
-	\
-	demux. !\
-	queue !\
-	alsasink provide-clock=false ts-offset=300000000
diff --git a/voctocore/scripts/av-play-output-ffplay.sh b/voctocore/scripts/av-play-output-ffplay.sh
deleted file mode 100755
index 733c279..0000000
--- a/voctocore/scripts/av-play-output-ffplay.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-ffplay tcp://localhost:11000
diff --git a/voctocore/scripts/av-record-cam1-mirror.sh b/voctocore/scripts/av-record-cam1-mirror.sh
deleted file mode 100755
index 5726535..0000000
--- a/voctocore/scripts/av-record-cam1-mirror.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/sh
-gst-launch-1.0 \
-	tcpclientsrc host=localhost port=13000 !\
-	matroskademux name=demux \
-	\
-	demux. !\
-		queue !\
-		avenc_mpeg2video bitrate=5000000 max-key-interval=0 !\
-		queue !\
-		mux. \
-	\
-	demux. !\
-		queue !\
-		audioconvert !\
-		avenc_mp2 bitrate=192000 !\
-		queue !\
-		mux. \
-	\
-	mpegtsmux name=mux !\
-		filesink location=foo.ts
diff --git a/voctocore/scripts/av-record-output-ffmpeg-timestamps.sh b/voctocore/scripts/av-record-output-ffmpeg-timestamps.sh
deleted file mode 100755
index 86bd1d1..0000000
--- a/voctocore/scripts/av-record-output-ffmpeg-timestamps.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-ffmpeg \
-	-i tcp://localhost:11000 \
-	-ac 2 -channel_layout 2 -aspect 16:9 \
-	-map 0:v -c:v:0 mpeg2video -pix_fmt:v:0 yuv422p -qscale:v:0 2 -qmin:v:0 2 -qmax:v:0 7 -keyint_min 0 -bf:0 0 -g:0 0 -intra:0 -maxrate:0 90M \
-	-map 0:a -c:a:0 mp2 -b:a:0 192k -ac:a:0 2 -ar:a:0 48000 \
-	-flags +global_header -flags +ilme+ildct \
-	-f segment -segment_time 180 -segment_format mpegts segment-%t-%05d.ts.ts
diff --git a/voctocore/scripts/av-record-output-ffmpeg.sh b/voctocore/scripts/av-record-output-ffmpeg.sh
deleted file mode 100755
index 0ea3d25..0000000
--- a/voctocore/scripts/av-record-output-ffmpeg.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-ffmpeg \
-	-i tcp://localhost:11000 \
-	-ac 2 -channel_layout 2 -aspect 16:9 \
-	-map 0:v -c:v:0 mpeg2video -pix_fmt:v:0 yuv422p -qscale:v:0 2 -qmin:v:0 2 -qmax:v:0 7 -keyint_min 0 -bf:0 0 -g:0 0 -intra:0 -maxrate:0 90M \
-	-map 0:a -c:a:0 mp2 -b:a:0 192k -ac:a:0 2 -ar:a:0 48000 \
-	-flags +global_header -flags +ilme+ildct \
-	-f segment -segment_time 180 -segment_format mpegts segment-%d.ts
diff --git a/voctocore/scripts/av-record-output.sh b/voctocore/scripts/av-record-output.sh
deleted file mode 100755
index ef306ed..0000000
--- a/voctocore/scripts/av-record-output.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/sh
-gst-launch-1.0 \
-	tcpclientsrc host=localhost port=11000 !\
-	matroskademux name=demux \
-	\
-	demux. !\
-		queue !\
-		avenc_mpeg2video bitrate=5000000 max-key-interval=0 !\
-		queue !\
-		mux. \
-	\
-	demux. !\
-		queue !\
-		audioconvert !\
-		avenc_mp2 bitrate=192000 !\
-		queue !\
-		mux. \
-	\
-	mpegtsmux name=mux !\
-		filesink location=foo.ts
diff --git a/voctocore/scripts/av-source-avsync-ffmpeg-noloop.sh b/voctocore/scripts/av-source-avsync-ffmpeg-noloop.sh
deleted file mode 100755
index 2183f35..0000000
--- a/voctocore/scripts/av-source-avsync-ffmpeg-noloop.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-ffmpeg -y \
-	-i $HOME/avsync.ts \
-	-vf scale=1920x1080 \
-	-c:v rawvideo \
-	-c:a pcm_s16le \
-	-f matroska \
-	tcp://localhost:10000
diff --git a/voctocore/scripts/av-source-avsync-ffmpeg.sh b/voctocore/scripts/av-source-avsync-ffmpeg.sh
deleted file mode 100755
index d4e848b..0000000
--- a/voctocore/scripts/av-source-avsync-ffmpeg.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-(while true; do cat $HOME/avsync.ts || exit; done) | ffmpeg -y \
-	-i - \
-	-vf scale=1920x1080 \
-	-c:v rawvideo \
-	-c:a pcm_s16le \
-	-f matroska \
-	tcp://localhost:10000
diff --git a/voctocore/scripts/av-source-avsync.sh b/voctocore/scripts/av-source-avsync.sh
deleted file mode 100755
index 208e9c0..0000000
--- a/voctocore/scripts/av-source-avsync.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/sh
-gst-launch-1.0 \
-	uridecodebin \
-		uri=http://c3voc.mazdermind.de/avsync.mp4 \
-		name=src \
-	\
-	src. !\
-		queue !\
-		videoconvert !\
-		videoscale !\
-		video/x-raw,format=I420,width=1280,height=720,framerate=25/1,pixel-aspect-ratio=1/1 ! \
-		mux. \
-	\
-	src. !\
-		queue !\
-		audioconvert !\
-		audioresample !\
-		audiorate !\
-		audio/x-raw,format=S16LE,channels=2,layout=interleaved,rate=48000 !\
-		mux. \
-	\
-	matroskamux name=mux !\
-	tcpclientsink host=localhost port=10001
diff --git a/voctocore/scripts/av-source-background-loop.py b/voctocore/scripts/av-source-background-loop.py
deleted file mode 100755
index 9f4dc6d..0000000
--- a/voctocore/scripts/av-source-background-loop.py
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/usr/bin/python3
-import sys, gi, signal
-
-gi.require_version('Gst', '1.0')
-from gi.repository import Gst, GObject
-
-# init GObject & Co. before importing local classes
-GObject.threads_init()
-Gst.init([])
-
-class LoopSource(object):
-	def __init__(self):
-		pipeline = """
-			uridecodebin name=src uri=http://c3voc.mazdermind.de/bg.ts !
-			video/x-raw,format=I420,width=1920,height=1080,framerate=25/1,pixel-aspect-ratio=1/1 !
-			matroskamux !
-			tcpclientsink host=localhost port=16000
-		"""
-
-		self.senderPipeline = Gst.parse_launch(pipeline)
-		self.src = self.senderPipeline.get_by_name('src')
-
-		# Binding End-of-Stream-Signal on Source-Pipeline
-		self.senderPipeline.bus.add_signal_watch()
-		self.senderPipeline.bus.connect("message::eos", self.on_eos)
-		self.senderPipeline.bus.connect("message::error", self.on_error)
-
-		print("playing")
-		self.senderPipeline.set_state(Gst.State.PLAYING)
-
-
-	def on_eos(self, bus, message):
-		print('Received EOS-Signal, Seeking to start')
-		self.src.seek(
-			1.0,                 # rate (float)
-			Gst.Format.TIME,     # format (Gst.Format)
-			Gst.SeekFlags.FLUSH, # flags (Gst.SeekFlags)
-			Gst.SeekType.SET,    # start_type (Gst.SeekType)
-			0,                   # start (int)
-			Gst.SeekType.NONE,   # stop_type (Gst.SeekType)
-			0                    # stop (int)
-		)
-
-	def on_error(self, bus, message):
-		print('Received Error-Signal')
-		(error, debug) = message.parse_error()
-		print('Error-Details: #%u: %s' % (error.code, debug))
-		sys.exit(1)
-
-def main():
-	signal.signal(signal.SIGINT, signal.SIG_DFL)
-
-	src = LoopSource()
-
-	mainloop = GObject.MainLoop()
-	try:
-		mainloop.run()
-	except KeyboardInterrupt:
-		print('Terminated via Ctrl-C')
-
-
-if __name__ == '__main__':
-	main()
diff --git a/voctocore/scripts/av-source-background-loop.sh b/voctocore/scripts/av-source-background-loop.sh
deleted file mode 100755
index 8b16487..0000000
--- a/voctocore/scripts/av-source-background-loop.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-while true; do cat ~/bg.ts || exit 1; done |\
-	ffmpeg -re -i - \
-	-map 0:v \
-	-c:v rawvideo \
-	-f matroska \
-	tcp://localhost:16000
diff --git a/voctocore/scripts/av-source-background.sh b/voctocore/scripts/av-source-background.sh
deleted file mode 100755
index d978135..0000000
--- a/voctocore/scripts/av-source-background.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-gst-launch-1.0 \
-	videotestsrc pattern=ball !\
-	video/x-raw,format=I420,width=1280,height=720,framerate=25/1,pixel-aspect-ratio=1/1 !\
-	matroskamux !\
-	tcpclientsink host=localhost port=16000
diff --git a/voctocore/scripts/av-source-bmd-cam1.sh b/voctocore/scripts/av-source-bmd-cam1.sh
deleted file mode 100755
index 600a0b7..0000000
--- a/voctocore/scripts/av-source-bmd-cam1.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-ffmpeg -y \
-	-f decklink \
-	-i 'DeckLink Mini Recorder (1)@11' \
-	-c:v rawvideo -c:a pcm_s16le \
-	-pix_fmt yuv420p \
-	-f matroska \
-	tcp://localhost:10000
diff --git a/voctocore/scripts/av-source-bmd-cam2.sh b/voctocore/scripts/av-source-bmd-cam2.sh
deleted file mode 100755
index 3682663..0000000
--- a/voctocore/scripts/av-source-bmd-cam2.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-ffmpeg -y \
-	-f decklink \
-	-i 'DeckLink Mini Recorder (2)@11' \
-	-c:v rawvideo -c:a pcm_s16le \
-        -pix_fmt yuv420p \
-	-f matroska \
-	tcp://localhost:10001
diff --git a/voctocore/scripts/av-source-cam1.sh b/voctocore/scripts/av-source-cam1.sh
deleted file mode 100755
index 22b61f5..0000000
--- a/voctocore/scripts/av-source-cam1.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-ffmpeg -y \
-	-i "$HOME/31c3-sendezentrum-1013-de-Methodisch_inkorrekt_Die_falsche_42_hd.mp4" \
-	-ac 2 \
-	-af aresample=48000 \
-	-c:v rawvideo \
-	-c:a pcm_s16le \
-	-f matroska \
-	tcp://localhost:10000
diff --git a/voctocore/scripts/av-source-cam2.sh b/voctocore/scripts/av-source-cam2.sh
deleted file mode 100755
index 6f39fd0..0000000
--- a/voctocore/scripts/av-source-cam2.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-ffmpeg -y \
-	-i "$HOME/31c3-sendezentrum-1003-de-Freak_Show_FS147_That_Escalatored_Quickly_hd.mp4" \
-	-ac 2 \
-	-af aresample=48000 \
-	-c:v rawvideo \
-	-c:a pcm_s16le \
-	-f matroska \
-	tcp://localhost:10001
diff --git a/voctocore/scripts/av-source-eevblog-ffmpeg.sh b/voctocore/scripts/av-source-eevblog-ffmpeg.sh
deleted file mode 100755
index 3c3aab9..0000000
--- a/voctocore/scripts/av-source-eevblog-ffmpeg.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-ffmpeg -y \
-	-i $HOME/eevblog.mp4 \
-	-c:v rawvideo \
-	-c:a pcm_s16le \
-	-af aresample=48000 \
-	-f matroska \
-	tcp://localhost:10000
diff --git a/voctocore/scripts/av-source-eevblog.sh b/voctocore/scripts/av-source-eevblog.sh
deleted file mode 100755
index 0ed237d..0000000
--- a/voctocore/scripts/av-source-eevblog.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/sh
-gst-launch-1.0 \
-	filesrc location=$HOME/eevblog.mp4 !\
-	decodebin name=src \
-	\
-	src. !\
-		queue !\
-		videoconvert !\
-		videoscale !\
-		video/x-raw,format=I420,width=1280,height=720,framerate=25/1,pixel-aspect-ratio=1/1 ! \
-		mux. \
-	\
-	src. !\
-		queue !\
-		audioconvert !\
-		audioresample !\
-		audiorate !\
-		audio/x-raw,format=S16LE,channels=2,layout=interleaved,rate=48000 !\
-		mux. \
-	\
-	matroskamux name=mux !\
-	tcpclientsink host=localhost port=10000
diff --git a/voctocore/scripts/av-source-grabber.sh b/voctocore/scripts/av-source-grabber.sh
deleted file mode 100755
index 8329dc4..0000000
--- a/voctocore/scripts/av-source-grabber.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/sh
-ffmpeg -y \
-	-i "http://10.73.5.2:1881/stream.mjpg" \
-	-filter_complex "scale=1920:1080,fps=25" \
-	-ar 48000 \
-	-ac 2 \
-	-f s16le \
-	-i "/dev/zero" \
-	-c:a pcm_s16le \
-	-c:v rawvideo \
-	-f matroska \
-	tcp://localhost:10002
diff --git a/voctocore/scripts/av-stream-hd.sh b/voctocore/scripts/av-stream-hd.sh
deleted file mode 100755
index e273a02..0000000
--- a/voctocore/scripts/av-stream-hd.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/sh
-ffmpeg -i tcp://localhost:11000 -aspect 16:9 -threads:0 0 \
--c:v libx264 \
--filter_complex "
-  yadif=mode=2, hqdn3d [deinter];
-  movie=$HOME/overlay_hd.png [logo];
-  [deinter] [logo] overlay=0:0 [out]
-" -map '[out]' -maxrate:v:0 3000k -bufsize:v:0 8192k -crf:0 21 -pix_fmt:0 yuv420p -profile:v:0 main -g:v:0 25 -preset:v:0 veryfast \
--ac 1 -c:a libfdk_aac -b:a 96k -ar 44100 \
--map 0:a -filter:a:0 pan=mono:c0=FL \
--ac:a:2 2 \
--y -f flv rtmp://127.0.0.1:1935/stream/voctomix
diff --git a/voctocore/scripts/av-stream-sd.sh b/voctocore/scripts/av-stream-sd.sh
deleted file mode 100755
index 608c643..0000000
--- a/voctocore/scripts/av-stream-sd.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh
-ffmpeg -i tcp://localhost:11000 -aspect 16:9 -threads:0 0 \
--c:v libx264 \
--filter_complex "
-  yadif=mode=2, hqdn3d, scale=720:576 [out]
-" -map '[out]' -maxrate:v:0 800k -bufsize:v:0 8192k -crf:0 18 -pix_fmt:0 yuv420p -profile:v:0 main -g:v:0 25 -preset:v:0 veryfast \
--ac 1 -c:a libfdk_aac -b:a 96k -ar 44100 \
--map 0:a -filter:a:0 pan=mono:c0=FL \
--ac:a:2 2 \
--y -f flv rtmp://127.0.0.1:1935/stream/s5_native_sd
diff --git a/voctocore/scripts/benchmark.sh b/voctocore/scripts/benchmark.sh
deleted file mode 100755
index 7b3a72b..0000000
--- a/voctocore/scripts/benchmark.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/bash
-
-../voctocore.py &
-PID=$!
-echo "PID=$PID"
-sleep 1
-./set-composite-side-by-side-equal.sh >/dev/null 2>/dev/null
-./av-source-eevblog.sh >/dev/null 2>/dev/null &
-./av-source-avsync.sh >/dev/null 2>/dev/null &
-pidstat -p $PID 1 &
-sleep 10
-kill $PID
-wait
diff --git a/voctocore/scripts/demo-cube-files.sh b/voctocore/scripts/demo-cube-files.sh
deleted file mode 100755
index 978c91e..0000000
--- a/voctocore/scripts/demo-cube-files.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-../voctocore.py -vv &
-PID=$!
-echo "PID=$PID"
-sleep 1
-./av-source-cam1.sh &
-./av-source-cam2.sh &
-./av-source-background-loop.py &
-./av-record-output-ffmpeg-timestamps.sh &
-./av-stream-hd.sh &
-./demo-cycle-modes.sh &
-while true; do sleep 1; done
-kill $PID
-wait
diff --git a/voctocore/scripts/demo-cube.sh b/voctocore/scripts/demo-cube.sh
deleted file mode 100755
index 587f533..0000000
--- a/voctocore/scripts/demo-cube.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-../voctocore.py -vv &
-PID=$!
-echo "PID=$PID"
-sleep 1
-./av-source-bmd-cam1.sh &
-./av-source-bmd-cam2.sh &
-./av-source-background-loop.py &
-./av-record-output-ffmpeg-timestamps.sh &
-./av-stream-hd.sh &
-./demo-cycle-modes.sh &
-while true; do sleep 1; done
-kill $PID
-wait
diff --git a/voctocore/scripts/demo-cycle-modes.sh b/voctocore/scripts/demo-cycle-modes.sh
deleted file mode 100755
index b626b28..0000000
--- a/voctocore/scripts/demo-cycle-modes.sh
+++ /dev/null
@@ -1,42 +0,0 @@
-while true; do
-	sleep 10
-	echo "composite-picture-in-picture"
-	./set-composite-picture-in-picture.sh
-	sleep 10
-	echo "audio/video cam2"
-	./set-video-cam2.sh
-	./set-audio-cam2.sh
-	sleep 10
-	echo "composite-side-by-side-preview"
-	./set-composite-side-by-side-preview.sh
-	sleep 10
-	echo "audio/video cam1"
-	./set-audio-cam1.sh
-	./set-video-cam1.sh
-	sleep 10
-	echo "composite-fullscreen"
-	./set-composite-fullscreen.sh
-	sleep 10
-	echo "audio/video cam2"
-	./set-audio-cam2.sh
-	./set-video-cam2.sh
-	sleep 10
-	echo "audio/video cam1"
-	./set-video-cam1.sh
-	./set-audio-cam1.sh
-	sleep 10
-	echo "composite-side-by-side-equal"
-	./set-composite-side-by-side-equal.sh
-	sleep 10
-	echo "audio/video cam2"
-	./set-video-cam2.sh
-	./set-audio-cam2.sh
-	sleep 10
-	echo "composite-picture-in-picture"
-	./set-composite-picture-in-picture.sh
-	sleep 10
-	echo "audio/video cam1, composite-fullscreen"
-	./set-video-cam1.sh
-	./set-audio-cam1.sh
-	./set-composite-fullscreen.sh
-done
diff --git a/voctocore/scripts/demo-local.sh b/voctocore/scripts/demo-local.sh
deleted file mode 100755
index 2fb1f6a..0000000
--- a/voctocore/scripts/demo-local.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-../voctocore.py -vv &
-PID=$!
-echo "PID=$PID"
-sleep 1
-./av-source-cam1.sh &
-./av-source-cam2.sh &
-./av-source-background-loop.py &
-./av-record-output-ffmpeg.sh &
-#./av-stream-hd.sh &
-./demo-cycle-modes.sh &
-ffplay tcp://localhost:11000
-kill $PID
-wait
diff --git a/voctocore/scripts/perf.sh b/voctocore/scripts/perf.sh
deleted file mode 100755
index 035ec05..0000000
--- a/voctocore/scripts/perf.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/bash
-
-../voctocore.py &
-PID=$!
-echo "PID=$PID"
-sleep 1
-./set-composite-side-by-side-equal.sh >/dev/null 2>/dev/null
-./av-source-eevblog.sh >/dev/null 2>/dev/null &
-./av-source-avsync.sh >/dev/null 2>/dev/null &
-sudo perf top -g -p $PID
-kill $PID
-wait
diff --git a/voctocore/scripts/set-audio-cam1.sh b/voctocore/scripts/set-audio-cam1.sh
deleted file mode 100755
index 19d3b8e..0000000
--- a/voctocore/scripts/set-audio-cam1.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-echo set_audio cam1 | nc -q0 localhost 9999
diff --git a/voctocore/scripts/set-audio-cam2.sh b/voctocore/scripts/set-audio-cam2.sh
deleted file mode 100755
index 9177772..0000000
--- a/voctocore/scripts/set-audio-cam2.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-echo set_audio cam2 | nc -q0 localhost 9999
diff --git a/voctocore/scripts/set-composite-fullscreen.sh b/voctocore/scripts/set-composite-fullscreen.sh
deleted file mode 100755
index 850e591..0000000
--- a/voctocore/scripts/set-composite-fullscreen.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-echo set_composite_mode fullscreen | nc -q0 localhost 9999
diff --git a/voctocore/scripts/set-composite-picture-in-picture.sh b/voctocore/scripts/set-composite-picture-in-picture.sh
deleted file mode 100755
index eae3bea..0000000
--- a/voctocore/scripts/set-composite-picture-in-picture.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-echo set_composite_mode picture_in_picture | nc -q0 localhost 9999
diff --git a/voctocore/scripts/set-composite-side-by-side-equal.sh b/voctocore/scripts/set-composite-side-by-side-equal.sh
deleted file mode 100755
index 37e3357..0000000
--- a/voctocore/scripts/set-composite-side-by-side-equal.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-echo set_composite_mode side_by_side_equal | nc -q0 localhost 9999
diff --git a/voctocore/scripts/set-composite-side-by-side-preview.sh b/voctocore/scripts/set-composite-side-by-side-preview.sh
deleted file mode 100755
index dd8a04b..0000000
--- a/voctocore/scripts/set-composite-side-by-side-preview.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-echo set_composite_mode side_by_side_preview | nc -q0 localhost 9999
diff --git a/voctocore/scripts/set-stream-blank-nostream.sh b/voctocore/scripts/set-stream-blank-nostream.sh
deleted file mode 100755
index abdab4b..0000000
--- a/voctocore/scripts/set-stream-blank-nostream.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-echo set_stream_blank nostream | nc -q0 localhost 9999
diff --git a/voctocore/scripts/set-stream-blank-pause.sh b/voctocore/scripts/set-stream-blank-pause.sh
deleted file mode 100755
index abf3580..0000000
--- a/voctocore/scripts/set-stream-blank-pause.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-echo set_stream_blank pause | nc -q0 localhost 9999
diff --git a/voctocore/scripts/set-stream-live.sh b/voctocore/scripts/set-stream-live.sh
deleted file mode 100755
index e2584c8..0000000
--- a/voctocore/scripts/set-stream-live.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-echo set_stream_live | nc -q0 localhost 9999
diff --git a/voctocore/scripts/set-video-cam1.sh b/voctocore/scripts/set-video-cam1.sh
deleted file mode 100755
index d02b385..0000000
--- a/voctocore/scripts/set-video-cam1.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-echo set_video_a cam1 | nc -q0 localhost 9999
diff --git a/voctocore/scripts/set-video-cam2.sh b/voctocore/scripts/set-video-cam2.sh
deleted file mode 100755
index c953ade..0000000
--- a/voctocore/scripts/set-video-cam2.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-echo set_video_a cam2 | nc -q0 localhost 9999
diff --git a/voctocore/scripts/set-video-grabber.sh b/voctocore/scripts/set-video-grabber.sh
deleted file mode 100755
index ee39c3b..0000000
--- a/voctocore/scripts/set-video-grabber.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-echo set_video_a grabber | nc -q0 localhost 9999
diff --git a/voctocore/scripts/video-play-cam1-mirror.sh b/voctocore/scripts/video-play-cam1-mirror.sh
deleted file mode 100755
index ec3605b..0000000
--- a/voctocore/scripts/video-play-cam1-mirror.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-gst-launch-1.0 \
-	tcpclientsrc host=localhost port=13000 !\
-	matroskademux !\
-	xvimagesink
diff --git a/voctocore/scripts/video-play-cam2-mirror.sh b/voctocore/scripts/video-play-cam2-mirror.sh
deleted file mode 100755
index e42ca6a..0000000
--- a/voctocore/scripts/video-play-cam2-mirror.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-gst-launch-1.0 \
-	tcpclientsrc host=localhost port=13001 !\
-	matroskademux !\
-	xvimagesink
diff --git a/voctocore/scripts/video-play-mixer-output.sh b/voctocore/scripts/video-play-mixer-output.sh
deleted file mode 100755
index abb3174..0000000
--- a/voctocore/scripts/video-play-mixer-output.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-gst-launch-1.0 \
-	tcpclientsrc host=localhost port=11000 !\
-	matroskademux !\
-	xvimagesink
-- 
cgit v1.2.3