From 671e2e3f324282467aa81d5491b490e0a0950a93 Mon Sep 17 00:00:00 2001 From: Brett Date: Sat, 21 Oct 2023 17:57:15 -0700 Subject: [PATCH] Better error handling for ffmpeg.get_all_formats() --- src/engines/ffmpeg_engine.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/engines/ffmpeg_engine.py b/src/engines/ffmpeg_engine.py index 3ee0ae7..a665bdd 100644 --- a/src/engines/ffmpeg_engine.py +++ b/src/engines/ffmpeg_engine.py @@ -33,11 +33,15 @@ class FFMPEG(BaseRenderEngine): return encoders def get_all_formats(self): - formats_raw = subprocess.check_output([self.renderer_path(), '-formats'], stderr=subprocess.DEVNULL, - timeout=SUBPROCESS_TIMEOUT).decode('utf-8') - pattern = '(?P[DE]{1,2})\s+(?P\S{2,})\s+(?P.*)' - all_formats = [m.groupdict() for m in re.finditer(pattern, formats_raw)] - return all_formats + try: + formats_raw = subprocess.check_output([self.renderer_path(), '-formats'], stderr=subprocess.DEVNULL, + timeout=SUBPROCESS_TIMEOUT).decode('utf-8') + pattern = '(?P[DE]{1,2})\s+(?P\S{2,})\s+(?P.*)\r' + all_formats = [m.groupdict() for m in re.finditer(pattern, formats_raw)] + return all_formats + except Exception as e: + logger.error(f"Error getting all formats: {e}") + return [] def extension_for_format(self, ffmpeg_format): # Extract the common extension using regex