Collect matching parts and their retained lengths, excluding an incomplete final part.
Source code in
vsmuxtools/video/resumable.py
| def get_resume_parts(output: Path) -> tuple[list[Path], list[int], int]:
"""Collect matching parts and their retained lengths, excluding an incomplete final part."""
pattern = output.with_stem(output.stem + "_part_???")
candidates = sorted(pattern.parent.glob(pattern.name))
parts, keyframes = [], []
for index, part in enumerate(candidates):
if part.stem != f"{output.stem}_part_{index:03d}":
raise error(f"Missing resume part {index:03d} before {part.name}.", get_resume_parts)
try:
keyframe = parse_keyframes(part)[-1]
except Exception:
keyframe = 0
if keyframe:
parts.append(part)
keyframes.append(keyframe)
elif index != len(candidates) - 1:
raise error(f"Incomplete resume part {part.name} precedes another part.", get_resume_parts)
return parts, keyframes, len(parts)
|