summaryrefslogtreecommitdiff
path: root/voctogui/lib/videodisplay.py
diff options
context:
space:
mode:
authorMaZderMind <git@mazdermind.de>2016-08-17 13:57:58 +0200
committerPeter Körner <pkoerner@seibert-media.net>2016-09-27 10:01:07 +0200
commit9834a6809d49ad63cf1af88b44efb02db6bca7ac (patch)
treefafebb7418708995e848733bb049a527ecb6834a /voctogui/lib/videodisplay.py
parentbb795bad0b439f6236f74f79c04e88888867b1dd (diff)
add configurable decoders into the gui
Diffstat (limited to 'voctogui/lib/videodisplay.py')
-rw-r--r--voctogui/lib/videodisplay.py29
1 files changed, 24 insertions, 5 deletions
diff --git a/voctogui/lib/videodisplay.py b/voctogui/lib/videodisplay.py
index 9259f6c..f42775c 100644
--- a/voctogui/lib/videodisplay.py
+++ b/voctogui/lib/videodisplay.py
@@ -16,16 +16,34 @@ class VideoDisplay(object):
self.drawing_area = drawing_area
self.level_callback = level_callback
- caps = Config.get('mix', 'videocaps')
+ if Config.has_option('previews', 'videocaps'):
+ previewcaps = Config.get('previews', 'videocaps')
+ else:
+ previewcaps = Config.get('mix', 'videocaps')
+
use_previews = (Config.getboolean('previews', 'enabled') and
Config.getboolean('previews', 'use'))
# Preview-Ports are Raw-Ports + 1000
if use_previews:
- self.log.info('using jpeg-previews instead of raw-video for gui')
+ self.log.info('using endoded previews instead of raw-video for gui')
port += 1000
+
+ vdec = 'image/jpeg ! jpegdec'
+ if Config.has_option('previews', 'vaapi'):
+ try:
+ decoder = Config.get('previews', 'vaapi')
+ decoders = {
+ 'h264': 'video/x-h264 ! avdec_h264',
+ 'jpeg': 'image/jpeg ! jpegdec',
+ 'mpeg2': 'video/mpeg,mpegversion=2 ! mpeg2dec'
+ }
+ vdec = decoders[decoder]
+ except Exception as e:
+ self.log.error(e)
+
else:
- self.log.info('using raw-video instead of jpeg-previews for gui')
+ self.log.info('using raw-video instead of endoded-previews for gui')
# Setup Server-Connection, Demuxing and Decoding
pipeline = """
@@ -37,8 +55,7 @@ class VideoDisplay(object):
if use_previews:
pipeline += """
demux. !
- image/jpeg !
- jpegdec !
+ {vdec} !
{previewcaps} !
queue !
"""
@@ -109,6 +126,8 @@ class VideoDisplay(object):
vcaps=Config.get('mix', 'videocaps'),
previewcaps=Config.get('previews', 'videocaps'),
host=Args.host if Args.host else Config.get('server', 'host'),
+ vdec=vdec,
+ host=Config.get('server', 'host'),
port=port,
)