Mercurial > ~darius > hgwebdir.cgi > py-iview
changeset 2:6edc508e0775
Try and run flvstreamer on init and exit if it fails.
It's very annoying if we go and select a bunch of stuff and the user hasn't remember to edit the path for it..
author | Daniel O'Connor <darius@dons.net.au> |
---|---|
date | Thu, 20 Aug 2009 17:34:50 +0930 |
parents | f914f08d69f5 |
children | 34471d354603 |
files | iviewget.py |
diffstat | 1 files changed, 23 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/iviewget.py Thu Aug 20 17:33:35 2009 +0930 +++ b/iviewget.py Thu Aug 20 17:34:50 2009 +0930 @@ -1,6 +1,8 @@ #!/usr/bin/env python import iview +import os.path +import re import subprocess import sys import time @@ -8,6 +10,7 @@ outpath = '.' outext = 'flv16x9' flvstreamerpath = '/home/darius/projects/flvstreamer/flvstreamer_x86' +flvpattern = re.compile("FLVStreamer v") def listChannels(iview): i = 1 @@ -48,8 +51,27 @@ time.sleep(0.1) else: return res - + +def checkFLVStreamer(): + try: + s = subprocess.Popen(flvstreamerpath, stdout = subprocess.PIPE, stderr = subprocess.PIPE) + except OSError: + print "Couldn't execute FLVstreamer" + return False + while s.poll() != 1: + time.sleep(0.1) + + out, err = s.communicate() + if flvpattern.match(err) == None: + print "Unrecognised output from FLVstreamer" + return False + + return True + if __name__ == "__main__": + if not checkFLVStreamer(): + sys.exit(1) + iview = iview.IView() if iview.metered: print "WARNING: iview is metered"