def __init__(self, timeout=1): # Loop until the program stop receiving kinect stream data self._done = False self._start_time = None self._elapsed = None self._receiving_data = False # Used if recording a set amount of time of the XEF file self._first_frame_time = -1 self._last_frame_time = -1 # When the wait property reaches the timeout limit, we have stopped receiving data self._wait = None self._timeout = timeout # Kinect runtime object self._kinect = PyKinectRuntime(PyKinectV2.FrameSourceTypes_Color | PyKinectV2.FrameSourceTypes_Body | PyKinectV2.FrameSourceTypes_Body) # Store references from the body tracking ID to a simpler 0-5 ID self._bodies = [] self._body_stream = DataStream() # This is our access to our database self._database = Database(DATABASE) # Unique performance ID (the last index + 1) self._p_id = self.get_performance_id() # This is the descriptor for storing RGB video self._video_fn = 'Output_%.03d.avi' % self._p_id self._video_path = VIDEO_DIR + self._video_fn self._video = VideoWriter(self._video_path) self._video_stream = DataStream() # This the descriptor for storing audio data self._audio_path = AUDIO_DIR + 'Output_%.03d.wav' % self._p_id self._audio = AudioWriter(self._audio_path) self._audio_stream = DataStream() # This is the descriptor for storing depth data # pass # Holds any streams being used self._streams = []