Skip to content

Commit 7fd1885

Browse files
committed
prototype allowing progress when syncing multiple even when alignment fails for some inputs
1 parent 0953aa2 commit 7fd1885

File tree

2 files changed

+21
-23
lines changed

2 files changed

+21
-23
lines changed

ffsubsync/ffsubsync.py

Lines changed: 19 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -128,16 +128,16 @@ def get_framerate_ratios_to_try(args: argparse.Namespace) -> List[Optional[float
128128
def try_sync(
129129
args: argparse.Namespace, reference_pipe: Optional[Pipeline], result: Dict[str, Any]
130130
) -> bool:
131+
result["sync_was_successful"] = False
131132
sync_was_successful = True
132-
exc = None
133-
try:
134-
logger.info(
135-
"extracting speech segments from %s...",
136-
"stdin" if not args.srtin else "subtitles file(s) {}".format(args.srtin),
137-
)
138-
if not args.srtin:
139-
args.srtin = [None]
140-
for srtin in args.srtin:
133+
logger.info(
134+
"extracting speech segments from %s...",
135+
"stdin" if not args.srtin else "subtitles file(s) {}".format(args.srtin),
136+
)
137+
if not args.srtin:
138+
args.srtin = [None]
139+
for srtin in args.srtin:
140+
try:
141141
skip_sync = args.skip_sync or reference_pipe is None
142142
skip_infer_framerate_ratio = (
143143
args.skip_infer_framerate_ratio or reference_pipe is None
@@ -211,20 +211,16 @@ def try_sync(
211211
offset_seconds,
212212
args.suppress_output_if_offset_less_than,
213213
)
214-
except FailedToFindAlignmentException as e:
215-
sync_was_successful = False
216-
logger.error(str(e))
217-
except Exception as e:
218-
exc = e
219-
sync_was_successful = False
220-
else:
221-
result["offset_seconds"] = offset_seconds
222-
result["framerate_scale_factor"] = scale_step.scale_factor
223-
finally:
224-
if exc is not None:
225-
raise exc
226-
result["sync_was_successful"] = sync_was_successful
227-
return sync_was_successful
214+
except FailedToFindAlignmentException as e:
215+
sync_was_successful = False
216+
logger.error(str(e))
217+
except Exception:
218+
raise
219+
else:
220+
result["offset_seconds"] = offset_seconds
221+
result["framerate_scale_factor"] = scale_step.scale_factor
222+
result["sync_was_successful"] = sync_was_successful
223+
return sync_was_successful
228224

229225

230226
def make_reference_pipe(args: argparse.Namespace) -> Pipeline:

requirements-dev.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,6 @@ pytest
55
pytest-cov
66
pyyaml
77
twine
8+
types-requests
9+
types-six
810
versioneer

0 commit comments

Comments
 (0)