diff options
author | MaZderMind <git@mazdermind.de> | 2015-12-03 00:48:13 +0100 |
---|---|---|
committer | MaZderMind <git@mazdermind.de> | 2015-12-03 00:48:13 +0100 |
commit | 8396196a69a4c43a65081d8139f8c057d7f12818 (patch) | |
tree | 27337aa3cc9dba376758a5f596db432f14904192 | |
parent | 331f1dc3fc5ee57c4714a0f5d78160e8aec9cbff (diff) |
[voctogui] use opengl for video-output, fixes #23
-rw-r--r-- | README.md | 7 | ||||
-rw-r--r-- | voctogui/default-config.ini | 5 | ||||
-rw-r--r-- | voctogui/lib/videodisplay.py | 22 |
3 files changed, 8 insertions, 26 deletions
@@ -55,11 +55,8 @@ videocaps=video/x-raw,width=320,height=180,framerate=25/1 ```` ## A word on running in a VM -While the Core runs fine inside a VM (like [VirtualBox](https://www.virtualbox.org/)), the GUI usually uses the [X11-Xv-Extension](https://en.wikipedia.org/wiki/X_video_extension) to play back video into the X11-Server. This Extension is not supported on most VMs, so to run inside such a VM you'll need to tell the GUI to fall back to using traditional X-Images by using a `config.ini` on the GUI with this option: -```` -[x11] -xv=false -```` +While the Core runs fine inside any VM, the GUI uses OpenGL to display the Video-Streams. Don't forget to enable 3D Acceleration in your VM to support this. + ## Contact To get in touch with us we'd ask to join `#voc-lounge` on the hackint IRC network, mail to `voc AT c3voc DOT de` or meet us on one of the [many conferences](https://c3voc.de/eventkalender) we're at. diff --git a/voctogui/default-config.ini b/voctogui/default-config.ini index ee14da0..6258e7c 100644 --- a/voctogui/default-config.ini +++ b/voctogui/default-config.ini @@ -1,11 +1,6 @@ [server] host=localhost -[x11] -; set to false when running inside a VM which -; usually does not support Xv extensions -xv=true - [previews] width=320 ;height=180 diff --git a/voctogui/lib/videodisplay.py b/voctogui/lib/videodisplay.py index bec6789..c75f65e 100644 --- a/voctogui/lib/videodisplay.py +++ b/voctogui/lib/videodisplay.py @@ -35,9 +35,6 @@ class VideoDisplay(object): image/jpeg ! jpegdec ! {previewcaps} ! - videoscale method=nearest-neighbour ! - videorate ! - {vcaps} ! queue ! """ @@ -49,18 +46,11 @@ class VideoDisplay(object): """ # Video Display - if Config.getboolean('x11', 'xv'): - pipeline += """ - xvimagesink name=v - """ - else: - pipeline += """ - videoconvert ! - videoscale ! - ximagesink name=v - """ - - + pipeline += """ + glupload ! + glcolorconvert ! + glimagesinkelement + """ # If an Audio-Path is required, add an Audio-Path through a level-Element if self.level_callback or play_audio: @@ -115,7 +105,7 @@ class VideoDisplay(object): def on_syncmsg(self, bus, msg): if msg.get_structure().get_name() == "prepare-window-handle": - self.log.info('Setting xvimagesink window-handle to %s', self.xid) + self.log.info('Setting imagesink window-handle to %s', self.xid) msg.src.set_window_handle(self.xid) def on_error(self, bus, message): |