class VideoFixer(object):
    
    def __init__(self, video):
        self._windowManager = WindowManager('VideoFixer', self.onKeypress)
        self._captureManager = CaptureManager(cv2.VideoCapture(video), self._windowManager, False)
        self._stabilizer = Stabilizer(self._captureManager)
        
    def run(self):
        self._stabilizer.getPrevTransform()
               
    def show(self):
        """Run the main loop."""
        self._windowManager.createWindow()
        while self._windowManager.isWindowCreated:
            self._captureManager.enterFrame()
            frame = self._captureManager.frame
            print frame
            #if frame is not None:
                #self._stabilizer.getPrevTransform(frame)
                                            
            self._captureManager.exitFrame()
            self._windowManager.processEvents()
        
    def onKeypress(self, keycode):
        """Handle a keypress.
        
        space  -> Take a screenshot.
        tab    -> Start/stop recording a screencast.
        x      -> Start/stop drawing debug rectangles around faces.
        escape -> Quit.
        
        """
        if keycode == 32: # space
            self._captureManager.writeImage('screenshot.png')
        elif keycode == 9: # tab
            if not self._captureManager.isWritingVideo:
                self._captureManager.startWritingVideo(
                    'screencast.avi')
            else:
                self._captureManager.stopWritingVideo()
        elif keycode == 120: # x
            self._shouldDrawDebugRects = \
                not self._shouldDrawDebugRects
        elif keycode == 27: # escape
            self._windowManager.destroyWindow()
 def __init__(self, video):
     self._windowManager = WindowManager('VideoFixer', self.onKeypress)
     self._captureManager = CaptureManager(cv2.VideoCapture(video), self._windowManager, False)
     self._stabilizer = Stabilizer(self._captureManager)