diff --git a/spatialyze/video_processor/video/interpolable_video.py b/spatialyze/video_processor/video/interpolable_video.py deleted file mode 100644 index dd3b1f3..0000000 --- a/spatialyze/video_processor/video/interpolable_video.py +++ /dev/null @@ -1,36 +0,0 @@ -from datetime import datetime, timedelta - -from ..camera_config import CameraConfig, interpolate -from .video import Video - - -class InterpolableVideo(Video): - def __init__( - self, videofile: str, camera_configs: "list[CameraConfig]", start: "datetime | None" = None - ): - super().__init__(videofile, camera_configs, start) - - @property - def interpolated_frames(self): - if not hasattr(self, "_interpolated_frames"): - num_frames, fps, _ = self._get_props() - - if len(self._camera_configs) == 1: - self._start = self._camera_configs[0].timestamp - self._interpolated_frames = [self._camera_configs[0] for _ in range(num_frames)] - else: - assert self._start is not None - assert self._camera_configs[-1].timestamp > self._start + timedelta( - seconds=(num_frames - 1) / fps - ), f"{self._camera_configs[-1].timestamp} {self._start + timedelta(seconds=(num_frames - 1) / fps)}" - - idx = 0 - self._interpolated_frames: "list[CameraConfig]" = [] - for i in range(num_frames): - t = self._start + timedelta(seconds=i / fps) - while self._camera_configs[idx + 1].timestamp < t: - idx += 1 - self._interpolated_frames.append( - interpolate(self._camera_configs[idx], self._camera_configs[idx + 1], t) - ) - return self._interpolated_frames diff --git a/spatialyze/video_processor/video/video_skipped.py b/spatialyze/video_processor/video/video_skipped.py deleted file mode 100644 index 5dd071b..0000000 --- a/spatialyze/video_processor/video/video_skipped.py +++ /dev/null @@ -1,52 +0,0 @@ -from ..camera_config import CameraConfig, has_config, interpolate -from .video import Video - - -class VideoSkipped(Video): - videofile: "str" - - def __init__(self, videofile: str, camera_configs: "list[CameraConfig]"): - super().__init__(videofile, camera_configs, camera_configs[0].timestamp) - - @property - def interpolated_frames(self): - if not hasattr(self, "_interpolated_frames"): - length, fps, _ = self._get_props() - - if len(self._camera_configs) == 1: - config0 = self._camera_configs[0] - self._start = config0.timestamp - self._interpolated_frames = [config0 for _ in range(length)] - else: - assert self._start is not None - last_config = self._camera_configs[-1] - assert has_config(last_config) - # assert round((last_config.timestamp - self._start).total_seconds() * fps) == length, ((last_config.timestamp - self._start).total_seconds(), fps, length) - - self._interpolated_frames: "list[CameraConfig]" = [] - prev_frame = None - next_frame = None - for i, frame in enumerate(self._camera_configs): - if has_config(frame): - self._interpolated_frames.append(frame) - prev_frame = frame - next_frame = None - else: - timestamp = frame.timestamp - assert prev_frame is not None, i - if next_frame is None: - next_frame = _find_first_config(self._camera_configs[i:]) - - self._interpolated_frames.append( - interpolate(prev_frame, next_frame, timestamp) - ) - assert len(self._interpolated_frames) == len(self._camera_configs) - - return self._interpolated_frames - - -def _find_first_config(configs: "list[CameraConfig]"): - for c in configs: - if has_config(c): - return c - raise Exception("configs should always end with a CameraConfig")