mirror of
https://github.com/EyeTrackVR/EyeTrackVR.git
synced 2025-11-04 14:39:42 +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
|
WAIT_TIME = 0.1
|
||||||
|
|
||||||
BUFFER_SIZE = 1024
|
BUFFER_SIZE = 1024
|
||||||
NUM_FRAGMENTS = 48
|
NUM_FRAGMENTS = 8
|
||||||
HEADER_FORMAT = "iii"
|
HEADER_FORMAT = "iii"
|
||||||
|
|
||||||
RED = "\033[91m"
|
RED = "\033[91m"
|
||||||
@ -105,7 +105,7 @@ class UDP_Camera(ICameraSource):
|
|||||||
self.packets: list[PacketHeader|None] = [None] * NUM_FRAGMENTS # Reset packets
|
self.packets: list[PacketHeader|None] = [None] * NUM_FRAGMENTS # Reset packets
|
||||||
self.num_loaded = 0
|
self.num_loaded = 0
|
||||||
self.currentFrameNum = packet.frame_num
|
self.currentFrameNum = packet.frame_num
|
||||||
self.rawFullDataBuffer.fill(0)
|
self.rawFullDataBuffer[:] = 0
|
||||||
# print("Reset frame capture")
|
# print("Reset frame capture")
|
||||||
|
|
||||||
if (self.packets[packet.id] is None
|
if (self.packets[packet.id] is None
|
||||||
@ -135,6 +135,7 @@ class UDP_Camera(ICameraSource):
|
|||||||
|
|
||||||
self.num_loaded = 0
|
self.num_loaded = 0
|
||||||
self.packets: list[PacketHeader|None] = [None] * NUM_FRAGMENTS # Reset packets
|
self.packets: list[PacketHeader|None] = [None] * NUM_FRAGMENTS # Reset packets
|
||||||
|
self.rawFullDataBuffer[:] = 0
|
||||||
|
|
||||||
|
|
||||||
def process_and_push_image(self):
|
def process_and_push_image(self):
|
||||||
@ -148,18 +149,27 @@ class UDP_Camera(ICameraSource):
|
|||||||
current_frame_time = time.time()
|
current_frame_time = time.time()
|
||||||
delta_time = current_frame_time - self.last_frame_time
|
delta_time = current_frame_time - self.last_frame_time
|
||||||
self.last_frame_time = current_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)
|
|
||||||
else:
|
|
||||||
self.fl.pop(0)
|
|
||||||
self.fl.append(self.fps)
|
|
||||||
self.fps = sum(self.fl) / len(self.fl)
|
|
||||||
self.bps = image.nbytes * self.fps
|
|
||||||
self.frame_number = self.frame_number + 1
|
|
||||||
|
|
||||||
|
# Avoid division by zero
|
||||||
|
if delta_time > 0:
|
||||||
|
fps = 1.0 / delta_time
|
||||||
|
else:
|
||||||
|
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
|
||||||
|
|
||||||
|
# Increment frame count
|
||||||
|
self.frame_number += 1
|
||||||
|
|
||||||
|
# Push the frame to queue
|
||||||
self.push_image_to_queue(image, self.frame_number, self.fps)
|
self.push_image_to_queue(image, self.frame_number, self.fps)
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user