MCPcopy Create free account
hub / github.com/Breakthrough/PySceneDetect / read

Method read

scenedetect/backends/opencv.py:512–538  ·  view source on GitHub ↗
(self, decode: bool = True)

Source from the content-addressed store, hash-verified

510 raise NotImplementedError("Reset is not supported.")
511
512 def read(self, decode: bool = True) -> np.ndarray | bool:
513 if not self._cap.isOpened():
514 return False
515 has_grabbed = self._cap.grab()
516 # If we failed to grab the frame, retry a few times if required.
517 if not has_grabbed:
518 for _ in range(self._max_read_attempts):
519 has_grabbed = self._cap.grab()
520 if has_grabbed:
521 break
522 # Report previous failure in debug mode.
523 if has_grabbed:
524 self._decode_failures += 1
525 logger.debug("Frame failed to decode.")
526 if not self._warning_displayed and self._decode_failures > 1:
527 logger.warning("Failed to decode some frames, results may be inaccurate.")
528 # We didn't manage to grab a frame even after retrying, so just return.
529 if not has_grabbed:
530 return False
531 if self._num_frames == 0:
532 self._time_base = self._cap.get(cv2.CAP_PROP_POS_MSEC)
533 self._num_frames += 1
534 # Need to make sure we actually grabbed a frame before calling retrieve.
535 if decode and self._num_frames > 0:
536 _, frame = self._cap.retrieve()
537 return frame
538 return True

Callers 1

test_capture_adapterFunction · 0.95

Calls

no outgoing calls

Tested by 1

test_capture_adapterFunction · 0.76