コード例 #1
0
ファイル: remotepivideo.py プロジェクト: drewp/light9
    def onFrame(self, jpg, frameTime):
        # We could pass frameTime here to try to compensate for lag,
        # but it ended up looking worse in a test. One suspect is the
        # rpi clock drift might be worse than the lag. The value of
        # (now - frameTime) stutters regularly between 40ms, 140ms,
        # and 200ms.
        position = self.musicTime.getLatest()

        for d, filename in self._snapshotRequests:
            with open(filename, 'w') as out:
                out.write(jpg)
            d.callback(filename)
        self._snapshotRequests[:] = []
            
        
        if not position['song']:
            self.updateLiveFromTemp(jpg)
            return 
        outDir = takeDir(songDir(position['song']), position['started'])
        outFilename = "%s/%08.03f.jpg" % (outDir, position['t'])
        if os.path.exists(outFilename): # we're paused on one time
            self.updateLiveFromTemp(jpg)
            return
        try:
            os.makedirs(outDir)
        except OSError:
            pass
        with open(outFilename, 'w') as out:
            out.write(jpg)

        self.updateLiveFromFile(outFilename)
            
        # if you're selecting the text while gtk is updating it,
        # you can get a crash in xcb_io
        if getattr(self, '_lastRecText', None) != outDir:
            with gtk.gdk.lock:
                self.recordingTo.set_text(outDir)
            self._lastRecText = outDir
コード例 #2
0
ファイル: videorecorder.py プロジェクト: drewp/light9
    def saveImg(self, position, img, bufferTimestamp):
        if not position['song']:
            return 
        
        t1 = time.time()
        outDir = takeDir(songDir(position['song']), position['started'])
        outFilename = "%s/%08.03f.jpg" % (outDir, position['t'])
        if os.path.exists(outFilename): # we're paused on one time
            return
        
        try:
            os.makedirs(outDir)
        except OSError:
            pass

        img.save(outFilename)

        now = time.time()
        log.info("wrote %s delay of %.2fms, took %.2fms",
                  outFilename,
                  (now - self.lastTime) * 1000,
                  (now - t1) * 1000)
        self.updateRecordingTo(outDir)
        self.lastTime = now