diff options
Diffstat (limited to 'voctocore')
-rwxr-xr-x | voctocore/experiments/avsync.py | 64 | ||||
-rwxr-xr-x | voctocore/experiments/intervideo.py | 74 | ||||
-rwxr-xr-x | voctocore/experiments/sync-videomix.py | 94 | ||||
-rwxr-xr-x | voctocore/experiments/test-audio.sh | 2 | ||||
-rwxr-xr-x | voctocore/experiments/test-avsync.sh | 23 | ||||
-rwxr-xr-x | voctocore/experiments/test-eevblog.sh | 22 | ||||
-rwxr-xr-x | voctocore/experiments/test-video.sh | 2 |
7 files changed, 0 insertions, 281 deletions
diff --git a/voctocore/experiments/avsync.py b/voctocore/experiments/avsync.py deleted file mode 100755 index 91ac76d..0000000 --- a/voctocore/experiments/avsync.py +++ /dev/null @@ -1,64 +0,0 @@ -#!/usr/bin/python3 -import gi, time -import socket - -# import GStreamer and GTK-Helper classes -gi.require_version('Gst', '1.0') -from gi.repository import GLib, Gst, GObject - -# init GObject before importing local classes -GObject.threads_init() -Gst.init(None) - -class Example: - def __init__(self): - self.mainloop = GObject.MainLoop() - - self.src = Gst.parse_launch(""" - tcpserversrc port=10000 ! - matroskademux name=demux - - demux. ! - audio/x-raw,format=S16LE,channels=2,layout=interleaved,rate=48000,channel-mask=(bitmask)0x3 ! - queue ! - tee name=atee - - atee. ! queue ! interaudiosink channel=audio_cam1_mixer - atee. ! queue ! interaudiosink channel=audio_cam1_mirror - - demux. ! - video/x-raw,format=I420,width=800,height=450,framerate=25/1 ! - queue ! - tee name=vtee - - vtee. ! queue ! intervideosink channel=video_cam1_mixer - vtee. ! queue ! intervideosink channel=video_cam1_mirror - """) - - self.sink = Gst.parse_launch(""" - interaudiosrc channel=audio_cam1_mirror ! - audio/x-raw,format=S16LE,channels=2,layout=interleaved,rate=48000,channel-mask=(bitmask)0x3 ! - queue ! - mux. - - intervideosrc channel=video_cam1_mirror ! - video/x-raw,format=I420,width=800,height=450,framerate=25/1 ! - queue ! - mux. - - matroskamux - name=mux - streamable=true - writing-app=Voctomix-AVRawOutput ! - - tcpserversink port=11000 - """) - - def run(self): - self.src.set_state(Gst.State.PLAYING) - self.sink.set_state(Gst.State.PLAYING) - self.mainloop.run() - - -example = Example() -example.run() diff --git a/voctocore/experiments/intervideo.py b/voctocore/experiments/intervideo.py deleted file mode 100755 index a3f49bf..0000000 --- a/voctocore/experiments/intervideo.py +++ /dev/null @@ -1,74 +0,0 @@ -#!/usr/bin/python3 -import gi, time -import socket - -# import GStreamer and GTK-Helper classes -gi.require_version('Gst', '1.0') -from gi.repository import GLib, Gst, GObject - -# init GObject before importing local classes -GObject.threads_init() -Gst.init(None) - -class Example: - def __init__(self): - self.mainloop = GObject.MainLoop() - self.source_pipeline = None - - video = True - if video: - self.pipeline1 = Gst.parse_launch(""" - videotestsrc ! - video/x-raw,width=800,height=450,format=I420,framerate=1/1 ! - intervideosink channel=video - """) - - self.pipeline2 = Gst.parse_launch(""" - intervideosrc channel=video ! - video/x-raw,width=800,height=450,format=I420,framerate=1/1 ! - xvimagesink - """) - - else: - self.pipeline1 = Gst.parse_launch(""" - audiotestsrc ! - audio/x-raw,format=S16LE,channels=2,layout=interleaved,rate=48000,channel-mask=(bitmask)0x3 ! - interaudiosink channel=audio - """) - - self.pipeline2 = Gst.parse_launch(""" - interaudiosrc channel=audio ! - audio/x-raw,format=S16LE,channels=2,layout=interleaved,rate=48000,channel-mask=(bitmask)0x3 ! - alsasink - """) - - self.pipeline1.bus.add_signal_watch() - self.pipeline1.bus.connect("message::eos", self.on_eos) - self.pipeline1.bus.connect("message::error", self.on_error) - - self.pipeline2.bus.add_signal_watch() - self.pipeline2.bus.connect("message::eos", self.on_eos) - self.pipeline2.bus.connect("message::error", self.on_error) - - GLib.timeout_add_seconds(3, self.on_timeout) - - def run(self): - print("starting pipeline2") - self.pipeline2.set_state(Gst.State.PLAYING) - self.mainloop.run() - - def on_timeout(self): - print("starting pipeline1") - self.pipeline1.set_state(Gst.State.PLAYING) - return False - - def on_eos(self, bus, message): - self.log.debug('Received End-of-Stream-Signal on Pipeline') - - def on_error(self, bus, message): - self.log.debug('Received Error-Signal on Pipeline') - (error, debug) = message.parse_error() - self.log.debug('Error-Details: #%u: %s', error.code, debug) - -example = Example() -example.run() diff --git a/voctocore/experiments/sync-videomix.py b/voctocore/experiments/sync-videomix.py deleted file mode 100755 index e496091..0000000 --- a/voctocore/experiments/sync-videomix.py +++ /dev/null @@ -1,94 +0,0 @@ -#!/usr/bin/python3 -import gi, time -import socket - -# import GStreamer and GTK-Helper classes -gi.require_version('Gst', '1.0') -from gi.repository import GLib, Gst, GObject - -# init GObject before importing local classes -GObject.threads_init() -Gst.init(None) - -class Example: - def __init__(self): - self.mainloop = GObject.MainLoop() - - pipeline = """ - videotestsrc pattern=red ! - {caps} ! - mix. - - videotestsrc pattern=green ! - {caps} ! - mix. - - compositor name=mix ! - {caps} ! - identity name=sig ! - videoconvert ! - pngenc ! - multifilesink location=frame%04d.png - """.format( - caps='video/x-raw,width=800,height=450,format=I420,framerate=25/1' - ) - - self.pipeline = Gst.parse_launch(pipeline) - - # with sync=False changes to videomixer & scaler are performed - # from the main thread. In the frame-images it becomes clear, that - # sometimes not all changes are applied before a frame is pushed - # through the mixer, and so there are "half modified" frames where - # some pieces are missing, the zorder or the size of one video is - # incorrect - # with sync=True all changes are made from the streaming-thread - # that drives the videomixer and the following elements, so they - # are always completed before the mixer processes the next frame - sync = True - if sync: - sig = self.pipeline.get_by_name('sig') - sig.connect('handoff', self.reconfigure) - else: - GLib.timeout_add(1/25 * 1000, self.reconfigure, 0, 0) - - self.pad0 = self.pipeline.get_by_name('mix').get_static_pad('sink_0') - self.pad1 = self.pipeline.get_by_name('mix').get_static_pad('sink_1') - - self.state = False - - def reconfigure(self, object, buffer): - print("reconfigure!") - if self.state: - padA = self.pad0 - padB = self.pad1 - else: - padA = self.pad1 - padB = self.pad0 - - padA.set_property('xpos', 10) - padA.set_property('ypos', 10) - padA.set_property('alpha', 1.0) - padA.set_property('zorder', 1) - padA.set_property('width', 0) - padA.set_property('height', 0) - - padB.set_property('xpos', 310) - padB.set_property('ypos', 170) - padB.set_property('alpha', 1.0) - padB.set_property('zorder', 2) - padB.set_property('width', 480) - padB.set_property('height', 270) - - self.state = not self.state - return True - - def run(self): - self.pipeline.set_state(Gst.State.PLAYING) - self.mainloop.run() - - def kill(self): - self.pipeline.set_state(Gst.State.NULL) - self.mainloop.quit() - -example = Example() -example.run() diff --git a/voctocore/experiments/test-audio.sh b/voctocore/experiments/test-audio.sh deleted file mode 100755 index bd51bb8..0000000 --- a/voctocore/experiments/test-audio.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -gst-launch-1.0 audiotestsrc ! audio/x-raw,format=S16LE,layout=interleaved,rate=48000,channels=2 ! gdppay ! tcpclientsink host=localhost port=6000 diff --git a/voctocore/experiments/test-avsync.sh b/voctocore/experiments/test-avsync.sh deleted file mode 100755 index 63e9a9b..0000000 --- a/voctocore/experiments/test-avsync.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh -gst-launch-1.0 -vm \ - uridecodebin \ - uri=http://c3voc.mazdermind.de/avsync.mp4 \ - name=src \ - \ - src. !\ - queue !\ - videoconvert !\ - videoscale !\ - video/x-raw,height=600,width=800,format=I420,framerate=25/1 ! \ - timeoverlay valignment=bottom ! \ - gdppay ! \ - tcpclientsink host=localhost port=5000 \ - \ - src. !\ - queue !\ - audioconvert !\ - audioresample !\ - audiorate !\ - audio/x-raw,format=S16LE,layout=interleaved,rate=48000,channels=2 !\ - gdppay !\ - tcpclientsink host=localhost port=6000 diff --git a/voctocore/experiments/test-eevblog.sh b/voctocore/experiments/test-eevblog.sh deleted file mode 100755 index fb7afc5..0000000 --- a/voctocore/experiments/test-eevblog.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh -gst-launch-1.0 -vm \ - filesrc location=$HOME/eevblog.mp4 !\ - decodebin name=src \ - \ - src. !\ - queue !\ - videoconvert !\ - videoscale !\ - video/x-raw,height=600,width=800,format=I420,framerate=25/1 ! \ - timeoverlay valignment=bottom ! \ - gdppay ! \ - tcpclientsink host=localhost port=5000 \ - \ - src. !\ - queue !\ - audioconvert !\ - audioresample !\ - audiorate !\ - audio/x-raw,format=S16LE,layout=interleaved,rate=48000,channels=2 !\ - gdppay !\ - tcpclientsink host=localhost port=6000 diff --git a/voctocore/experiments/test-video.sh b/voctocore/experiments/test-video.sh deleted file mode 100755 index 005b25a..0000000 --- a/voctocore/experiments/test-video.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -gst-launch-1.0 videotestsrc ! video/x-raw,height=600,width=800,format=I420,framerate=25/1 ! timeoverlay valignment=bottom ! gdppay ! tcpclientsink host=localhost port=5000 |