mirror of
https://github.com/EyeTrackVR/EyeTrackVR.git
synced 2025-09-26 23:09:28 +08:00
(3) Great fps now
This commit is contained in:
parent
3f763204b6
commit
a29da9f922
@ -19,7 +19,7 @@ from .DataPacket import PacketHeader # Python imports stupid. missed a single ".
|
||||
WAIT_TIME = 0.1
|
||||
|
||||
BUFFER_SIZE = 1024
|
||||
NUM_FRAGMENTS = 48
|
||||
NUM_FRAGMENTS = 8
|
||||
HEADER_FORMAT = "iii"
|
||||
|
||||
RED = "\033[91m"
|
||||
@ -105,7 +105,7 @@ class UDP_Camera(ICameraSource):
|
||||
self.packets: list[PacketHeader|None] = [None] * NUM_FRAGMENTS # Reset packets
|
||||
self.num_loaded = 0
|
||||
self.currentFrameNum = packet.frame_num
|
||||
self.rawFullDataBuffer.fill(0)
|
||||
self.rawFullDataBuffer[:] = 0
|
||||
# print("Reset frame capture")
|
||||
|
||||
if (self.packets[packet.id] is None
|
||||
@ -135,6 +135,7 @@ class UDP_Camera(ICameraSource):
|
||||
|
||||
self.num_loaded = 0
|
||||
self.packets: list[PacketHeader|None] = [None] * NUM_FRAGMENTS # Reset packets
|
||||
self.rawFullDataBuffer[:] = 0
|
||||
|
||||
|
||||
def process_and_push_image(self):
|
||||
@ -148,18 +149,27 @@ class UDP_Camera(ICameraSource):
|
||||
current_frame_time = time.time()
|
||||
delta_time = current_frame_time - self.last_frame_time
|
||||
self.last_frame_time = current_frame_time
|
||||
self.fps = (self.fps + self.pf_fps) / 2
|
||||
self.newft = time.time()
|
||||
self.fps = 1 / (self.newft - self.prevft)
|
||||
self.prevft = self.newft
|
||||
self.fps = int(self.fps)
|
||||
if len(self.fl) < 60:
|
||||
self.fl.append(self.fps)
|
||||
|
||||
# Avoid division by zero
|
||||
if delta_time > 0:
|
||||
fps = 1.0 / delta_time
|
||||
else:
|
||||
self.fl.pop(0)
|
||||
self.fl.append(self.fps)
|
||||
fps = 0
|
||||
|
||||
# Smooth the FPS using a moving average
|
||||
self.fl.append(fps)
|
||||
if len(self.fl) > 60:
|
||||
self.fl.pop(0) # Keep the list length constant
|
||||
|
||||
# Compute average FPS
|
||||
self.fps = sum(self.fl) / len(self.fl)
|
||||
|
||||
# Compute bandwidth per second (bps)
|
||||
self.bps = image.nbytes * self.fps
|
||||
self.frame_number = self.frame_number + 1
|
||||
|
||||
|
||||
# Increment frame count
|
||||
self.frame_number += 1
|
||||
|
||||
# Push the frame to queue
|
||||
self.push_image_to_queue(image, self.frame_number, self.fps)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user