From 2084328069dcd253dd8c60e1151d63c176660d38 Mon Sep 17 00:00:00 2001 From: bytedream Date: Fri, 23 Feb 2024 17:35:12 +0100 Subject: [PATCH] Fix ffmpeg progress panic (#337) --- crunchy-cli-core/src/utils/download.rs | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/crunchy-cli-core/src/utils/download.rs b/crunchy-cli-core/src/utils/download.rs index 317a709..9a67f7f 100644 --- a/crunchy-cli-core/src/utils/download.rs +++ b/crunchy-cli-core/src/utils/download.rs @@ -1202,13 +1202,16 @@ async fn ffmpeg_progress( let Some(line) = line? else { break }; - let frame: u64 = current_frame - .captures(line.as_str()) - .unwrap() - .name("frame") - .unwrap() - .as_str() - .parse()?; + + // we're manually unpack the regex here as `.unwrap()` may fail in some cases, e.g. + // https://github.com/crunchy-labs/crunchy-cli/issues/337 + let Some(frame_cap) = current_frame.captures(line.as_str()) else { + break + }; + let Some(frame_str) = frame_cap.name("frame") else { + break + }; + let frame: u64 = frame_str.as_str().parse()?; if let Some(p) = &progress { p.set_position(frame)