MCPcopy Create free account
hub / github.com/OpenGVLab/UniFormerV2 / __init__

Method __init__

slowfast/visualization/demo_loader.py:153–209  ·  view source on GitHub ↗

Args: cfg (CfgNode): configs. Details can be found in slowfast/config/defaults.py

(self, cfg)

Source from the content-addressed store, hash-verified

151 """
152
153 def __init__(self, cfg):
154 """
155 Args:
156 cfg (CfgNode): configs. Details can be found in
157 slowfast/config/defaults.py
158 """
159 assert (
160 cfg.DEMO.WEBCAM > -1 or cfg.DEMO.INPUT_VIDEO != ""
161 ), "Must specify a data source as input."
162
163 self.source = (
164 cfg.DEMO.WEBCAM if cfg.DEMO.WEBCAM > -1 else cfg.DEMO.INPUT_VIDEO
165 )
166
167 self.display_width = cfg.DEMO.DISPLAY_WIDTH
168 self.display_height = cfg.DEMO.DISPLAY_HEIGHT
169
170 self.cap = cv2.VideoCapture(self.source)
171
172 if self.display_width > 0 and self.display_height > 0:
173 self.cap.set(cv2.CAP_PROP_FRAME_WIDTH, self.display_width)
174 self.cap.set(cv2.CAP_PROP_FRAME_HEIGHT, self.display_height)
175 else:
176 self.display_width = int(self.cap.get(cv2.CAP_PROP_FRAME_WIDTH))
177 self.display_height = int(self.cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
178
179 if not self.cap.isOpened():
180 raise IOError("Video {} cannot be opened".format(self.source))
181
182 self.output_file = None
183
184 if cfg.DEMO.OUTPUT_FPS == -1:
185 self.output_fps = self.cap.get(cv2.CAP_PROP_FPS)
186 else:
187 self.output_fps = cfg.DEMO.OUTPUT_FPS
188 if cfg.DEMO.OUTPUT_FILE != "":
189 self.output_file = self.get_output_file(
190 cfg.DEMO.OUTPUT_FILE, fps=self.output_fps
191 )
192 self.num_skip = cfg.DEMO.NUM_CLIPS_SKIP + 1
193 self.get_id = -1
194 self.put_id = -1
195 self.buffer = []
196 self.buffer_size = cfg.DEMO.BUFFER_SIZE
197 self.seq_length = cfg.DATA.NUM_FRAMES * cfg.DATA.SAMPLING_RATE
198 self.test_crop_size = cfg.DATA.TEST_CROP_SIZE
199 self.clip_vis_size = cfg.DEMO.CLIP_VIS_SIZE
200
201 self.read_queue = queue.Queue()
202 self.write_queue = {}
203 self.not_end = True
204 self.write_lock = threading.Lock()
205 self.put_id_lock = threading.Lock()
206 self.input_lock = threading.Lock()
207 self.output_lock = threading.Lock()
208 self.stopped = False
209 atexit.register(self.clean)
210

Callers

nothing calls this directly

Calls 3

get_output_fileMethod · 0.95
setMethod · 0.80
getMethod · 0.45

Tested by

no test coverage detected