Unverified 提交 9e9219fe authored 作者: Glenn Jocher's avatar Glenn Jocher 提交者: GitHub

Fix `nan`-robust stream FPS (#6198)

Fix for Webcam stop working suddenly (Issue #6197)
上级 b5b56a3c
...@@ -6,6 +6,7 @@ Dataloaders and dataset utils ...@@ -6,6 +6,7 @@ Dataloaders and dataset utils
import glob import glob
import hashlib import hashlib
import json import json
import math
import os import os
import random import random
import shutil import shutil
...@@ -308,8 +309,9 @@ class LoadStreams: ...@@ -308,8 +309,9 @@ class LoadStreams:
assert cap.isOpened(), f'{st}Failed to open {s}' assert cap.isOpened(), f'{st}Failed to open {s}'
w = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) w = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
h = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) h = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
self.fps[i] = max(cap.get(cv2.CAP_PROP_FPS) % 100, 0) or 30.0 # 30 FPS fallback fps = cap.get(cv2.CAP_PROP_FPS) # warning: may return 0 or nan
self.frames[i] = max(int(cap.get(cv2.CAP_PROP_FRAME_COUNT)), 0) or float('inf') # infinite stream fallback self.frames[i] = max(int(cap.get(cv2.CAP_PROP_FRAME_COUNT)), 0) or float('inf') # infinite stream fallback
self.fps[i] = max((fps if math.isfinite(fps) else 0) % 100, 0) or 30 # 30 FPS fallback
_, self.imgs[i] = cap.read() # guarantee first frame _, self.imgs[i] = cap.read() # guarantee first frame
self.threads[i] = Thread(target=self.update, args=([i, cap, s]), daemon=True) self.threads[i] = Thread(target=self.update, args=([i, cap, s]), daemon=True)
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论