Updated view example

This commit is contained in:
Mark Qvist 2024-03-27 18:37:13 +01:00
parent 48908842c6
commit 6700b7f8b7

View File

@ -158,7 +158,7 @@ class CameraSource(ViewSource):
self.camera_ready = False self.camera_ready = False
class StreamSource(ViewSource): class StreamSource(ViewSource):
DEFAULT_IDLE_TIMEOUT = 5 DEFAULT_IDLE_TIMEOUT = 10
def __init__(self, url=None): def __init__(self, url=None):
self.url = url self.url = url
@ -180,11 +180,10 @@ class StreamSource(ViewSource):
try: try:
while max(self.last_update, self.started)+self.idle_timeout > time.time(): while max(self.last_update, self.started)+self.idle_timeout > time.time():
ret, frame = self.stream.read() ret, frame = self.stream.read()
self.stream_ready = True
if not ret: if not ret:
self.stream_ready = False self.stream_ready = False
break else:
self.stream_ready = True
if not self.frame_queue.empty(): if not self.frame_queue.empty():
if self.frame_queue.qsize() > 1: if self.frame_queue.qsize() > 1:
try: try:
@ -206,6 +205,9 @@ class StreamSource(ViewSource):
self.start_reading() self.start_reading()
while not self.stream_ready: while not self.stream_ready:
time.sleep(0.2) time.sleep(0.2)
if self.stream == None:
self.source_data = None
return
frame = self.frame_queue.get() frame = self.frame_queue.get()
retval, buffer = cv2.imencode(".png", frame) retval, buffer = cv2.imencode(".png", frame)