def __init__(self, base_path: str, id: str, refined: bool = False): self.id = id self.base_path = base_path self.video_path = join(self.base_path, "src_video.mp4") self.manifest_path = join(self.base_path, "recording_manifest.json") self.postprocessing_data_path = join(self.base_path, "postprocessing_data.json") self.manifest = self.read_manifest() logging.info("Got manifest: {}".format(self.manifest)) self.frames_dir = join(self.base_path, "frames") self.assets_dir = join(self.base_path, "assets") self.camera_fbx_path = join(self.base_path, "houdini_camera.fbx") self.nulls_fbx_path = join(self.base_path, "houdini_nulls.fbx") self.refined = refined self.scene_pc_ar_path = join(self.base_path, "houdini_pointcloud_ar_v1.obj") if not os.path.exists(self.scene_pc_ar_path): self.scene_pc_ar_path = join(self.base_path, "houdini_pointcloud.obj") self.scene_pc_refined_path = join(self.base_path, "houdini_pointcloud_refined_v1.obj") self.scene_fbx_refined_path = join(self.base_path, "houdini_scene_refined_v1.fbx") self.scene_fbx_ar_path = join(self.base_path, "houdini_scene_{}.fbx".format("ar_v1")) self.environment_exr_names = self.find_environment_exr_names() self.postprocessing_y_offset = 0 self.recording_session_id = "unk_1" self.read_postprocessing_data() self.fps = 30
def is_extracted(self, recording_id): path = join(self.full_path(recording_id), u".extracted") exists = os.path.exists(path) logging.info(u"rec: {} / {}".format(path, exists)) return exists
def frames_prefix(self): legacy_exists = os.path.exists(join(self.frames_dir, "00001.png")) new_exits = os.path.exists(join(self.frames_dir, "ar_00001.png")) if legacy_exists and not new_exits: return "" return "ar_"
def full_path(self, recording_id): return join(Config.recordings_dir(), recording_id)