#!/bin/env python2 import os import sys import signal import time import gobject from camerafeed import CameraFeed from outputfeed import OutputFeed from config import * feeds = [] def teardown(): print "[main] Stopping all remaining feeds" for feed in feeds: feed.stop() def handle_sigint(signum, frame): print "[main] caught sigint" teardown() sys.exit(0) gobject.threads_init() signal.signal(signal.SIGINT, handle_sigint) for pipe, ip in CAMERA_FEEDS.items(): feeds.append(CameraFeed(pipe, ip)) feeds.append(OutputFeed()) while os.path.exists(MIXER_PIPE): for feed in feeds: if not feed.is_running(): feed.start() time.sleep(5) teardown()