def _reader()

in agora/footfall_ai_api/src/video_capture.py [0:0]


    def _reader(self):
        while self.running:
            ret, frame = self.cap.read()
            if not ret:
                break
            if not self.q.empty():
                try:
                    self.q.get_nowait()   # Discard previous frame
                except queue.Empty:
                    pass
            
            while self.q.full():
                time.sleep(0.01)
                if not self.running:
                    return
            
           # Save the frame if it is at the specified interval
            if self.skip_fps == -1 or self.frame_count % self.frame_interval == 0:
                if self.resize == '640':
                    frame = cv2.resize(frame, (640, 360))
                elif self.resize == '1280':
                    frame = cv2.resize(frame, (1280, 720))
                 # Add the frame with the desired resize    
                self.q.put(frame)

            self.frame_count += 1
            self.state=ret